Заполнение макета в зависимости от значения табличной части.

1. Intercititude 21.11.19 12:00 Сейчас в теме
Есть табличная часть: Номенклатура, Оформление(Булево)

Необходимо, чтобы если в строке у определенной Номенклатуры стоит Оформление=Истина.

То выводить на макет в параметр Номера этих строк где Истина.
Соответственно так же, если Оформление=Ложь.

Как это реализовать?!
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
9. YannikAlx 27 21.11.19 15:03 Сейчас в теме +0.1 $m
(7) Если у вас в каждой строке нужно менять ИСТИНА -ЛОЖЬ
То почему у вас вот этот код вынесен за пределы цикла
  КонецЦикла;
     
    Если РезультатЗапроса.Дооформление = Истина Тогда    
    ОбластьПодвал.Параметры.ДооформлениеИстина = Формат(РезультатЗапроса.Дооформление,"БИ=V");
    ИначеЕсли РезультатЗапроса.Дооформление = Ложь Тогда
    ОбластьПодвал.Параметры.ДооформлениеЛожь = Формат(РезультатЗапроса.Дооформление,"БЛ=");
    КонецЕсли;
    


За пределами цикла неправомерно использовать РезультатЗапроса.Дооформление
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user633533_encantado 11 21.11.19 12:16 Сейчас в теме
(1) Ну в каком месте у вас возникли сложности ?

Получаете данные для печати из своей табличной части ипо условию заполняете параметр области табличного документа.
4. Intercititude 21.11.19 13:03 Сейчас в теме
(2) В том, что как именно вывести конкретные строки с значением Истина.
3. YannikAlx 27 21.11.19 12:40 Сейчас в теме
(1) Покажите свою процедуру заполнения макета и мы покажем где вам что добавить...
5. Intercititude 21.11.19 13:03 Сейчас в теме
(3) собственно "Дооформление"-булево. Надо вывести именно конкретные номера строк у которых значение Истина.

ТабДок =Новый ТабличныйДокумент;
	ТабДок.АвтоМасштаб = Истина;
	ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_АктОКК";
	ТабДок.ПолеСверху			= 	0;
	ТабДок.ПолеСнизу				= 	0;
	ТабДок.ПолеСлева				= 	0;

	
	Макет = ПолучитьМакет("Макет");
	
	ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
	ОбластьТЧ = Макет.ПолучитьОбласть("ТЧ");
	ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
	
	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	АКТивныйДокумент.НомерЗаказа КАК Номер,
	                      |	АКТивныйДокумент.Дата,
	                      |	АКТивныйДокумент.Заключение1 КАК Заключение,
	                      |	АКТивныйДокумент.Заключение2 КАК ЗаключениеКомиссии,
	                      |	АКТивныйДокумент.Часть,
	                      |	АКТивныйДокументТовары.НомерСтроки КАК НомерСтроки,
	                      |	АКТивныйДокументТовары.ДатаОсмотра КАК ДатаОсмотра,
	                      |	АКТивныйДокументТовары.СерияНоменклатуры КАК Серия,
	                      |	АКТивныйДокументТовары.ОформлениеТранспорнойТары КАК ОформлениеТТ,
	                      |	АКТивныйДокументТовары.НаличиеОсадка КАК Осадок,
	                      |	АКТивныйДокументТовары.СоответствиеИнформации КАК Соответствие,
	                      |	АКТивныйДокументТовары.ПроцентБрака КАК Процент,
	                      |	АКТивныйДокументТовары.СерияНоменклатуры,
	                      |	АКТивныйДокументТовары.КоличествоПродукции,
	                      |	АКТивныйДокументТовары.КоличествоМест,
	                      |	АКТивныйДокументТовары.ОформлениеБутылки,
	                      |	АКТивныйДокументТовары.Номенклатура.НаименованиеПолное КАК Номенклатура,
	                      |	АКТивныйДокументТовары.Номенклатура.Производитель КАК Производитель,
	                      |	АКТивныйДокумент.Основание.Ссылка,
	                      |	АКТивныйДокументТовары.Дооформление
	                      |ИЗ
	                      |	Документ.АКТивныйДокумент КАК АКТивныйДокумент
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.АКТивныйДокумент.Товары КАК АКТивныйДокументТовары
	                      |		ПО АКТивныйДокумент.Ссылка = АКТивныйДокументТовары.Ссылка
	                      |ГДЕ
	                      |	АКТивныйДокумент.Ссылка = &ТекДок
	                      |
	                      |УПОРЯДОЧИТЬ ПО
	                      |	НомерСтроки
	                      |АВТОУПОРЯДОЧИВАНИЕ");
	
	Запрос.УстановитьПараметр("ТекДок", СсылкаНаДокумент);
	
	РезультатЗапроса = Запрос.Выполнить().Выбрать();
	
	
	Флаг = Ложь; 
	
	Пока РезультатЗапроса.Следующий() Цикл
		
		Если Не Флаг Тогда
		ОбластьШапка.Параметры.Номер = "№ " + Строка(РезультатЗапроса.Номер);
		ОбластьШапка.Параметры.Дата = Формат(РезультатЗапроса.Дата,"ДФ=dd.MM.yyyy");
		
		Если РезультатЗапроса.Часть <> 0 Тогда
			ОбластьШапка.Параметры.Часть = "("+Строка(РезультатЗапроса.Часть)+" часть)";
		Иначе
			ОбластьШапка.Параметры.Часть = "";
		КонецЕсли;
		
		ТабДок.Вывести(ОбластьШапка);
		Флаг = Истина;
		КонецЕсли;

		ОбластьТЧ.Параметры.НомерСтроки = РезультатЗапроса.НомерСтроки;
		ОбластьТЧ.Параметры.ДатаОсмотра = Формат(РезультатЗапроса.ДатаОсмотра,"ДФ=dd.MM.yyyy");
		ОбластьТЧ.Параметры.Номер = РезультатЗапроса.Номер;
		ОбластьТЧ.Параметры.Номенклатура = РезультатЗапроса.Номенклатура;
		ОбластьТЧ.Параметры.Производитель = РезультатЗапроса.Производитель.НаименованиеПолное;
		ОбластьТЧ.Параметры.ДатаРозлива = Формат(РезультатЗапроса.СерияНоменклатуры.ДатаНачалаРозлива,"ДФ=dd.MM.yyyy");   
		//ОбластьТЧ.Параметры.ДатаПоступления =  Формат(РезультатЗапроса.ПриходныйДокумент.Дата,"ДФ=dd.MM.yyyy");
		ОбластьТЧ.Параметры.СрокГодности = Формат(РезультатЗапроса.СерияНоменклатуры.СрокГодности,"ДФ=dd.MM.yyyy");   
		ОбластьТЧ.Параметры.Количество = РезультатЗапроса.КоличествоПродукции;
		ОбластьТЧ.Параметры.КоличествоВМест = РезультатЗапроса.КоличествоМест;
		
		ОбластьТЧ.Параметры.ОформлениеБутылки = РезультатЗапроса.ОформлениеБутылки;
		
		
		
		
		ОбластьТЧ.Параметры.ОформлениеТТ = РезультатЗапроса.ОформлениеТТ;
		ОбластьТЧ.Параметры.Осадок = РезультатЗапроса.Осадок;
		ОбластьТЧ.Параметры.Соответствие = РезультатЗапроса.Соответствие;
		ОбластьТЧ.Параметры.Процент = РезультатЗапроса.Процент;
		
		
		ТабДок.Вывести(ОбластьТЧ);
		
	КонецЦикла;
	 
	Если РезультатЗапроса.Дооформление = Истина Тогда	
	ОбластьПодвал.Параметры.ДооформлениеИстина = Формат(РезультатЗапроса.Дооформление,"БИ=V");
	ИначеЕсли РезультатЗапроса.Дооформление = Ложь Тогда
	ОбластьПодвал.Параметры.ДооформлениеЛожь = Формат(РезультатЗапроса.Дооформление,"БЛ=");
	КонецЕсли;
	
	
	 
	 
	ОбластьПодвал.Параметры.Заключение = РезультатЗапроса.Заключение;
	ОбластьПодвал.Параметры.ЗаключениеКомиссии = РезультатЗапроса.ЗаключениеКомиссии;
	ОбластьПодвал.Параметры.Основание = РезультатЗапроса.ОснованиеСсылка;
	ТабДок.Вывести(ОбластьПодвал);
	
	
	
	
	Возврат ТабДок;
Показать
6. YannikAlx 27 21.11.19 14:36 Сейчас в теме
(5) ну так кто мешает так, либо вы задачу не корректно поставили
 
                          |ГДЕ
                          |    АКТивныйДокумент.Ссылка = &ТекДок И  АКТивныйДокументТовары.Дооформление 
7. Intercititude 21.11.19 14:44 Сейчас в теме
(6) В табличной части пользователь ставит у какой то номенклатуры галочку в Истина.

Мне надо в параметр на макете вывести конкретный номер строки с этой Истина!

Из запроса то я могу вытащить Дооформление. Но как мне это вывести программно уже после, в обходе выборки.
8. YannikAlx 27 21.11.19 14:54 Сейчас в теме
(7) А скажите как вы понимаете вот это условие
                          |ГДЕ
                          |    АКТивныйДокумент.Ссылка = &ТекДок И  АКТивныйДокументТовары.Дооформление 



что выведет запрос по вашему

И поясните вообще зачем вам делать обход выборки ?
Вы запросом получаете только те , где истина...
9. YannikAlx 27 21.11.19 15:03 Сейчас в теме +0.1 $m
(7) Если у вас в каждой строке нужно менять ИСТИНА -ЛОЖЬ
То почему у вас вот этот код вынесен за пределы цикла
  КонецЦикла;
     
    Если РезультатЗапроса.Дооформление = Истина Тогда    
    ОбластьПодвал.Параметры.ДооформлениеИстина = Формат(РезультатЗапроса.Дооформление,"БИ=V");
    ИначеЕсли РезультатЗапроса.Дооформление = Ложь Тогда
    ОбластьПодвал.Параметры.ДооформлениеЛожь = Формат(РезультатЗапроса.Дооформление,"БЛ=");
    КонецЕсли;
    


За пределами цикла неправомерно использовать РезультатЗапроса.Дооформление
10. Intercititude 21.11.19 15:10 Сейчас в теме
(9) Уже разобрался.
Запихал в цикл и добавил езультатЗапроса.НомерСтроки. Верно ли это ?

Если РезультатЗапроса.Дооформление = Истина Тогда    
    ОбластьПодвал.Параметры.ДооформлениеИстина = Формат(РезультатЗапроса.Дооформление,"БИ=V") + РезультатЗапроса.НомерСтроки;
    ИначеЕсли РезультатЗапроса.Дооформление = Ложь Тогда
    ОбластьПодвал.Параметры.ДооформлениеЛожь = Формат(РезультатЗапроса.Дооформление,"БЛ=")+РезультатЗапроса.НомерСтроки;
    КонецЕсли;
11. YannikAlx 27 21.11.19 15:20 Сейчас в теме
(10) ну так глядите результат ...
ответ там ...
Оставьте свое сообщение

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