Импорт данных справочников¶
Общие сведения¶
Данная утилита предназначена для первоначального заполнения всех обязательных справочников программы «М-АПТЕКА плюс» в процессе внедрения программы в организации. Заполнение справочников выполняется путём импорта данных из единственного текстового файла формата .csv.
Примечание
Другие (необязательные) справочники при внедрении заполняются или вручную, или путём импорта из других функциональных частей программы.
Подготовка файла с данными¶
Для импорта первоначального наполнения справочников на клиентской стороне готовится простой текстовый файл в формате .csv со следующими параметрами:
- Имя файла произвольное.
- В строках файла находится информация о товаре и его свойствах.
- В файле нет строки с названиями полей (только данные).
- Разделитель данных (полей) в строке – «;» (точка с запятой).
- Поля не обрамляются кавычками или какими-либо символами.
- Данные в кодировке Windows-1251.
В данном (единственном) файле должны находиться данные, используемые во всех обязательных справочниках программы «М-АПТЕКА плюс».
Структура файла¶
Наименование поля | Тип данных, макс. длина |
---|---|
Код товара | Целое число, 14 |
Наименование товара | Строка, 250 |
Код СИЗ | Строка, 13 |
Код производителя | Целое число, 5 |
Наименование производителя | Строка, 100 |
Код страны | Целое число, 5 |
Наименование страны | Строка, 50 |
Код страны по ОКСМ | Строка, 4 |
Код единицы измерения | Целое число, 7 |
Наименование единицы измерения | Строка, 10 |
Код единицы измерения по ОКЕИ | Строка, 4 |
Код спецгруппы | Целое число, 5 (код 0 зарезервирован для программы «М-АПТЕКА плюс») |
Наименование спецгруппы | Строка, 50 |
Код перечня | Целое число, 5 |
Наименование перечня | Строка, 50 |
Код фармгруппы | Целое число, 9 |
Наименование фармгруппы | Строка, 75 |
Ставка НДС | Целое число, 2 |
Штрих код завода изготовителя | EAN8 или EAN13 |
Код МНН | Целое число, 7 |
МНН | Строка, 100 |
Код поставщика | Целое число, 7 |
Наименование поставщика | Строка, 200 |
Код товара у поставщика | Строка, 50 |
Наименование товара у поставщика | Строка, 250 |
Примечания
- Целое число: если в файле значение любого из полей этого типа имеет длину больше указанной или не является целым числом, то это считается ошибкой и вся строка в базу записана не будет.
- Строка: если в файле значение поля этого типа имеет длину больше указанной, то это не считается ошибкой, но в базу будет записано значение указанной длины (то есть поле будет «обрезано» до указанной максимальной длины). Строка не должна включать управляющие символы (код <32 в десятичном виде).
- При наличии «лишних» полей строка будет обрабатываться согласно указанным алгоритмам, но сами эти «лишние» поля обрабатываться не будут.
Обязательные поля в строке файла: Код товара, Наименование товара (должно использоваться только полное наименование). Их отсутствие является ошибкой, и строка (целиком) в базу записана не будет.
Примечание
В файле не обязательно, чтобы одному товару, идентифицируемому по коду и полному наименованию, соответствовала только одна строка.
Для одного товара может быть несколько строк, в каждой из которых поля кода и наименования всегда заполнены, а часть других полей оставлены пустыми.
Например, в одной строке могут быть заполнены только поля с данными по поставщику, в другой – только поля с данными по стране, в третьей – только поля с данными по группам (спецгруппам, фармгруппам, и так далее).
Это позволяет формировать файл путём копирования в него данных отдельных справочников, хранящихся в какой-либо учётной форме.
Форма импорта¶
Форма импорта вызывается из пункта меню: Конструктор → Утилиты для базы → Импорт данных справочников.
Внимание
Этот пункт доступен только пользователю Разработчик.
Файл с подготовленными данными должен находиться на клиентском компьютере, с которого ведётся работа по импорту.
Файл выбирается по кнопке (Выбор файла), импорт начинается по нажатию кнопки Импорт (Начать импорт данных справочников из указанных журналов).
Обработка импортируемых данных¶
При обработке строки файла проверяется заполнение обязательных полей и соответствие структуре и типам данных. При импорте данных формируется лог-файл с именем ImportLog.txt, в который пишутся данные о количестве импортированных записей в каждый справочник, а также об ошибках.
Лог-файл автоматически записывается в каталог, определённый в диалоге для выбора файла с данными.
При наличии в этом каталоге одного или нескольких файлов логов, при старте импорта пользователю будет показано диалоговое окно с сообщением В данной папке присутствуют лог-файлы. Перезаписать существующие?
Варианты выбора дальнейших действий: Да, Нет и Отмена:
-
При выборе варианта Да в данном каталоге удаляются все файлы с маской
ImportLog*.txt
и после завершения импорта будет создан файлImportLog.txt
. -
При выборе варианта Нет система создаст новый файл, в конце имени которого будет инкрементное значение. Список файлов, которые будут создаваться при регулярном выборе такого варианта, будет следующим:
- ImportLog1.txt
- ImportLog2.txt
- ImportLog3.txt
- …
- ImportLogN.txt
-
При выборе варианта Отмена процесс импорта начат не будет.
Примечание
При импорте файла создаётся связка в таблице трансляции даже в том случае, если позиция уже присутствовала в базе на момент импорта.
Из строки файла создаются записи справочников по следующим алгоритмам:
-
Перед созданием записи проверяется наличие записи по коду страны:
- если запись с таким кодом существует – она не меняется (в базу ничего не записывается);
-
если записи с таким кодом не существует – создаётся новая запись с этим кодом.
-
Если код в файле не указан, то выполняется поиск записи в Справочнике стран по наименованию (поиск идёт на полное соответствие имеющимся записям в верхнем регистре).
- если запись найдена – она не меняется (в базу ничего не записывается);
- если запись не найдена – создаётся новая запись с новым кодом.
Примечание
По коду страны, коду ОКСМ и наименованию страны создаётся запись в справочнике стран.
- Если код по ОКСМ не указан, то запись в справочнике создаётся, но поле ОКСМ – не заполняется.
-
Справочник Единицы измерения.
Алгоритм аналогичен алгоритму заполнения Справочника стран.
- Вместо кода ОКСМ используется код ОКЕИ.
-
Алгоритм аналогичен алгоритму заполнения Справочника стран.
- В алгоритме участвуют только два поля: код спецгруппы и наименование спецгруппы.
-
Справочник Перечни товаров.
Алгоритм аналогичен алгоритму заполнения Справочника стран.
-
Справочник Фармгруппы товаров.
Алгоритм аналогичен алгоритму заполнения Справочника стран.
- В записи справочника прописывается ссылка на Справочник перечней в соответствии с данными указанными в текущей строке файла.
-
Справочник МНН. Алгоритм аналогичен алгоритму заполнения Справочника стран.
-
Справочник Внешние контрагенты. Алгоритм аналогичен алгоритму заполнения Справочника стран.
-
Справочник Производители товара.
Алгоритм аналогичен алгоритму заполнения Справочника стран.
- В записи справочника прописывается ссылка на Справочник стран в соответствии с данными указанными в текущей строке файла.
-
Алгоритм аналогичен алгоритму заполнения Справочника стран.
- В записи справочника прописываются ссылки на справочники производителей, стран, единиц измерения, спецгрупп, МНН и ставок НДС, в соответствии с указанной ставкой НДС.
- Заполняется Код СИЗ (необходимо заполнять для масок, перчаток, респираторов и т.д. - полный список и значения кодов см. в приложении к постановлению Правительства РФ от 16 апреля 2020 №521), заполняется привязка товара к фармгруппе, в соответствии с данными, указанными в текущей строке файла.
-
Справочник Заводские штрихкоды товара.
Для указанного ЗШК проверяется контрольная цифра (при наличии):
- Если контрольная цифра указана неверно, то запись не создаётся.
Перед созданием записи проверяется наличие записи по указанному ЗШК:
- Если запись с таким ЗШК существует, то она не меняется (в базу ничего не записывается).
- Если запись с таким ЗШК не существует – создаётся новая запись с этим ЗШК.
Для указанного ЗШК заполняется Справочник заводских штрихкодов для связки товар + производитель.
Если на каком-то шаге в строке файла нарушается требование к структуре файла, то дальнейшая обработка строки прекращается. В лог-файл записывается информация об ошибке, с описанием ошибки и номера строки.
Примечание
В процессе импорта в окне отображается ход импорта в виде индикатора процента выполнения.
По окончании импорта выдаётся сообщение о результатах с указанием имени лог-файла. При наличии ошибок – в сообщении указывается об этом.