7.8.Этап 5
Импорт документов
Загрузка документов в КИС из Оптимум будет осуществляться следующим образом:
Модуль интеграции выкладывает в каталог обмена файлы с запросом на получение документов из Оптимум: DMT_Get_DocumentsEx.txt, DMT_Get_DocItemsEx.txt.
В серверной базе Оптимум дистрибьютора запускается обмен данными путем вызова хранимой процедуры DM_Sync_ProcessTXT (по расписанию, либо вручную из ВАРМ). В результате в каталог обмена выгружаются файлы с данными шапок и строк документов: DMT_Get_DocumentsEx.res и DMT_Get_DocItemsEx.res соответственно.
Модуль интеграции в случае наличия в каталоге обмена файлов DMT_Get_DocumentsEx.res и DMT_Get_DocItemsEx.res формирует в КИС на основании данных файлов новые документы. После загрузки данных обработка выкладывает в каталог обмена файл с подтверждениями загрузки документов в КИС: DMT_Set_DocumentStatusEx.txt.
ВАЖНО! Необходимо хранить информацию, что данный документ был ранее загружен из Оптимум в КИС. Например, хранить в каком то служебном реквизите документов, загружаемых из Оптимум, уникальный код документа, например Код документа (Оптимум) + Код торгпреда (Оптимум). И при загрузке документов из Оптимум анализировать это поле у ранее созданных документов за определенный период. Соответственно, если документ был загружен ранее в КИС (поле совпало), то не дублировать его. Данное действие необходимо проделывать для всех типов документов, загружаемых в КИС.
Таблица 34 Формат файла DMT_Get_DocumentsEx.txt
Порядок в файле txt
|
Наименование поля
|
Описание
|
1
|
doctypeid
|
Идентификатор типа документа (Оптимум), по умолчанию — все (-1).
Поддерживаются следующие типы документов:
0 — заказ;
1 — накладная;
56 — оплата по накладной;
71 — загрузка в VAN;
72 — выгрузка из VAN;
73 — списание из VAN;
80 — начальная инвентаризация;
81 — заказ на дозагрузку.
|
2
|
fstate
|
Состояние документов, по умолчанию - свежие для КИС:
0 — свежие для КИС;
-1 — все;
3 — свежие для КПК;
1 — обработанные.
|
3
|
repidd
|
Идентификатор ТП в КИС. Если передается пустое значение, тогда возвращаются документы по всем ТП.
|
4
|
begindate
|
Начало периода (дата время). Если передается пустое значение, тогда возвращаются документы за весь период.
|
5
|
enddate
|
Конец периода (дата время). Если передается пустое значение, тогда возвращаются документы за весь период.
|
6
|
docidd
|
Пустое значение
|
7
|
otherfields
|
Пустое значение
|
8
|
restablename
|
Пустое значение
|
Возвращаемые данные
Процедура возвращает только те столбцы, порядковые номера которых из приведенной ниже таблицы, перечислены в опции 36 (в таблице D_Options базы Оптимум) через «;».
Перечень возвращаемых полей в файле DMT_Get_DocumentsEx.res
Возвращает записи со следующими столбцами
|
Код указываемый
в опции 36
|
Тип
|
Описание
|
1
|
Число целое
|
Код документа (Оптимум)
|
2
|
Строка (50)
|
Идентификатор документа (КИС)
|
3
|
Строка (50)
|
Номер документа (Оптимум)
|
4
|
Строка (50)
|
Номер документа (КИС)
|
5
|
Число целое
|
Код типа документа (Оптимум)
|
6
|
Строка (50)
|
Код типа документа (КИС)
|
7
|
Число целое
|
Код торгпреда (Оптимум)
|
8
|
Строка (50)
|
Идентификатор ТП (КИС)
|
9
|
Дата время
|
Дата документа
|
10
|
Строка (50)
|
Дата документа ODBC (строка формата 'yyyy-mm-dd hh:mm:ss')
|
11
|
Дата время
|
Дата поставки
|
12
|
Строка (50)
|
Дата поставки ODBC (строка формата 'yyyy-mm-dd hh:mm:ss')
|
13
|
Число целое
|
Код типа оплаты (Оптимум)
|
14
|
Строка (50)
|
Идентификатор типа оплаты (КИС)
|
15
|
Число целое
|
Код склада ТП (Оптимум)
|
16
|
Строка (50)
|
Идентификатор склада ТП (КИС)
|
17
|
Число целое
|
Код «Кому» (Оптимум)
|
18
|
Строка (50)
|
Идентификатор «Кому» (КИС)
|
19
|
Число целое
|
Код прайс-листа (Оптимум)
|
20
|
Строка (50)
|
Идентификатор прайс-листа (КИС)
|
21
|
Число целое
|
Код собственного юр. лица (Оптимум)
|
22
|
Строка (50)
|
Идентификатор собственного юр. лица (КИС)
|
23
|
Число целое
|
Код юр. лица «Кому» (Оптимум)
|
24
|
Строка (50)
|
Идентификатор юр. лица «Кому» (КИС)
|
25
|
Денежный
|
Сумма документа
|
26
|
Строка (250)
|
Комментарий документа
|
27
|
Строка (50)
|
Доп. номер документа (номер кассового чека)
|
28
|
Число целое
|
Пометка документа:
1 — активный
0 — удаленный
|
29
|
Число целое
|
Сост. Документа (статус):
|
30
|
Денежный
|
Сумма документа
|
31
|
Строка (250)
|
Сумма документа в стоковом формате
|
33
|
Строка (50)
|
Идентификатор родительского документа (для оплат ) (КИС)
|
34
|
Строка (50)
|
Идентификатор центрального склада (КИС)
|
Таблица 35 Формат файла DMT_Get_DocItemsEx.txt
Порядок в файле txt
|
Наименование поля
|
Описание
|
1
|
orid
|
Передавать null
|
2
|
masterfid
|
Передавать null
|
3
|
docid
|
Пустое значение
|
4
|
ownerdistid
|
Пустое значение
|
5
|
ownerexid
|
Пустое значение
|
6
|
fieldslist
|
Пустое значение
|
Возвращаемые данные
Процедура возвращает только те столбцы, порядковые номера которых из приведенной ниже таблицы, перечислены в опции 37 (в таблице D_Options базы Оптимум) через «;».
Перечень возвращаемых полей в файле DMT_Get_DocItemsEx.res
Код указываемый в опции 37
|
Тип
|
Описание
|
1
|
Строка (50)
|
Идентификатор товара в КИС
|
2
|
Число целое
|
Кол-во в минимальных единицах
|
3
|
Денежный
|
Цена за единицу товара
|
4
|
Денежный
|
Сумма (цена *количество)
|
5
|
Денежный
|
Цена (Money)
|
6
|
Строка (255)
|
Цена (Строка)
|
7
|
Денежный
|
Сумма (Money)
|
8
|
Строка (255)
|
Сумма (Строка)
|
9
|
Число целое
|
Код единицы измерения, в котором выписывался товар
|
10
|
Денежный
|
Цена (Без учета скидки)
|
11
|
Денежный
|
Цена money (Без учета скидки)
|
12
|
Строка (255)
|
Цена строка (Без учета скидки)
|
13
|
Денежный
|
Скидка в %
|
14
|
Строка (50)
|
Идентификатор ед.измерения (КИС)
|
15
|
Число целое
|
Кратность Ед. изм.
|
16
|
Денежный
|
НДС строки
|
17
|
Денежный
|
Сумма НДС строки
|
18
|
Денежный
|
Сумма строки БЕЗ НДС
|
19
|
Денежный
|
Цена позиции БЕЗ НДС с учетом скидки
|
20
|
Число целое
|
Внутренний (ОПТИМУМ ) код документа.
|
21
|
Число целое
|
Внутренний (ОПТИМУМ ) код торгпреда.
|
22
|
Число целое
|
Кол-во заказано
|
23
|
Число целое
|
Кол-во подтверждено
|
24
|
Число целое
|
Кол-во рекомендованное
|
Таблица 36 Формат файла DMT_Set_DocumentStatusEx.txt
Порядок в файле txt
|
Наименование поля
|
Описание
|
1
|
doc_id
|
Код документа в Оптимум (получаем из первого поля файла DMT_Get_DocumentsEx.res )
|
2
|
masterfid
|
Код ТП в Оптимум (получаем из седьмого поля файла DMT_Get_DocumentsEx.res )
|
3
|
docidd
|
Идентификатор загруженного в КИС документа
|
4
|
docnumber
|
Номер загруженного в КИС документа
|
5
|
fstate
|
Статус документа в КИС:
0 - Готов к отправке в КИС
1 - Обработан
2 - Готов к отправке в КИС и на КПК
3 - Готов к отправке на КПК
5 - Промежуточное состояние (выгружен из КИС, но не подтвержден)
6 - Готов к отправке в КИС (Предварительный, используется при урезании заказов. Механизм урезания заказов описан ниже)
7 - Обработан (Предварительный, используется при урезании заказов)
8 - Готов к отправке на КПК (Предварительный, используется при урезании заказов)
9 - Готов к отправке в КИС и на КПК (Предварительный, используется при урезании заказов)
|
6
|
otherfields
|
Пустое значение
|
|