Запрос в документе "Комплектация номенклатуры"

1. Ivan_Abc 17.07.19 07:50 Сейчас в теме
Доброго всем дня, форумчане! Наставьте юного падавана на путь истинный! Док-т "Комплектация номенклатуры": на форме док-та создана кнопка "Расчет доли стоимости", которая соответственно это и делает. На форме элемента справочника "Номенклатура" создано поле "Площадь, м2". В форме док-та процедурой на сервере я делаю запрос к полям "Площадь, м2" и "Количество" ("Кол-во" находится на форме док-та "Расчет доли стоимости"). Результат я должен поместить в ТЧ "Комплектующие" док-та. Подскажите пожалуйста, как верно сделать запрос и поместить его результаты в ТЧ? Заранее огромное спасибо!
По теме из базы знаний
Найденные решения
4. dka80 20 17.07.19 13:14 Сейчас в теме
(3) Твой запрос выбирает данные из базы, а как ты их выберешь из базы, если документ не записан? Никак. Если очень хочешь, можешь в таблицу значений предварительно выгрузить свои данные и выбирать уже из нее. К тому же, в твоем запросе будут данные выбираться из всех документов, а не из определенного.
А вообще, сам запрос можно переписать так:
"ВЫБРАТЬ
| КомплектацияНоменклатуры.Ссылка.Номенклатура._Площадь КАК _Площадь,
| КомплектацияНоменклатуры.Ссылка.Количество КАК Количество,
| КомплектацияНоменклатуры.ДоляСтоимости = КомплектацияНоменклатуры.Номенклатура._Площадь / КомплектацияНоменклатуры.Количество КАК КАК ДоляСтоимости
|ИЗ
| Документ.КомплектацияНоменклатуры.Комплектующие КАК КомплектацияНоменклатуры"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dka80 20 17.07.19 11:15 Сейчас в теме
Смотря что является результатом запроса.

Если выборка, то
Пока выборка.Следующий() Цикл
нСтрока = Объект.Комплектующие.Добавить();
ЗаполнитьЗначенияСвойств(нСтрока,Выборка)
КОнецЦикла;

Если таблица значений, то Объект.Комплектующие.Загрузить(ТЗ)
3. Ivan_Abc 17.07.19 11:33 Сейчас в теме
(2) на текущий момент моя кривая процедура выглядит так:
&НаСервере
Процедура РассчетДолиСтоимостиНаСервере()
	
	Запрос = Новый Запрос();
	Запрос.Текст = "ВЫБРАТЬ
	             |	КомплектацияНоменклатуры.Номенклатура._Площадь КАК _Площадь,
	             |	КомплектацияНоменклатуры.Количество КАК Количество,
	             |	КомплектацияНоменклатуры.Комплектующие.(
	             |		КомплектацияНоменклатуры.Комплектующие.ДоляСтоимости = КомплектацияНоменклатуры.Комплектующие.Номенклатура._Площадь / КомплектацияНоменклатуры.Комплектующие.Количество КАК Поле1
	             |	) КАК ДоляСтоимости
	             |ИЗ
	             |	Документ.КомплектацияНоменклатуры КАК КомплектацияНоменклатуры"
	;
	Выборка = Запрос.Выполнить();
	Объект.Комплектующие.Загрузить(Выборка.Выгрузить());
	Объект.Комплектующие.ДоляСтоимости.Видимость = Истина;
КонецПроцедуры
Показать
4. dka80 20 17.07.19 13:14 Сейчас в теме
(3) Твой запрос выбирает данные из базы, а как ты их выберешь из базы, если документ не записан? Никак. Если очень хочешь, можешь в таблицу значений предварительно выгрузить свои данные и выбирать уже из нее. К тому же, в твоем запросе будут данные выбираться из всех документов, а не из определенного.
А вообще, сам запрос можно переписать так:
"ВЫБРАТЬ
| КомплектацияНоменклатуры.Ссылка.Номенклатура._Площадь КАК _Площадь,
| КомплектацияНоменклатуры.Ссылка.Количество КАК Количество,
| КомплектацияНоменклатуры.ДоляСтоимости = КомплектацияНоменклатуры.Номенклатура._Площадь / КомплектацияНоменклатуры.Количество КАК КАК ДоляСтоимости
|ИЗ
| Документ.КомплектацияНоменклатуры.Комплектующие КАК КомплектацияНоменклатуры"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот