Интерактивная мока: приёмка из 1С, выпуск с автопостроением связок, отгрузка и выгрузка четырёх потоков в ИС AITS. Данные вымышленные, внешние системы имитируются на стороне страницы — ни 1С, ни trace.by здесь не вызываются.
Приходы приезжают из 1С по расписанию. Партии, которых в 1С нет, создаются здесь — приёмщик добавляет то, чего в приходе не бывает: ветеринарное разрешение, ТТН поставщика, срок годности. В момент создания партия получает GUIN и живёт под ним до отгрузки.
| Документ 1С | Дата | Поставщик | Номенклатура | Кг |
|---|
| Партия | Наименование | Поставщик | Кг | Вет. разрешение | GUIN | Лаборатория | AITS |
|---|
Весы отдают вес по RS-232 и выводятся в сеть через serial device server — на рабочем месте остаётся только браузер. Здесь драйвер подменён эмулятором (FakeScale из плана), но метрология настоящая: цена деления, минимальная нагрузка и предел взвешивания взяты с шильдиков вашего парка, а вес квантуется по делению, как у реального прибора.
| Сдано по видам | Кг | Доля |
|---|
Агрегация собирается потоком на весах и без сканирования: активная коробка и активный поддон — аккумуляторы текущего сеанса, поэтому состав известен в момент формирования. Мешок определяется по циклу нагрузки, без нажатий: платформа разгрузилась, продержалась в нуле, снова нагрузилась, вес стабилизировался — мешок. Работайте ползунком весов на вкладке «Весы и отвесы» или прямо здесь.
| Мешок | Кг | Отметки |
|---|
| Коробка (SSCC) | Мешков | Кг |
|---|
| Тип | SSCC | Состав | Кг | Состояние |
|---|
| Время | Вид продукции | Этикеток |
|---|
| Поле AITS | Откуда берётся | Значение сейчас |
|---|
Монитор на участке — табло, а не рабочее место: оператор в него только смотрит. Мыши и клавиатуры нет, сенсор в мокром цехе не работает. Весь ввод — три физические кнопки. Нажимайте их мышью или клавишами 1, 2, 3: на реальном АРМ это USB-кнопочный пост в режиме эмуляции клавиатуры, и браузер видит их так же.
| Перчатки и вода | ёмкостный сенсор не реагирует на мокрую перчатку, резистивный — врёт. Кнопка с ходом 2 мм нажимается любой рукой |
| Мойка цеха | кнопочный пост IP65/IP67 моется из шланга; монитор ставится за стекло или в герметичный корпус, а трогать его не нужно вовсе |
| Руки заняты | мешок держат двумя руками. Кнопку «коробка готова» удобно делать ножной педалью — руки не освобождаются вообще |
| Обучение | три подписанные кнопки разного цвета осваиваются за минуту; интерфейс с полями требует объяснений и порождает ошибки ввода |
| Нет курсора — нет чужих действий | с табло физически невозможно исправить вес, сменить продукцию или закрыть смену: этих команд нет на кнопках. Настройки — с АРМ мастера |
| Способ | Что нужно | Оценка |
|---|---|---|
| USB-кнопочный пост или педаль в режиме HID | ничего: браузер видит нажатие как клавишу | рекомендуется |
| Штатные функциональные клавиши индикатора весов | разбор протокола прибора, кнопки уже есть и защищены | если протокол позволяет |
| Дискретные входы модуля Modbus TCP | опрос модуля сервером, промышленное исполнение | дороже, под тяжёлые условия |
| Риск | Решение в системе |
|---|---|
| Случайное нажатие «отмены» | срабатывает только при удержании 1,5 с с полосой заполнения на табло; отменяет ровно последний мешок активной коробки и пишется в журнал |
| Двойное нажатие «коробка готова» | закрытие пустой коробки игнорируется — второе нажатие не создаёт пустую единицу упаковки |
| Залипшая или неотпущенная кнопка | повторные срабатывания подавляются, пока кнопка не отпущена; удержание дольше 5 с — сигнал «проверьте кнопочный пост» |
| Оператор не заметил предупреждение | предупреждение занимает всё табло и меняет его цвет, а не выводится строкой; гаснет только со следующим мешком |
| Двое операторов на одном участке | одно табло ведёт ровно один активный поток — второму нужен свой АРМ, иначе мешки перемешаются |
Акт разделки в системе — та же форма, что предприятие ведёт на бумаге, но процент выхода считается, а не заполняется, и каждая строка выхода получает GUIN и связку с конкретными строками прихода. Бумажный акт фиксирует общий котёл; AITS требует связь по партиям.
| Поступило сырья | Поставщик | Вет. свидетельство | ТТН | Кг |
|---|
| Выход продукции | ТНПА | Штрихкод (GTIN) | Кг | % |
|---|
| Партия продукции | ТНПА | Кг | GUIN | Связки с сырьём | AITS |
|---|
Страна получателя определяет, какой из трёх контрактов ТТН уйдёт в AITS, и набор полей меняется вместе с ней. Печатная форма — из 1С: так её актуализацией при смене законодательства занимается вендор 1С, а не мы.
| Партия продукции | GTIN | Кг | Упаковок | AITS |
|---|
Выгрузка — не кнопка «отправить», а машина состояний. Четыре потока идут строго по порядку, следующий не выпускается без чистого протокола предыдущего, обработка на стороне AITS асинхронная, а RequestGuid сохраняется в базе до HTTP-вызова: при обрыве связи мы обязаны выяснить судьбу запроса протоколом, а не отправить его заново.
Auth.svc/auth вызывается только по HTTPS, токен затем идёт в заголовке AuthToken каждого запроса.Удалённая 1С через интернет будет недоступна регулярно — это штатный режим, а не авария. Поэтому обмен устроен как очередь с ретраями, а каждое тело запроса и ответа хранится: без этого расхождения с бухгалтерией не разобрать.
| Время | Метод | Направление | ExternalId | Записей | Результат | Попытка |
|---|
| Метод 1С | Направление | Содержание | Идемпотентность |
|---|---|---|---|
| GET /nomenclature | из 1С | номенклатура, GTIN, ЕИ, ТНПА | инкрементально по метке изменения |
| GET /partners | из 1С | контрагенты (GLN, УНП/ИНН), договоры | инкрементально |
| GET /receipts | из 1С | приходы сырья — основание партий | по номеру документа |
| GET /employees, /shifts | из ЗУП | сотрудники, подразделения, графики | инкрементально |
| POST /production | в 1С | выпуск продукции по партиям | ExternalId партии |
| POST /consumption | в 1С | списание сырья в производство | ExternalId акта |
| POST /shipment | в 1С | отгрузка с составом — оттуда же печать ТТН | ExternalId отгрузки |
| POST /timesheet | в ЗУП | табель рабочего времени | ExternalId смены |
| POST /piecework | в ЗУП | сдельно: тоннаж (3 знака), тариф, сумма | ExternalId периода |