|
Как засунуть элемент справочника в группу ПРОГРАММНО ??? |
☑ |
0
Sh_s
11.05.04
✎
16:34
|
Суть: Есть справочник_1, без подчинения, с группамы.
Цель: Добавить в него 2-3 сотни единиц из др. справочника_2,
причем добавлять в определенные группы справочника_1.
Реализация:
Спр1=СоздатьОбъект("Справочник.КодыПоставщики");
Спр=СоздатьОбъект("Справочник.Номенклатура");
Пока Запрос.Группировка() = 1 Цикл
Спр.НайтиЭлемент(Запрос.ТекущийЭлемент);
Если Запрос.ТекущийЭлемент.ЭтоГруппа()=0 Тогда
Спр1.Новый();
Спр1.УстановитьАтрибут("Наименование", Спр.Наименование);
Спр1.УстановитьАтрибут("Товар", Спр.Наименование);
Спр1.УстановитьАтрибут("Поставщик", ВыбКонтрагенты);
Спр1.УстановитьАтрибут("Родитель", Запрос.ТекущийЭлемент); _________________________________^^^^^^^^^^^^^Тут засада
Спр1.УстановитьАтрибут("КодПост" , Код_Пост(Спр.Наименование));
Спр1.Записать();
КонецЕсли;
КонецЦикла;
Ошибка: Вываливает сообщение что: "{C:\...\КОЛ-ВО В ГРУППЕ И ГРУППОВОЙ ПОСТАВЩИК.ERT(113)}: Неверный тип справочника".
Вопрос: Как засунуть элемент справочника в группу ПРОГРАММНО ???
|
|
1
Gavrila
11.05.04
✎
16:43
|
Я так понимаю, что "Запрос.ТекущийЭлемент" - "Справочник.Номенклатура", а родитель Спр1 - "Справочник.КодыПоставщики", поэтому работать не будет уже из-за этого...
лучше добавь перед
Спр1.Новый();
строку
Спр1.ИспользоватьРодителя(какой-то_там_родитель);
, где какой-то_там_родитель - группа справочника "КодыПоставщики" :)
|
|
2
Valery
11.05.04
✎
16:47
|
В логике непонятно. Присваиваешь родителю элемент не являющийся группой.
|
|
3
AVP
11.05.04
✎
16:49
|
Хорошо заданный вопрос содержит 80% ответа...
|
|
4
Sh_s
12.05.04
✎
10:38
|
(1)Спр1.ИспользоватьРодителя(какой-то_там_родитель);
Я такое делал, ошибок не было, но все равно в группу не попадало. Все элементы попадали в корень, а не в указанную группу.
|
|
5
SiMаzх
12.05.04
✎
10:40
|
А какой-то_там_родитель - это что было?
|
|
6
Рупор абсурда
12.05.04
✎
10:44
|
(5) Не можешь помочь, не лезь!
|
|
7
Frol
12.05.04
✎
12:30
|
Вообщето, у тебя всё правильно с кодом. Единственное, строчку Спр1.УстановитьАтрибут("Родитель", Запрос.ТекущийЭлемент);
тебе надо поменять на:
код = Спр1.Код;
Спр1.УстановитьАтрибут("КодПост" , Код_Пост(Спр.Наименование));
Спр1.Записать();
Спр1.НоваяГруппа();
Спр1.Наименование = Запрос.ТекущийЭлемент;
Спр1.Записать();
Группа = Спр1.НайтиПоНаименованию(Запрос.ТекущийЭлемент,0,1);
Спр1.НайтиПоКоду(код,0);
Спр1.УстановитьАтрибут("Родитель",Группа);
Спр1.Записать();
Вот и все дела-то. Ну мож чуток не так, но идея правильная, у меня работало.
|
|
8
SnarkHunter
12.05.04
✎
12:36
|
(7) См. (6)
|
|
9
Sh_s
12.05.04
✎
23:46
|
Как и ковырял ранее, все срослось, надо перед Новый()
Спр1.ИспользоватьРодителя(какой-то_там_родитель);
как и говорил (1) , что собственно я ранее и делал, но не работало.
Тепер понял что передавал в качестве Родителя строку с его именем, а надо передавать как объект, если слово объект здесь корректно. Ну в общем идея понятна. Все заработало как нуна. Всем спасибо.
P.S. Кто тут темы закрывает ....??????
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший