Navigation:  Конфигурация комплекса > Шаблоны (Импорт/экспорт файлов) >

Настройка импорта данных

Previous pageReturn to chapter overviewNext page

Настройки импорта данных хранятся в справочнике R260 - "Импорт/экспорт файлов" и R261 - "Поля файлов для импорта/экспорта". Доступ к этим справочникам осуществляется через меню «Сервис/Конфигурация/Шаблоны – Экспорт файлов».

clip2447

 

Назначение полей справочника R260:

«Код» – Номер настройки по порядку – не менять

«Наименование настройки» – Наименование, по которому настройка будет выбираться – здесь может быть любая строка текста.

«Импорт/экспорт» – переключатель типа передачи: импорт – принять документы, экспорт – отправить документы или сформировать отчетную форму.

«Блок-кода подготовки исходной базы» – Здесь может находиться текст программы для подготовки и формирования временной базы, по которой в дальнейшем будут формироваться документы. В процессе работы программа должна вернуть как результат – указатель на сформированную временную базу. Этот блок-кода (программа) выполняется перед формированием документов, и здесь могут быть описаны public – переменные, необходимые для работы следующих блоков обработки, а также блоков формирования полей документа из справочника R261. Если блок подготовки базы вернет стандартное значение <nil>, то это будет означать отказ от приема документов, прием документов закончится и сообщений об ошибке не будет. Если во временной базе не будет ни одной записи, то документы не формируются и прием документов сразу закончится, но после него выполнится блок «Блок кода завершения обработки», в котором может находиться программа выдачи финальных сообщений. Иначе по всем записям из сформированной временной базы формируются внутренние документы (добавляются, корректируются или не изменяются – в зависимости от блоков преобразования по полям из справочника R261), а затем выполнится блок «Блок кода завершения обработки».

«Блок-кода завершения обработки» – Здесь может находиться программа обработки результатов добавления/коррекции всех документов, выдача соответствующих сообщений и закрытие рабочих баз данных, если нужно. В простейшем случае этот блок может оставаться пустым.

«Тип вх/вых. файла» – Переключатель типов входных данных. Возможные значения: База данных .dbf, Текстовый файл Windows, Текстовый файл DOS.

«Директория вх/вых. Файлов» – Блок-кода, программа или константная строка текста, определяющая имя каталога, где располагаются один или несколько файлов, содержащих входящую информацию, по которой будут формироваться документы. В случае константной строки «Директория вх/вых. Файлов» должна содержать одну строку – имя каталога, заключенное в кавычки. Если «Директория вх/вых. Файлов» задана программой, то она должна рассчитать и вернуть в качестве результата текстовую строку, содержащую имя каталога. В случае программы определения имени каталога, текст программы должен содержать более одной строки (это является признаком отличия константной строки от программы). Если в результате «Директория вх/вых. Файлов» вернет пустую строку, то прием документов отменяется.

«Имя файла» – Блок-кода, программа или константная строка текста, определяющая имя файла, содержащего входящую информацию, по которой будут формироваться документы. В случае константной строки «Имя файла» должно содержать одну строку – имя файла, заключенное в кавычки. Если «Имя файла» задано программой, то программа должна рассчитать и вернуть в качестве результата текстовую строку, содержащую имя файла. В случае программы определения имени файла, текст программы должен содержать более одной строки (это является признаком отличия константной строки от программы). Если в результате «Имя файла» возвратит пустую строку, то прием документов отменяется.

«Блок кода создания заголовка txt-файла» – Не используется при приеме документов.

«Блок кода создания нижнего колонтитула txt-файла» – Может содержать программу анализа результатов и выдачи сообщений после добавления, коррекции или возникновения ошибки при формировании очередного документа по каждой записи временной базы. Может оставаться пустым.

«Строка соединения» – Не используется при приеме документов.

«Ссылка» – Не используется при приеме документов.

«Название группы» – Используется для задания группировки при высветке справочника. Заполнение этого поля не обязательно.

Порядок выполнения блоков кода:

1.        «Директория вх/вых. Файлов».

2.        «Имя файла».

3.        «Блок-кода подготовки исходной базы».

4.        Выполняются последовательно все «Блоки кода преобразования» из справочника R261,они формируют поля создаваемого документа, документ добавляется, корректируется или пропускается.

5.        «Блок кода создания нижнего колонтитула txt-файла». Пункты 4 и 5 выполняются циклически для каждой записи временной базы (потенциально формируется столько документов, сколько записей во временной базе, сформированной в п. 3).

6.        «Блок-кода завершения обработки».

Возможности использования предопределенных переменных:

Для расширения возможностей программ в описанных выше блоках кода можно использовать заранее определенные переменные для доступа к данным и определения режимов обработки. Используемые переменные являются public-переменными и могут использоваться в программах блоков кода с момента их описания для чтения их значений (см. выше порядок выполнения блоков кода).

«Имя файла» – можно использовать переменную ‘DirName’, содержащую имя каталога принимаемых файлов.

«Блок-кода подготовки исходной базы» – можно использовать определенные выше переменные, а также:

‘FileName’ – содержит имя файла с принимаемыми данными

‘SrcDbf’ – указатель на объект – базу данных с принимаемыми данными в случае типа файла .dbf, иначе nil. Эта переменная используется для доступа к полям и записям исходной базы, например datfld := (srcDbf)->DATDOC; (srcDbf)->(Dbskip()) и проч.

'SrcTxt' – указатель на строку текста – в случае типа файла «Текст Windows» или «Текст DOS», иначе nil. Эта переменная может использоваться в функциях разбора строки ReadLn(srcTxt)– для получения очередной строки, TextEof(srcTxt)– для определения окончания строк текста, TextReset(srcTxt)– для перехода к началу текста (подробнее см. «Функции интерпретатора»).

‘ConvFromDos’ – логическая переменная, установленная в True (.t.) в случае, когда принимаемые данные типа «Текст DOS». Используется для «указания» необходимости конвертации кодировки из Dos в Windows. Пример: str := ReadLn(srcTxt,ConvFromDos).

«Блок кода создания нижн. колонтитула txt-файла» – ‘FormDocResult’ – числовая переменная, содержит результат добавления/коррекции очередного документа. Может принимать значения: -1 – ошибка добавления документа, 0 – отказ от обработки документа, 1 – коррекция существующего документа, 2 – добавление нового документа.

Вышеперечисленным предопределенным переменным нельзя присваивать новые значения нигде в программах блоков кода – это приведет в дальнейшем к ошибке выполнения программы.

Кроме вышеперечисленных переменных в программах блоков кода можно использовать другие public-переменные, которые можно порождать прямо в блоках кода. Эти переменные нужно использовать с осторожностью и только для передачи необходимых параметров в ниже выполняемые блоки кода (возможна коллизия имен переменных), во всех иных случаях в программах блоков кода нужно использовать local-переменные, которые не приводят к коллизии имен с переменными вызывающей программы.

 

Справочник R261 – «Поля файла для импорта/экспорта» – содержит информацию для расчета значений каждого поля формируемых документов. Просмотр и изменение содержимого вызывается из справочника вариантов настроек импорта/экспорта по клавише CTRL+F7-Поля.

Назначение полей справочника R261:

«Русское наименование поля» – Наименование поля документа (комментарий) – заполняется не обязательно.

«Идентификатор поля» – Идентификатор поля документа в базе DOCS – заполняется обязательно.

«Тип поля» – Не используется при приеме документов.

«Ширина поля» Не используется при приеме документов.

«Кол-во зн.; после зап.» Не используется при приеме документов.

«Номер поля» – Число – номер по порядку – определяет порядок формирования полей. Имеет значение если в «Блоках кода преобразования» используются значения переменных, рассчитанные для уже сформированных полей документа.

«Блок-кода преобразования» – Блок-кода (программа) расчета значения для поля документа в базе DOCS с именем, определенным в «Идентификаторе поля». Эта программа в качестве результата должна вернуть значение, по типу совпадающее с типом поля в DOCS.

«Ключевое поле поиска» – Переключатель «Да/Нет». В случае «Да» – текущее рассчитанное значение поля будет использоваться в ключевом выражении поиска соответствующего документа в базе DOCS. Таким образом, устанавливается соответствие по всем полям, у которых «Ключевое поле поиска» – «Да» и только при полном их совпадении считается что «такой» документ уже есть и производится его коррекция, иначе производится добавление нового документа в базе DOCS.

Для правильного формирования документа полям с именами (идентификаторами полей) ‘KINDDOC’ и ‘LVLNUM’ должны быть обязательно присвоены соответствующие значения. Если значение ‘KINDDOC’ останется пустым (пустая строка или nil), то текущий документ не формируется и произойдет переход к формированию следующего документа (следующая запись по временной базе). «Блок кода создания нижн. колонтитула txt-файла» из R260 в этом случае не выполняется. Это свойство можно использовать для пропуска ненужных документов при приеме. Если ‘LVLNUM’ останется пустым, то это считается ошибкой и будет выдано соответствующее сообщение (документ также не формируется).