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
);
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)
IDBATCHOPER | IDBATCHEXT | BATCHEXT.STATUS |
1 | null/not null | 0,1,2 |
2 | null/not null | 0,1,2 |
3 | not null | 0,1,2 |
4 | not null | 1,2 |
5 | not null | 1,2,3 |
ДОПОЛНЕНИЕ ОТ 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 мин., факт появления файла, обрабатывает его (добавляет, либо модифицирует записи) и удаляет файл