Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
14 янв 2025, 09:15

Разработка интеграции через КД 2.1

Автор You56, 04 дек 2024, 20:39

0 Пользователей и 1 гость просматривают эту тему.

You56

Доброго времени суток!
Прошу строго не судить я начинающий разработчик 1с и на данный момент настраиваю интеграцию между базами 1с на платформе 8.3. Я только начинаю изучать возможности КД 3.1 формата XML (насколько я понял это практически тоже самое что и КД 2.1, поэтому если у кого то есть опыт работы в КД 2.1 просьба дать совет). 
Возникло 2 вопроса:
1. И в документе источнике, и в документе приемнике есть реквизит валюта, а также РС Курсы валют, необходимо вытащить из РС приемника срез последних по валюте, чтобы заполнить курс и кратность. Наверное нужно в обработчике события перед выгрузкой использовать выражение и в нем создать запрос. Ну допустим мы получили переменную с нужным нам значением, но как обозначить в системе что реквизит должен принять значение именно этой переменной? Возможно я вообще не в ту сторону думаю, если кто сталкивался с похожей задачей помогите, пожалуйста.
2. Речь пойдет о интеграции Бух-ERP. В Бух есть перечисление СтавкиНДС, а в ERP есть и справочник и перечисление СтавкиНДС. В этом справочнике есть реквизит ПеречислениеСтавокНДС, который ссылается на перечисление. Как по перечислению из Бухгалтерии найти элемент справочника в ERP? Сопоставление по значениям перечисления СтавкиНДС если что есть. Иными словами, как адекватно записать: Выражение = "Справочники.СтавкиНДС.НайтиПоРеквизиту(""ПеречислениеСтавокНДС"", Источник.СтавкаНДС)";

Заранее спасибо

fruitella

1. Когда заходишь в настройки события для его описания, там  есть наверху такая кнопка "Информация по обработчикам". Там есть примеры и описания как в синтаксис помошнике. Объектом является Источник, а дальше через точку как обычно синтаксису обращаешься к своей переменной.

Источник.МояПеременная //и тд


2. Аналогично. Только в событии перед загрузкой. Сопостовляешь перечисление и с реквизитом справочника, можно в цикле, можно запросом. Там также есть примеры.

You56

fruitella, большое спасибо, попробую!

You56

Насчёт сопоставление: нашел пример в обработчике "После загрузки". Однако мне не понятно как заполнить параметры. Это входящие данные? Но это обработчик ПКО. Нужно указать входящие данные в обработчике ПКО перед выгрузкой? Мы ведь можем без использования исходящих данных просто написать ВходящиеДанные("ЗначениеИзИСточника", Источник.НужноеЗначение)? Или же ПараметрыОбъекта это вообще не ВходящиеДанные?
 

Описание обработчика  "После загрузки"

Условия возникновения события

Только для платформы V8.
Событие выполняется после прочтения и установки атрибутов объекта из файла, но до его записи в информационную базу. Возможна модификация загруженного объекта.

Параметры:

Отказ - Булево - Если Истина, то объект загружен не будет.

Объект - Произвольный - загруженный объект.

Ссылка – Произвольный – ссылка на найденный объект в информационной базе.

ОбъектНайден - Булево. Если значение параметра равно Ложь, то объект не идентифицирован, то есть не найден в информационной базе

ПараметрыОбъекта - либо Неопределено либо Соответствие, в котором хранятся дополнительные параметры переденные для данного объекта из источника в приемник. Если параметров передано не было, то ПараметрыОбъекта = Неопределено.

ОбъектМодифицирован – Булево. Флажок указывает на то, что в обработчике объект был изменен. По умолчанию содержит значение Истина. То есть обработка загрузки считает, что если выполнялся какой-либо обработчик, то объект мог быть модифицирован, и его необходимо записать в информационную базу. Параметр относится только к текущему обработчику. Если объект был изменен ранее, то при любом значении переменной ОбъектМодифицирован он будет записан. Только для платформы 1С:Предприятие 8.

ИмяТипаОбъекта – Строка. Имя типа загруженного объекта, например, «СправочникСсылка.Номенклатура».

НаборЗаписей – РегистрСведенийНаборЗаписей. Загруженный набор записей. Только при загрузке в обработке УниверсальныйОбменДаннымиXML.

Пример:

Объект.БазоваяЕдиницаИзмерения = Параметры.ЕдИзмеренияШтуки;
Объект.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
Если Объект.Услуга Тогда
 Объект.ВидНоменклатуры = Параметры.ВидНомУслуга;
Иначе
 Объект.ВидНоменклатуры = Параметры.ВидНомТовар;
КонецЕсли;

Похожие темы (5)

Рейтинг@Mail.ru

Поиск