Консультация № 173186
11.10.2009, 19:36
0.00 руб.
0 2 2
Здравствуйте уважаемые эксперты! Изучаю 8.1.
Реквизит документа ВидРаботы имеет тип СправочникСсылка.ВидыРабот и реквизит табличной части Услуги Номенклатура (тип СправочникСсылка.НаименованияРабот).
Справочник ВидыРабот имеет табличную часть Составляющие с реквизитом Составляющая (тип СправочникСсылка.НаименованияРабот).
Как в процедуре при выборе ВидРаботы в форме документа описать, чтобы табличная часть Услуги заполнялась из табличной части Составляющие реквизита ВидРаботы?
Подскажите пожалуйста.

Обсуждение

Неизвестный
11.10.2009, 19:57
общий
это ответ
Здравствуйте, Darina9.
Пусть ВР - это выбранный вид работ.
Тогда надо написать:
Для Каждого ТС ИЗ ВР.Составляющие Цикл
НС=Услуги.Добавить();
НС.Номенклатура=ТС.Составляющая;
// тут заполнение остальных реквизитов строки табличной части НС
КонецЦикла;
5
Спасибо! Это получилось
Неизвестный
12.10.2009, 08:20
общий
это ответ
Здравствуйте, Darina9.

Способ первый - выборкой:

Для Каждого ТекСтрока из ВидРаботы.Составляющие Цикл
ДобавитьСтроку();
Номенклатура=ТекСтрока.Составляющая;
//если надо, переносим еще какие-нибудь реквизиты
КонецЦикла;

Способ второй - запросом:

ТекстЗапроса=
"Выбрать Составляющая из
|Справочники.ВидыРабот.Составляющие
|где Справочники.ВидыРабот.Ссылка = &ВидРаботы
|сгруппировать по Номенклатура";

Запрос.УстановитьПараметр("ВидРаботы",ВидРаботы);

РезультатЗапроса=Запрос.Выполнить().Выбрать();

Для Каждого Строчка из РезультатЗапроса Цикл
ДобавитьСтроку();
Номенклатура=Строчка.Составляющая;
КонецЦикла;


Примерно так, сам не проверял.
Форма ответа