Инструменты пользователя

Инструменты сайта


doc:1c:konvertacija_dannyx_2:perenos_podchinennogo_spravochnika_v_drugoj_podchinennyj_spravochnik

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
doc:1c:konvertacija_dannyx_2:perenos_podchinennogo_spravochnika_v_drugoj_podchinennyj_spravochnik [d.m.Y H:i] dbehterevdoc:1c:konvertacija_dannyx_2:perenos_podchinennogo_spravochnika_v_drugoj_podchinennyj_spravochnik [d.m.Y H:i] (текущий) – [Решение] dbehterev
Строка 9: Строка 9:
 ===== Решение ===== ===== Решение =====
  
-Решение задачи организуем через функцию ВыгрузитьПоПравилу().+Для решения задачи мы будем использовать функцию [[http://wiki.itcall.ru/doku.php?id=doc:1c:spravochnye_svedenija_po_kd:vygruzit_po_pravilu|ВыгрузитьПоПравилу()]], которой будем передавать всего два параметра: Источник и имя ПКО. Создадим ПКО РасчетныеСчета, настроим соответствие реквизитов Источника и Приемника. Именно этому ПКО мы через функцию ВыгрузитьПоПравилу() будем передавать данные по подчиненным справочникам РасчетныеСчета от Источинка к Приемнику. 
 +==== ПКО РасчетныеСчета ====
  
-==== Описание функции ВыгрузитьПоПравилу() ====+Благодаря тому, что почти все реквизиты Источника и Приемника совпадают по названию и смыслу, мы просто создаем новое ПКО и проставляем соответствие реквизитов, отмечаем флажки Поиск у соответствующих полей: 
 + 
 +{{ :doc:1c:konvertacija_dannyx_2:04-02-2012_2-57-08_.jpg |}} 
 + 
 +==== ПКО Контрагенты ==== 
 + 
 + 
 +Следующим этапом стоит задача отладить ПКО Контрагенты. Что мы будем делать: 
 + 
 +  * заходим в свойства ПКО Контрагенты и вставляем в процедуру "После выгрузки" код:
  
 <code> <code>
-ВыгрузитьПоПравилу(Источник+СпрРасчетныеСчета = СоздатьОбъект("Справочник.РасчетныеСчета"); 
-Приемник+СпрРасчетныеСчета.ИспользоватьВладельца(ИсточникекущийЭлемент()); 
-ВходящиеДанные+СпрРасчетныеСчетаыбратьЭлементы(); 
-ИсходящиеДанные+ 
-ИмяПКО, +Пока СпрРасчетныеСчета.ПолучитьЭлемент() = 1 Цикл 
-УзелСсылки, +  
-ТолькоПолучитьУзелСсылки, + ВыгрузитьПоПравилу(СпрРасчетныеСчета.ТекущийЭлемент()
-ПКО, +
-ЭтоПравилоСГлобальнойВыгрузкойОбъектов+
-ВыборкаДляВыгрузкиДанных)+
 + "РасчетныеСчета", 
 +
 +
 + ); 
 +КонецЦикла;
 </code> </code>
  
-Все эти параметры в функции имеют значения по умолчанию, и, как правило, передавать имеет смысл только параметр ИмяПКОа также параметры Источник и/или ВходящиеДанные – в зависимости от того, как настроено ПКО.+Обращаем внимание, что мы передаем два параметра функции ВыгрузитьПоПравилу: Источник очередной расчетный счет при выборке и ИмяПКО - имя ранее созданного ПКО РасчетныеСчета. Процедура [[http://www.wiki.itcall.ru/doku.php/doc/1c/spravochnye_svedenija_po_kd/posle_vygruzki|После выгрузки]] описана в [[http://www.wiki.itcall.ru/doku.php/doc/1c/spravochnye_svedenija_po_kd/spravochnye_svedenija_po_kd|справочнике]].
  
-  * ИмяПКО – строка, название ПКО, в которое передаем управление.\\ +{{ :doc:1c:konvertacija_dannyx_2:04-02-2012_3-35-42_.jpg |}}
-  * Источник – ссылка на элемент объекта-источника, который передаем для конвертации. +
-  * ВходящиеДанные – структура (для платформы 8) либо СписокЗначений для 7й платформы 1С. Элементы в ней должны быть названы аналогично ПКС, у которых стоит флаг «Получить из входящих данных». Если таких ПКС нет, передавать этот параметр **не нужно**. Если в ПКО у всех ПКС стоит флаг «Получить из входящих данных», то, наоборот, необходимо передать структуру ВходящиеДанные, а Источник тогда передавать не нужно.+
  
-Для решения задачи мы будем использовать эту функциюкоторой будем передавать всего два параметра: Источник и имя ПКО. Создадим ПКО РасчетныеСчета, настроим соответствие реквизитов Источника и Приемника. Имену этому ПКО мы через функцию ВыгрузитьПоПравилу() будем передавать данные по подчиненным справочникам РасчетныеСчета от Источинка к Приемнику.+Следующий этап состоит в томчтобы загрузить в реквизит ОсновнойСчет один из загруженных ранее расчетных счетов. Делается это опять же в ПКО Контрагентыно только теперь уже в процедуре [[http://www.wiki.itcall.ru/doku.php/doc/1c/spravochnye_svedenija_po_kd/posle_zagruzki|После загрузки]]:
  
-==== ПКО РасчетныеСчета ==== +<code> 
- +СпрРасчетныеСчета = СоздатьОбъект("Справочник.РасчетныеСчета"); 
-Благодаря тому, что почти все реквизиты Источника и Приемника совпадают по названию и смыслу, мы просто создаем новое ПКО и проставляем соответствие реквизитов, отмечаем флажки Поиск у соответствующих полей:+СпрРасчетныеСчетаспользоватьВладельца(Объект.ТекущийЭлемент()); 
 +СпрРасчетныеСчета.ВыбратьЭлементы();
  
 +Пока СпрРасчетныеСчета.ПолучитьЭлемент() = 1 Цикл
 + // поскольку в источнике нет понятия основной счет, возьмем первый попавшийся и "впихем" его 
 + // в реквизит ОсновнойСчет
 +
 + Объект.ОсновнойСчет = СпрРасчетныеСчета.ТекущийЭлемент();
 +
 + Прервать;
 +
 +КонецЦикла;
 +</code>
  
 +{{ :doc:1c:konvertacija_dannyx_2:04-02-2012_3-52-30.jpg |}}
  
-Создано ПКО Контрагенты, настроены Правила Конвертации Свойств (далее ПКС):+==== Итоги ====
  
 +Итак, что сделано на данном этапе:
  
 +  * перенесен подчиненный справочник "Расчетные счета" из Источника в Приемник
 +  * установлен реквизит ОсновнойСчет в приемнике одним из РасчетныхСчетов.
  
 +Претензии и возражения по статье принимаются, т.к. автор осваивает громадные возможности КД и описал задачу, как он решал сам. Решение полностью работоспособное.
  
 +{{tag>1C Конвертация_данных}}
  
 +~~DISCUSSION~~
/var/www/wiki.itcall.ru/data/attic/doc/1c/konvertacija_dannyx_2/perenos_podchinennogo_spravochnika_v_drugoj_podchinennyj_spravochnik.1328309947.txt.gz · Последнее изменение: d.m.Y H:i (внешнее изменение)