====== 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)\\ ^ 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: ,,, ,,,,,, Строка n: ,,, Предполагается выгрузка в файл с именем "Exchange.csv" - Файл всегда обновляется со стороны 1с - в произвольное время (по мере возникновения новых партий, либо изменения статуса существующих автоматически) и "складывается по заданному пути" на некий файловый ресурс - АСУТП сканирует, например с периодичностью 30 мин., факт появления файла, обрабатывает его (добавляет, либо модифицирует записи) и удаляет файл ===== Интерфейс выбора партии 1С ===== {{:cust:ship:shpsh_20120531.png?200|}} ===== Скрипт обновления базы данных ===== [[cust:ship:shpsh_request_20120531_1s_sql]]