Содержание
КД: перенос подчиненного справочника в другой подчиненный справочник
- Исходная среда:
- Источник: ТиС ред. 8.7
- Приемник: Бухгалтерия, ред. 4.5
- Задача: перенести подчиненный справочник «Расчетные счета» по контрагентам из источника в одноименный справочник в Приемнике, справочник назначения тоже подчиненный. Прописать реквизит «ОсновнойСчет» в Приемнике первым попавшимся счетом, т.к. в источнике нет подобного реквизита.
- Условия: установленная 1С:Конвертация данных, ред. 2 (КД) (в рассматриваемом примере 2.1.5.1 для 1С: 8.2). В КД загружено описание конфигураций Источника и Приемника, начато конфигурирование Правил Конвертации Объектов (ПКО).
Решение
Для решения задачи мы будем использовать функцию ВыгрузитьПоПравилу(), которой будем передавать всего два параметра: Источник и имя ПКО. Создадим ПКО РасчетныеСчета, настроим соответствие реквизитов Источника и Приемника. Именно этому ПКО мы через функцию ВыгрузитьПоПравилу() будем передавать данные по подчиненным справочникам РасчетныеСчета от Источинка к Приемнику.
ПКО РасчетныеСчета
Благодаря тому, что почти все реквизиты Источника и Приемника совпадают по названию и смыслу, мы просто создаем новое ПКО и проставляем соответствие реквизитов, отмечаем флажки Поиск у соответствующих полей:
ПКО Контрагенты
Следующим этапом стоит задача отладить ПКО Контрагенты. Что мы будем делать:
- заходим в свойства ПКО Контрагенты и вставляем в процедуру «После выгрузки» код:
СпрРасчетныеСчета = СоздатьОбъект("Справочник.РасчетныеСчета"); СпрРасчетныеСчета.ИспользоватьВладельца(Источник.ТекущийЭлемент()); СпрРасчетныеСчета.ВыбратьЭлементы(); Пока СпрРасчетныеСчета.ПолучитьЭлемент() = 1 Цикл ВыгрузитьПоПравилу(СпрРасчетныеСчета.ТекущийЭлемент(), , , , "РасчетныеСчета", , , ); КонецЦикла;
Обращаем внимание, что мы передаем два параметра функции ВыгрузитьПоПравилу: Источник - очередной расчетный счет при выборке и ИмяПКО - имя ранее созданного ПКО РасчетныеСчета. Процедура После выгрузки описана в справочнике.
Следующий этап состоит в том, чтобы загрузить в реквизит ОсновнойСчет один из загруженных ранее расчетных счетов. Делается это опять же в ПКО Контрагенты, но только теперь уже в процедуре После загрузки:
СпрРасчетныеСчета = СоздатьОбъект("Справочник.РасчетныеСчета"); СпрРасчетныеСчета.ИспользоватьВладельца(Объект.ТекущийЭлемент()); СпрРасчетныеСчета.ВыбратьЭлементы(); Пока СпрРасчетныеСчета.ПолучитьЭлемент() = 1 Цикл // поскольку в источнике нет понятия основной счет, возьмем первый попавшийся и "впихем" его // в реквизит ОсновнойСчет Объект.ОсновнойСчет = СпрРасчетныеСчета.ТекущийЭлемент(); Прервать; КонецЦикла;
Итоги
Итак, что сделано на данном этапе:
- перенесен подчиненный справочник «Расчетные счета» из Источника в Приемник
- установлен реквизит ОсновнойСчет в приемнике одним из РасчетныхСчетов.
Претензии и возражения по статье принимаются, т.к. автор осваивает громадные возможности КД и описал задачу, как он решал сам. Решение полностью работоспособное.
Обсуждение
When I went to the gynocologist she never told me that a blood clot could be a risk factor <a href=https://fastpriligy.top/>can you buy priligy in the u.s.</a> acute pulmonary hypertension He was murdered because of this
What are your thoughts on this method <a href=https://fastpriligy.top/>priligy 60 mg price</a>