# Инструкция API ВМТП ## Регистрация Важно. Для доступа к API необходимо отправить заявку на доступ. [Заявка на доступ к API-сервисам порта.doc](https://cloud.accounter.org/index.php/s/9tRNF6ySbwX2FAQ) ## Установка Загрузите файл обработки в "Дополнительные обработки" 1С: [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/qxWimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/qxWimage.png) Обработка содержит 3 команды: - Автоматическая загрузка - загружает данные исходя из настроек. Предназначена для автоматического запуска по расписанию (По умолчанию расписание отключено); - Открыть настройки - открывает настройки модуля. Предназначена для запуска администратором и уполномоченных им лиц; - Рабочий стол ВМТП по API - Инструмент для ручной загрузки информации пользователем. ## Настройка Сначала укажите логин и пароль, полученные от ВМТП. Возможна загрузка по нескольким компаниям в одну базу: [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/HbXimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/HbXimage.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\_Терминалы.НайтиПоНаименованию("ВМТП")
Для получения консультации обращайтесь на