Имя: Пароль:
1C
1С v8
Глюк в КД
0 МаксимБел
 
07.03.13
10:30
Переношу справочник Материалы из 1С77 в группу Материалы справочника Номенклатура 1С82. В ПКО после загрузки вставил такой код:
Если Не ЗначениеЗаполнено(Объект.Родитель) Тогда
   Запрос = Новый Запрос("ВЫБРАТЬ
                         |    Номенклатура.Ссылка
                         |ИЗ
                         |    Справочник.Номенклатура КАК Номенклатура
                         |ГДЕ
                         |    Номенклатура.Наименование = &Наименование
                         |    И Номенклатура.ЭтоГруппа");
   Запрос.УстановитьПараметр("Наименование","Материалы");
   Выборка = Запрос.Выполнить().Выбрать();
   Если Выборка.Следующий() Тогда
       Объект.Родитель = Выборка.Ссылка;
   КонецЕсли;
КонецЕсли;
Этот код как раз и должен помещать все переносимые элементы именно в группу Материалы, а не в корень справочника номенклатуры.
В итоге получаю две копии элементов. Первая - помеченные на удаление в корне номенклатуры, вторая - нормальные элементы в группе Материалы.
У кого какие предположения, почему так происходит?
P.S. В 1С77 помеченных на удаление элементов нет.
1 Defender aka LINN
 
07.03.13
10:32
Поиск по родителю?
2 МаксимБел
 
07.03.13
10:35
(1) Не включен.
3 МаксимБел
 
07.03.13
10:36
(1) Сейчас попробую с включенным.
4 МаксимБел
 
07.03.13
10:37
Хотя... Смысл? Я Родителя всё равно переопределяю.
5 Aleksey
 
07.03.13
10:46
(4) Сделай для родителя свой ПКО, который ищет по наименованию среди Папок
6 МаксимБел
 
07.03.13
11:08
(5) Хм... Может и так.
7 Kvestin
 
07.03.13
11:08
Могу сказать, что с конвертации можно долго гадать, что не так. Проще всего увидеть, отладив загрузку. Там нет ничего сложного (заодно потом проще правила создавать).
Я делал так: выгружаю 1 элемент справочника в файл, устанавливаю точку останова в обработке загрузки (все что нужно находится в модуле. ищите по "СоздатьЭлемент"), загружаю из файла разбираясь по ходу отладки.

Вы уверены что у вас отрабатывает одно правило выгрузки и одно ПКО к нему? Используется стандартная выборка?
8 Михей
 
07.03.13
11:11
(0) а уверен что твой запрос не пустой результат выдает?
9 echo77
 
07.03.13
11:13
(0) Совет немного не по теме
Запрос в цикле это не хорошо, лучше заведи параметр группаМатериалы и в обработчике перед загрузкой один раз его заполнять. Потом используй
10 Kvestin
 
07.03.13
11:21
(9) Согласен на 100%, писать не стал ;), т.к. загрузка судя по всему разовая, да и проблема действительно не с поиском.
11 МаксимБел
 
07.03.13
11:21
(8) Уверен. Я же говорю, группа Материалы заполняется.
12 МаксимБел
 
07.03.13
13:17
(5) Почти помогло. :)
В корень теперь ничего не попадает. Помеченных на удаление тоже нету. Но теперь задвоились почти все группы справочника.
13 Kvestin
 
07.03.13
13:20
(12) Если задвоились, то однозначно конвертация не находит вашу первую папку и создает новую. Смотрите но поля поиска. У родителя галка поиск должна стоять.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший