Альфа-Авто 5.0 и современные HTTP сервисы

01.03.21

Интеграция - WEB-интеграция

Решение, позволяющее программным продуктам, работающим на устаревших версиях платформы 1С (8.2), интегрироваться с современными HTTP сервисами. Решение, интегрированное с HTTP-сервисом программы по расчету компонентов для изготовления ЛКМ, описанное в настоящей статье, успешно работает в одном из автосервисов, работающем на устаревшей платформе и конфигурации Альфа-Авто 5.0.

Альфа-Авто 5.0 и современные HTTP сервисы

 

Преамбула

Очень многие автосервисы и автосалоны когда-то купили конфигурацию Альфа-Авто 5.0 (разных релизов) работающую на платформе 1С 8.2. И очень немногие из них обновляли её до актуальных релизов, «заточили» для работы под свои бизнес процессы, работает и ладно. Но реалии современной жизни таковы, что необходимо пользоваться современными услугами построенными на основе HTTP-сервисов. Однако платформа 8.2 устарела и полноценно не может поддерживать работу с современными HTTP-сервисами. Один знакомый автосервис столкнулся с подобной проблемой.

Проблемы с материалами для окрасочных работ.

Пару слов об автосервисе, не лучше и не хуже других, осуществляет слесарный и кузовной ремонт. И была у него проблема с учетом компонентов для создания краски (миксов) и сопутствующих расходных материалов.  Главная проблема была в расчетной части компонентов, где, когда и «сколько вешать в граммах» на одну деталь и как это точно рассчитать.

И вот недавно было предложено решение от одной компании, поставщика компонентов, нужное решение.

Что предоставлялось:

  • Расчетная часть, работающая на SQL и Web серверах, с предоставлением доступа соответствующим сотрудникам через web браузер для просмотра, расчета и т.д. и т.п. Называется RMP.
  • Небольшая демо конфигурация для 1С с возможностью создания в RMP заказ-наряда и импорта оттуда рассчитанных данных в Альфа-Авто.
  • Все данные в Альфа-Авто можно получать с помощью HTTP-сервисов, предоставляемых программой.

Плюсы и минусы.

+ «То, что доктор прописал».

- Демо конфигурация написана под релиз платформы 8.3.12

- Поставщик не дорабатывает конфигурации клиентов.

- Альфа-Авто работает на платформе 8.2, переписана и адаптирована под внутренние бизнес-процессы.

- Платформа 8.2 посылает некорректные HTTP-запросы к Web-серверу RMP, в результате чего возвращаются неверные ответы.

- Обновление Альфа-Авто ради небольшого блока, создание новых сервера 1С, обновление клиентских частей, перенос измененного функционала из старой конфигурации в новую и т.д.

Продолжать можно долго и минусов накопилось достаточно много, что задумались «А стоит ли овчинка выделки?». Но внедрить новый функционал по учету компонентов и расходных материалов для создания комплекта краски очень хотелось.

Решение есть!

В связи с тем, что имелся опыт решения подобной проблемы (взаимодействие с «Честным знаком» в области обмена с ним маркированной продукцией, шины), было предложено использовать промежуточную конфигурацию 1С, развернуть WEB-сервер, и опубликовать эту промежуточную конфигурацию, которая может взаимодействовать и с сервисом RMP и со старой конфигурацией Альфа-Авто. Своего рода «буфер обмена», или как мы её назвали - «прокладка».

Принципиальная схема взаимодействия представлена на рис.1

 

рис.1. Принципиальная схема взаимодействия

 

Итак, принципиальная схема взаимодействия есть, осталось реализовать/материализовать это в виде программного кода на соответствующих конфигурациях и сервисах.

Расчетную часть и HTTP-сервисы есть в RMP и она предоставляет всё, что нам надо для учета в работе с конфигурацией Альфа-Авто 5.0. Поэтому её не трогаем и используем всё как есть. RMP развернута на отдельной виртуальной машине на Windows, там же развернут web-сервер Apache «заточенный» под работу именно этой программы и предоставлявшей свои сервисы на определенном порту.

Дабы не мудрствовать, для работы «буфера обмена» было решено использовать эту же виртуальную машину, мощности позволяли. В связи с тем, что поставщики категорически не рекомендовали использовать их web-сервер, пришлось разворачивать свой. Благо их сервер был «урезанный» и 32-битный, поэтому было принято решение разворачивать 64-битный, чтобы процессы не пересекались.

Конфигурация – «буфер обмена»

В нескольких словах, «конфигурация-буфер» представляет собой конфигурацию, работающую на платформе 1С 8.3.17 (минимальные требования для платформы 8.3.8), с разработанными HTTP-сервисами, взаимодействующими по HTTP протоколу с RMP и Альфа-Авто 5.0.

Основной функционал заключается в следующем:

  • Получение и обработка запросов от Альфа-Авто.
  • Обработка функциональной логики для работы с RMP.
  • Запрос данных из RMP согласно запроса Альфа-Авто.
  • Обработка http-ответа от RMP сервера.
  • Трансформация данных полученных от RMP в формат, понятный для платформы 1С 8.2
  • Возврат ответа в соответствии с запросом или данных в Альфа-Авто.

В конфигурации были разработаны HTTP-сервис, работающий по методу GET, и обработка, которая обслуживает всё, связанное с обработкой этих запросов.

В конфигурации выглядит так:

 

рис.2 Сервисы в 1С буфере

 

HTTP-сервис

Сам функционал HTTP-сервиса состоит из нескольких строк:

Функция Alfa50APIGET(Запрос)   ///кейсы получения чего либо посредством GET

                ГлОбработка=Обработки.RestAPI.Создать();

                Возврат ГлОбработка.ВернутьОтветНаЗапросGET(Запрос);

КонецФункции

Для простоты отладки и разработки, весь функционал обработки GET-запросов вынесен в обработку.

Обработка RestAPI

Для минимизации разработки кода в Альфа-Авто было решено использовать совсем простые http «GET» запросы вида «ЧтоНадоСделать=Команда» и «НомерЗаказНаряда=NNNNNNN», с передачей этих данных в заголовках:

Команды для обработки, обрабатываемые через АПИ

Команда в Заголовках, одна из:

                "CommandWhatToDo" = "RMPCreated"    - Создан ли заказ-наряд?

                "CommandWhatToDo" = "RMPCreateZN"   - Создать новый заказ-наряд

                "CommandWhatToDo" = "RMPClosed" - Заказ-наряд Закрыт?

                "CommandWhatToDo" = "RMPReportReceived" - Отчет (данные) получены?

                "CommandWhatToDo" = "RMPGetReport"         - получить отчет и закрыть заказ-наряд в RMP.

               "Response"  - возвращаемый ответ в тексте, сообщение об ошибке и т.д.

Номер заказ-наряда в заголовках.

"NumberZN" = "NNNNNNNNNN" – передача номера заказ-наряда.

Обработка содержит основной специфичный функционал для работы с RMP: создание заказ-наряда, получение отчета и формирование таблиц с рассчитанными данными по расходу миксов/компонентов и расходных материалов для изготовления лакокрасочных материалов (далее по тексту ЛКМ). И вспомогательный функционал для получения и отправки данных от конфигурации Альфа-Авто 5.0.

Логика работы обработки RestAPI

*Весь контекст, связанный с работой Альфа-Авто 5.0 описан ниже.

Создание заказ-наряда в RMP:

  1. Из формы заказ-наряда Альфа-Авто, по соответствующей кнопке, с минимальным набором необходимых данных, отправляется GET HTTP-запрос вида "CommandWhatToDo" = "RMPCreateZN".
  2. Обработка обращается к RMP-сервису на предмет существования заказ-наряда с присланным номером, и, если такового нет, создает новый в соответствии с присланными исходными данными.
  3. Обрабатывает ответ от RMP и отправляет http-ответ в Альфа-Авто.

Получение отчета:

  1. Из формы заказ-наряда Альфа-Авто, по соответствующей кнопке, отправляется GET HTTP-запрос вида "CommandWhatToDo" = " RMPGetReport".
  2. Обработка обращается к RMP-сервису и запрашивает количество рассчитанных деталей в заказ-наряде, если количество деталей равно нулю, возвращается ответ с ошибкой.
  3. Если количество рассчитанных деталей больше нуля, возвращаются данные содержащие расчет затраченных компонентов и расходных материалов для изготовления ЛКМ.
  4. Обрабатывает ответ от RMP, если содержатся данные расчета ЛКМ формируются соответствующие таблицы с данными.
  5. Отправляет http-ответ в Альфа-Авто.

Приводить код функции не буду, так как он большой и имеет несколько связанных под-функций и процедур. Но если «очень надо», готов выложить.

Хочу отметить простоту и изящность решения по передаче таблиц из «буфера» в Альфа-Авто по http с помощью штатных средств 1С. Код функции:

Функция Alfa50API_СериализоватьОбъект(Значение)

                ЗаписьXML = Новый ЗаписьXML();
                ЗаписьXML.УстановитьСтроку();
                СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение);
                СтрокаXML = ЗаписьXML.Закрыть();    
                Возврат СтрокаXML;

КонецФункции  

 

Ответное значение «СтрокаXML» помещаем в тело http-ответа и отсылаем в Альфа-Авто. Что получаем в Альфа-Авто смотрите ниже.

На этом описание функционала конфигурации «буфер», можно считать закончено. Свой функционал промежуточного звена между устаревшей конфигурацией Альфа-Авто 5.0, работающей не платформе 8.2 и HTTP-сервисом RMP выполняет целиком и полностью, расширяем, независим, может обслуживать иные подобные сервисы.

Конфигурация Альфа-Авто 5.0

Конфигурация представляет собой стандартную, немного переработанную, конфигурацию «Альфа-Авто: Автосалон+Автосервис+Автозапчасти ПРОФ. Редакция 5», работающую на платформе 8.2

 

рис.3 Конигурация Альфа-Авто 50

 

Здесь, в документ «Заказ-наряд» были добавлены две табличные части «RMP_Материалы» и «RMP_НормативыРасхода», соответствующие кнопки и код обслуживающий функционал работы с данными полученными из RMP-сервиса. И обработка «RMP_RestAPI» с кодом, обслуживающим функционал по работе с HTTP и конфигурацией «буфер».

Документ «Заказ-наряд»

Естественно, для работы с RMP-сервисом пришлось не только дописывать код, но и вносить соответствующие интерфейсные правки, вот так теперь выглядит измененная форма документа:

Вкладка «Нормативы расхода» носит исключительно информационный характер и никакой иной функциональной нагрузки не несёт.

 

рис.5. Форма заказ-наряда 2

 

Основной функционал расположен во вкладке «Материалы».

 

рис.4. Форма заказ-наряда 1

 

Вкладка «Материалы»

Кнопка «Создать ЗН в RMP»

Как можно понять из названия, по нажатии отправляется http-запрос с командой «CommandWhatToDo = "RMPCreateZN"» - Создать новый ЗН в конфигурацию «буфер». После успешного создания заказ-наряда в RMP устанавливается «флаг Создан в СМ», и «колорист» или иной сотрудник, может рассчитать и заполнить данные в сервисе RMP.

Кнопка «Загрузить из RMP»

По нажатии отправляется http-запрос с командой «CommandWhatToDo = "RMPGetReport"»- получить отчет, в конфигурацию «буфер». В случае если нет расчитанного количества деталей, заказ-наряд в RMP не закрывается, данные в Альфа-Авто не посылаются и возвращается ошибка. После успешного получения «отчета» заполняются таблицы «Материалы» и «Нормативы расхода».

Комплектация в производство.

После успешной загрузки данных в таблицу материалов можно «Создать комплектацию в производство», нажав соответствующую кнопку. Заполнение документа «Комплектация в производство» немного переработано, исходные данные берутся из таблицы «Материалы». Также добавлена возможность автоматического добавления комплекта ЛКМ в товары. Остальной функционал документа оставлен без изменения.

Обработка «RMP_RestAPI»

Здесь заложен весь функционал необходимый для работы с конфигурацией «буфер», посылки GET http запросов, обработки результатов ответов и передачи данных в документ «заказ-наряд».

Логика работы следующая:

  1. Из заказ-наряда формируется структура данных содержащая минимум два параметра
    1. В случае простого запроса: Номер заказ-наряда и команды, например, RMPGetReport.
    2. В случае создания заказ-наряда: номер заказ-наряда, команды и данные для создания заказ-наряда в сервисе RMP (данные по автомобилю, владельцу и т.д.).
  2. Обработка формирует: «HTTP-Соединение», в заголовки помещает переданные данные из структуры, «HTTP-Запрос» и отсылает запрос в «буфер».
  3. Обрабатывает полученные из «Соединение.Получить(Запрос)», формирует структуру ответа и отсылает в документ заказ-наряд.

В случае получения отчета, формируются соответствующие таблицы с данными с помощью

Функция ДеСериализоватьОбъект(СтрокаXML)           

                ЧтениеXML = Новый ЧтениеXML();
                ЧтениеXML.УстановитьСтроку(СтрокаXML);
                Значение = СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
                Возврат Значение;

КонецФункции

И в заказ-наряде заполняются соответствующие табличные части и остальные действия производятся в коде документа «Заказ-наряд».

 

Что в итоге

Данным решением хотел показать, что далеко не всегда для решения какой-то задачи на устаревшей платформе необходимо тотальное обновление, и конфигурации, и платформы.

В итоге имеем успешно работающий функционал способный помочь устаревшим программным решениям оставаться «на плаву» и использовать функционал современных HTTP-сервисов, обмен с сайтом, например. Для этого необходимо всего лишь проявить немного изобретательности.

Автосервису не надо было вкладываться финансово и по времени в обновление конфигурации и платформы, переносе данных в новую конфигурацию, адаптацию и т.д. В двух словах – сплошные плюсы и полное отсутствие минусов.

В планах интеграция с сервисом «Честный знак» по продаже маркированных шин (и не только), будем внедрять решение по аналогичному сценарию. Ведь даже в последней версии Альфа-Авто 5.1 «полной» интеграции нет, есть только в 6.0.

Как говорится, «дорогу осилит идущий», успехов в разработке.

 

Решение работает.

1С:Предприятие 8.3, версия (8.3.17), уверен, будет работать на версии 8.3.8.

Альфа-Авто 5.0 HTTP сервис RestAPI

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    15932    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (8.3.18.1289). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    17887    6    15    

13

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88935    163    216    

318

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25872    9    0    

7

Интеграция с сервисом vetmanager

WEB-интеграция Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бытовые услуги, сервис Платные (руб)

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16479    42    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. triviumfan 93 08.03.21 12:38 Сейчас в теме
8.2 - архаизм. Не знаю никого, кто использует 8.2 в связке с альфой 4-5 редакции.
papami; +1
2. chrnv 28.01.22 18:24 Сейчас в теме
(1)А я знаю )))
С 4 АА
+
3. mbsto 13.02.23 12:59 Сейчас в теме
Добрый день.
Вопрос связан с Альфа Авто 5.1
Использование картинки со ссылкой на ней на номер каталожный и перебросом его в поле табличной части номенклатуры в Заказ наряде.
Как это будет работать ?
+
Оставьте свое сообщение