1с альфа авто начальная настройка

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

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

Преамбула

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

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

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

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

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

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

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

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

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

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

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

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

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

Принципиальная схема взаимодействия представлена на рис.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.

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

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

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

1с альфа авто начальная настройка

HTTP-сервис

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

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

Обработка RestAPI

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1с альфа авто начальная настройка

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

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

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

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

1с альфа авто начальная настройка

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

1с альфа авто начальная настройка

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

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

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

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

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

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

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

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

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

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

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

Что в итоге

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

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

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

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

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

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

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *