# Модуль API ВМТП # Инструкция API ВМТП ## Регистрация Важно. Для доступа к API необходимо отправить заявку на доступ. [Заявка на доступ к API-сервисам порта.doc](https://cloud.accounter.org/index.php/s/7kyqjdfRKanp52C) ## Установка Загрузите файл обработки в "Дополнительные обработки" 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\_Терминалы.НайтиПоНаименованию("ВМТП")
Для получения консультации обращайтесь на # Изменения API ВМТП ## API ВМТП v1.6 --- ### Обновлён отбор запроса к ВМТП: #### Поля выбираются из списка: [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/lfyimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/lfyimage.png) #### Если у типа поля предполагается конечное количество вариантов - они будут использованы как список правых значений: #### [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/vqZimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/vqZimage.png) Произвольное условие отбора Введена галочка, позволяющая написать условия к примеру "ИЛИ": [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/FPMimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/FPMimage.png) ### Переработаны рассылки Теперь их 2 и одна содержит информацию о данных загруженных в базу, а другая наличие ошибок [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/5urimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/5urimage.png) ### Оптимизированы функции обращающиеся к справочникам Теперь они будут использовать буфер для того чтобы не лезть в базу n-ое количество раз [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/aj5image.png)](https://book.accounter.org/uploads/images/gallery/2023-03/aj5image.png) ### Починил поле кода загрузки (были проблемы с переключением на вкладки) [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/TPTimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/TPTimage.png) ### Введены шаблоны (пока в таком виде - наверное потом как-то по-другому оформлю). Это просто предопределенные настройки заполнения предполагаемых параметров. Там же используется новая функция ПолучитьЗначениеИзМассива. [![image.png](https://book.accounter.org/uploads/images/gallery/2023-03/scaled-1680-/KYIimage.png)](https://book.accounter.org/uploads/images/gallery/2023-03/KYIimage.png) # API ВМТП Считывает оперативную информацию о ваших перевозках через ВМТП в "Бухгалтерию Экспедитора" в ручном и автоматическом режимах. С помощью данного модуля, в вашей 1С будет обновляться информация о находящихся в порту, убывших и ожидающихся к прибытию перевозках, без участия человека. Среди всех данных, предоставляемых ВМТП, наиболее популярными являются: - Типоразмер (20DC, 40HC) - Дата прибытия - Дата принятия на погрузку - Дата получения коммерческого разрешения - Дата убытия - Судно (NIIGATA TRADER) - Рейс (2302E) - Линия (SINOKOR) - Номер коносамента (SNKO000000000000) - Наименование груза (ВИДЕООБОРУДОВАНИЕ, ПРИНАДЛЕЖНОСТИ) - Вес брутто груза (вес нетто груза + вес упаковки). Без веса контейнера - Вес контейнера - Количество мест - Номера ДТ (через запятую) - Таможенный режим (ДТ/ВТТ) - Номер пломбы - Охрана (да/нет) - Повреждения контейнера (КТК - деформация ребер,КТК - загрязнение снаружи) - Релиз получен (Да/Нет) - Станция назначения Механизм настройки модуля позволяет произвести адаптацию под ваши условия без дополнительных затрат на работу программиста, в большинстве случаев. Стоимость модуля без внедрения **36 000р**. Стоимость внедрения взимается по факту, в соответствие с потраченным временем. Для получения консультации обращайтесь на