Полное описание XML-схемы можно скачать тут.
Прокси = Новый WSПрокси(Определения, "http://88.99.106.214/Mercury", СокрЛП("DataExchangeGatewayV2"),СокрЛП("DataExchangeGatewayV2Soap"));
Фабрика = Прокси.ФабрикаXDTO;
АктНесоответствия
Свойства
Имя | Тип | Обяз. | Описание |
Серия | string | [0..1] |
Номер | string | [0..1] |
Дата | dateTime | [0..1] |
Причина | string | [0..1] |
ДетальноеОписание | string | [0..1] | |
Пример заполнения
Функция СформироватьАктНесоответствия(Источник, Фабрика)
АктНесоответствия = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"АктНесоответствия"));
АктНесоответствия.Серия = Источник.Серия;
АктНесоответствия.Номер = Источник.Номер;
АктНесоответствия.Дата = Источник.Дата;
АктНесоответствия.Причина = Источник.Причина;
АктНесоответствия.ДетальноеОписание = Источник.ДетальноеОписание;
Возврат АктНесоответствия;
КонецФункции
ВетВрач
Свойства
Имя | Тип | Обяз. | Описание |
ФИО | string | [1..1] |
Логин | string | [1..1] |
Должность | string | [1..1] |
ВетеринарныйДокумент
Свойства
Имя | Тип | Обяз. | Описание |
СертифицируемыйДокумент | Документ | [0..1] |
НомерТТН | string | [0..1] |
ДатаТТН | dateTime | [0..1] |
ОтправительХозСубъект | string | [0..1] |
ОтправительИНН | string | [0..1] |
ОтправительПоднадзорный | string | [0..1] |
ОтправительАдрес | string | [0..1] |
ПолучательХозСубъект | string | [0..1] |
ПолучательИНН | string | [0..1] |
ПолучательПоднадзорный | string | [0..1] |
ПолучательАдрес | string | [0..1] |
Посредник | string | [0..1] |
УУИД | string | [0..1] |
Серия | string | [0..1] |
Номер | string | [0..1] |
Дата | dateTime | [0..1] |
ТипСертификата | string | [0..1] |
СтатусСертификата | string | [0..1] |
Форма | string | [0..1] |
Цель | string | [0..1] |
ВетВрач | ВетВрач | [0..1] |
Подкатегория | string | [0..1] |
ПодкатегорияГУИД | string | [0..1] |
КодПодкатегории | string | [0..1] |
Номенклатура | string | [0..1] |
ЕдиницаХранения | string | [0..1] |
ДатаВыработки | dateTime | [0..1] |
ДатаВыработкиДо | dateTime | [0..1] |
СрокГодности | dateTime | [0..1] |
СрокГодностиДо | dateTime | [0..1] |
СтранаПроизводитель | string | [0..1] |
Маркировки | string | [0..1] |
СкоропортящаясяПродукция | boolean | [0..1] |
НизкокачественнаяПродукция | boolean | [0..1] |
Количество | double | [0..1] |
КоличествоУпаковок | int | [0..1] |
СпособХраненияПриПеревозке | string | [0..1] |
РезультатыЛабИсследований | string | [0..1] |
ОтметкаОбследования | string | [0..1] |
БлагополучиеМестности | string | [0..1] |
СпециальныеОтметки | string | [0..1] |
ПредыдущиеВСД | string | [0..1] |
ПериодНахожденияЖивотных | string | [0..1] |
МесяцевНахожденияЖивотных | byte | [0..1] |
МестоПроведенияКарантирования | string | [0..1] |
КоличествоДнейКарантировани | int | [0..1] |
СведенияОИммунизации | string | [0..1] |
НомерРазрешенияНаВывоз | string | [0..1] |
ДатаРазрешенияНаВывоз | dateTime | [0..1] |
НомерРазрешенияНаВвоз | string | [0..1] |
ДатаРазрешенияНаВвоз | dateTime | [0..1] |
Транспорт | string | [0..1] |
Продуктивная | boolean | [0..1] |
ГУИДСкладскойЗаписи | string | [0..1] |
КодПартии | string | [0..1] |
СписокПроизводителей | ПоднадзорныйОбъект | [0..*] |
Упаковки | string | [0..*] |
ЛабИсследования | ЛабИсследования | [0..*] |
Пример заполнения
Функция СформироватьВетДокумент(Источник, Фабрика)
ВетеринарныйДокумент = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"ВетеринарныйДокумент"));
ВетеринарныйДокумент.УУИД = Источник.УУИД;
ВетеринарныйДокумент.Подкатегория = Источник.Подкатегория;
ВетеринарныйДокумент.Серия = Источник.Серия;
ВетеринарныйДокумент.Номер = Источник.Номер;
ВетеринарныйДокумент.Дата = Источник.Дата;
ВетеринарныйДокумент.ДатаВыработки = Источник.ДатаВыработкиОт;
ВетеринарныйДокумент.ДатаВыработкиДо = Источник.ДатаВыработкиДо;
ВетеринарныйДокумент.СрокГодности = Источник.СрокГодностиОт;
ВетеринарныйДокумент.СрокГодностиДо = Источник.СрокГодностиДо;
ВетеринарныйДокумент.ЛабИсследования.Добавить(СформироватьЛабИсследования(Источник.СтрокаТЧ)))
Возврат ВетеринарныйДокумент;
КонецФункции
ЛабИсследования
Свойства
Имя | Тип | Обяз. | Описание |
ID | string | [0..1] |
Мероприятие | string | [0..1] |
ТипМероприятия | string | [0..1] | LBR - Лабораторные исследования, UND - Не определен, VSE - Ветеринарно-санитарная экспертиза, IMM - Иммунизация живого животного, MED - Обработка живого животного, QRT - Карантин |
ДатаСобытия | dateTime | [0..1] |
МестоПроведения | string | [0..1] |
АдресМестаПроведения | string | [0..1] |
НазваниеОператора | string | [0..1] |
АдресОператора | string | [0..1] |
ДополнительныеСведения | string | [0..1] |
НомерЭкспертизы | string | [0..1] |
ПоказательБезопасности | string | [0..1] |
РезультатИсследования | string | [0..1] | NEGATIVE - Отрицательный результат, UNDEFINED - Результат невозможно определить (не нормируется), POSITIVE - Положительный результат, UNKNOWN - Результат неизвестен, UNFULFILLED - Не проводилось, VSERAW - ВСЭ подвергнуто сырьё, из которого произведена продукция, VSEFULL - Продукция подвергнута ВСЭ в полном объеме |
МетодИсследования | string | [0..1] |
Заключение | string | [0..1] |
Пример заполнения
Функция СформироватьЛабИсследования(Источник)
ЛабИсследование = Фабрика.Создать(Фабрика.Тип(ПространствоИмен,"ЛабИсследование"));
//ЛабИсследование.ID = Источник.Код;
ЛабИсследование.Мероприятие = "Мероприятие";
ЛабИсследование.ТипМероприятия = "LBR"/"UND"/"VSE"/"IMM"/"MED"/"QRT";
ЛабИсследование.ДатаСобытия = Источник.Дата;
ЛабИсследование.МестоПроведения = Строка(Источник.МестоПроведения);
ЛабИсследование.АдресОператора = Строка(Источник.АдресОператора);
ЛабИсследование.НазваниеОператора = Строка(Источник.НазваниеОператора);
ЛабИсследование.ПоказательБезопасности = Строка(Источник.ПоказательБезопасности);
ЛабИсследование.РезультатИсследования = "NEGATIVE"/"UNDEFINED"/"POSITIVE"/"UNKNOWN"/"UNFULFILLED"/"VSERAW"/"VSEFULL";
ЛабИсследование.МетодИсследования = Строка(Источник.МетодИсследования);//должен совпадать со шлюзом
ЛабИсследование.Заключение = Строка(Источник.Заключение);
ЛабИсследование.АдресМестаПроведения = Строка(Источник.АдресМестаПроведения);
Возврат ЛабИсследование;
КонецФункции
ГруппаНоменклатуры
Свойства
Имя | Тип | Обяз. | Описание |
Код | string | [0..1] | Поле обязательно, если не заполнен ПолныйКод |
ПолныйКод | string | [0..1] | Поле обязательно, если не заполнен Код |
Наименование | string | [1..1] |
Подкатегория | string | [0..1] |
Родитель | ГруппаНоменклатуры | [0..1] | |
Пример заполнения
Функция СформироватьГруппу(Группа, Фабрика)
ГруппаНоменклатуры = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(), "ГруппаНоменклатуры"));
ГруппаНоменклатуры.Код = Группа.Код;
ГруппаНоменклатуры.Наименование = Группа.Наименование;
//ГруппаНоменклатуры.Подкатегория = ???;
Если НЕ Группа.Родитель.Пустая() И Группа.Родитель.ЭтоГруппа Тогда
ГруппаНоменклатуры.Родитель = СформироватьГруппу(Группа.Родитель, Фабрика);
КонецЕсли;
Возврат ГруппаНоменклатуры;
КонецФункции
ДанныеЗагрузки
Свойства
Имя | Тип | Обяз. | Описание |
МассивДокументов | Документ | [1..*] |
ОбновитьКонтрагента | boolean | [1..1] |
Регистрировать | boolean | [1..1] |
Пример заполнения
ДанныеЗагрузки = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"ДанныеЗагрузки"));
ДанныеЗагрузки.Регистрировать = (ВидВыгрузки = 2);
ДанныеЗагрузки.ОбновитьКонтрагента = Истина; //Можно вынести на форму как поле выбора
Для Каждого Стр Из ТаблицаДок Цикл
Док = СформироватьДокумент(Стр.Ссылка, Фабрика);
Если Док <> Неопределено Тогда
ДанныеЗагрузки.МассивДокументов.Добавить(Док);
КонецЕсли;
КонецЦикла;
ДанныеОтвета
Док
Свойства
Имя | Тип | Обяз. | Описание |
Дата | dateTime | [1..1] |
Номер | string | [1..1] |
Серия | string | [1..1] |
Пример заполнения
Функция СформироватьТТН(Дата,Номер, Фабрика)
Док = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Док"));
Док.Дата = Дата;
Док.Номер = СокрЛП(Номер);
Док.Серия = ???;
Возврат Док;
КонецФункции
Документ
Свойства
Имя | Тип | Обяз. | Описание |
ТипДокумента | string | [1..1] |
Номер | string | [1..1] |
Дата | dateTime | [1..1] |
ДатаИнвентаризации | dateTime | [1..1] | Указывается, если в шлюз выгружается инвентаризация |
ИННОрганизации | string | [0..1] | Указывается, если в одном шлюзе ведется несколько организаций. В противном случае поле игнорируется. |
Подразделение | ПоднадзорныйОбъект | [0..1] | Указывается, если в одном шлюзе ведется несколько подразделений. В противном случае поле игнорируется. |
ХозСубъект | ХозяйствующийСубъект | [0..1] | Не указывается для производственных документов, в противном случае поле обязательно. |
Поднадзорный | ПоднадзорныйОбъект | [0..1] | Не указывается для производственных документов, в противном случае поле обязательно. |
ДатаИнвентаризации | dateTime | [0..1] |
АктНесоответствия | АктНесоответствия | [0..1] |
ТТН | Док | [0..1] |
ТТНВозврат | Док | [0..1] |
Транспорт | Транспорт | [0..1] |
Посредник | ХозяйствующийСубъект | [0..1] |
РозничнаяРеализация | boolean | [0..1] |
КодСпецификации | string | [0..1] | Используется для «Производства». Код элемента справочника «Спецификации». Устанавливает отбор определенной спецификации при автоматическом формировании материалов. |
Товары | СтрокаНоменклатуры | [0..*] |
Несоответствия | СтрокаНоменклатуры | [0..*] |
ТоварыВозврат | СтрокаНоменклатуры | [0..*] |
Материалы | СтрокаНоменклатуры | [0..*] |
ВетДокумент | ВетеринарныйДокумент | [0..*] |
ПунктыПерегрузки | ПунктПерегрузки | [0..*] |
СвязанныеДокументы | СвязанныйДокумент | [0..*] |
Пример заполнения
Функция СформироватьДокумент(Документ, Фабрика)
ДокументХ = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Документ"));
ДокументХ.ТипДокумента = ТипВШлюзе(Документ.Метаданные().Имя);
ДокументХ.Номер = Документ.Номер;
ДокументХ.Дата = Документ.Дата;
Если ДокументХ.ТипДокумента <> "Инвентаризация" Тогда
ДокументХ.ДатаИнвентаризации = Документ.Дата;
КонецЕсли;
ДокументХ.ИННОрганизации = Документ.Организация.ИНН; //Указывается, если ведется учет по нескольким организациям
//ДокументХ.Подразделение = СформироватьПоднадзорного(???); //Указывается, если ведется учет по нескольким подразделениям или организациям
ХозСубъект = СформироватьХозСубъект(Документ.Контрагент, Фабрика);
Если ТипЗнч(ХозСубъект) = Тип("Строка") Тогда
Сообщить(ХозСубъект);
Возврат Неопределено;
КонецЕсли;
ДокументХ.ХозСубъект = ХозСубъект;
Поднадзорный = СформироватьПоднадзорного(Документ.Контрагент,Документ.Контрагент, Фабрика);
Если ТипЗнч(Поднадзорный) = Тип("Строка") Тогда
Сообщить(Поднадзорный);
Возврат Неопределено;
КонецЕсли;
ДокументХ.Поднадзорный = Поднадзорный;
//ДокументХ.ДатаИнвентаризации = ???;
//ДокументХ.АктНесоответствия = СформироватьАктНесоответствия(???);
//ДокументХ.ТТН = СформироватьТТН(???,???);
//ДокументХ.ТТНВозврат = СформироватьТТН(???,???);
ИскомоеПоле = Новый ПолеКомпоновкиДанных("Товары.Номенклатура");
Для Каждого Элем Из КомпоновщикНастроек.Настройки.Отбор.Элементы Цикл
Если Элем.ЛевоеЗначение = ИскомоеПоле И (Элем.ВидСравнения = ВидСравненияКомпоновкиДанных.ВИерархии ИЛИ Элем.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСпискеПоИерархии) Тогда
ФильтрГруппы = Элем;
КонецЕсли;
КонецЦикла;
// Табличные части
Для Каждого Стр Из Документ.Товары Цикл
Если ФильтрГруппы <> Неопределено Тогда
Если ТипЗнч(ФильтрГруппы.ПравоеЗначение) = Тип("СписокЗначений") Тогда
СостоитВГруппе = Ложь;
Для Каждого Группа Из ФильтрГруппы.ПравоеЗначение Цикл
Если Стр.Номенклатура.ПринадлежитЭлементу(Группа.Значение) Тогда
СостоитВГруппе = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ СостоитВГруппе Тогда
Продолжить;
КонецЕсли;
ИначеЕсли НЕ Стр.Номенклатура.ПринадлежитЭлементу(ФильтрГруппы.ПравоеЗначение) Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
ДокументХ.Товары.Добавить(СформироватьСтрокуНоменклатуры(Стр, Фабрика));
КонецЦикла;
// Списко материалов
//ДокументХ.Материалы.Добавить(СформироватьСтрокуНоменклатуры(???);
// Списко материалов
//ДокументХ.Несоответствия.Добавить(СформироватьСтрокуНоменклатуры(???);
// Списко возвращемых товаров
//ДокументХ.ТоварыВозврат.Добавить(СформироватьСтрокуНоменклатуры(???);
// Список входящих сертификатов (при покатегорийной регистрации)
//ДокументХ.ВетДокумент.Добавить(СформироватьВетДокумент(???));
// Список пунктов перегрузки
//ДокументХ.ПунктыПерегрузки.Добавить(СформироватьПунктПерегрузки(???));
//Список связанных документов
//ДокументХ.СвязанныеДокументы.Добавить(СформироватьСвязанныеДокументы(???))
Возврат ДокументХ;
КонецФункции
Пример заполнения XML
Номенклатура
Свойства
Имя | Тип | Обяз. | Описание |
Код | string | [0..1] | При выгрузке номенклатуры обязательно нужно указывать одно из 2-х полей: «Код» или «ПолныйКод». |
ПолныйКод | string | [0..1] | Поле обязательно, если не заполнен Код |
Наименование | string | [1..1] |
НаименованиеПолное | string | [1..1] |
Группа | ГруппаНоменклатуры | [0..1] |
Артикул | string | [0..1] | |
Гост | string | [0..1] | |
Упаковка | string | [0..1] | ГУИД упаковки. | |
ЕдХранения | string | [0..1] | Наименование или ГУИД единицы хранения. Наименование должно совпадать с наименованием единици хранения в шлюзе. | |
Скоропортящаяся | boolean | [0..1] | |
Некачественная | boolean | [0..1] | |
Комментарий | string | [0..1] | |
GTIN | string | [0..1] | |
Подкатегория | string | [0..1] | ГУИД подкатегории в системе Меркурий | |
СрокГодности | int | [0..1] | Срок годности ЧАС | |
СрокГодностиДень | int | [0..1] | Срок годности ДЕНЬ | |
СрокГодностиМесяц | int | [0..1] | Срок годности МЕСЯЦ | |
СрокГодностиГод | int | [0..1] | Срок годности ГОД | |
Фасовка | Фасовка | [0..*] | Заполнение расширенной фасовки |
Пример заполнения
Функция СформироватьНоменклатуру(Номенклатура, Фабрика)
НоменклатураХ = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Номенклатура"));
Если "Контроль уникальности" = "Во всем справочнике" Тогда
НоменклатураХ.Код = Номенклатура.Код;
Иначе
НоменклатураХ.ПолныйКод = Номенклатура.ПолныйКод();
КонецЕсли;
НоменклатураХ.Наименование = Номенклатура.Наименование;
НоменклатураХ.НаименованиеПолное = Номенклатура.НаименованиеПолное;
НоменклатураХ.Артикул = Номенклатура.Артикул;
//НоменклатураХ.Гост = ???;
//НоменклатураХ.Упаковка = ???;
//НоменклатураХ.Подкатегория = ???;
НоменклатураХ.ЕдХранения = Номенклатура.ЕдиницаИзмерения.Наименование;
НоменклатураХ.Скоропортящаяся = Ложь;
НоменклатураХ.Некачественная = Ложь;
НоменклатураХ.Фасовка.Добавить(СформироватьФасовку(Номенклатура,Фабрика));
НоменклатураХ.Комментарий = "перенесено через XDTO";
Если НЕ Номенклатура.Родитель.Пустая() И Номенклатура.Родитель.ЭтоГруппа тогда
НоменклатураХ.Группа = СформироватьГруппу(Номенклатура.Родитель, Фабрика);
КонецЕсли;
Возврат НоменклатураХ;
КонецФункции
Сопоставление и обновление
Номенклатура сопоставляется одним из 2-х способов: по коду или полному коду(контроль уникальности в пределах подчинения, в таком случае в шлюзе устанавливается соответствие по полю «ключ загрузки» по моему). При выгрузке документа данные номенклатуры не изменяются, однако новая номенклатура будет создана. При повторной выгрузке номенклатуры из учетной системы будут изменены только передаваемые поля и только в том случае, если не заблокировано редактирование номенклатуры (при изменении в шлюзе возникает диалоговое окно «Запретить редактирование из учетной системы?»).
ОтветСервиса
ПоднадзорныйОбъект
Свойства
Имя | Тип | Обяз. | Описание |
Код | string | [1..1] |
Наименование | string | [0..1] |
НаименованиеПолное | string | [0..1] |
ХозСубъект | ХозяйствующийСубъект | [0..1] |
Тип | int | [0..1] | Тип поднадзорного объекта:1 - пердприятие; 2 - рынок; 3 - СББЖ; 4 - судно |
Страна | string | [0..1] |
Регион | string | [0..1] |
Район | string | [0..1] |
Город | string | [0..1] |
Улица | string | [0..1] |
Адрес | string | [0..1] | Если поле заполнено по классификатору, остальные адресные поля могут быть заполнены автоматически в шлюзе в результате парсинга строки адреса |
Комментарий | string | [0..1] |
Пример заполнения
Функция СформироватьПоднадзорного(Партнер, Контрагент, Фабрика)
ПоднадзорныйОбъект = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"ПоднадзорныйОбъект"));
ПоднадзорныйОбъект.Наименование = Партнер.Наименование;
ПоднадзорныйОбъект.НаименованиеПолное = Партнер.НаименованиеПолное;
ПоднадзорныйОбъект.Код = Партнер.Код;
ПоднадзорныйОбъект.Тип = 1;
ПоднадзорныйОбъект.Комментарий = Партнер.Комментарий;
Результат = СформироватьХозСубъект(Контрагент, Фабрика);
Если ТипЗнч(Результат)= Тип("Строка") Тогда
Возврат Результат;
Иначе
ПоднадзорныйОбъект.ХозСубъект = Результат;
КонецЕсли;
ЕстьАдрес = Ложь;
Для Каждого Инф Из Партнер.КонтактнаяИнформация Цикл
Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
И Найти(Инф.Вид.Наименование, "Фактический адрес")<> 0 Тогда
ЕстьАдрес = Истина;
ЗаполнениеКонтактнойИнформации(ПоднадзорныйОбъект, Инф);
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ЕстьАдрес Тогда
Возврат Партнер.Наименование + "(поднадзорный): необходимо заполнить Фактический адрес";
КонецЕсли;
Возврат ПоднадзорныйОбъект;
КонецФункции
Сопоставление и обновление
Поднадзорные объекты сопоставляется по коду. При выгрузке документа данные ПО могут меняться или нет в зависимости от значения передаваемого параметра «ОбновитьКонтрагента». При повторной выгрузке ПО из учетной системы будут изменены только передаваемые поля и только в том случае, если не заблокировано редактирование из обработки (при изменении в шлюзе возникает диалоговое окно «Запретить редактирование из учетной системы?»).
ПунктПерегрузки
Свойства
Имя | Тип | Обяз. | Описание |
Название | string | [1..1] |
Предприятие | ПоднадзорныйОбъект | [1..0] |
НовыйТранспорт | Транспорт | [1..0] |
АдресСтрокой | string | [1..0] |
Перезгрузка | boolean | [1..0] | Истина - в данном пункте перегрузки происходит смена транспорта |
Пример заполнения
Функция СформироватьПунктПерегрузки(Источник, Фабрика)
ПунктПерегрузки = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"ПунктПерегрузки"));
ПунктПерегрузки.Название = Источник.Название;
ПунктПерегрузки.НовыйТранспорт = СформироватьТранспорт(Источник.Транспорт, Фабрика);
Возврат ПунктПерегрузки;
КонецФункции
РезультатТранзакции
СпецификацияНоменклатуры
Свойства
Пример заполнения
Функция СформироватьСпецификацию(Ссылка,Фабрика)
СпецификацияНоменклатуры = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СпецификацияНоменклатуры"));
Для Каждого Стр из Ссылка.Состав Цикл
СтрокаСпецификации = СоздатьСтрокуСпецификации(Ссылка.Владелец,Стр,Фабрика);
СпецификацияНоменклатуры.Спецификация.Добавить(СтрокаСпецификации);
КонецЦикла;
Возврат СпецификацияНоменклатуры;
КонецФункции
АналогиНоменклатуры
Свойства
Пример заполнения
Функция СформироватьАналоги(Ссылка,Фабрика)
АналогиНоменклатуры = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"АналогиНоменклатуры"));
Для Каждого Стр из Ссылка.Состав Цикл
СтрокаАналогов = СоздатьСтрокуАналогов(Стр.Владелец,Стр.Материал,Фабрика);
АналогиНоменклатуры.Аналоги.Добавить(СтрокаАналогов);
КонецЦикла;
Возврат АналогиНоменклатуры;
КонецФункции
СтрокаАналогов
Свойства
Пример заполнения
Функция СоздатьСтрокуАналогов(Товар,Строка,Фабрика)
СтрокаАналогов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СтрокаАналогов"));
СтрокаАналогов.Товар = СформироватьНоменклатуру(Товар,Фабрика);
СтрокаАналогов.Материал = СформироватьНоменклатуру(Строка.Материал,Фабрика);
СтрокаАналогов.Коэффициент = Строка.Коэффициент;
Возврат СтрокаАналогов;
Конецфункции
СписокДокументов
СтрокаНоменклатуры
Свойства
Имя | Тип | Обяз. | Описание |
Номенклатура | Номенклатура | [1..1] |
Количество | double | [1..1] |
КоличествоУпаковок | int | [0..1] | Используется при создании ВСД для заполнения фасовки. |
ВетДокумент | ВетеринарныйДокумент | [0..1] | Используется для выгрузки сроков годности, номера и даты вет. документа. |
ГУИДСкладскойЗаписи | string | [0..1] |
КодПартии | string | [0..1] | Используется для выгрузки Кода партии при выгрузке входящих документов. |
Фильтр | Фильтр | [0..1] | Используется для выгрузки сроков годности, производителя и КодаПартии в исходящих документах. На основании этих данных будет подбираться складская запись для списания. |
GTIN | string | [0..1] |
Артикул | string | [0..1] |
Маркировки | string | [0..1] |
Фасовка | Фасовка | [0..*] | Таблица для расширенного заполнения фасовки. |
КодСпецификации | string | [0..1] | Используется для «Производства». Код элемента справочника «Спецификации». Устанавливает отбор определенной спецификации при автоматическом формировании материалов. |
ИдентификаторСтроки | string | [0..1] | Используется при выгрузке документа «Производство» для связи строки товаров и материалов. |
Строка Маркировок имеет следующую структуру: УровеньУпаковки:КлассМаркировки:Маркировка. Доступные классы маркировки: UNDEFINED, BN, SSCC, EAN8, EAN13, EAN128, BUNDLE. Уровень упаковки принимает значения:
Значение | Описание |
1 | Внутренний |
2 | Потребительский |
3 | Промежуточный |
4 | Торговый |
5 | Дополнительный |
6 | Транспортный |
Пример заполнения
Функция СформироватьСтрокуНоменклатуры(СтрокаТЧ, Фабрика)
СтрокаНоменклатуры = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СтрокаНоменклатуры"));
СтрокаНоменклатуры.Номенклатура = СформироватьНоменклатуру(СтрокаТЧ.Номенклатура, Фабрика);
СтрокаНоменклатуры.Количество = СтрокаТЧ.Количество; //нужно вычислять вес
СтрокаНоменклатуры.КоличествоУпаковок = Окр(СтрокаТЧ.Количество,0,РежимОкругления.Окр15как20); //нужно вычислять количество упаковок
//СтрокаНоменклатуры.ВетДокумент = СформироватьВетДокумент(???);
//Если ИспользоватьФильтр Тогда
// СтрокаНоменклатуры.Фильтр = СформироватьФильтр("???",Фабрика);
//КонецЕсли;
//СтрокаНоменклатуры.КодПартии = "???";
Возврат СтрокаНоменклатуры;
КонецФункции
Пример заполнения XML
СтрокаСпецификации
Свойства
Имя | Тип | Обяз. | Описание |
Период | date | [1..1] |
Товар | Номенклатура | [1..1] |
Материал | Номенклатура | [1..1] |
Количество | double | [1..1] |
Кратность | double | [1..1] | |
Спецификация | СправочникСпецификация | [0..1] | Структура, содержащая код элемента справочника «Спецификации», а также наименование и код подразделения. Если данное поле заполнено, стока спецификации будет подбираться только при явном указании данной спецификации в производственном документе. Если По коду не найдена спецификация в справочнике, она будет создана, если заполнено наименование. Если заполнен код подразделения спецификации, она будет закреплена за определенным подразделением. | |
КодПодразделения | string | [0..1] | Код подразделения организации. Данное поле Игнорируется, если заполнен КодСпецификации. Если поле заполнено, стока спецификации будет подбираться только для производственных документов по указанному подразделению. | |
Пример заполнения
Функция СоздатьСтрокуСпецификации (Товар,Строка,Фабрика)
СтрокаСпецификации = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СтрокаСпецификации"));
СтрокаСпецификации.Товар = СформироватьНоменклатуру(Товар,Фабрика);
СтрокаСпецификации.Материал = СформироватьНоменклатуру(Строка.Номенклатура,Фабрика);
СтрокаСпецификации.Количество = Строка.Количество;
СтрокаСпецификации.Кратность = Строка.КоличествоПродукции;
СтрокаСпецификации.Период = ТекущаяДата();
Возврат СтрокаСпецификации;
Конецфункции
СправочникСпецификация
Свойства
Имя | Тип | Обяз. | Описание |
Код | string | [1..1] |
Наименование | string | [0..1] | Наименование спецификации. |
КодПодразделения | string | [0..1] | Код подразделения (производственной площадки) организации. Если заполнен код подразделения спецификации, она будет закреплена за определенным подразделением. |
Пример заполнения
Функция СоздатьСправочникСпецификация(Товар,Строка,Фабрика)
СправочникСпецификация = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СправочникСпецификация"));
СправочникСпецификация.Код = "123";
СправочникСпецификация.Наименование = "Наименование элемента в справочнике";
СправочникСпецификация.КодПодразделения = "КодПодразделения";
Возврат СправочникСпецификация;
Конецфункции
Транспорт
Свойства
Имя | Тип | Обяз. | Описание |
ТипТС | string | [1..1] |
НомерАвтомобиля | string | [0..1] |
НомерКонтейнера | string | [0..1] |
НомерВагона | string | [0..1] |
НомерПрицепа | string | [0..1] |
НазваниеСудна | string | [0..1] |
НомерАвиарейса | string | [0..1] |
Пример заполнения
Функция СформироватьТранспорт(Источник, Фабрика)
//Типы ТС:
//автомобильный
//железнодорожный
//авиатранспорт
//морской_контейнер
//морской_трюм
Транспорт = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Транспорт"));
Транспорт.ТипТС = Источник.ТипТС;
Транспорт.НомерАвтомобиля = "---";
//Транспорт.НомерКонтейнера = ???;
//Транспорт.НомерВагона = ???;
//Транспорт.НомерПрицепа = ???;
//Транспорт.НазваниеСудна = ???;
//Транспорт.НомерАвиарейса = ???;
Возврат Транспорт;
КонецФункции
Пример заполнения XML
Фильтр
Позволяет установить условия отбора складских записей для товаров реализации и материалов производства.
Свойства
Имя | Тип | Обяз. | Описание |
ДатаВыработки | dateTime | [0..1] |
ДатаВыработкиДо | dateTime | [0..1] |
СрокГодности | dateTime | [0..1] |
СрокГодностиДо | dateTime | [0..1] |
Производитель | string | [0..1] | Строка, содержащая Гуид производителя в Меркурий или код поднадзорного объекта в шлюзе. Поднадзорный объект должен быть сопоставлен/зарегистрирован в Меркурий (иметь ГУИД в шлюзе) |
КодПартии | string | [0..1] | Используется для отражения партионного учета. (статический режим) |
ИмяТовара | string | [0..1] | Отбор складских записей по наименованию продукции (динамический режим) |
ВсдУуид | string | [0..1] | Отбор складских записей по гуиду сертификата (версия 2.0) |
СтранаПроизводитель | string | [0..1] | Отбор складских записей по стране производителя, наименование или ГУИД |
Пример заполнения
Функция СформироватьФильтр(Источник, Фабрика)
Фильтр = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(), "Фильтр"));
//Фильтр.ДатаВыработки = ???;// дата выработки не раньше
//Фильтр.ДатаВыработкиДо = ???;// дата выработки не позже
//Фильтр.СрокГодности = КонецДня(Источник.Дата)+1;// срок годности истекает не раньше начала следующиего дня
//Фильтр.СрокГодностиДо = ???;// срок годности не больше
//Фильтр.Производитель = ???;// строка, содержащая Гуид производителя в Меркурий или код поднадзорного объекта в шлюзе. Поднадзорный объект должен быть сопоставлен/зарегистрирован в Меркурий
//Фильтр.КодПартии = ???;// используется для отражения партионного учета
//Фильтр.ИмяТовара = ???;// отбор складских записей по наименованию продукции (динамический режим)
//Фильтр.ВсдУуид = ???;// отбор складских записей по гуиду сертификата (версия 2.0)
//Фильтр.СтранаПроизводитель = ???;// отбор складских записей по стране производителя, наименование или ГУИД
Возврат Фильтр;
КонецФункции
Пример заполнения XML
ХозяйствующийСубъект
Свойства
Имя | Тип | Обяз. | Описание |
Наименование | string | [0..1] |
НаименованиеПолное | string | [0..1] |
ЮрФизЛицо | string | [0..1] | Возможные значения: «Юр», «Физ», «ИП». Поле обязательно к заполнению, если данный контрагент отсутствует в шлюзе, или при выгрузке документа установлен флаг «ОбновитьКонтрагента» |
ИНН | string | [1..1] |
ОГРН | string | [0..1] | |
Страна | string | [0..1] | |
Регион | string | [0..1] | |
Район | string | [0..1] | |
Город | string | [0..1] | |
Улица | string | [0..1] | |
Адрес | string | [0..1] | Если поле заполнено по классификатору, остальные адресные поля могут быть заполнены автоматически в шлюзе в результате парсинга строки адреса |
Комментарий | string | [0..1] | |
Организация | boolean | [0..1] | Истина - данный хоз. субъект является собственной организацией. Подробное описание использования приведено в примечании. | |
Пример заполнения
Функция СформироватьХозСубъект(Контрагент, Фабрика)
ХозСубъект = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"ХозяйствующийСубъект"));
ХозСубъект.Наименование = Контрагент.Наименование;
ХозСубъект.НаименованиеПолное = Контрагент.НаименованиеПолное;
Если Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ЮридическоеЛицо Тогда
ЮрФизЛицо = "Юр";
ИначеЕсли Контрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮридическоеФизическоеЛицо.ФизическоеЛицо Тогда
ЮрФизЛицо = "ИП";
КонецЕсли;
ХозСубъект.ЮрФизЛицо = ЮрФизЛицо;
Если ЮрФизЛицо = "Физ" тогда
ХозСубъект.ИНН = Контрагент.Код; // для физ. лиц в поле ИНН можно передавать КОД
Иначе
ХозСубъект.ИНН = Контрагент.ИНН;
//ХозСубъект.ОГРН = "";
КонецЕсли;
ЕстьАдрес = Ложь;
Для Каждого Инф Из Контрагент.КонтактнаяИнформация Цикл
Если Инф.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес
И Найти(Инф.Вид.Наименование, "Юридический адрес")<> 0 Тогда
ЕстьАдрес = Истина;
ЗаполнениеКонтактнойИнформации(ХозСубъект, Инф);
Прервать;
КонецЕсли;
КонецЦикла;
Если НЕ ЕстьАдрес Тогда
Возврат Строка(Контрагент.Наименование)+": необходимо заполнить юридический адрес";
КонецЕсли;
ХозСубъект.Комментарий = "перенесено через XDTO";
Возврат ХозСубъект;
КонецФункции
Пример заполнения XML
Сопоставление и обновление
Хоз. субъекты сопоставляется по ИНН. При выгрузке документа данные ХС могут меняться или нет в зависимости от значения передаваемого параметра «ОбновитьКонтрагента». При повторной выгрузке ХС из учетной системы будут изменены только передаваемые поля и только в том случае, если не заблокировано редактирование из обработки (при изменении в шлюзе возникает диалоговое окно «Запретить редактирование из учетной системы?»).
Примечание
Свойство Организация
Данное свойство логического типа указывает, является ли выгружаемый Хоз. субъект собственной организацией (справочник Организации).
Поле не участвует при выгрузке хозяйствующих субъектов, так как в шлюзе заблокирована возможность выгрузки организаций из учетной системы. Все организации, регистрирующие сертификаты через АСП Шлюз, должны быть добавлены в Шлюз вручную.
При выгрузке поднадзорных объектов (сервис СоздатьПоднадзорного) свойство Организация у Хоз. субъекта подразделения в значении Истина означает, что выгружаемое подразделение является собственным подразделением одной из организаций. В этом случае, при создании или обновлении, подразделение будет привязано к организации, ИНН которой будет указан в поле ПоднадзорныйОбъект.ХозСубъект.ИНН. Сама организация обновлена не будет.
РегДанныеХС
Свойства
Имя | Тип | Обяз. | Описание |
Наименование | string | [0..1] |
ИНН | string | [1..1] |
Адрес | string | [0..1] |
ГУИД | string | [0..1] | |
ПоднадзорныеОбъекты | ПоднадзорныйОбъект | [0..*] | |
ДанныеРегистрацииХС
МассивИНН
Свойства
Имя | Тип | Обяз. | Описание |
ИНН | string | [0..*] |
СвязанныйДокумент
Свойства
Имя | Тип | Обяз. | Описание |
Серия | string | [0..1] |
Номер | string | [0..1] |
Дата | date | [0..1] |
Тип | int | [0..1] |
Связь | int | [0..1] |
Поле «Связь» может принимать следующие значения:
Значение | Описание | |
1 | Сопроводительный документ |
2 | Предшествующий документ |
3 | Следующий документ |
4 | Документ, взамен которого выдан текущий документ |
5 | Документ, заменяющий текущий документ |
6 | Связанный документ |
Поле «Тип» может принимать следующие значения:
Значение | Описание | |
1 | Товарно-транспортная накладная |
2 | Конасамент |
3 | CMR |
4 | Авианакладная |
5 | Транспортная накладная |
6 | ТОРГ-12 |
7 | Ветеринарное разрешение на импорт продукции на территорию ТС |
8 | Разрешение ветеринарного управления субъекта страны ТС на ввоз продукции |
9 | Акт отбора пробы на исследование |
10 | ТОРГ-13 |
11 | Ветеринарный сертификат на перемещение внутри РФ |
12 | Ветеринарный сертификат третьих стран на ввоз продукции на территорию РФ |
13 | Ветеринарный сертификат страны ТС на ввоз продукции на территорию РФ |
14 | Ветеринарный сертификат РФ на вывоз продукции на территорию стран ТС |
15 | Ветеринарный сертификат РФ на вывоз продукции на территорию третьих стран |
16 | Заказ |
17 | Паспорт гражданина РФ |
18 | Паспорт иностранного гражданина |
19 | Паспорт гражданина Республики Казахстан |
20 | Паспорт гражданина Республики Беларусь |
21 | Паспорт гражданина Республики Армения |
22 | Паспорт гражданина Республики Киргизия |
Пример заполнения
Функция СформироватьТранспорт(Источник, Фабрика)
СвязанныйДокумент = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"СвязанныйДокумент"));
СвязанныйДокумент.Номер = Источник.Номер;
СвязанныйДокумент.Дата = Источник.Дата;
СвязанныйДокумент.Серия = Источник.Серия;
СвязанныйДокумент.Тип = ???;
СвязанныйДокумент.Связь = ???;
Возврат СвязанныйДокумент;
КонецФункции
МассивНоменклатуры
ДанныеРегистрацииНоменклатуры
Таблица, каждая строка которой описывает связь номенклатуры в Шлюзе (учетной системе) и системе Меркурий.
Свойства
Имя | Тип | Обяз. | Описание |
ДанныеНоменклатуры | РегДанныеНом | [0..*] | Список выгружаемых связей. |
РегДанныеНом
Строка, описывающая связь номенклатуры в Шлюзе (учетной системе) и системе Меркурий.
Свойства
Имя | Тип | Обяз. | Описание |
Код | string | [0..1] | Код номенклатуры. Поле обязательно, если не заполнен ПолныйКод. |
КодЗагрузки | string | [0..1] | Полный код номенклатуры с учетом иерархии групп. Используется, если контроль уникальности кодов номенклатуры не «во всем списке». Поле обязательно, если не заполнен Код. |
Наименование | string | [0..1] | Наименование номенклатуры в ученой системе. |
ГУИД | string | [0..1] | Гуид номенклатуры производителя в системе Меркурий. |
ПроизводительГуид | string | [0..1] | Гуид производителя в системе меркурий. |
СкладскиеЗаписи
Список записей журнала. Сведения о всех актуальных записях складского журнала для запрашиваемого предприятия.
Свойства
Имя | Тип | Обяз. | Описание |
Записи | ДанныеСкладскойЗаписи | [0..*] | Сведения о записи журнала. |
Количество | int | [1..1] | Количество записей журнала. |
ДанныеСкладскойЗаписи
Сведения о записи журнала.
Свойства
Имя | Тип | Обяз. | Описание |
Номенклатура | Номенклатура | [0..1] | Сопоставленная номенклатура. |
ПодкатегорияСтр | string | [0..1] | Наименование вида продукции. Третий уровень иерархического справочника продукции ИС Меркурий. |
ПодкатегорияГуид | string | [0..1] | Глобальный идентификатор вида продукции. |
ГУИД | string | [0..1] | Глобальный идентификатор записи журнала. |
УУИД | string | [0..1] | Идентификатор версии записи журнала. |
Номер | string | [0..1] | Номер записи журнала. |
Количество | double | [0..1] | Объем продукции. |
КоличествоУпаковок | int | [0..1] | Общее количество упаковок продукции (для протокола 1.4). |
Упаковки | string | [0..1] | Список упаковок (для протокола 1.4). |
Статус | int | [0..1] | Статус записи журнала (только динамический режим). |
ПроизводительСтр | string | [0..1] | Наименование предприятия производителя продукции. |
ПроизводительГуид | string | [0..1] | Глобальный идентификатор предприятия производителя продукции. |
НоменклатураСтр | string | [0..1] | Наименование продукции в системе Меркурий. |
НоменклатураГуид | string | [0..1] | Глобальный идентификатор номенклатуры в системе Меркурий (только динамический режим). |
СтранаПроизводительГуид | string | [0..1] | Глобальный идентификатор страны происхождения партии продукции. |
Скоропорт | boolean | [0..1] | Флаг: является ли продукция скоропортящейся. |
Некачественная | boolean | [0..1] | Флаг: является ли груз некачественным. |
ВладелецГуид | string | [0..1] | Глобальный идентификатор владельца торговой марки (только динамический режим). |
ДатаСоздания | dateTime | [0..1] | Дата создания записи журнала (только динамический режим). |
ВсдУуид | string | [0..1] | Уникальный идентификатор сертификата, создавшего запись журнала. |
Фасовка | string | [0..1] | Список физической упаковки (фасовки). Таблица значений, преобразованная в строку с помощью «ЗначениеВСтрокуВнутр(ТЗ)» |
ФасовкаСтрокой | string | [0..1] | Строковое представление списка физической упаковки. |
ДатаВыработки | dateTime | [0..1] | Дата выработки продукции. |
ДатаВыработкиДо | dateTime | [0..1] | Конечная дата в интервале. Указывается, если дата выработки имеет период С…По. |
ДатаВыработкиСтр | string | [0..1] | Текстовое значение даты. |
СрокГодности | dateTime | [0..1] | Дата окончания срока годности продукции. |
СрокГодностиДо | dateTime | [0..1] | Конечная дата в интервале. Указывается, если срок годности имеет период С…По. |
СрокГодностиСтр | string | [0..1] | Текстовое значение даты. |
АртикулМеркурий | string | [0..1] | Артикул (код) продукции в соответствии с внутренним кодификатором производителя. |
GTIN | string | [0..1] | Trade Identification Number (GTIN) - идентификационный номер продукции производителя. |
ПараметрыСписка
Параметры запрашиваемого списка ветеринарных сопроводительных документов (ВСД) предприятия.
Свойства
Имя | Тип | Обяз. | Описание |
ТипСертификата | string | [0..1] | Тип ВСД. Возможные значения: Входящий, Исходящий, Производственный. |
СтатусСертификата | string | [1..1] | Статус ВСД. Возможные значения: Оформлен, Аннулирован, Погашен. |
ДатаНачала | dateTime | [0..1] | Фильтр по интервалу дат оформления ВСД. Начало временного интервала. |
ДатаОкончания | dateTime | [0..1] | Фильтр по интервалу дат оформления ВСД. Конец временного интервала. |
Маркировка
Данные одной маркировки.
Свойства
Имя | Тип | Обяз. | Описание |
Класс | string | [1..1] | Список допустимых значений класса: UNDEFINED, BN, SSCC, EAN8, EAN13, EAN128, BUNDLE. Если класс не задан или переданная строка не входит в обозначенный список, подставляется значение UNDEFINED. |
Маркировка | string | [1..1] | Строка, содержащая маркировку |
Пример заполнения
Функция СформироватьМаркировку(Фасовка, Фабрика)
Маркировка = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Маркировка"));
Маркировка.Класс = //UNDEFINED, BN, SSCC, EAN8, EAN13, EAN128, BUNDLE;
Маркировка.Маркировка = //Маркировка;
Возврат Фасовка;
КонецФункции
Фасовка
Данные одного уровня фасовки. Используется для передачи фасовки в строке товара (СтрокаНоменклатуры).
Свойства
Имя | Тип | Обяз. | Описание |
Уровень | int | [0..1] | уровень упаковки от 1 до 6, где: 1 - Внутренний уровень; 2 - Потребительский уровень; 3 - Промежуточный уровень; 4 - Торговый уровень; 5 - Дополнительный уровень; 6 - Транспортный (Логистический) уровень. |
Упаковка | string | [0..1] | Наименование или ГУИД упаковки, соответствующие классификатору упаковок системы Меркурий. |
Количество | int | [0..1] | Количество упаковок в данном уровне фасовки. |
Маркировки | Маркировка | [0..*] | Список маркировок на данном уровне фасовки. |
Пример заполнения
Функция СформироватьФасовку(Номенклатура, Фабрика)
Фасовка = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Фасовка"));
Фасовка.Уровень = //?1,2,3,4,5,6;
Фасовка.Упаковка = //Гуид или наименование упаковки;
Фасовка.Количество = //Номенклатура.Фасовка.Количество;
Фасовка.Маркировки.Добавить(СформироватьМаркировку);
Возврат Фасовка;
КонецФункции
Маршрут
Справочник «Маршруты» предназначен для выгрузки маршрутов доставки из учетной системы в АСП.Шлюз, группировки документов по Маршрутам, упрощения печати и отправки на регистрацию всех документов маршрута одновлеменно.
Свойства
Имя | Тип | Обяз. | Описание |
КодЗагрузки | string | [1..1] | уникальный код для связи с справочником маршрутов АСП.Шлюз |
Наименование | string | [1..1] | Наименование маршрута |
Группа | Маршрут | [0..*] | |
Пример заполнения
&НаСервере
Процедура ДозаполнитьПоляДокумента(Документ, Правило, ДокументХдто, Фабрика)
...
ДокументХдто.Маршрут = СформироватьМаршрут(Документ, Фабрика);
КонецПроцедуры
&НаСервере
Функция СформироватьМаршрут(Документ, Фабрика)
Маршрут = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Маршрут"));
Маршрут.КодЗагрузки = "01"; // уникальный код для связи с справочником маршрутов АСП.Шлюз
Маршрут.Наименование = "Тест маршрут №1";
ГруппаМаршрутов = Фабрика.Создать(Фабрика.Тип(ПространствоИмен(),"Маршрут"));
ГруппаМаршрутов.КодЗагрузки = "Г01";
ГруппаМаршрутов.Наименование = "Тест группа маршрутов №1";
Маршрут.Группа = ГруппаМаршрутов;
Возврат Маршрут;
КонецФункции