Имя: Пароль:
1C
1C 7.7
v7: Конвертация данных. Выгрузка по произвольному алгоритму
0 alpack
 
11.06.20
07:29
Добрый день!
Конфигурация Источник Тис9.2
Конфигурация Приемник Самописная конфигурация

Настраиваю выгрузку справочника Контрагенты.
1. Создал ПКО для справочника Контрагенты. Источник не указывал
   Реквизиты:
               Код
               ВидКонтрагента
               Наименование
               ПолнНаименование
               ИНН(Поиск)
               ЭтоГруппа(Поиск)
2. Создал ПВД.
   Способ выборки: Произвольный алгоритм
   Правило(Созданое ПКО Контрагенты)
3. Обработчик перед выгрузкой ПВД:

ВыборкаДанных = СоздатьОбъект("ТаблицаЗначений");
ВыборкаДанных.НоваяКолонка("Код");
ВыборкаДанных.НоваяКолонка("ВидКонтрагента");
ВыборкаДанных.НоваяКолонка("Наименование");
ВыборкаДанных.НоваяКолонка("ПолнНаименование");
ВыборкаДанных.НоваяКолонка("ИНН");  
    
Контрагент = СоздатьОбъект("Справочник.Контрагенты");
Контрагент.ВыбратьЭлементы();
Пока Контрагент.ПолучитьЭлемент() = 1 Цикл
    Если Контрагент.ЭтоГруппа() = 1 Тогда
        Продолжить;
    КонецЕсли;
    ВыборкаДанных.НоваяСтрока();
    ВыборкаДанных.Код = Контрагент.Код;
    ВыборкаДанных.ВидКонтрагента = "Прочая организация";
    ВыборкаДанных.Наименование = Контрагент.Наименование;
    Если Контрагент.ЮрФизЛицо.Вид()="ЮрЛица" тогда  
         ВыборкаДанных.ИНН = Лев(СокрЛП(Контрагент.ЮрФизЛицо.ИНН),22);
         ВыборкаДанных.ПолнНаименование = СокрЛП(Контрагент.ЮрФизЛицо.ПолнНаименование);
    ИначеЕсли  Контрагент.ЮрФизЛицо.Вид()="ФизЛица" тогда
         ВыборкаДанных.ИНН = Лев(СокрЛП(Контрагент.ЮрФизЛицо.ИНН),11);
         ВыборкаДанных.ПолнНаименование = СокрЛП(Контрагент.ЮрФизЛицо.ПолнНаименование);
   КонецЕсли;
КонецЦикла;
  

Проблема: выгружается 1 объект. Первый. И все

Проверил код внешней обработкой, ТЗ заполняется.
Сделал Тестирование и исправление. Не помогло
1 SleepyHead
 
гуру
11.06.20
09:14
(0) Вангую, у тебя есть только один контрагент в корне справочника, а все остальные внутри групп.
2 tgu82
 
11.06.20
09:34
(1) Но у (0) группы же обходятся по условию. А в самописной конфе я иак понял что ему не нужны группы
3 alpack
 
11.06.20
11:22
Проблема решена!
Решение:
Если для выборки данных ПВД используется произвольный алгоритм и в обработчике ПВД "Перед обработкой" инициируется параметр ВыборкаДанных, то для ПКО следует установить признак "Не запоминать выгруженные объекты".