Skip to main content

Инструкция API ВМТП

Установка

Загрузите файл обработки в "Дополнительные обработки" 1С:
image.png

Обработка содержит 3 команды:

  • Автоматическая загрузка - загружает данные исходя из настроек. Предназначена для автоматического запуска по расписанию (По умолчанию расписание отключено);
  • Открыть настройки - открывает настройки модуля. Предназначена для запуска администратором и уполномоченных им лиц;
  • Рабочий стол ВМТП по API - Инструмент для ручной загрузки информации пользователем.

Настройка

Сначала укажите логин и пароль, полученные от ВМТП. Возможна загрузка по нескольким компаниям в одну базу:

image.png

Типовые параметры

Типоразмер ЗначениеПараметра = Типоразмер(cargo.container.type);
Коммерческое разрешение Если cargo.Свойство("release") И cargo.release.Свойство("commercial") И cargo.release.commercial.state=Истина Тогда
ЗначениеПараметра = РаспознатьДату(cargo.release.commercial.date)
КонецЕсли
Вес брутто ЗначениеПараметра = Число(cargo.weight) + Число(cargo.container.weight)
Вес нетто ЗначениеПараметра = Число(cargo.weight) 
Выгружен в порту ЕСЛИ cargo.arrival.Свойство("date") ТОГДА
    ЗначениеПараметра = РаспознатьДату(cargo.arrival.date)
КОНЕЦЕСЛИ
Внутрипортовые операции Если cargo.Свойство("customsData") Тогда
ЗначениеПараметра = "";
Для каждого ТамПроц Из cargo.customsData.surveys цикл
ЗначениеПараметра = ЗначениеПараметра + ?(ЗначениеПараметра="","",",") + ?(ТамПроц.type="Физический","Досмотр",ТамПроц.type); 
КонецЦикла;
КОнецЕсли

Отгружен по ЖД

ЕСЛИ cargo.status = "Убыл" и
cargo.departure.direction = "RW"
ТОГДА
    ЗначениеПараметра = РаспознатьДату(cargo.departure.date)
КОНЕЦЕСЛИ
Автовывоз с терминала ЕСЛИ cargo.status = "Убыл" и
cargo.departure.direction = "AUTO"
ТОГДА
    ЗначениеПараметра = РаспознатьДату(cargo.departure.date)
КОНЕЦЕСЛИ
Груз ЗначениеПараметра = cargo.description
Тип перевозки Если cargo.arrival.direction = "SEA" Тогда
ЗначениеПараметра = Справочники.CW_ТипыПеревозок.НайтиПоНаименованию("Импорт");
Иначе
ЗначениеПараметра = Справочники.CW_ТипыПеревозок.НайтиПоНаименованию("Экспорт");
КонецЕсли
Принят на погрузку ЕСЛИ cargo.Свойство("departure") И  cargo.departure.Свойство("direction") И cargo.departure.direction = "RW" ТОГДА
    ЗначениеПараметра = РаспознатьДату(cargo.departure.RWAcceptanceDate)
КОНЕЦЕСЛИ
Коносамент

ЗначениеПараметра = "";

ТипВхДокумента = ?(cargo.arrival.direction = "SEA","Коносамент (входящий)","ЖД накладная");
Для каждого Документ Из cargo.arrival.documents цикл
    Если Документ.type = ТипВхДокумента тогда
        ЗначениеПараметра = ЗначениеПараметра + ?(ЗначениеПараметра="","",",") + Документ.number;
    КонецЕсли 
КонецЦикла

Линия Если cargo.arrival.direction = "SEA" И cargo.Свойство("arrival") И cargo.arrival.Свойство("transport") Тогда
ЗначениеПараметра = cargo.arrival.transport.voyage.line.name;
ИНАЧЕЕсли  cargo.arrival.direction = "RW" И cargo.Свойство("departure") Тогда
ЗначениеПараметра = Линия(cargo.departure.transport.voyage.line.name);
КонецЕсли
Номера ДТ ЗначениеПараметра = "";
Если cargo.customsData.Свойство("declarations") Тогда
Для каждого Д Из cargo.customsData.declarations цикл
ЗначениеПараметра = ЗначениеПараметра + ?(ЗначениеПараметра="","",",")  +Д.number; 
КонецЦикла
КонецЕсли
Номер пломбы ЗначениеПараметра = "";
Для каждого Пломба Из cargo.seals цикл
ЗначениеПараметра = ЗначениеПараметра + ?(ЗначениеПараметра="","",",") + СтрЗаменить(Пломба.number,"ИМП ",""); 
КонецЦикла;
ЗначениеПараметра = СтрЗаменить(ЗначениеПараметра,"Прочее ","");
Номер рейса Если cargo.arrival.direction = "SEA" И cargo.Свойство("arrival") Тогда
ЗначениеПараметра = cargo.arrival.transport.voyage;
ИНАЧЕЕсли  cargo.arrival.direction = "RW" И cargo.Свойство("departure") Тогда
ЗначениеПараметра = cargo.departure.transport.voyage;
КонецЕсли
Охрана ЕСЛИ cargo.departure.Свойство("direction")  ТОГДА
    ЕСЛИ cargo.departure.direction = "RW" ТОГДА
        ЗначениеПараметра = cargo.departure.guard
    КОНЕЦЕСЛИ
КОНЕЦЕСЛИ
Повреждение ЗначениеПараметра = "";
Если cargo.Свойство("damage") Тогда
М=Новый Массив;
Для каждого Повреждение Из cargo.damage цикл
М.Добавить(Повреждение.place + " - " +Повреждение.name);
КонецЦикла;
СортировкаВыбором(М);
Для каждого П Из М цикл
ЗначениеПараметра = ЗначениеПараметра + ?(ЗначениеПараметра="","",",") + П; 
КонецЦикла;
КонецЕсли
Релиз получен Если cargo.Свойство("release") И cargo.release.Свойство("agent") И cargo.release.agent=Истина Тогда
ЗначениеПараметра = Истина;
КонецЕсли
Станция назначения

ЕСЛИ cargo.status = "Убыл"  И cargo.departure.direction = "RW" ТОГДА
ЗначениеПараметра = ЖДСтанция(cargo.departure.document.station.name, cargo.departure.document.station.code, Истина);
КОНЕЦЕСЛИ;

Станция отправления ЗначениеПараметра = ЖДСтанция("ПОРТ ВЛАДИВОСТОК");
Судно

ЕСЛИ cargo.type = "Контейнер" и 
cargo.status = "Убыл" и
cargo.arrival.direction = "SEA" и 
cargo.departure.direction = "RW" 
ТОГДА
    ЗначениеПараметра = РаспознатьДату(cargo.departure.date)
КОНЕЦЕСЛИ

ЗначениеПараметра = Справочники.CW_ТипыПеревозок.НайтиПоНаименованию(Наименование)

Таможенный режим

Если cargo.customsData.Свойство("declarations") Тогда
Для каждого Д Из cargo.customsData.declarations цикл
Если Д.type = "ДТ" ТОГДА 
ЗначениеПараметра = "ГТД";
ИНАЧЕЕсли Д.type = "Транзитная декларация" ТОГДА 
ЗначениеПараметра = "ВТТ";
КонецЕсли;
КонецЦикла
КонецЕсли


Терминал ЗначениеПараметра = Справочники.CW_Терминалы.НайтиПоНаименованию("ВМТП")