Использование произвольного кода для выгрузки документов из 1С

Последние изменения: 21.07.2021

Для пользовательских бизнес-процессов (как их создавать и редактировать, описано в статье) можно использовать произвольный код при выгрузке документов из 1С. Для этого требуется проставить флаг «Выполнить только произвольный код при выгрузке» в главном окне настройки бизнес-процесса.

Далее, чтобы использовать произвольный код при выгрузке документа, в модуль интеграционной обработки нужно поместить экспортную функцию, программно формирующую данные документа для выгрузки в базу Mobile SMARTS. Имя функции должно совпадать с именем обработчика, указанным в поле «Обработчик выгрузки документа» на форме настройки бизнес-процесса.

Данные документа, возвращаемые функцией, должны быть представлены в виде структуры с ключами:

  • ШапкаДокумента
  • ТабличныеЧасти

ШапкаДокумента, в свою очередь, является структурой, ключи которой — это имена реквизитов шапки документа Mobile SMARTS. Значения ключей — выгружаемые значения соответствующих реквизитов 1С.

ТабличныеЧасти — это структура, ключами которой являются имена табличных частей документа Mobile SMARTS. Значения ключей — это массивы данных строк соответствующих табличных частей документа 1С.

Пример кода:

Функция ПоступлениеТоваровУслуг_Выгрузка(Документ1С, ДанныеНастроекИзКэша, НастройкаБП) Экспорт
ДанныеДокумента = Новый Структура();
ДанныеШапки = Новый Структура();
ДанныеШапки.Вставить("Name", Строка(Документ1С));
ДанныеШапки.Вставить("ИмяТипаДокумента", НастройкаБП.ТипДокументаMS);
ДанныеШапки.Вставить("НастройкаБизнесПроцесса", НастройкаБП.ID_БизнесПроцесса);
ДанныеШапки.Вставить("ИмяБП", НастройкаБП.Название);
ДанныеШапки.Вставить("Ид", XMLСтрока(Документ1С));
ДанныеШапки.Вставить("ИдСклада", "1");
ДанныеШапки.Вставить("ИдСклада1С", XMLСтрока(Документ1С.Склад));
ДанныеШапки.Вставить("ИмяСклада", Документ1С.Склад.Наименование);
ДанныеШапки.Вставить("ИдКонтрагента", XMLСтрока(Документ1С.Контрагент));
ДанныеШапки.Вставить("ИмяКонтрагента", Документ1С.Контрагент.Наименование);
ДанныеТабличныхЧастей = Новый Структура;
МассивДанныхСтрок = Новый Массив;
Для Каждого СтрокаТЧ Из Документ1С.Товары Цикл
ДанныеДляВыгрузки_Строка = Новый Структура;
ДанныеДляВыгрузки_Строка.Вставить("ИдТовара", XMLСтрока(СтрокаТЧ.Номенклатура));
ДанныеДляВыгрузки_Строка.Вставить("ИдУпаковки", XMLСтрока(СтрокаТЧ.Номенклатура.ЕдиницаИзмерения));
ДанныеДляВыгрузки_Строка.Вставить("ИдЕдиницыИзмерения", XMLСтрока(СтрокаТЧ.Номенклатура.ЕдиницаИзмерения));
ДанныеДляВыгрузки_Строка.Вставить("КоличествоПлан", СтрокаТЧ.КоличествоУпаковок);
МассивДанныхСтрок.Добавить(ДанныеДляВыгрузки_Строка);
КонецЦикла;
ДанныеТабличныхЧастей.Вставить("СтрокиПлан", МассивДанныхСтрок);
ДанныеДокумента.Вставить("ШапкаДокумента", ДанныеШапки);
ДанныеДокумента.Вставить("ТабличныеЧасти", ДанныеТабличныхЧастей);
Возврат ДанныеДокумента;
КонецФункции
Была ли статья полезна?
Спасибо за ваш отзыв!
Отзыв
Заполните, пожалуйста, данную форму, что конкретно вы не нашли, оставьте свои комментарии о работе сайта / полезности / сложности с навигацией
0/500