Запрос из модуля менеджера

1. user833844 23.01.23 21:24 Сейчас в теме
Добрый день!

Есть процедура печати в модуле менеджера. помимо данных из документа Дефектная ведомость нужно вывести в Табдок данные из другого документа - Комиссия.

роцедура АктСписанияТМЦ(ТабДок, Ссылка) Экспорт
	//{{_КОНСТРУКТОР_ПЕЧАТИ(Акт списания ТМЦ)
	
	
	Макет = Документы.РасчетноДефектнаяВедомость.ПолучитьМакет("АктСписанияТМЦ");
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	РасчетноДефектнаяВедомость.Дата,
	|	РасчетноДефектнаяВедомость.КонтейнерныйТерминал,
	|	РасчетноДефектнаяВедомость.Номер,
	|	РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.(
	|		Материалы,
	|		Количество,
	|		Материалы.Цена КАК Цена,
	|		Материалы.ЕдиницаИзмерения.Код КАК ЕдиницаИзмеренияКод,
	|		Материалы.ЕдиницаИзмерения.Наименование КАК ЕдиницаИзмеренияНаименование,
	|		Материалы.НоменклатурныйНомер КАК НоменклатурныйНомер,
	|		РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Количество * РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Материалы.Цена КАК Сумма
	|	),
	|	РасчетноДефектнаяВедомость.НомерКонтейнера,
	|	РасчетноДефектнаяВедомость.МатериальноОтвететсвенноеЛицо КАК МатЛицо,
	|	РасчетноДефектнаяВедомость.МатериальноОтвететсвенноеЛицо.Должность КАК МатЛицоДолжность
	|ИЗ
	|	Документ.РасчетноДефектнаяВедомость КАК РасчетноДефектнаяВедомость
	|ГДЕ
	|	РасчетноДефектнаяВедомость.Ссылка В(&Ссылка)
	|	И РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Использованны = &Истина";
	Запрос.Параметры.Вставить("Ссылка", Ссылка);
	Запрос.Параметры.Вставить("Истина", Истина);

	Выборка = Запрос.Выполнить().Выбрать();

	ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
	Шапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьЗатраченныеМатериалыШапка = Макет.ПолучитьОбласть("ЗатраченныеМатериалыШапка");
	ОбластьЗатраченныеМатериалы = Макет.ПолучитьОбласть("ЗатраченныеМатериалы");
	Подвал = Макет.ПолучитьОбласть("Подвал");
	Комиссия = Макет.ПолучитьОбласть("Комиссия");
	МЛицо = Макет.ПолучитьОбласть("МатЛицо");
	

	ТабДок.Очистить();

	ВставлятьРазделительСтраниц = Ложь;
	Пока Выборка.Следующий() Цикл
////////////////////////////////////////////
		КТ = Выборка.КонтейнерныйТерминал;
//////////////////////////////////////////
		Если ВставлятьРазделительСтраниц Тогда
			ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ОбластьЗаголовок.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(ОбластьЗаголовок);

		Шапка.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(Шапка, Выборка.Уровень());
///////////////////////////////////////////////////		
	сыль = Ссылка[0].Ссылка;
	Котэ = сыль.КонтейнерныйТерминал;

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

	ТабДок.Вывести(Подвал);
	
	
	
			//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

	Запрос1 = Новый Запрос;
	Запрос1.Текст = 
		"ВЫБРАТЬ
		|	КомиссияСотрудники.Сотрудник КАК КомиссияСотрудник,
		|	КомиссияСотрудники.Должность КАК КомиссияДолжность
		|ИЗ
		|	Документ.Комиссия.Сотрудники КАК КомиссияСотрудники
		|ГДЕ
		|	КомиссияСотрудники.Ссылка.Подразделение = &Подразделение";

	Запрос1.УстановитьПараметр("Подразделение", КТ);

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

	Пока Результат.Следующий() Цикл
		Комиссия.Параметры.Заполнить(Результат);
		ТабДок.Вывести(Комиссия, Результат.Уровень());

	КонецЦикла;



	
	
//ЧленыКомиссии = ОбщегоНазначения.ПолучитьЧленовКомиссии(КТ);
////		
////		

//		Шапка.Параметры.ЧленыКомиссии = ЧленыКомиссии;

		
		
		
		
		Млицо.Параметры.Заполнить(Выборка);
		ТабДок.Вывести(Млицо, Выборка.Уровень());

		ВставлятьРазделительСтраниц = Истина;
	КонецЦикла;
	//}}
КонецПроцедуры
Показать


Не могу вытащить Подразделение из документа Деф Ведомость, чтобы вставить в запрос как параметр. Пробовала по разному, и уже запуталась
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. DBV 24.01.23 10:44 Сейчас в теме
(1) в каком реквизите документа хранится Подразделение?

Судя по коду, должно в реквизите КонтейнерныйТерминал, тогда вроде бы правильно, но
Запрос.Параметры.Вставить("Ссылка", Ссылка);
и
сыль = Ссылка[0].Ссылка

То есть в запрос параметром передается какая-то коллекция? (скорей всего массив)
Соответственно результат первого запроса пустой

PS
Котэ = сыль.КонтейнерныйТерминал;

а тут зачем получается реквизит, который уже получен в запросе? (это кстати неявный запрос к БД).

Удивительные создания
Котэ 
сыль 
user833844; +1 Ответить
6. user833844 24.01.23 11:44 Сейчас в теме
(5) Создания для теста))))
Тогда правильнее получить так?
КТ = Выборка.КонтейнерныйТерминал;
7. DBV 24.01.23 12:12 Сейчас в теме
(6) Да, только ссылку в первом запросе правильно установите
user833844; +1 Ответить
8. DesertPunk 24.01.23 17:47 Сейчас в теме
(1) Я дико извиняюсь, но вот это вот что за...
    |    И РасчетноДефектнаяВедомость.ЗатраченныеМатериалы.Использованны = &Истина";
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Запрос.Параметры.Вставить("Истина", Истина);


1. Если ты планируешь формировать запрос или с признаком ИСТИНА или с признаком ЛОЖЬ - тебе нужно обращаться к реквизиту элемента. Если ты планируешь делать отбор только по одному значению ИСТИНА, то укажи это в условии в самом СКД
2. Реквизит, по которому ты связываешь в запросе объекты конфигурации не является параметром.
3. Если хочешь чтобы тебе помогали - не используй "смешные" локальные переменные. Никто не будет искать в коде что такое "Котэ"
user1881120; +1 Ответить
9. пользователь 24.01.23 18:36
Сообщение было скрыто модератором.
...
2. karamazoff 112 24.01.23 02:20 Сейчас в теме
Запрос.Параметры.Вставить("Истина", Истина);

капец...Если в док-те есть реквизит подразделение, то он доступен через точку по ссылке, если надо пересеч данные документа с другим через параметр, то нужно левое соединение в запросе
3. t278 57 24.01.23 02:53 Сейчас в теме
(2)ученики курсов пошли на форум, чтобы решить свои учебные задачи.
4. user1863362 24.01.23 08:48 Сейчас в теме
МатериальноОтвететсвенноеЛицо
Использованны
Эх-эх, сообщество...
Оставьте свое сообщение

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