Как подружить мастера с менеджером по логистике и 1С8 с 1С7 на сервере с закрытыми портами
Наверное, у каждого такое было: приходишь на работу, а под дверями твоего кабинета уже стоит хмурый работяга — начальник участка и взволнованная девушка менеджер. «Он должен был сдать отчёт и не сдал, у меня сырья не хватает — детали в базе не собираются» — говорит она. «Я что, мальчик какой‑то — по десять раз бумажки переписывать, я всё вчера ей на стол положил!» — ворчит он. «Да он постоянно забывает и ошибается ещё»… «Да она всегда всё теряет, и переписать с бумажки не может». Полчаса взаимных упрёков и испорченное на весь день настроение. Я хочу рассказать, как помирить производство и офис внедрением простого микросервиса.

Производственный процесс
Одним из этапов процесса литья под давлением является заготовка сырьевых смесей — разные марки сырья смешиваются в заданных пропорциях для изготовления тех или иных деталей. В учёте движения ТМЦ это отражается документом Комплектация ТМЦ — со склада‑источника списывается сырье, на склад‑получатель поступает готовая смесь.
Над отражением результата производственного в учёте трудятся два сотрудника — непосредственно начальник участка и менеджер по учёту:

Недостатки процесса очевидны:
-
начальник участка заготовки вынужден перемещаться между офисным помещением, в котором установлен компьютер, содержащий расчётные Excel‑таблицы, и производственным цехом;
-
в процессе работы данные о фактическом выходе смесей и расходе сырья фиксируются начальником участка маркером на картонках, в конце рабочего дня — переносятся в бумажную форму отчёта «от руки»;
-
ввиду разницы в рабочем графике рабочих подразделений и менеджеров отдела логистики передача отчёта не всегда происходит «из рук в руки» и иногда отчёты теряются;
-
данные попадают в учётную систему с задержкой до суток и зачастую с ошибками, вследствии непонимания менеджером записей начальника участка;
-
начальник цеха, не получавший копию отчёта, вынужден был узнавать результат работы участка устно.
Там мы работали около года. Потом я устал разбираться, кто кому что передал, кто какие цифры потерял, а какие переврал, и решил заняться автоматизацией.
Desktop на Delphi
Тогда я умел только в Delphi и потому родилось desktop приложение. Начальник участка вносил в данные о результатах работы в приложение, система проверяла арифметическую точность ввода, сохраняла отчёт и рассылала его содержание по электронной почте всем заинтересованным менеджерам и руководителям. Как бонус — система сразу считала сдельную зарплату персонала участка заготовки.
Итоги внедрения:
|
Старые проблемы |
Появившиеся новые проблемы |
|
|
Решённые |
Не решённые |
|
|
отчёты перестали теряться, факт передачи или не передачи отчёта от одного сотрудника к другому стал неоспорим; ушла проблема неразборчивого почерка; все заинтересованные лица стали получать отчёты сразу после их составления. |
расчёт потребности в сырье по‑прежнему выполнялся в Excel; в ходе работы начальник участка все ещё вёл заметки на бумаге; для подготовки сдачи отчёта начальнику участка все равно приходилось ходить в офис, только теперь уже к компьютеру. |
возникла необходимость в ручной синхронизации номенклатуры смесей между 1С и отчётной системой. |
Мобильное приложение 1С8
Delphi служила нам верой и правдой около пяти лет. Но когда в прошлом году я постиг таинства 1С разработки и обнаружил в экосистеме простой и удобный функционал для разработки мобильных приложений я, конечно же, загорелся идеей где‑то применить эти новые знания. Автоматизация учёта на участке заготовки оказалось идеальной задачей для воплощения этой идеи.
Я задумался: совершенно очевидно, что мобильное приложение должно будет не просто повторить функционал «десктопа», но и решить все те проблемы, которые «десктоп» не решил и те, которые привнёс. Значит мобильное приложение должно уметь:
-
быть всегда под рукой пользователя — начальника участка;
-
содержать в себе данные о расходе сырья на каждый вид смеси для возможности выполнения расчёта потребности в сырье;
-
пересчитывать расход сырья по фактическому количеству приготовленной смеси;
-
отправлять отчёт менеджеру по логистики;
-
синхронизировать свои справочники с 1С Комплекс.
Что ж, реализация показалась достаточно несложной. С первым пунктом вообще все просто — мобильность — это сама суть разрабатываемого решения. Данные о расходе — справочник «Смеси» с табличной частью «СоставСмеси». Расчёт — не много логики и форме документа и признак «ОсновноеСырье» (для расчета по количеству «замесов») в таблице состава смеси. А вот синхронизацией пришлось повозиться.
MVP1 — отправка по электронной почте
Для первоначального наполнения справочников я решил выгрузить существующую справочную Excel таблицу и загрузить её в приложение. Быстро написал код. Однако выяснилось, что прочитать xls в мобильном клиенте в ТабличныйДокумент невозможно. Надо было сначала читать Справку… Пришлось переделывать на txt. Но то, что и создать xls в мобильном клиенте тоже нельзя до меня дошло не сразу — помучался и с почтовыми вложениями. Но вот оно — MVP1. Начальник участка доволен — не надо ничего считать, не надо ничего писать. Выбираешь марку смеси, вводишь количество замесов — получаешь расчёт сырья. Нажимаешь кнопку «Отправить» и с чистой совестью идёшь к проходной — отчёт ушёл куда следует — на почту менеджера.
Но остался не доволен менеджер — её работа никак не изменилась — она по‑прежнему вручную набирала документ в 1С.
Выгрузка в «семерку»
Как же облегчить работу менеджера? Всего лишь нужно положить данные туда, где их сможет принять «семёрка» — простой файловый обмен. Но это оказалось нелегко. «Семёрка» у нас на сервере «Ростелекома», мы работаем в терминальном режиме. Все порты, и «интернетовские», и «почтовые», закрыты. Безопасность наше всё и сисадмин непреклонен. Как перенести файл? Копировать на удалённый рабочий стол из почтового вложения? Так себе автоматизация…
Но вот я вспоминаю, что у нас на давно и успешно работает «Склад 15» от «Клеверенс». ТСД из локальной сети передаю данные на сервер и получают данные с сервера. Есть VPN туннель и есть Swagger с описанием API. Решение найдено: мобильное приложение должно имитировать работу ТСД и отправлять данные на сервер таким же образом, как это делают терминалы. А соответствующий механизм загрузки в «семёрке» уже есть.
Разобраться с API было несложно. Спасибо «Клеверенс» за подробное документирование. Конечно же документа с полностью совпадающим набором реквизитов в БД не оказалось. Но я приспособил для своих целей «Перемещение ТМЦ» слегка расширив набор полей. А вот заставить СУБД выгружать документы в файл, также как это происходит при приёме документа с ТСД, не получилось. Пришлось получать данные в «семёрку» также через API, только через localhost. Конечно, пришлось вручную парсить JSON и самостоятельно преобразовывать Unicode в ANSI. Вообще на «семерочный» код ушло достаточно много времени — успел привыкнуть к «восьмерке». К хорошему вообще быстро привыкаешь. Не обошлось и без помощи ИИ… Но все получилось, и вот документы, созданные в мобильном приложении на платформе 1С8 превращаются в документы БД Склад 15 Клеверенс и затем в документы «Комплектация ТМЦ» в 1С7.7. «Комплекс».
Оставшуюся задачу синхронизации справочников решил через файловые обмены, использовав уже готовый механизм загрузки данных в мобильное приложение из текстового файла.

Результат внедрения
Получившаяся таким образом связка нескольких учётных позволила полностью автоматизировать процесс учёта заготовки сырьевых смесей. Функционал системы позволил:
-
производить расчёт рецептуры непосредственно на рабочем месте без использования Excel таблиц;
-
выполнять учётные и отчётные операции без отрыва от производства;
-
убрать рабочее место начальника участка в офисе;
-
ограничить область распространение служебной информации документооборотом в пределах локальной сети и защищённого VPN соединения;
-
сменить функцию менеджера по учёту с операционной на контрольную.
Измеримыми результатами можно считать:
-
полное исключение случаев утери отчётности;
-
исключение математических ошибок и ошибок при интерпретации записей;
-
снижение временных затрат начальника участка на учётную функцию до нескольких минут вместо получаса‑часа;
-
снижение когнитивной нагрузки на менеджера по учёту;
-
полное исключение зависимости скорости проведения документа в учётной от графика работы офиса.
Что можно сделать за 5 минут? За 15? За 30 минут? Можно сделать многое, но чего точно не стоит делать, так это разбираться, кто потерял бумажку, разбираться, кто ошибся при сложении, или выяснять, сколько времени надо, чтобы оформить документ в 1С. И теперь я этого не делаю. А начальник участка теперь при встрече улыбается девушке из офиса. А она улыбается ему в ответ.
Автор: shagi80

