В процессе разработки интеграции с 1С часто возникает необходимость написать вычисления на языке 1С или языке запросов 1С, а также отладить их. Для написания таких вычислений удобно использовать готовые обработки 1С, рассмотрим их в этой статье.
Скачать архив с обработками можно по ссылке: Полезные обработки 1С.zip
Чтобы запустить обработку:
1. Запустите «1С Предприятие» в режиме «Обычное приложение». Для этого используйте дополнительный параметр запуска:
/RunModeOrdinaryApplication
2. В меню Файл выберите пункт Открыть и в открывшемся окне выберите нужный файл.
Обработка позволяет:
Чтобы определить 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С» по получению юридического адреса контрагента. Текст события представляет собой xml-текст, в котором задаются вычисляемые реквизиты 1С. Подробнее см. в справке Коннектор к «1С:Предприятие 8» События и фильтры.
Ранее с помощью обработки «Консоль запросов» мы создали и отладили запрос:
ВЫБРАТЬ
КИ.Представление КАК Адрес
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
КИ.Объект = &Объект
И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
Теперь нужно написать вычисления на языке 1С, в которых нужно выполнить этот запрос и вернуть результат в виде строки.
Для отладки вычислений добавьте определение переменной Источник:
Источник = Справочники.Контрагенты.НайтиПоКоду("000000007");
И вывод результата:
Сообщить(Значение);
В событие «При выгрузке из 1С» эти строки переносить не нужно, т.к. переменная Источник в событии является предопределенной и будет заполняться автоматически.
В итоге событие «При выгрузке из 1С» будет выглядеть следующим образом:
<Свойства>
<Свойство>
<Код>60</Код>
<Наименование>Выч_ЮридическийАдрес</Наименование>
<Порядок>60</Порядок>
<Источник/>
<Приемник Имя="Выч_ЮридическийАдрес" Вид="Реквизит" Тип="Строка"/>
<ПриВыгрузке>Запрос = Новый Запрос("ВЫБРАТЬ
| КИ.Представление КАК Адрес
|ИЗ
| РегистрСведений.КонтактнаяИнформация КАК КИ
|ГДЕ
| КИ.Объект = &Объект
| И КИ.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес)
| И КИ.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)");
Запрос.УстановитьПараметр("Объект", Источник);
Выборка = Запрос.Выполнить().Выбрать();
Значение = ?(Выборка.Следующий(), СокрЛП(Выборка.Адрес), "");
</ПриВыгрузке>
</Свойство>
</Свойства>
Необходимо на форму 1С добавить кнопку, при нажатии на которую будет запускаться сценарий DIRECTUM. В сценарий требуется передать один параметр. При завершении сценария получить результат его выполнения.
Для этого выполните отладку вычисления, в котором запускается сценарий DIRECTUM по кнопке из 1С:
Обработка включена в большинство конфигураций 1С. С ее помощью можно просматривать или редактировать записи о регистрации объектов в плане обмена 1С, в том числе:
Рассмотрим возможности обработки наглядно в 1С:
В результате в нижней области отобразятся все объекты, включенные в План обмена. В колонке Авторегистрация – текущее состояние авторегистрации изменений и количество зарегистрированных в данный момент объектов.
К объектам можно применить действия:
Универсальная обработка позволяет выполнить полную или частичную выгрузку данных информационной базы в xml-файл. Обработку можно использовать для миграции данных из 1С.
Сценарии использования обработки:
Обработка может выгружать записи объектов:
Особенности обработки:
Обработку удобно использовать при тестировании интеграции с 1С.
Обработка позволяет зарегистрировать в плане обмена нужное количество записей для указанного справочника:
1. Запустите обработку «Массовая регистрация изменений для обмена».
2. Выберите необходимый справочник и нажмите на кнопку Выполнить.
Огромное спасибо, Алексей! Очень полезная статья!
Авторизуйтесь, чтобы написать комментарий