Коннектор к 1С. Обзор полезных обработок 1С для настройки интеграции и миграции.

18 1

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

Скачать архив с обработками можно по ссылке: Полезные обработки 1С.zip

Чтобы запустить обработку:

1. Запустите «1С Предприятие» в режиме «Обычное приложение». Для этого используйте дополнительный параметр запуска:

/RunModeOrdinaryApplication

2. В меню Файл выберите пункт Открыть и в открывшемся окне выберите нужный файл.

Обработка "Поиск объекта 1С по GUID"

Обработка позволяет:

  • определить GUID любого объекта 1С (записи справочника, документа и пр.);
  • по заданному GUID найти ссылку на объект 1С (запись справочника документа и пр.).

Чтобы определить GUID объекта 1С:

1. Запустите обработку «Поиск ссылки по GUID».

2. В поле Ссылка нажмите на кнопку T, выберите тип объекта.

3. Нажмите на кнопку  и выберите объект 1С. Если необходимо выбрать другой объект, очистите значение по кнопке .

4. Нажмите на кнопку Показать GUID. В результате в поле GUID отобразится уникальный идентификатор объекта 1С.


 

Чтобы определить ссылку на объект 1С, введите уникальный идентификатор объекта в поле GUID и нажмите на кнопку Найти ссылку. Таким образом в поле Ссылка отобразится найденный объект из базы данных. Кнопка  позволяет открыть карточку текущего объекта.

Обработка "Консоль запросов"

Обработка позволяет составить и выполнить запрос на языке запросов 1С. Используется для написания вычислений в событии коннектора «При выгрузке из 1С».

Рассмотрим, как выполняется обработка на примере запроса по получению юридического адреса контрагента:

1. Запустите обработку «Консоль запросов».

2. В основное окне обработки добавьте текст запроса:

ВЫБРАТЬ
  КИ.Представление КАК Адрес
ИЗ
  РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
  КИ.Объект = &Объект
  И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
  И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)

Запрос можно составить самостоятельно или с помощью конструктора запросов (пункт контекстного меню Конструктор запросов):


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

3. Чтобы выполнить запрос, нажмите кнопку Выполнить (F7). Результат выполнения запроса отобразится в правом нижнем окне.

Обработка "Выполнение произвольного кода"

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

Чтобы проверить вычисление:

1. Запустите обработку «Выполнение произвольного кода».

2. В окне редактора напишите код вычислений:

3. Для выполнения кода нажмите на кнопку Выполнить.

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

Пример 1

Необходимо написать вычисления для события коннектора «При выгрузке из 1С» по получению юридического адреса контрагента. Текст события представляет собой xml-текст, в котором задаются вычисляемые реквизиты 1С. Подробнее см. в справке Коннектор к «1С:Предприятие 8» События и фильтры.

Ранее с помощью обработки «Консоль запросов» мы создали и отладили запрос:

ВЫБРАТЬ
  КИ.Представление КАК Адрес
ИЗ
  РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
  КИ.Объект = &Объект
  И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
  И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)

Теперь нужно написать вычисления на языке 1С, в которых нужно выполнить этот запрос и вернуть результат в виде строки.


Для отладки вычислений добавьте определение переменной Источник:

Источник = Справочники.Контрагенты.НайтиПоКоду("000000007");

И вывод результата:

Сообщить(Значение);

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

В итоге событие «При выгрузке из 1С» будет выглядеть следующим образом:

<Свойства>
  <Свойство>
    <Код>60</Код>
    <Наименование>Выч_ЮридическийАдрес</Наименование>
    <Порядок>60</Порядок>
    <Источник/>
    <Приемник Имя="Выч_ЮридическийАдрес" Вид="Реквизит" Тип="Строка"/>
    <ПриВыгрузке>Запрос = Новый Запрос("ВЫБРАТЬ 
                                        |  КИ.Представление КАК Адрес 
                                        |ИЗ 
                                        |  РегистрСведений.КонтактнаяИнформация КАК КИ 
                                        |ГДЕ 
                                        |  КИ.Объект = &amp;Объект 
                                        |  И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес) 
                                        |  И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)"); 
                          Запрос.УстановитьПараметр("Объект", Источник); 
                          Выборка = Запрос.Выполнить().Выбрать();  
                            Значение = ?(Выборка.Следующий(), СокрЛП(Выборка.Адрес), "");
    </ПриВыгрузке>
  </Свойство>
</Свойства>

Пример 2

Необходимо на форму 1С добавить кнопку, при нажатии на которую будет запускаться сценарий DIRECTUM. В сценарий требуется передать один параметр. При завершении сценария получить результат его выполнения.

Для этого выполните отладку вычисления, в котором запускается сценарий DIRECTUM по кнопке из 1С:

Обработка «Регистрация изменений для обмена»

Обработка включена в большинство конфигураций 1С. С ее помощью можно просматривать или редактировать записи о регистрации объектов в плане обмена 1С, в том числе:

  • просматривать список метаданных, участвующих в обмене;
  • просматривать список объектов, для которых зарегистрированы изменения;
  • добавлять и снимать регистрацию для объектов, а также использовать запросы для выбора данных;
  • просматривать данные в формате XML.

Рассмотрим возможности обработки наглядно в 1С:

1. Запустите обработку «Регистрация изменений для обмена».

2. В верхнем поле выберите узел обмена, например, DIRECTUM.

В результате в нижней области отобразятся все объекты, включенные в План обмена. В колонке Авторегистрация – текущее состояние авторегистрации изменений и количество зарегистрированных в данный момент объектов.

К объектам можно применить действия:

  • Зарегистрировать все – включает все объекты плана обмена в узел. Действие необратимо;
  • Добавить регистрацию (по кнопке из контекстного меню объекта) – позволяет зарегистрировать в 1С конкретные записи;
  • Зарегистрировать по одному – удаляет все существующие регистрации и регистрирует в плане обмена по одному объекту каждого типа. Действие необратимо;
  • Удалить всю регистрацию – очищает сведения о регистрации узла плана обмена. Действие необратимо;
  •  – удаляет регистрацию произвольного объекта информационной базы. При этом можно создать запрос и удалить запись о регистрации всех объектов, полученных в результате его выполнения;
  •  – добавляет регистрацию произвольного объекта информационной базы. При этом можно создать запрос и добавить запись о регистрации всех объектов, полученных в результате его выполнения;
  • Показать изменения, зарегистрированные для данного типа – показывает объекты информационной базы, зарегистрированные в узле обмена. Перед нажатием кнопки нужно выбрать необходимый тип объектов;
  • Результат стандартной выгрузки – показывает, как будет выглядеть объект информационной базы, если его выгрузить в формате XML. Перед нажатием нужно выбрать необходимый объект:

Обработка «Выгрузка и загрузка данных XML»

Универсальная обработка позволяет выполнить полную или частичную выгрузку данных информационной базы в xml-файл. Обработку можно использовать для миграции данных из 1С.

Сценарии использования обработки:

  • Выгрузка записей справочника из одной базы и загрузка в другую. Разработка в базах должна быть идентичной.
  • Выгрузка записей справочника в качестве резервной копии. Если в процессе работы со справочником записи затерлись либо были удалены, то их можно восстановить из xml-файла.
  • Выгрузка данных в xml-файл для последующей миграции этих данных в систему DIRECTUM с помощью заказной разработки.

Обработка может выгружать записи объектов:

  • Константы;
  • Справочники;
  • Документы;
  • Последовательности;
  • ПланыВидовХарактеристик;
  • ПланыСчетов;
  • ПланыВидовРасчета;
  • РегистрыСведений;
  • РегистрыНакопления;
  • РегистрыБухгалтерии;
  • РегистрыРасчета;
  • БизнесПроцессы;
  • Задачи;
  • ПланыОбмена.


 

Особенности обработки:

  • Фильтр можно накладывать на любой из реквизитов справочника. Например, настроить фильтрацию по справочнику Внутренние документы по полю ВидДокумента = Договор.
  • Вместе с основным справочником можно выгружать связанные записи других справочников. Например, настроить выгрузку, чтобы вместе с внутренними документами выгружались связанные записи справочника Корреспонденты.

Обработка «Массовая регистрация изменений для обмена»

Обработку удобно использовать при тестировании интеграции с 1С.

Обработка позволяет зарегистрировать в плане обмена нужное количество записей для указанного справочника:

1. Запустите обработку «Массовая регистрация изменений для обмена».

2. Выберите необходимый справочник и нажмите на кнопку Выполнить.


 

Евгения Мамаева

Огромное спасибо, Алексей! Очень полезная статья!

Авторизуйтесь, чтобы написать комментарий