Файл обмена Заполнителя

Материал из Alta-Soft Wikipedia
Версия от 14:04, 23 января 2015; Belousov (обсуждение | вклад) (Простой документ)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Файл обмена - текстовый файл формируемый программой Заполнитель для передачи данных в другие Альта-программы.

Принцип работы

Передача данных из Заполнителя в программы экспорта производится посредством создания файла обмена в папке \IN\ рабочего каталога экспортной программы. Например С:\ALTA\IN\. Затем программа экспорта по команде от Заполнителя конвертирует этот файл в документ в своем внутреннем формате. В частности, "Альта-ГТД" создает документы, "Такса" наполняет список и т.д. После обработки файл удаляется. Поименование файлов идет по инкрементному принципу imp000.ini, imp001.ini, imp002.ini, .... При автоматическом вызове программы используется последний файл.

В зависимости от режима работы Заполнитель может формировать как один файл для создания одного документа, так и сразу несколько файлов для документов одного типа. Во втором случае к файлам устанавливается расширение .TMP


Структура файла

Файл обмена представляет из себя текстовый файл в кодировке Winows (cp1251, строки разделяются символами #13#10) со структурой w:INI-файла. Т.е. данные в файле организованы в виде секций, содержащих параметры со значениями:

   [Секция1] 
   Параметр1=Значение1 
   Параметр2=Значение2 
   
   [Секция2] 
   Параметр1=Значение1 
   Параметр2=Значение2 
   ... 


Перечень секций

  • Первая обязательная секция имеет вид:
   [Common] 
   IncludedDoc=<ИМЯДОКУМЕНТА>\<ИМЯГЛАВНОГОБЛОКА> 

,где

ИМЯДОКУМЕНТА - внутреннее краткое англоязычное наименование импортируемого документа; ИМЯГЛАВНОГОБЛОКА - внутреннее англоязычное название главного блока импортируемого документа.

Названия документов программы Альта ГТД для Windows можно посмотреть в файле \DATA\gtdwin.dcf, расположенном в рабочем каталоге программы Альта-ГТД. Это параметры DocFileExt= и MainBlock= из секций документов. Например, для документа инвойс секция [Common] имеет вид:

   [Common] 
   IncludedDoc=INV\block 
  • Вторая секция является необязательной и называется [ИМЯДОКУМЕНТА\ИМЯГЛАВНОГОБЛОКА.Header] В ней перечисляются данные для заголовка создаваемого документа, такие как реквизиты отправителя, получателя, номер документа и пр. Данные передаются в формате:

ИМЯПОЛЯ=ДАННЫЕ ДЛЯ ПОЛЯ Где: ИМЯПОЛЯ - латинский идентификатор поля документа в программе Альта ГТД. ДАННЫЕ ДЛЯ ПОЛЯ - собственно данные для заполняемой графы.

Узнать идентификатор можно несколькими способами. Например, если в программе Альта ГТД поставить курсор в нужное поле, то его идентификатор отображается в правом нижнем углу статусной строки. Список всех идентификаторов полей хранится в том же файле \DATA\gtdwin.dcf в секции [ИМЯДОКУМЕНТА.Fields] в строках сразу после начала секции.

Пример второй секции для документа Инвойс:

   [INV\BLOCK.HEADER] 
   INV_NUM=026/15 
   INV_DATE=13.11.02 

При обработке такого файла в заголовке инвойса заполнятся 2 поля: номер инвойса и дата инвойса.


  • Третья и последующие секции называются

[<ИМЯДОКУМЕНТА>\<ИМЯГЛАВНОГОБЛОКА>.Block<НОМЕРБЛОКА>] ,где НОМЕРБЛОКА - это порядковый номер товара в документе, начиная с 0.

Эти секции содержат данные для полей товара создаваемого документа в формате ИМЯПОЛЯ=ДАННЫЕ ДЛЯ ПОЛЯ. ИМЯПОЛЯ можно найти в файле \DATA\gtdwin.dcf в секции [ИМЯДОКУМЕНТА.Fields] внутри после строки, содержащей ИМЯГЛАВНОГОБЛОКА{&&NUM. Ниже приведен фрагмент \DATA\gtdwin.dcf для документа инвойс:

   [INV.Fields] 
   INV_NUM= 15 |Номер документа
   INV_DATE= 10 |Дата документа 
   .... 
   G44S= 16 |9.2-Nтов.в реестре 
   G44DD= 10 |Дата предст. недост.док. 
   BLOCK{&&NUM 
   7_NUM= 10 |Номер декларации, в которую будет экспортирован товар 
   32_NUM= 10 |Номер товара в создаваемой декларации 
   32_ID= 14 |Идентификационный номер товара 
   31_ARTICUL= 24 |Артикул товара 
   ...... 
   } 
   ... 

Поля, окрашенные красным, относятся к загловку инвойса, синие поля, вложенные в BLOCK{...}, относятся к товару инвойса.

Пример секций товаров для документа инвойс

   [INV\block.Block0] 
   31_ARTICUL=GHS323 
   
   [INV\block.Block1] 
   31_ARTICUL=AA1555 

При обработке такого файла, в документе инвойс будет создано 2 товара с заполненными полями Артикул. Количество последующих секций, т.е. товаров, не ограничено, но товары с номером большим, чем MaxExtraBlocks= из \DATA\gtdwin.dcf из секции [ИМЯДОКУМЕНТА.Header] не будут обработаны.

Дополнения (оборотные стороны) к графам

Для документов программы Альта ГТД помимо заголовка и данных товара, можно передавать данные для оборотных сторон. Синтаксис секций для обороток практически идентичен секциям, заполняющим данные о товаре. Только к имени основного блока через \ добавляется имя блока дополнения

   [Common] 
   IncludedDoc=<ИМЯДОКУМЕНТА>\<ИМЯГЛАВНОГОБЛОКА>\<ИМЯБЛОКАДОПОЛНЕНИЯ>

а в секциях описывающих записи дополнения, надо указать номер основного блока к которому относиться запись дополнения.

На примере документа ЭД2:Контракт

 [Common]
 IncludedDoc=E2CONT\ContractSpecification\SpecificationGoods
 
 [E2CONT\ContractSpecification\SpecificationGoods.Header]
 
 [E2CONT\ContractSpecification\SpecificationGoods.Block0]
 ContractSpecification=1
 GoodMarking=GHS323 
  
 [E2CONT\ContractSpecification\SpecificationGoods.Block1]
 ContractSpecification=2
 GoodMarking=AA1555 

Видно что в типе документа указан путь дополнения: ContractSpecification\SpecificationGoods т.е. основной блок Контракта - это спецификации (ContractSpecification), а уже к спецификациям добавляются списки в виде блоков товаров (SpecificationGoods). На основе этого файла будет создан контракт с двумя спецификациями. Артикул "GHS323" попадет в первую спецификацию, артикул "AA1555" - во вторую.


Один файл обмена теоретически может содержать несколько оборотных сторон для одного документа.


Примеры

Простой документ

Документ с двумя товарами. В шапке заполняются номер и дата документа.

   [INV\BLOCK.HEADER] 
   INV_NUM=026/15 
   INV_DATE=13.11.02 

   [INV\block.Block0] 
   31_ARTICUL=GHS323
   31_QUNT=12
   31_TEXT=ШТ 
   
   [INV\block.Block1] 
   31_ARTICUL=AA1555 
   31_QUNT=11
   31_TEXT=ШТ

Документ с дополнениями

Пример файла обмена для создания документа ГТД с оборотной стороной Контейнеры и Транспортные средства. В реальности в данный момент Заполнитель не умеет создавать такие файлы: программа может обрабатывать только одну таблицу за раз. Поэтому для создания документа с дополнениями надо сначала создать документ на основе таблицы с товарми, а потом отдельными операциями дозаполнить созданный документ дополнениями

   [Common] 
   IncludedDoc=GTD\block,GTD\Block\Kont,GTD\DKD 
   
   [GTD\block.Header] 
   1_1=ИМ 
   1_2=40 
   
   [GTD\block.Block0] 
   31_NAME=ПЫЛЕСОС 
   33_1=8509101000 
   42_1=20 
   38_1=5 
   31=1- ПЫЛЕСОС КИТАЙ 
   
   [GTD\block.Block1] 
   31_NAME=ГВОЗДОДЕР 
   33_1=8205599090 
   42_1=5.5 
   38_1=.25 
   31_COUNTRY=КИТАЙ 
   31=1- ГВОЗДОДЕР КИТАЙ 
   
   [GTD\Block\Kont.Block0] 
   BLOCK=1 
   CONT=КОНТ111 
   
   [GTD\Block\Kont.Block1] 
   BLOCK=2 
   CONT=КОНТ222 
   
   [GTD\DKD.Block0] 
   NGR=18 
   NTRANS=Е247ОН77 
   VIDTRANS=20 
   G212=643 
   
   [GTD\DKD.Block1] 
   NGR=18 
   NTRANS=А456ВА99 
   VIDTRANS=20 
   G212=643 
   

Данный пример создает ГТД с двумя дополнениями. Причем одно из них (котейнеры) потоварно.