Это старая версия документа.
Содержание
SHPSH/2012-05-31: Интеграция с 1с - добавление новой таблицы для партий
предлагаю сделать так (Денис Лобанов):
1. Изменяем текущую таблицу
CREATE TABLE BATCHES ( IDBATCH INTEGER NOT NULL, IDBATCHOPER INTEGER NOT NULL, IDPROD INTEGER NOT NULL, DT TIMESTAMP, DESCR VARCHAR(128), IDPLACESRC INTEGER NOT NULL, IDPLACEDST INTEGER DEFAULT 0 NOT NULL, IDBATCHEXT INTEGER );
2. Добавляем новую таблицу - BATCHEXT
primary key - IDBATCHEXT, остальные поля на ваше усмотрение
Описание дополнительных полей таблицы BATCHEXT (Евгений Каюшев)
- IDPROD INTEGER NOT NULL - идентификатор культуры
- NBREXT INTEGER NOT NULL - внешний номер партии (фактически - номер документа 1С)
- DTBEXT TIMESTAMP - Дата (создания документа партии в 1С)
- STATUS INTEGER DEFAULT 0 - индекс значения перечисления «умкпСтатусыПроизводственнойПартии» из 1С. Справочно:
- 0 - Открыта
- 1 - ВПодработке
- 2 - ВПроизводстве
- 3 - Закрыта
- IDPRADD VARCHAR(128) - дополнительные идентификаторы культур - список идентификаторов IDPROD через разделитель (запятая), например: 1,5,6
Требования к доступности внешних партий для выбора оператором АСУТП управления весами:
- Записи с STATUS = 3 не должны быть видимы оператору и должны быть недоступны для выбора
- Для операции размещения (Значение поля IDBATCHOPER=1 в таблице BATCHOPER) допустимо значение IDBATCHEXT=NULL в таблице BATCHES. Смысл в том, что производственная партия появляется тогда, когда начальник производства её открывает в 1С и когда начинается движение сырья, связанное с очередным производственным циклом подработок и производства продукции. Иначе говоря, для операции «Размещение» допускается не указывать партию
- Для операции перемещение (Значение поля IDBATCHOPER=2 в таблице BATCHOPER) допустимо значение IDBATCHEXT=NULL в таблице BATCHES. Смысл в том, что производственная партия появляется тогда, когда начальник производства её открывает в 1С и когда начинается движение сырья, связанное с очередным производственным циклом подработок и производства продукции. Перемещение, в общем случае, может не относиться к конкретному производственному циклу. Иначе говоря, для операции «Перемещение» допускается не указывать партию
- Для операции Подработка (Значение поля IDBATCHOPER=3 в таблице BATCHOPER) для выбора должны быть доступны записи с STATUS=0, STATUS=1 и STATUS=2
- Для операции Формирование Помольной Партии (Значение поля IDBATCHOPER=4 в таблице BATCHOPER) для выбора должны быть доступны записи с STATUS=1 и STATUS=2
- Для операции Снятие с учета (Значение поля IDBATCHOPER=5 в таблице BATCHOPER) для выбора должны быть доступны записи с STATUS=1 и STATUS=2, STATUS=3 (посл. - вывоз отходов, например)
Дополнительное ОБЯЗАТЕЛЬНОЕ УСЛОВИЕ ОТБОРА:
- Должна быть блокирована возможность выбора внешних партий без указания культуры
- ОБЯЗАТЕЛЕН ОТБОР по IDPROD плюс отбор по списку IDPRADD (оператор должен вмдеть только те записи, где IDPROD совпадают или идентификатороы которых перечислены в IDPRADD)
ДОПОЛНЕНИЕ ОТ 30.05.12
Если культура не выбрана (IDPROD = NULL), то ни одной записи, доступной для выбора, быть не должно.
ВАЖНО: Операторам будет передоваться документ (в печатном виде), где, в частности, будут указаны, например:
НОМЕР ПАРТИИ 2 - соотв. полю NBREXT (мой комментарий) ДАТА 04.04.2012 08:12:45 - соотв. полю DTBEXT КУЛЬТУРА ГОРОХ - соотв. полю NAME таблицы PRODUCT (поиск - связь по полю IDPROD) др. поля, несущественные для данной задачи
ПОЛЬЗОВАТЕЛЮ в списке выбора в АСУТП необходимо «показывать» указанные поля.
Дополнительно (Евгений Каюшев)
Формат файла обмена:
Строка 1: <NBREXT>,<DTBEXT>,<IDPROD>,<STATUS> ,,,,,, Строка n: <NBREXT>,<DTBEXT>,<IDPROD>,<STATUS>
Предполагается выгрузка в файл с именем «Exchange.csv»
- Файл всегда обновляется со стороны 1с - в произвольное время (по мере возникновения новых партий, либо изменения статуса существующих автоматически) и «складывается по заданному пути» на некий файловый ресурс
- АСУТП сканирует, например с периодичностью 30 мин., факт появления файла, обрабатывает его (добавляет, либо модифицирует записи) и удаляет файл