Как создать новый макет импорта¶
Вопрос:
Что делать, когда у существующего контрагента (например, поставщика) меняется формат электронных документов. Имеющиеся макеты (типы импорта) не позволяют загрузить такие электронные документы в БД «М-АПТЕКА плюс». Та же проблема возникает, когда появляется новый контрагент.
Ответ:
В таком случае следует создать новый макет (тип импорта).
Для создания макета нужно иметь данные о спецификации (структуре полей) файлов, присылаемых контрагентом. По этим спецификациям следует установить соответствия между полями файла поставщика и полями БД «М-АПТЕКА плюс».
Также необходимо выявить, какие преобразования форматов (например, даты в формате ДД.ММ.ГГ может быть нужно преобразовать в формат ДД.ММ.ГГГГ и тому подобное).
Спецификации со стороны «М-АПТЕКА плюс» приведены ниже на этой же странице:
- Спецификация импорта накладной поставщика в «М-АПТЕКА плюс»
- Спецификация импорта прайс-листа поставщика в «М-АПТЕКА плюс»
Внимание
Создание макета «с нуля» требует навыков программирования и не рекомендуется. Вместо этого рекомендуется сделать копию существующего макета и изменить её под нужный формат.
Как сделать копию, см. Как найти макет поставщика и Что делать, если несколько поставщиков используют одинаковый формат накладной.
Если нужно создать макет для импорта накладной, нужно скопировать какой-либо из существующих макетов накладной, если для прайс-листа, то скопировать какой-либо макет прайс-листа.
Чтобы выбрать подходящий макет-прототип, следует сравнить состав импортируемых полей в прототипе и в спецификации на файл контрагента - лучше всего подойдёт макет, в котором задействовано максимальное количество используемых в программе «М-АПТЕКА плюс» полей из файла контрагента.
Примечание
Все обязательные поля в макете должны присутствовать.
Спецификация импорта накладной поставщика в «М-АПТЕКА плюс»¶
№ | Назначение данных | Имя поля в базе | Тип данных | Комментарий |
---|---|---|---|---|
1 | Номер накладной поставщика | Docs.Titles.NumberOfNakl | Текст | Произвольный текст длиной не более 50 знаков |
2 | Дата поставщика | Docs.Titles.DateOfSupplier | Дата | Требование см. в Доп. условиях п.1 |
3 | Код товара у поставщика | CodeDrugS | Число | Требование см. в Доп. условиях п.3 |
4 | Наименование товара | Drugs.FullName | Текст | Произвольный текст длиной не более 250 знаков |
5 | Код производителя | CodeOfProducer.ExtCode | Число | Целое положительное число (лучше не заполнять!) |
6 | Наименование производителя | CodeOfProducer.FullName | Текст | Произвольный текст длиной не более 100 знаков |
7 | Код страны | Country.ExtCode | Число | Целое положительное число (лучше не заполнять!) |
8 | Наименование страны | Country.FullName | Текст | Произвольный текст длиной не более 100 знаков |
9 | Количество | Quantity | Число | Положительное десятичное число |
10 | Цена изготовителя (производителя) без НДС | CenaProiz | Число | Требование см. в Доп. условиях п.2 |
11 | %наценки посредника | PercNacDiler | Число | Требование см. в Доп. условиях п.2 |
12 | Цена закупочная без НДС | CenaUch | Число | Требование см. в Доп. условиях п.2 |
13 | %НДС PercSupplier | Число | Целое число из допустимых значений 0, 10, 18 | |
14 | Цена закупочная с учётом НДС | CenaZak | Число | Требование см. в Доп. условиях п.2 |
15 | Сумма по цене закупочной без НДС | sumCenaUch | Число | Требование см. в Доп. условиях п.2 |
16 | Сумма по цене закупочной с НДС | sumCenaZak | Число | Требование см. в Доп. условиях п.2 |
17 | Цена реестровая | CenaReest | Число | Требование см. в Доп. условиях п.2 |
18 | Код лаборатории | LabSert.ExtCode | Число | Целое положительное число (лучше не заполнять!) |
19 | Наименование лаборатории | LabSert.FullName | Текст | Произвольный текст длиной не более 200 знаков |
20 | Сертификат | ProductCertif | Текст | Произвольный текст длиной не более 50 знаков |
21 | Дата сертификата (действует до) | DateSertif | Дата | Требование см. в Доп. условиях п.1 |
22 | Дата выдачи сертификата | DateSertifB | Дата | Требование см. в Доп. условиях п.1 |
23 | ГТД - номер грузовой таможенной декларации | NumberGTD | Текст | Произвольный текст длиной не более 50 знаков |
24 | Срок годности товара SrokGodn | Дата | Требование см. в Доп. условиях п.1 | |
25 | Серия товара | ProductSerial | Текст | Произвольный текст длиной не более 100 знаков |
26 | Дата оплаты по документу | Docs.Titles.DatePay | Дата | Требование см. в Доп. условиях п.1 |
27 | Код грузополучателя в системе поставщика | Subdiv | Число | Целое положительное число |
28 | Дата реализации производителя | DateSale | Дата | См. в Примечании п.4 |
Дополнительные условия:
-
Данные с типом Дата в файле могут быть в формате ДД.ММ.ГГГГ или ДД.ММ.ГГ или ДДММГГГГ. Для корректной записи в базу при описании макета необходимо подключить к колонке Тип функцию преобразования данных во внутренний формат Дату из формата ДДММГГГГ или ДД.ММ.ГГГГ или ДД.ММ.ГГ перевести в хоролог
<User.MethodsOnConvert.ConvertDateToHorolog>
(см. картинку в нижней таблице Как найти макет поставщика). -
Данные о ценах и суммах должны быть представлены в виде положительного десятичного числа без ведущих «нулей», два знака после «запятой», в качестве разделителя десятичной части использовать «точку».
-
Требования к данным Код товара у поставщика – данные должны быть представлены любым текстовым значением длиной не более 50 знаков и не содержащими ведущих пробелов и «нулей».
-
Примечание
Дату для поля Дата реализации производителя указывает поставщик в электронной накладной, в программу "М-АПТЕКА плюс" данные попадают при импорте этой накладной.
Внимание
Должен быть настроен макет импорта!
-
При описании макета, если в файле поставщика нет данных о Цене закупочной с учётом НДС, а есть данные о закупочной цене без НДС, следует выбрать поле в базе Цена закупочная без НДС (CenaUch).
-
Если в файле поставщика есть данные о сумме товара в закупочных ценах с НДС или без НДС, тогда при описании макета следует выбрать одно из полей базы Сумма по цене закупочной без НДС (sumCenaUch) или Сумма по цене закупочной с НДС (sumCenaZak). При этом при импорте система автоматически рассчитает цены закупки, причём расчёт суммы НДС будет выполняться от суммы товара. Таким образом, в макете не нужно описывать импорт данных по ценам закупки.
-
Данные, которых нет в файле поставщика, система дополняет из справочников или рассчитывает. Например, если в файле по товару не указан %НДС, то эти данные берутся из Справочника товаров; если не указана цена производителя, то она рассчитывается на основании цены закупочной и %наценки посредника и так далее. Недостающие данные также могут заполняться на основании данных по предыдущим приходам, например, данные по сертификатам, срокам годности, лабораториям.
-
Срок годности товара по умолчанию равен дате окончания действия сертификата, поэтому при описании макета не обязательно описывать обработку данных по обоим полям, достаточно указать обработку Срока годности товара.
-
Данные из файла, которым нет соответствия в БД или они не нужны при обработке, следует присвоить имя, состоящее из нескольких одинаковых букв (произвольных), например, «zzzzz».
-
Без данных, которые выделены жирным шрифтом, накладная в базу не запишется. Остальные данные используются системой для разных целей, а именно:
-
Для расценки товара могут использоваться следующие данные:
- Наименование производителя.
- Наименование страны.
- Цена изготовителя (производителя) без НДС.
- %наценки посредника.
- %НДС.
- Цена реестровая.
- Срок годности товара.
-
Для контроля фальсификата могут использоваться следующие данные:
- Наименование производителя.
- Наименование страны.
- Серия товара.
-
Для контроля товара с истекшим сроком годности могут использоваться следующие данные:
- Срок годности товара.
Спецификация импорта прайс-листа поставщика в «М-АПТЕКА плюс»¶
№ | Назначение данных | Имя поля в базе | Тип данных | Комментарий |
---|---|---|---|---|
1 | Код товара у поставщика | NomNS | Текст | Произвольный текст длиной не более 50 знаков |
2 | Наименование товара у поставщика | FullNameS | Текст | Произвольный текст длиной не более 300 знаков |
3 | Количество | KolS | Число | Положительное десятичное число 4 знака после запятой |
4 | Наименование производителя | NIzg | Текст | Произвольный текст длиной не более 200 знаков |
5 | Наименование страны | CountryName | Текст | Произвольный текст длиной не более 100 знаков |
6 | Количество в упаковке | KolU | Текст | Длина 50 знаков |
7 | Цена изготовителя (производителя) без НДС | Cpro | Число | Требование см. в Доп. условиях п.2 |
8 | Цена реестровая | Clst | Число | Требование см. в Доп. условиях п.2 |
9 | %НДС | PrNDS | Число | Целое число из допустимых значений 0, 10, 18 |
10 | Цена закупочная с учётом НДС | Copt | Число | Требование см. в Доп. условиях п.2 |
11 | Срок годности | Srok | Дата | Требование см. в Доп. условиях п.1 |
12 | Дата создания прайса | SprPrice.DateCreate | Дата | |
13 | Время создания прайса | SprPrice.TimeCreate | Дата | |
14 | Код поставщика в таблице трансляции МАП | CodeOfSupplier | Число | Положительное целое число (для КроссМаркета) |
15 | Наименование производителя | NIzgTmp | Текст | То же самое что и Nizg |
16 | Дата создания прайс-листа | SprPrice.DateCreate | Дата | Требование см. в Доп. условиях п.1 |
17 | Время создания прайс-листа | SprPrice.TimeCreate | Время | Требование см. в Доп. условиях п.6 |
Дополнительные условия:
-
Данные с типом Дата в файле могут быть в формате ДД.ММ.ГГГГ или ДД.ММ.ГГ или ДДММГГГГ. Для корректной записи в базу при описании макета необходимо подключить к колонке Тип функцию преобразования данных во внутренний формат Дату из формата ДДММГГГГ или ДД.ММ.ГГГГ или ДД.ММ.ГГ перевести в хоролог
<User.MethodsOnConvert.ConvertDateToHorolog>
(см. картинку в нижней таблице Как найти макет поставщика). -
Данные о ценах и суммах должны быть представлены в виде положительного десятичного числа без ведущих «нулей», два знака после «запятой», в качестве разделителя десятичной части использовать «точку».
-
Требования к данным Код товара у поставщика – данные должны быть представлены любым текстовым значением длиной не более 50 знаков и не содержащими ведущих пробелов и «нулей».
-
Данные из файла, которым нет соответствия в БД или они не нужны при обработке, следует присвоить имя, состоящее из нескольких одинаковых букв (произвольных), например, «zzzzz».
-
Без данных, которые выделены жирным шрифтом, прайс-лист в базу не запишется.
-
Данные с типом Время в файле могут быть в формате ЧЧ:ММ или ЧЧММ. Для корректной записи в базу при описании макета необходимо подключить к колонке Тип функцию преобразования данных во внутренний формат Конвертирует время из "ЧЧММ" или "ЧЧ:ММ" в хоролог
<User.MethodsOnConvert.ConvertTime>
(см. картинку в нижней таблице Как найти макет поставщика).