Имя: Пароль:
1C
1С v8
Конвертация данных 2: создать в приемнике несколько объектов на основании запроса из источ
0 vdeemer
 
22.09.20
16:33
Здравствуйте!
Возможно ли, выбрав нужные данные из источника запросом, создать в приемнике на каждую запись выборки (к тому же с обходом по группировкам) объекты по своему алгоритму? Дело в том, что нужно перенести из УПП в УТ контактные лица контрагентов, которые, по сути, и являются контрагентами. Нужны ФИО, даты рождения и контактные данные (телефон и почта), т.е. на одно ФИО+дата будет несколько (а может и ни одной) записей контактных данных. Городить несколько ПКО ну совсем не хочется (хотя это может быть и проще по факту, в КД я слабак), а запрос со всеми нужными данными слепить - пять минут. Как мне видится процесс:
1. Создать запрос на закладке "Алгоритмы\Запросы" - сделано
2. Вот тут я и встрял))
1 Aleksey
 
22.09.20
16:34
ВыгрузитьПоПравилу ?
2 mikecool
 
22.09.20
16:35
в методичке есть пример, надо читать
3 vdeemer
 
22.09.20
16:48
(1) а к какому объекту это применять, если ничего не выгружено еще?
4 GANR
 
22.09.20
17:03
(3) к структуре, предварительно сформированной программным кодом

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    ВходящиеДанные = Новый Структура;
    ВходящиеДанные.Вставить("Студент", ВыборкаДетальныеЗаписи.Студент);
    ВходящиеДанные.Вставить("ВидОбразования", ВыборкаДетальныеЗаписи.ВидОбразования);
    ВходящиеДанные.Вставить("ОбразовательноеУчреждениеПриОкончании", ВыборкаДетальныеЗаписи.УчебноеЗаведение);
    ВходящиеДанные.Вставить("Специальность", ВыборкаДетальныеЗаписи.Специальность);
    
    СерияНомерДиплома = ВыборкаДетальныеЗаписи.Диплом;
    СерияДиплома = "";
    НомерДиплома = "";
    
    Выполнить(Алгоритмы.ПолучитьСериюИНомер);
    
    ВходящиеДанные.Вставить("СерияДиплома", СерияДиплома);
    ВходящиеДанные.Вставить("НомерДиплома", НомерДиплома);
    
    Если НЕ ВыборкаДетальныеЗаписи.ГодОкончания = 0 Тогда
        ВходящиеДанные.Вставить("ГодЗавершения", Дата(ВыборкаДетальныеЗаписи.ГодОкончания, 1, 1));
        ВходящиеДанные.Вставить("ДатаВыдачи", Дата(ВыборкаДетальныеЗаписи.ГодОкончания, 1, 1));
    Иначе
        ВходящиеДанные.Вставить("ГодЗавершения", Дата("00010101"));
        ВходящиеДанные.Вставить("ДатаВыдачи", Дата("00010101"));
    КонецЕсли;
    
    ВходящиеДанные.Вставить("Квалификация", ВыборкаДетальныеЗаписи.Квалификация);
    
    ВыгрузитьПоПравилу(,,ВходящиеДанные,,"ДипломИзВходящихДанных");
КонецЦикла;
5 GANR
 
22.09.20
17:03
6 vdeemer
 
23.09.20
07:43
(4) Премного благодарен