Задать вопрос
  • Как сделатьPOST запрос из 1С к API сайта?

    @Dementor
    программист, архитектор, аналитик
    Для начала вам нужно самим разобраться как файлы отправляются в сообщениях HTTP. Посмотрите RFC-1867, где описаны способы отправки файлов.

    В вашем случае вы даже не пытаетесь отправлять файл. Вы отправляете вместо файла строчку "&req=test" (которую, как я подозреваю, вообще нужно было отправлять в конце адреса, как GET-параметр), а в заголовке пакета пишете путь к файлу на вашем компьютере. Что может сервер сделать с вашим локальным путем?

    Рекомендую прочесть статью https://infostart.ru/public/20017/ и особенно ее комментарии (под конец там будет пример кода для платформы 8.3 без использования промежуточных временных файлов).
    Ответ написан
  • Возможно ли экспортировать код 1с на какой либо веб язык?

    @Dementor
    программист, архитектор, аналитик
    Вопрос такой: Есть самописная конфигурация 1С, нужно её как то экспортировать в веб приложение, существуют ли какие либо автоматизированные средства для этого? Какой веб движок можно задействовать, и много ли придется допиливать, если вообще возможно?

    Короткий ответ - Нет.

    Посудите сами - если бы это было возможно, то этим бы все массово пользовались. Тысячи же людей мечтают о подобной шаре. С одной стороны, разработка на 1С очень проста - всего за день можно получить структуру БД со всеми связями и индексами, удобный пользовательский интерфейс для всех программных объектов и очень гибкие информативные отчеты. Это результат более чем двадцатилетней работы разработчиков платформы, но за свой труд 1С требует покупку лицензий пользователями (странно, выходцы из СССР, а ведут себя как обычные западные капиталисты). И эта вторая сторона этой медали для многих кусается. (Кастомизация среди причин желаний уйти на втором месте, так как хоть дефолтные стили не очень, но для бизнес-программ важнее удобство, а не красота).

    Универсального решения не существует. Каждый, кто ступает на этот путь, делает свой собственный "велосипед", которым потом обычно не делится. Чуть выше Константин дал вам ссылку на проект "metadata.js", но хочу сразу вам привести позицию его создателя Евгения Малярова, которую он несколько раз высказывал в различных обсуждениях своей работы: metadata.js - это про замену 1С, а про расширение функциональности; если 1С устраивает, то переходить нет смысла.
    Ответ написан
    Комментировать
  • Как вклинить в список выбора свой флажок (1С)?

    @Dementor
    программист, архитектор, аналитик
    Загуглил информацию по вашей версии ЗУПа - оказывается она снята с поддержки. Вы точно хотите ее переписывать и вручную самостоятельно реализовывать функционал при изменении требований к учету?

    Вашу задачу можно решить несколькими способами. Я бы выбрал самый простой - через описание двух обработчиков событий вашего списка сотрудников.

    На форму вашего элемента форма (который типа СправочникСписок) добавляем новую колонку для флажка (без пути к данным). Далее опишем обработчик этого элемента формы ПриПолученииДанных, где в коде обратимся в ваш новый регистр РуководителиОтделов и, в случае нахождения там сотрудника по текущему отделу, устанавливаем флажек, а иначе снимаем.

    Установку в базе можно сделать в обработчике ПриВыборе, в котором анализируем текущую колонку и если кликали по флажку, то отказываемся от стандартной обработки и удаляем/добавляем запись в вашем регистре РуководителиОтделов.
    Ответ написан
  • Отправка из 1C POST запроса с файлом - как сформировать тело запроса?

    @Dementor
    программист, архитектор, аналитик
    Если вы не имитируете отправку данных формы методом POST, то ничего нового изобретать не нужно. Вот пример кода с передачей по POST какой-то строки:
    Соединение = Новый HTTPСоединение(Сервер, Порт);
    ЗапросСервера = Новый HTTPЗапрос(ПутьНаСервере);
    ЗапросСервера.УстановитьТелоИзСтроки(ТелоЗапроса);
    ОтветСервера = Соединение.ВызватьHTTPМетод("POST", ЗапросСервера);
    ТелоОтвета = ОтветСервера.ПолучитьТелоКакСтроку();
    КодОтвета = ОтветСервера.КодСостояния;

    Если нужно передать двоичные данные, то нужен метод запроса УстановитьТелоИзДвоичныхДанных. Если серверу нужно передать тип содержимого, то установим заголовок с помощью свойства запроса Заголовки:
    ЗапросСервера.Заголовки.Вставить("Content-type", "application/json");


    А вот для x-www-form-urlencoded (особенно с отправкой нескольких файлов) нужно будет дополнительно вручную отформатировать тело запроса.
    Ответ написан
    3 комментария
  • Как передать имя документа через параметр в 1С?

    @Dementor
    программист, архитектор, аналитик
    Посмотрел ваш обмен комментариями с Константином. У вас нет понимания, как работают запросы. Попробую в двух словах.

    Текст запроса - это инструкция подсистеме управления базой данных по выбору и трансформации данных. Есть синтаксис языка запросов, согласно которому источник получения данных требуется описать в разделе ГДЕ следуя определенным правилам: если источник находится в данных системы, то он описывается как [КлассОбъекта].[ИмяОбъекта] (при этом как источник можно использовать только табличные данные, даже если они содержат всего одну строку - т.е. константы применять можно, а перечисления уже нельзя); если же источник данных находится в коде, откуда выполняется запрос, то пишут &НазваниеПеременной и источник данных передают в одноименную переменную.

    Итак, если на вход объекту Запрос или основанному на нем (это могут быть "построитель отчета" или "система компоновки") подать некоторый текст запроса, где в секции ГДЕ будет вместо Документ.Акт и Документ.Счет будет &ВидДокумента , то он отправится в переданную коллекцию параметров, поищет там параметр с именем "ВидДокумента", переместит его содержимое во временную таблицу и выполнит запрос к этой временной таблице, а не к реальным таблицам тех же документов. Таким образом, если вы в параметр ВидДокумента установите какую-то таблицу значений (или табличную часть, или результат из другого запроса), то у вас все получится. Но при передаче строки, как в вашем случае, получится ошибка, так как строку невозможно неявно преобразовать в таблицу.

    Если у вас в какой-то переменной есть имя таблицы, то вам нужно следует передать значение этой переменной в текст запроса так как посоветовал Константин, или с помощью текстовой замены:
    Запрос.Текст = СтрЗаменить(Запрос.Текст, "&ВидДокумента", ВидДокумента);
    Ответ написан
    Комментировать
  • Как вручную указать, что первый обмен с сайтом типа "только изменения" был успешно завершен?

    @Dementor
    программист, архитектор, аналитик
    В типовых конфигурациях (особенно тех, которые обмениваются с Битрикс-подобными сайтами) есть стандартная обработка "Регистрация изменений для обмена". Запустите ее. Сверху нужно будет выбрать план обмена "Обмен с сайтом" и указать узел с вашими настройками. Вам будет показан весь перечень объектов, которые зарегистрированы для будущего обмена. "Регистрация для отправки" автоматически пропадает после успешного обмена. Но в данной обработке ее можно и вручную удалить. А так же можно вручную зарегистрировать на отправку нужные вам небольшие пачки данных (выбирая их списком или отобрав с помощью языка запросов).
    Ответ написан
  • Некорректная печать штрих-кода в ценнике?

    @Dementor
    программист, архитектор, аналитик
    Посмотрите свойства вашего объекта для печати штрихкода. Какой тип кода там установлен? Может там вовсе не EAN13 и потому печатается, какая-то фигня.

    Потом, посмотрите формирование печатной формы. Там будет, что-то типа: ОбластьМакета.Рисунки.D1.Объект.Сообщение = Штрихкод. Проверьте отладчиком, что тут происходит. Возможно этот кусок кода не выполняется и потому на печать идет 1234567890128, который явно прописан в свойстве "Сообщение" объекта печати штрихкода для предпросмотра в макете.
    Ответ написан
    Комментировать
  • Как передать выгрузку 1С в сформированную таблицу через обмен данными с WEB сайтом?

    @Dementor
    программист, архитектор, аналитик
    Судя по тегу, у вас Битрикс. Следовательно идите в битриксовскую документацию. У них есть и общая теория по обмену с 1С и детальный учебный курс на эту тему.
    Начинайте с этой ссылки: https://1c.bitrix.ua/ecommerce/
    Ответ написан
    Комментировать
  • Как зделать синхронизацию сайта с 1с, используя codeigniter или чистый PHP?

    @Dementor
    программист, архитектор, аналитик
    Если не хотите отступать и решились выполнить эту задачу, то у вас есть два варианта:

    1) Воспользоваться наработками компании Битрикс (ныне выкуплена компанией 1С). Если на втором конце одна из типовых конфигураций, то вам достаточно скачать и установить подходящий модуль с этой странички. Далее вам нужно изучить стандарт CommerceML, который разработала компания 1С совместно с Microsoft. И финальным аккордом берите свой "чистый PHP" и пишите серверную часть механизма обмена, которая будет получать справочные данные из 1С и возвращать назад заказы (и все остальное, что реализуете).

    2) Или будьте настоящим самураем. Разработайте собственный протокол обмена бизнес-данными, а потом в 1С и на своем сайте создайте все необходимые интеграционные механизмы. Это проще, так как никто вашу фантазию не ограничивает :)
    Ответ написан
    Комментировать
  • Нашу базу 1с зашифровали хакеры, есть ли шанс разблокировать?

    @Dementor
    программист, архитектор, аналитик
    Подобные темы периодически возникают на форумах пользователей Касперского, Др.Веба и Нода32 - сотрудники соответствующих антивирусов пытаются помочь решить такую проблему; на форумах уже лежат десятки средств, которые могут помочь в попытке дешифровки.

    Как вариант, если вы так хотите заплатить, свяжитесь с вымогателями, которые зашифровали вам базу.

    P.S. Добро пожаловать в сообщество людей, которые "УЖЕ делают бэкапы".
    Ответ написан
    Комментировать
  • Как избавиться от found orphan temp table в postgresql?

    @Dementor
    программист, архитектор, аналитик
    При случае киньте линк на нормальную книгу по ПГ

    Книга, которая должна быть рядом у русскоязычного админа - Работа с PostgreSQL: настройка и масштабирование авторства Алексея Васильева. Плюс связанный вопрос на тостере.

    По поводу вашей проблемы. Решать "что делать" должен человек с полномочиями и админским доступом - т.е. вы, а не какой-то анонимный советчик. В интернете на эту тему множество топиков (один из них) и ваша задача перебором добиться восстановления работы (кстати, многие пишут про вакуум для удаления таблиц-сироток - с него можете и начать). Меня в вашей истории больше смущает фраза "Сервак под win 2003 крешнулся". Пока вы не восстановите работоспособность файловой подсистемы, ничего хорошего вас не ждет.
    Ответ написан
    Комментировать
  • Как реализовать контроль остатков в 1С?

    @Dementor
    программист, архитектор, аналитик
    Что значит "результаты чтетны"?

    Из того что я вижу (как я понимаю это модуль объекта документа РеализацияУчебников, а что творится в модуле объекта документа ПолучениеУчебников и модуля набора записей регистра ОстаткиУчебников остается неизвестным) хочу отметить несколько моментов:

    1) В модулях объектов не принято писать вызов метода Сообщить(). И не только потому, что он устаревший и не рекомендуется к использованию (вместо него нужно использовать объект СообщениеПользователю), а поскольку нет 100% вероятности, что данное сообщение будет показано и прочитано - к примеру при работе регламентного задания.

    2) Если у вашего документа запрещено оперативное проведение, то блок в условии "Режим = РежимПроведенияДокумента.Оперативный" не будет выполнен.

    3) В вашей логике пропущена запись набора движения до выполнения запроса. Команда "Движения.ОстатокУчебников.Записывать = Истина;" говорит лишь о том, что при завершении процедуры проведения записи из свойства Движения.ОстатокУчебников необходимо записать в базу данных. Но, если вы в рамках проведения хотите запросом проверять измененное состояние в базе, то проводки перед этим стоит записать явно методом Записать().
    Ответ написан
    4 комментария
  • Как реализовать удаленный доступ к 1с?

    @Dementor
    программист, архитектор, аналитик
    Вам нужно знать, что базы 1С бывают двух видов - файловые и серверные. В первом случае пишите скрипт который с помощью системной утилиты будет анализировать обращения к файлу базы (как вариант запускать процесс подключения с читыванием таблицы активных подключений). Во втором случае используйте утилиты RAS/RAC для доступа к информации через кластер. Полученные скрипты добавляйте в ваш систему наблюдения (zabbix, munin или что там у вас стоит) и наслаждайтесь контролем :)
    Ответ написан
    Комментировать
  • Перегружен RAID массив при работе с бд?

    @Dementor
    программист, архитектор, аналитик
    То, что я вижу в вопросе.
    В наличии имеются: 1) "рабочий компьютер с неизвестным линуксом, рейдом, стандартной утилитой диагностики рейда и СУБД для 1С", 2) сервер, который соединен с рабочим компьютером; 3) три терминала с установленной программой 1С:Повар и биометрическим сканером.
    Проблема: рейд перегружен и база 1С не может достучаться к СУБД.
    Вариант поиска проблемы: перегружать сервер и терминалы.

    Вы хоть понимаете, что можете перегружать сервер до бесконечности, но на вашем компьютере с СУБД это абсолютно никак не отразится? Далее очень дико слышать, что вы можете запускать какие-то стандартные программы, но не можете определить версию дистрибутива.

    Мой совет - перестаньте шаманить и позовите сисадмина.
    Ответ написан
    Комментировать
  • Как связать 1с с апи бота?

    @Dementor
    программист, архитектор, аналитик
    Но как нам это все связать? Есть ли какое то апи у 1с? Есть ли какие то готовые решения?

    В 1С можно создать API любой сложности на базе HTTP-сервисов или SOAP (есть и другие способы, но с серверов Телеграмма/Вайбера они вам будут недоступны). Вот вам пример получения данных из базы 1С, который вы можете использовать в своем проекте (запрос боту "верни текущий статус моего заказа") - https://infostart.ru/public/302876/
    Ответ написан
    3 комментария
  • В 1С некорректно выгружает в excel?

    @Dementor
    программист, архитектор, аналитик
    0) Что такое "1С документооборот 7 версии"? Видимо это или ваше ноу-хау или не сертифицированное у вендора решение. Типовое же решение под названием "1С:Документооборот" впервые появилось на версии платформы 8.2 и несет в названии цифру 8. Его предшественник назывался "1С:Архив" и был отдельной программой написанной на Visual C++.

    Мой опыт говорит, что в таком случае есть два типа проблем:
    1) столбцы есть, но их ширины равна нулю - проверьте название колонок.
    2) в коде выгрузки допущена плавающая ошибка, которая при некоторых обстоятельствах не дает завершить формирование выходного файла - вам необходимо запустить решение в режиме отладки и пройти все шаги алгоритма.
    Ответ написан
    Комментировать
  • Кто такой программист 1С?

    @Dementor
    программист, архитектор, аналитик
    И у меня вопрос кто это, что он делает?

    Это такой же расплывчатый вопрос как и "чем занимается менеджер?". Ведь менеджеры и закупками занимаются, и холодными обзвонами, и инвентаризациями на складе.... Так и "программисты 1С" могут заниматься чем угодно в зависимости от места куда попадут - в одних конторах они сидят на связке с интернет магазинами (битриксы, опенкарты и прочие магенты), в других пилят мобильные приложения кладовщикам и курьерам, в третьих все время по командировкам и обеспечивают работоспособность сети магазинов (подключают/чинят весы, кассовые аппараты, сканеры и пр.; занимаются подсистемами скидок, бонусов, дисконтных карточек и так далее), в четвертых общаются с пользователями корпоративной системы и решают их проблемы, в пятых сидят на проектах и по методологии Agaile закрывают тикеты в рамках недельных спринтов...

    Может посоветуете ресурс где можно было бы посмотреть задания которые выполняет данный специалист.

    В объявлениях про работу читайте описание этой самой работы. Плюс погуглите фрилансерские сайты (их под десяток) и посмотрите какие задачи идут в графе 1С.

    Не ужели это что-то сложное, что открыто так много вакансий на данную должность?

    1С своими программами захватила большую долю рынка. И это ПО кто-то должен обслуживать - обучать работе новых пользователей, исправлять ошибки, внедрять новый функционал.

    Мне кажется что человек, который имеет опыт программирования может спокойно освоить 1С или я не прав?

    Даже без такого опыта тоже сможет. У меня на курсах как-то была тётенька главбух, которая хотела сэкономить на "приходящих мальчиках". Эта женщина успешно прослушала курс по основным объектам и потом меня сильно благодарила - и программу она теперь сама умеет обновлять, и новые печатные формы для документов рисовать, и новые нужные для нее отчеты создавать. И это при том, что она полный гуманитарий :)
    Ответ написан
    4 комментария
  • 1c как добавить множественное поле?

    @Dementor
    программист, архитектор, аналитик
    Список транспорт с помощью реквизита справочника сделать нельзя. В реквизите может быть одно значение (вариант с хранилищем значений не рассматриваем, как не рекомендуемый методологами из 1С).

    Вам нужно для вашего справочника сделать табличную часть "Базовые машины" с реквизитом "Машина" типа СправочникСсылка.МаркиМашин. Далее если вы хотите на форме видеть данные полем ввода, а не табличкой, то вам (как уже подсказывает Константин Нагибович ) нужно на форму элемента справочника добавить реквизит с типом СписокЗначений и значениями типа СправочникСсылка.МаркиМашин. Далее при создании/открытии формы с табличной части переносите в этот элемент. На сам элемент навешиваете обработчик ПриИзменении(), в котором устанавливаете флаг Модифицированность. А в обработчике формы ПередЗаписью() копируете содержимое из вашего списка в табличную часть.

    P.S. Сделать это можно быстрее чем я тут печатал :)
    Ответ написан
    1 комментарий
  • Как правильно организовать бекап БД 1С с кешем?

    @Dementor
    программист, архитектор, аналитик
    Если 1С версии 8, то в файловом режиме нет никакого кеша данных. Есть единый файл 1Cv8.1CD в котором хранится вся информация кроме Журнала Регистрации и индекса полнотекстового поиска.

    Никакую работу и тем более за 4 часа потерять невозможно. У вас или вся база навернется с потерей всех данных, или только незакрытые транзакции последних секунд работы.
    Ответ написан
    4 комментария