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

5 Работа с выгрузкой данных

Для работы «Универсального транслятора данных 1С» необходимо чтобы была установлена СУБД необходимого типа (ClickHouse, MySQL, Microsoft SQL, PostgreSQL), в ней была создана БД и создана учетная запись пользователя, под которым будет производиться подключение и работа с БД.

Сама БД должна быть доступна с сервера приложений 1С.

Создание подключения к БД

Для создания подключения к базе данных необходимо открыть «Настройки подключения к SQL».

Открыть «Настройки подключения к SQL»

Для создания нового подключения необходимо нажать на кнопку «Создать» и в форме создания подключения необходимо заполнить необходимые поля:

  • Наименование подключения (Наименование);
  • Имя или IP-адрес сервера БД (Server);
  • Логин пользователя для подключения к БД (Login);
  • Пароль пользователя для подключения к БД (Password);
  • Имя драйвера, который будет использован для подключения к БД (Driver);
  • Имя БД, созданной в СУБД (Base);
  • Тип СУБД;
  • Признак «Использовать по умолчанию» (при установке данного признака созданное подключение будет автоматически подставляться в настройки пакетов выгрузки).
Настройки подключения к SQL

Интерфейс управление пакетами данных

Основное рабочее место для управления пакетами данных - «Управление Коннектором» (далее по тексту – УК) располагается в блоке «Сервис» подсистемы «Коннектор (ИТ-Координата)».

Блок “Сервис”

Состав интерфейса УК

Состав интерфейса УК

1) Кнопки управления предпросмотром данных и выгрузкой в БД 2) Справочник настроек, то есть пакетов данных 3) Блок управления способами выгрузки данных 4) Блок настройки данных для выгрузки 5) Блок дополнительных отборов к выгрузке 6) Блок предпросмотра данных перед выгрузкой 7) Дополнительные настройки пакета данных

Создание набора данных для выгрузки (пакета данных)

Для создания набора данных, необходимо в УК в поле «Текущие настройки» нажать на кнопку создания нового пакета.

Текущие настройки

В появившейся форме создания новой настройки (пакета данных) необходимо заполнить поля:

  • Наименование настройки;
  • Имя таблицы, которая будет создана в БД после первой выгрузки данных в нее (в наименовании таблицы в БД следует использовать латинские буквы, цифры, без пробелов, могут быть использованы нижнее подчеркивание в качестве разделителя между текстом).

Для записи новой настройки необходимо нажать на кнопку «Записать и закрыть» или «Записать».

Кнопка «Записать и закрыть»

Стандартный запрос

В рамках описания работы «Стандартного запроса» будет приведен пример выгрузки справочника «Склады» в промежуточную БД. Аналогичные действия могут быть выполнены для любого другого объекта системы, содержащей данные необходимые для передачи в промежуточную БД.

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

Для передачи справочника «Склады» необходимо:

  1. Выбрать способ выгрузки «Стандартный запрос»
Cпособ выгрузки «Стандартный запрос»
  1. Последовательно, под блоком «Блок управления способами выгрузки данных» выбрать тип, имя и таблицу объекта из которого будут выгружаться данные.

В нашем примере это:

  • Тип объекта: «Справочник»
  • Имя объекта: «Склады»
  • Таблица: Основные данные

Таблицу из которой будет выгружен объект система по умолчанию выберет «Основные данные». Если требуется выгрузить данные из табличной части объекта, необходимо выбрать необходимую табличную часть в соответствующем поле.

Выбор табличной части
  1. После выбора имени объекта система автоматически выведет в «Блок настройки данных для выгрузки» все реквизиты выбранного объекта, отсортированные по алфавиту, а также все реквизиты будут помечены для передачи слева флагом. В таблицу будет выведена информация о синониме реквизита (Синоним в 1С), его имени, заданного в конфигураторе (Имя в 1С), а также транслит имени реквизита латинскими буквами (Имя в БД).
Информация о синониме реквизита

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

  1. Следующим шагом необходимо определить, какие реквизиты должны быть выгружены из выбранного объекта. В качестве примера определим эти реквизиты: «Ссылка», «Наименование», «Подразделение», «Склад / Магазин».

Для этого снимем все отмеченные для передачи флаги кнопкой с изображением четырех серых квадратов, отметим вручную необходимые реквизиты соответствующим флагом.

Выбор реквизитов для выгрузки

Стоит обратить внимание, что расположение реквизитов в данной таблице – диктует порядок создания колонок в БД. Если порядок реквизитов в таблице не устраивает, то его можно изменить с помощью кнопок Вверх/Вниз.

Изменение порядка реквизитов

На этом основная настройка пакета выгрузки завершена.

  1. Для предпросмотра результата выгрузки, необходимо нажать в УК кнопку «Показать результат», после чего система выведет в «Блок предпросмотра данных перед выгрузкой» данные соответствующие указанным в наборе настройками.
Показать результат
  1. Дополнительные отборы. Для набора данных сформированного «Стандартным запросом» возможно указание дополнительного отбора к данным которые можно выгрузить в промежуточную БД. Блок управления отборами должен быть знаком сотруднику, который занимается системами 1С.

Допустим, мы хотим исключить из выгрузки склады, которые являются «папками» (т.е. группами), а также нужны только те склады, в которых заполнен реквизит «Подразделение». Для этого добавим дополнительный отбор и укажем «Это группа» Равно «Нет» и добавим еще 1 отбор по реквизиту «Подразделение» и укажем, что он «Заполнен», сгруппируем данные условия группой «И».

Дополнительные отборы

После предпросмотра результата выгрузки увидим, что из данных пропали группы и склады в которых не заполнен реквизит «Подразделение».

Результат после предпросмотра
  1. Для записи итогов настройки пакета, необходимо нажать на кнопку «Записать изменения настроек», только после записи настроек пакета возможна выгрузка данных в промежуточную БД.

В случае нажатия на кнопку «Отменить изменение настроек». тогда последние НЕ записанные изменения будут отменены и пакет вернется в состояние «до изменения».

Записать изменение настроек

Выгрузка данных в БД

Для выгрузки данных в БД необходимо нажать на кнопку «Выгрузить результат в базу данных». При завершении выгрузки выведется сообщение об успешной или неуспешной выгрузке данных в БД.

Кнопка “Выгрузить результат в базу данных”

Проверим результат выгрузки в БД (в примере использовалась база PostgreSQL).

Результат выгрузки в БД

Обратите внимание, что в наименования колонок были добавлены дополнительные префиксы, которые указывают на тип данных в базе 1С.

Так же дополнительно была создана колонка «_recordingdate» в которой фиксируется дата выгрузки данных.

Все данные ссылочного типа выгружаются двумя колонками «тип» и «уникальный идентификатор элемента справочника. В нашем примере значение реквизита «Подразделение» выгружено колонками «ntype_podrazdelenie» в котором зафиксирован тип справочника, который используется в 1С, и «ref_podrazdelenie», в которое в качестве значения выгружен уникальный идентификатор элемента справочника «Структура предприятия». Если ссылочный реквизит заполнен пустой ссылкой (т.е. не заполнен), то в качестве значения выгружается значение «00000000-0000-0000-0000-000000000000».

Значение перечисления выгружается аналогично ссылочному объекту, единственное отличие, что в колонку с префиксом «ref_» выгружается значение перечисления, указанное в конфигураторе.

Выгрузка изменений

Выгрузка изменений с помощью «Коннектора» возможна только в режиме выгрузки «Стандартный запрос», только для справочников, документов, регистров сведений и накопления, подчиненных регистратору.

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

Признак «Выгружать только изменения»

Фактом изменения данных для документов и справочников является запись объекта, для регистров сведений и накопления подчиненных регистратору является проведение регистратора (то есть документа).

При записи или проведении объектов делаются записи в соответствующих дополнительно созданных регистрах сведений (см. п. 4).

Настройка выгрузки по расписанию

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

Настройка выгрузки по расписанию

Произвольный запрос

При выборе способа выгрузки данных «Произвольный запрос» в УК появится дополнительная вкладка «Произвольный запрос» в котором необходимо разместить запрос к базе данных на языке 1С, так же, как если бы он был бы написан в консоли запросов.

Если запрос не был заготовлен ранее, то его можно сформировать прямо в УК нажав на кнопку «Открыть конструктор запроса» (возможно для написания запроса потребуется помощь программиста 1С).

В качестве примера выгрузки возьмем тот же справочник складов с теми же условиями (выгрузка складов, не являющихся группами и с заполненным подразделением).

В поле запроса разместим следующий запрос:

Пример запроса

В качестве параметра «Подразделение» укажем на вкладке «Произвольный запрос» пустое значение.

Пример параметра «Подразделение»

Переключимся обратно на вкладку «Основной блок» и увидим, что в «Блок настройки данных для выгрузки» появились поля которые были выбраны в запросе, они уже будут выбраны для выгрузки, но расположены в алфавитном порядке. Для изменения порядка следования колонок можно воспользоваться кнопками .

При нажатии на кнопку «Показать результат» в «Блок предпросмотра данных перед выгрузкой» будет выведен результат запроса.

Дополнительно к отборам, указанным в запросе, можно в «Блоке дополнительных отборов к выгрузке» указать дополнительные отборы к данным которые были сформированы запросом.

В качестве примера укажем, что в наименовании складов должно содержаться текст «метал».

Пример заполнения «Блока дополнительных отборов к выгрузке»

Для выгрузки данных в БД, необходимо записать настройки пакета данных и нажать на кнопку «Выгрузить результат в базу данных».

Кнопку «Выгрузить результат в базу данных»

Произвольный код 1С (Функции)

Способ выгрузки данных «Произвольный код 1С» (с условным названием в УК «Функция») был разработан специально, так как запросы от Заказчиков для выгрузки данных звучат как «Выгрузить данные как в том отчете».

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

Создание таблицы итоговых данных

Прежде чем писать код, необходимо определиться в каком формате (таблице) данные из отчета должны быть выгружены из 1С.

Для этого необходимо выбрать режим выгрузки «Функция» и в появившейся вкладке «Функция» выбрать элемент справочника «Функции».

Перед ее выбором, создадим «Функцию», которая будет нам возвращать нужный нам результат.

В качестве примера выгрузим так же справочник «Складов с теми же условиями, что использовали при выгрузке «Произвольным запросом» (выгрузка складов, не являющихся группами, с заполненным подразделением, в наименовании которых встречает слово «метал»).

  1. Переходим в справочник «Функций».
Cправочник «Функций»
  1. Нажимаем кнопку «Создать» и создаем новый элемент справочника. Если в системе 1С имеется справочник «Дополнительные отчеты и обработки», то будет доступен переключатель указания местонахождения функции либо в общем модуле конфигуратора, либо в модуле объекта внешней обработки.

Если такой справочник отсутствует, то переключатель будет не доступен.

Пример с отсутствующим справочником
  1. Необходимо указать «Наименование» функции «Выгрузка складов».
  2. Укажем место расположения функции в переключателе «Функция выполняется из» - «Общего модуля» (в составе «Коннектора» входит общий модуль «ИТКФункции», который создан специально для размещения функций для выгрузки данных). В поле «Путь к функции строкой» укажем «ИТКФункции.ВыгрузкаСкладов».
  3. На вкладке «Поля результата» необходимо сформировать таблицу, которая должна выгружаться из 1С. Для этого по кнопке «Добавить» выбираем тип значения колонки таблицы, после добавления колонки в таблицу переименуем название колонки в поле «Имя».
осторожно

В поле «Имя» необходимо указать наименование колонки без пробелов между словами, так как именно эти наименования колонок будут использоваться в коде 1С.

В нашем примере создадим 4 колонки:

  • Ссылка (тип «Справочник.Склады»);
  • Наименование (тип «Строка»);
  • Подразделение (тип «Справочник.СтруктураПредприятия»);
  • ТипСклада (тип «Перечисление.ТипыСкладов»).
Пример создания колонок
  1. На вкладке «Параметры» мы можем указать дополнительные параметры, которые могут быть использованы в коде 1С. В нашем примере введем 2 параметра:
  • «Подразделение» (тип «Справочник.СтруктураПредприятия»), в качестве значения параметра ничего не укажем (то есть пустая ссылка);
  • «ПолеПоискаНаименование» (тип «Строка»), значение «метал».
осторожно

Наименования параметров указывать необходимо указывать без пробелов между словами.

Пример указания дополнительных параметров
  1. Запишем настройки нашей «Функции» по кнопку «Записать и закрыть». На этом создание элемента справочника завершено.
  2. Переходим в конфигуратор и открываем общий модуль «ИТК_Функции».
  3. Создадим функцию с таким же названием какое мы указали в поле «Путь к функции строкой» после указания общего модуля, то есть «ВыгрузкаСкладов».

Функция должна быть ЭКСПОРТНОЙ и содержать в 2 параметра:

  • ТаблицаПолей – это пустая таблица значений с типизированными колонками, которую мы создавали в справочнике «Функции» на вкладке «Поля результата».
  • СтруктураПараметров – это структура с параметрами, которые мы указывали на вкладке «Параметры» в элементе справочника функции.

Функция должна вернуть заполненную «ТаблицуПолей» данными из 1С.

В рамках нашего примера разместим в теле функции следующий код:

Пример кода в теле функции

Что делает этот код

В коде выполняется запрос к базе 1С к справочнику «Склады» с отборами по реквизитам:

  • ЭтоГруппа = Ложь;
  • Подразделение НЕ принимает значение из параметра «СтруктураПараметров.Подразделение» (так как в параметрах «Функции» мы ничего не указали в качестве значения, то будет передана пустая ссылка на справочник «Структура предприятия»);
  • В Наименование склада входит текст, переданный в параметре «СтруктураПараметров.ПолеПоискаНаименование» (мы передали значение «метал»).

После выполнение запроса, кодом заполняется «ТаблицаПолей» данными результата запроса и возвращает эту таблицу как результат работы «Функции».

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

После возвращения в режим «Предприятия», необходимо выбрать функцию на вкладке «Функция» в УК в ранее созданной настройке пакета данных.

Для просмотра результата выполнения функции - нажмите на кнопку «Показать результат».

Просмотр результата

Выгрузка данных в БД и просмотр результатов

Для выгрузки данных в БД, необходимо записать настройки пакета данных и нажать на кнопку «Выгрузить результат в базу данных».

Выгрузка данных в БД