Консультация № 142483
28.08.2008, 10:45
0.00 руб.
0 5 2
Здравствуйте!
Есть документ, при внесении в него данных данные должны попадать в многоуровневый справочник. Как сделать так чтобы данные попали в свою группу.
Заранее спасибо!

Обсуждение

Неизвестный
28.08.2008, 11:26
общий
это ответ
Здравствуйте, Monika!
Для того, что элемент справочника создался в нужной группе (например ГрпСпр)
нужно:
спр=создатьОбъект("Справчоник.<Траляля>");
спр.ИспользоватьРодителя(ГрпСпр);
спр.Новый();
....
спр.Записать();
Неизвестный
28.08.2008, 13:51
общий
это ответ
Здравствуйте, Monika!

Если документ формирует новые элементы справочника, то воспользуйтесь советом от Ovr1970.
Если Вы в документ подбираете существующие элементы справочника а потом чтобы документ при проведении их переносил в другую группу, тогда Вам необходимо сделать следующее:
- создать объект типа Справочник.<ВидСправочника>;
- найти в нём группу методами справочников (НайтиПоКоду, НайтиЭлемент, НайтиПоНаименованию);
- изменить родителя у текущего элемента (из строки документа) на найденную прежде группу.

Пример обработки, использующей этот механизм Вы сможете скачать этой ссылке (архив 10 кб).
С уважением, Владимир.

Приложение:
Пример кода для модуля документа:

ВыбратьСтроки()
Группа = СоздатьОбъект("Справочник.Номенклатура");
Группа.НайтиПоКоду(1357); // это код группы "Неиспользуемые объекты", что-то вроде мусорки
Спр = СоздатьОбъет("Спраовчник.Номенклатура"); // этой переменной будем присваивать товар из строки документа
Пока ПолучитьСтроку()=1 Цикл
Спр.НайтиЭлемент(Товар); // Товар из строки документа
Спр.Родитель = Группа.ТекущийЭлемент();
Спр.Записать();
КонецЦикла;

После проведения доумента все товары из табличной части будут перемещены в указанную группу (в моем примере "Неиспользуемые объекты").
Неизвестный
28.08.2008, 16:38
общий
Данные проходят мимо своей группы и записываются в основное поле справочника
Неизвестный
28.08.2008, 20:44
общий
Приведите, пожалуйста, код - разберемся
Неизвестный
29.08.2008, 13:24
общий
А Вы можете описать названия реквизит ов документа и привести программный код, какой уже есть. Т.е.
Данные проходят мимо своей группы и записываются в основное поле справочника


Если Вам нужно создавать новые элементы в указаннйой в шапке документа группы, а наименования (и другие реквизиты) этих реквизитов брать из табличной части документа,то воспользуйтесь первым ответом.
Если Вам нужно переносить указанные в табличной части элементы в указанную группу, тогда воспользуйтесь моим кодом.
Раз указываете группу в шапке документа, то нужно изменить мой код так:

Код:
 ВыбратьСтроки()
Спр = СоздатьОбъет("Спраовчник.ОС"); // этой переменной будем присваивать товар из строки документа
Пока ПолучитьСтроку()=1 Цикл
Спр.НайтиЭлемент(Товар); // Товар из строки документа
Спр.Родитель = ВыбГруппа; //ВыбГруппа - имя переменной, которая находится на форме документа и имеет тот же тип, что и описанный справочник.
Спр.Записать();
КонецЦикла;


ВыбГруппа - имя переменной, которая находится на форме документа и имеет тот же тип, что и описанный справочник. Т.е. Если Вы используете справочник ОС, то соответственно должны создавать объект этого типа (Спр = СоздатьОбъет("Спраовчник.ОС"))
Форма ответа