LiSEC — это производитель станков и программ для производства стеклопакетов и изделий из стекла. Станки режут стекло, обрабатывают, запаковывают в изделия, а управляют всем этим процессом «от и до» специальное ПО:
- GPS.Order — для обработки и управления заказами, расчета себестоимости, а также управления складом.
- GPS.Prod — для планирования и контроля производства.
- GPS.Ident — для сообщений работникам производства о готовности изделий, а также работы со штрихкодами.
Типичное место обитания LiSEC’а в естественной среде
В начале было слово, и слово было «Хочу!»
Как всё работало: приходит клиент и говорит: «Хочу окно!». Затем рассказывает, какое это будет окно — размеры, количество камер, створок и т.д. Непосредственно в GPS.Order специалист подбирал материалы для производства, разные расходники, составлял смету, формировал стоимость, отправлял на изготовление.
После этого информация выгружалась в XML-файл — и загружалась в «1С: Комплексная автоматизация» в виде заказа на окно и спецификации на производство этого окна.
Но был, как говорится, один нюанс: выгрузка была написана таким образом, что в 1С не учитывались особенности номенклатуры, которая хранилась в LiSEC. Например, чтобы собрать определенное окно — нужен определенный герметик. Но выгружался всегда один и тот же герметик, без учета, что там выбирали в реальности, не было прямой ассоциации с нужным материалом.
Поэтому при переходе на ERP одним из условий было «следите за LiSEC’ом и заберите у него всю информацию, которую нужно!»
«Неизвестный науке зверь!»© Не лиса, не песец …лисец?!?
Как оказалось, по внутреннему устройству LiSEC не то, чтобы много доступной информации.
В стране есть пара контор, которые имеют опыт интеграции — но посотрудничать не получилось, возможно, что работой они и так обеспечены на годы вперед. Чего удалось достичь — это найти одну инструкцию-описание архитектуры на английском и немного поговорить о том, как была сделана интеграция в текущем виде.
Выгружаемый файл имел ограничения по набору передаваемой информации. При анализе даже возникла конспирологическая мысль, что эта функция с выгрузкой в принципе создавалась вендором не для интеграции, но её использовали как временное решение, за неимением лучшего. Как водится, нет ничего более постоянного, чем временное.
Пример структуры файла
Механизм формирования был настолько непрозрачным, что даже структура файла изменялась по неясным причинам, что приводило к поломке выгрузки.
Специалисты по пазлам
Фотография из места обитания разработчиков, работавших на проекте
«Доколе мы будем зависеть от этого изменчивого файла?!», — возмутилась команда проекта, — «Где там Лисец хранит свои данные? MS SQL? Вот и замечательно!». Подключаемся через 1С к базе с помощью внешних источников данных. И… вот тут-то началась самая работа.
Подключенная к 1С база LiSEC
Как оказалось, даже описание архитектуры системы не гарантирует, что всё пойдет гладко: то нет описания таблиц, которые есть в БД, то в документации описание есть — но нет таких таблиц в базе. Пришлось использовать методологию для особо удачливых разработчиков — то есть выяснять «методом тыка».
Это работало так: брали специалиста заказчика, тот показывал экран с пользовательским интерфейсом GPS.Order, где были представлены изделия и их параметры, а затем мы искали в таблицах базы похожие цифры. Звучит просто, но с учетом размера номенклатуры процесс занял почти 3 месяца. 3 месяца перебора, чтобы из разбросанных кусочков наконец-то начала получаться цельная картина.
Пример данных из базы. Там, слева за кадром, этих столбцов ещё на несколько экранов
Аппетит приходит во время еды
Что делает человек, когда его базовые потребности удовлетворяются? Правильно — начинает хотеть удовлетворения потребностей более высокого порядка. Заказчикам также не чуждо ничего человеческое.
Есть контакт! Всё на великом и могучем
Если в начале нужно было просто загрузить состав заказа клиента, набор основных материалов, типа рамки, стекла, герметика, газа, который используется в стеклопакетах и т.п., то затем появились запросы на особые варианты изготовления, разные типы стеклонарезки, триплексы.
Потом пошли запросы на учет брака. На формирование зарплаты на основе трудозатрат, которые, в свою очередь, формируются на основе технологических операций. В принципе отслеживать все затраты по каждому изделию. Отслеживать статус готовности изделия.
Решение обращаться к базе напрямую оказалось удачным. В LiSEC продукт проходит через определенные этапы: стекло разрезали, стекло склеили, стекло собрали в стеклопакет, стеклопакет вставили в окно. Мы смогли транслировать это в производственный документ 1С, получили актуальный статус каждого заказа.
Заказ как заказ
Не только ценный опыт работы с базой
Конечно, внедрение не свелось только к получению данных из базы. У каждого заказчика есть свои особенности, не стал исключением и текущий проект — даже на уровне LiSEC есть разные варианты ввода информации, а у клиента свои нюансы по системе стандартов и кодирования продукции.
Например, мы видим строчку с изделием в таблице GPS.Order. Для изделия указаны реквизиты стеклопакета: его размер, ширина, высота. Потом начинаются материалы по этому стеклопакету — и вдруг мы видим, что кода стеклопакета и наименования стеклопакета нет, а строчка есть. На этапе обследования это являлось, так скажем, нарезкой стекла. То есть берем просто стекло и под размеры клиента его вырезаем, так как тот не готовый стеклопакет забирает, а хочет порезать стекло на нашем предприятии из нашего материала.
Но оказывается, что нет, стекло — не стекло, а особый вид изделия. Такие вещи выяснялись уже в процессе тестовой эксплуатации. Приходилось задавать новые условия, изменять алгоритмы обработки и загрузки позиций, иногда даже глобально править, когда ситуация ломала вокруг себя всё остальное.
Как уживаются в одной телеге конь и трепетная лань ERP и LiSEC
Все доработки по взаимодействию программ мы сделали через расширение, в которое вынесены собственные объекты, справочники соответствия объектов, регистры по настройке обмена, формулы для расчета материала и т.д. Единственно, в расширения нельзя вынести внешние источники, но при обновлении 1С внешние источники всё равно не затрагиваются, так что проблем у заказчика быть не должно.
Львиная доля номенклатуры в системах сопоставлена, но контроль загрузки возложен на пользователя, для которого разработан отдельный интерфейс. Если в момент загрузки появляется что-то новое в LiSEC — 1С будет выдавать сообщение: «Ребята, вот тут такие позиции, которые я не знаю, куда деть. Вы, пожалуйста, мне укажите, с чем это связать. И в следующий раз я сделаю это автоматически».
Кроме того, есть и обратная выгрузка из ERP: её решили оставить в файловом виде, чтобы не вмешиваться в работу базы. Формируется файл, который по сути представляет из себя текстовый документ с разделителями. Мы не вмешиваемся в работу базы LiSEC, а оператор, в силу своих обязанностей, всё равно доуточняет, дорабатывает эту информацию при размещении заказа, очень уж много там специфических параметров.
Пример содержания файла экспорта из 1С в LiSEC
И жил этот зоопарк долго и счастливо
С чем ещё можно столкнуться на производстве по обработке стекла? Кроме LiSEC в компании были и другие «звери»: WH OKNA — программа для шаблонных ПВХ-окон, AluRoll для изготовления рольставней, LogiKal для проектирования и производства светопрозрачных конструкций из алюминия и стали. Но с ними в плане взаимодействия с 1С всё было существенно проще.
Клиент получил интеграцию продуктов LiSEC cо своей ERP-системой. Мы прокачали навыки реверс-инжиниринга, получили опыт использования 1С в качестве инструмента связи самой себя с внешней системой и многое узнали о пластиковых окнах.
Приобретайте 1С:ERP в Инфостарт с бонусом 15%!
- Бесплатное демо продукта и консультация
- Команда экспертов 1С с опытом 10+ лет
- Оценка проекта, четкий план работ, документация, обучение и поддержка
Закажите расчет внедрения ERP - получите дорожную карту в подарок!