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

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 человек.
Рекламное место пустует