Вход | Регистрация

1С:Предприятие ::

Метки: справочники

Как засунуть элемент справочника в группу ПРОГРАММНО ???

Я
   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)}: Неверный тип справочника". 

Вопрос: Как засунуть элемент справочника в группу ПРОГРАММНО ???
 
  Рекламное место пустует
   Gavrila
 
1 - 11.05.04 - 16:43
Я так понимаю, что "Запрос.ТекущийЭлемент" - "Справочник.Номенклатура", а родитель Спр1 - "Справочник.КодыПоставщики", поэтому работать не будет уже из-за этого...
лучше добавь перед
   Спр1.Новый();
строку
   Спр1.ИспользоватьРодителя(какой-то_там_родитель);
, где какой-то_там_родитель - группа справочника "КодыПоставщики" :)
   Valery
 
2 - 11.05.04 - 16:47
В логике непонятно. Присваиваешь родителю элемент не являющийся группой.
   Sh_s
 
4 - 12.05.04 - 10:38
(1)Спр1.ИспользоватьРодителя(какой-то_там_родитель);

Я такое делал, ошибок не было, но все равно в группу не попадало. Все элементы попадали в корень, а не в указанную группу.
   Frol
7 - 12.05.04 - 12:30
Вообщето, у тебя всё правильно с кодом. Единственное, строчку Спр1.УстановитьАтрибут("Родитель", Запрос.ТекущийЭлемент);
тебе надо поменять на:
код = Спр1.Код;
Спр1.УстановитьАтрибут("КодПост" , Код_Пост(Спр.Наименование));
Спр1.Записать();
Спр1.НоваяГруппа();
Спр1.Наименование = Запрос.ТекущийЭлемент;
Спр1.Записать();
Группа = Спр1.НайтиПоНаименованию(Запрос.ТекущийЭлемент,0,1);
Спр1.НайтиПоКоду(код,0);
Спр1.УстановитьАтрибут("Родитель",Группа);
Спр1.Записать();
Вот и все дела-то. Ну мож чуток не так, но идея правильная, у меня работало.
   Sh_s
 
9 - 12.05.04 - 23:46
Как и ковырял ранее, все срослось, надо перед Новый() 
Спр1.ИспользоватьРодителя(какой-то_там_родитель);
как и говорил (1) , что собственно я ранее и делал, но не работало.
Тепер понял что передавал в качестве Родителя строку с его именем, а надо передавать как объект, если слово объект здесь корректно. Ну в общем идея понятна. Все заработало как нуна. Всем спасибо.
P.S. Кто тут темы закрывает ....??????


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует