1. CD_SVEN 21.05.20 07:57 Сейчас в теме

Запрос выбрать документы за период

Добрый день подскажите пожалуйста в чем ошибка, есть 2 запроса, необходимо выбрать документы за указанный период, и поместить все на печатную форму, на печатную форму попадает только 1 документ и тот не весь не выходят цена и сумма.
ТабДокумент = Новый ТабличныйДокумент;
	
	ЗапросСсылка=Новый Запрос;
	ЗапросСсылка.Текст="ВЫБРАТЬ
	                   |	АктСписанияМЗ.Ссылка КАК Ссылка
	                   |ИЗ
	                   |	Документ.АктСписанияМЗ КАК АктСписанияМЗ
	                   |ГДЕ
	                   |	АктСписанияМЗ.Проведен = ИСТИНА
	                   |	И АктСписанияМЗ.Дата МЕЖДУ &ДатаН И &ДатаК";
	Если ЗначениеЗаполнено(ЭтотОбъект.Учреждение) тогда
		ЗапросСсылка.Текст=ЗапросСсылка.Текст+"
		
		|	И АктСписанияМЗ.Организация = &Учреждение";
	КонецЕсли;

	Если ЗначениеЗаполнено(ЭтотОбъект.МОЛ) тогда
		ЗапросСсылка.Текст=ЗапросСсылка.Текст+"
		|		И АктСписанияМЗ.ЦМООтправитель = &МОЛ";
	КонецЕсли;
	ЗапросСсылка.УстановитьПараметр("МОЛ", ЭтотОбъект.Мол);
	ЗапросСсылка.УстановитьПараметр("Учреждение", ЭтотОбъект.Учреждение);
	
	ЗапросСсылка.УстановитьПараметр("ДатаН", ЭтотОбъект.ДатаНачало);
	ЗапросСсылка.УстановитьПараметр("ДатаК", КонецДня(ЭтотОбъект.ДатаКонец));

	Рез=ЗапросСсылка.Выполнить().Выбрать();
	Пока Рез.Следующий() цикл
		Ссылка=Рез.Ссылка;
	КонецЦикла;
	
	Если ЗначениеЗаполнено(Ссылка) тогда	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	Запрос.УстановитьПараметр("МОЛ", ЭтотОбъект.Мол);   
	Запрос.УстановитьПараметр("Учреждение", ЭтотОбъект.Учреждение);

	Запрос.УстановитьПараметр("ДатаН", ЭтотОбъект.ДатаНачало);
	Запрос.УстановитьПараметр("ДатаК", КонецДня(ЭтотОбъект.ДатаКонец));
	
	//Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	АктСписанияМЗ.Ссылка КАК Ссылка,
	|	ЕПСБУ.Ссылка КАК Счет
	|ПОМЕСТИТЬ СчетаДокументов
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Ссылка = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка = &ссылка
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка В(&ссылка)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка = &ссылка
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель.Родитель.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка = &ссылка
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.СчетДт, ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ПустаяСсылка)) КАК СчетДт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КПСДт, ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПСДт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КЭКДт, ЗНАЧЕНИЕ(Справочник.КОСГУ.ПустаяСсылка)) КАК КЭКДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КФО КАК КФО,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт, ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ПустаяСсылка)) КАК СчетКт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КПСКт, ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПСКт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КЭККт, ЗНАЧЕНИЕ(Справочник.КОСГУ.ПустаяСсылка)) КАК КЭККт,
	|	ВЫБОР
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт2 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт3 КАК Справочник.Номенклатура)
	|	КОНЕЦ КАК Номенклатура,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор КАК Регистратор,
	|	СУММА(ЖурналПроводокЕПСБУДвиженияССубконто.КоличествоКт) КАК Количество,
	|	СУММА(ЖурналПроводокЕПСБУДвиженияССубконто.Сумма) КАК Сумма
	|ИЗ
	|	РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(
	|			,
	|			,
	|			Регистратор В (&МассивОбъектов)
	|				И Регистратор ССЫЛКА Документ.АктСписанияМЗ,
	|			,
	|			) КАК ЖурналПроводокЕПСБУДвиженияССубконто
	|ГДЕ
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт В
	|			(ВЫБРАТЬ
	|				СчетаДокументов.Счет
	|			ИЗ
	|				СчетаДокументов КАК СчетаДокументов
	|			ГДЕ
	|				СчетаДокументов.Ссылка = ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор)
	|
	|СГРУППИРОВАТЬ ПО
	|	ВЫБОР
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт2 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт3 КАК Справочник.Номенклатура)
	|	КОНЕЦ,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КЭКДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КЭККт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КПСКт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КПСДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КФО
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	АктСписанияМЗ.Ссылка КАК Ссылка,
	|	АктСписанияМЗ.Номер КАК ТекстНомер,
	|	АктСписанияМЗ.Дата КАК ТекстДата,
	|	АктСписанияМЗ.Организация КАК Организация,
	|	АктСписанияМЗ.Организация.НаименованиеПолное КАК НаименованиеОрганизации,
	|	АктСписанияМЗ.Организация.КодОКПО КАК КодОКПО,
	|	АктСписанияМЗ.Организация.ИНН КАК ИНН,
	|	АктСписанияМЗ.Организация.КПП КАК КПП,
	|	АктСписанияМЗ.ПодразделениеОтправитель КАК ПодразделениеОтправитель,
	|	АктСписанияМЗ.ПодразделениеОтправитель.Наименование КАК Подразделение,
	|	АктСписанияМЗ.ЦМООтправитель КАК ЦМООтправитель,
	|	АктСписанияМЗ.ЦМООтправитель.Сотрудник.Контрагент КАК ЦМО,
	|	АктСписанияМЗ.ДолжностьПредседательКомиссии КАК ДолжностьПредседателяКомиссии,
	|	АктСписанияМЗ.ФамилияПредседательКомиссии КАК ФамилияПредседателяКомиссии,
	|	АктСписанияМЗ.ИмяПредседательКомиссии КАК ИмяПредседателяКомиссии,
	|	АктСписанияМЗ.ОтчествоПредседательКомиссии КАК ОтчествоПредседателяКомиссии,
	|	АктСписанияМЗ.НомерПриказа КАК ТекстНомерПриказа,
	|	АктСписанияМЗ.ДатаПриказа КАК ТекстДатаПриказа,
	|	АктСписанияМЗ.Руководитель.Контрагент КАК ДиректорСсылка,
	|	АктСписанияМЗ.ЗаключениеКомиссии КАК ЗаключениеКомиссии,
	|	АктСписанияМЗ.Материалы.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		Номенклатура КАК НоменклатураСсылка,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗ.Материалы.Номенклатура.НаименованиеПолное = """"
	|				ТОГДА АктСписанияМЗ.Материалы.Номенклатура.Наименование
	|			ИНАЧЕ АктСписанияМЗ.Материалы.Номенклатура.НаименованиеПолное
	|		КОНЕЦ КАК НоменклатураПредставление,
	|		Номенклатура.Наименование КАК НоменклатураНаименование,
	|		Номенклатура.НаименованиеПолное КАК НоменклатураНаименованиеПолное,
	|		КоличествоНорма КАК НормаРасхода,
	|		Количество КАК Количество,
	|		ПричинаСписания КАК ПричинаСписания,
	|		ПРЕДСТАВЛЕНИЕ(АктСписанияМЗ.Материалы.Номенклатура.ЕдиницаИзмерения) КАК Единица,
	|		Номенклатура.Код КАК КодНоменклатуры,
	|		Номенклатура.НоменклатурныйНомер КАК НоменклатурныйНомерНоменклатуры,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗ.Материалы.Номенклатура.НоменклатурныйНомер = """"
	|				ТОГДА АктСписанияМЗ.Материалы.Номенклатура.Код
	|			ИНАЧЕ АктСписанияМЗ.Материалы.Номенклатура.НоменклатурныйНомер
	|		КОНЕЦ КАК НоменклатурныйНомер,
	|		СчетУчета КАК СчетУчета,
	|		КПС КАК КПС
	|	) КАК Материалы,
	|	АктСписанияМЗ.СоставКомиссии.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		ДолжностьЧленаКомиссии КАК ДолжностьЧленаКомиссии,
	|		ФамилияЧленаКомиссии КАК ФамилияЧленаКомиссии,
	|		ИмяЧленаКомиссии КАК ИмяЧленаКомиссии,
	|		ОтчествоЧленаКомиссии КАК ОтчествоЧленаКомиссии
	|	) КАК СоставКомиссии
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ
	|ГДЕ
	|	АктСписанияМЗ.Дата МЕЖДУ &ДатаН И &ДатаК
	|	И АктСписанияМЗ.Организация = &Учреждение
	|	И АктСписанияМЗ.ЦМООтправитель = &МОЛ
	|	И АктСписанияМЗ.Ссылка = &Ссылка
	|
	|УПОРЯДОЧИТЬ ПО
	|	АктСписанияМЗ.Дата,
	|	АктСписанияМЗ.Номер,
	|	НомерСтроки";
	//Запрос.УстановитьПараметр("Ссылка", Ссылка);
	//Запрос.УстановитьПараметр("МОЛ", ЭтотОбъект.Мол);
	//Запрос.УстановитьПараметр("Учреждение", ЭтотОбъект.Учреждение);
	Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
	//Запрос.УстановитьПараметр("ДатаН", ЭтотОбъект.ДатаНачало);
	//Запрос.УстановитьПараметр("ДатаК", КонецДня(ЭтотОбъект.ДатаКонец));
	РезультатЗапроса = Запрос.ВыполнитьПакет();
	
	ДвиженияДокументов = РезультатЗапроса[1].Выгрузить();
	ВыборкаДокументы = РезультатЗапроса[2].Выбрать();
Показать
Вознаграждение за ответ
Показать полностью
Ответы
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
2. Pavel Rodinchenko 21.05.20 08:32 Сейчас в теме
(1)
Рез=ЗапросСсылка.Выполнить().Выбрать();
Пока Рез.Следующий() цикл
Ссылка=Рез.Ссылка;
КонецЦикла;


Вероятнее всего ошибка именно тут. Так как получается, что если в выборке будет несколько документов, то выберете Вы самый последний и печатная форма будет строится по его данным. Поместите конец цикла в самый конец выполнения всех запросов. В таком случае у Вас будет выполняться большой запрос для каждого документа из выборки.
3. CD_SVEN 21.05.20 08:37 Сейчас в теме
(2) то же самое получается
4. AndKovalchuk 124 21.05.20 08:46 Сейчас в теме
(3) Ну или заполняйте тогда список ссылок

СписокСсылок = Новый СписокЗначений

Пока Рез.Следующий() Цикл
 СписокСсылок.ДобавитьЗначение(Рез.Ссылка);
КонецЦикла
5. Sashares 18 21.05.20 09:13 Сейчас в теме
(2)
Вероятнее всего ошибка именно тут.

Вероятнее? В чем вы сомневаетесь? О_о
6. CD_SVEN 21.05.20 10:11 Сейчас в теме
вопрос решен на половину, прописал правильное значение параметра
Запрос = Новый Запрос;
		Запрос.УстановитьПараметр("МассивОбъектов", ЗапросСсылка.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));


теперь вопрос в следующем нужно что бы на печать выходил только 1 печатная форма в которой будут данные из таблицы всех выбранных документов

Пока ВыборкаДокументы.Следующий() Цикл
			Если Не ПервыйДокумент Тогда
				ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			КонецЕсли;
			
			ПервыйДокумент = Ложь;
			НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
			
			ОбластьМакетаЗаголовок.Параметры.Заполнить(ВыборкаДокументы);
			
			ДанныеДиректора = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
			ВыборкаДокументы.ДиректорСсылка, ВыборкаДокументы.ТекстДата);
			Справочники.Контрагенты.ПолучитьДанныеКонтрагента(ДанныеДиректора, Истина);
			ДанныеЦМО = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
			ВыборкаДокументы.ЦМО, ВыборкаДокументы.ТекстДата);
			Справочники.Контрагенты.ПолучитьДанныеКонтрагента(ДанныеЦМО, Истина);
			
			ГлавныйБухгалтер = ОрганизационнаяСтруктураКлиентСервер.ОтветственноеЛицоОрганизации(
			Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер, ВыборкаДокументы.Организация,
			ВыборкаДокументы.ТекстДата, ВыборкаДокументы.ПодразделениеОтправитель);
			ДанныеГлБухгалтера = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
			ГлавныйБухгалтер.ОтветственноеЛицоСсылка, ВыборкаДокументы.ТекстДата);
			Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеГлБухгалтера, Истина);
			ПараметрыОтметкиБухгалтерии = Новый Структура;
			ПараметрыОтметкиБухгалтерии.Вставить("Дата", Формат(ВыборкаДокументы.ТекстДата,"ДФ='MMMM yyyy'"));
			ПараметрыОтметкиБухгалтерии.Вставить("ФИОГлавныйБухгалтер",
			КорреспондентыКлиентСервер.ФИО(ДанныеГлБухгалтера));
			Для каждого ТекОбластьКомиссия Из МассивДопОбластейКомиссия Цикл
				
				ТекОбластьКомиссия.Параметры.Заполнить(ПараметрыОтметкиБухгалтерии);
				
			КонецЦикла;
			
			СтрокаКомиссия = "";
			ВыборкаКомиссия = ВыборкаДокументы.СоставКомиссии.Выбрать();
			ОбластьКомиссия = СформироватьОбластьКомиссия(
			ВыборкаДокументы, ВыборкаКомиссия, МассивДопОбластейКомиссия, 3, СтрокаКомиссия, Истина);
			
			СтруктураПараметров = Новый Структура;
			СтруктураПараметров.Вставить("Директор", 		КорреспондентыКлиентСервер.ФИО(ДанныеДиректора, Истина));
			СтруктураПараметров.Вставить("МОЛ", 			"" + ДанныеЦМО.Фамилия + " " + ДанныеЦМО.Имя + " "
			+ ДанныеЦМО.Отчество);
			СтруктураПараметров.Вставить("ДатаПриказа", 	?(ЗначениеЗаполнено(ВыборкаДокументы.ТекстДатаПриказа),
			Формат(ВыборкаДокументы.ТекстДатаПриказа, "ДЛФ=DD"),
			"_______________"));
			СтруктураПараметров.Вставить("НомерПриказа", 	?(ЗначениеЗаполнено(ВыборкаДокументы.ТекстНомерПриказа),
			СокрЛП(ВыборкаДокументы.ТекстНомерПриказа),
			"_______________"));
			СтруктураПараметров.Вставить("Номер", 			РегистрыСведений.НастройкиПечатиПрефиксаНомера
			.ПолучитьНомерДляПечатиПоСсылкеИдентификаторуДокумента(
			"АктСписанияМЗ", ВыборкаДокументы.ТекстНомер));
			СтруктураПараметров.Вставить("Дата", 			Формат(ВыборкаДокументы.ТекстДата, "ДЛФ=D"));
			
			
			СтруктураПараметров.Вставить("пДатаЗаголовка1",	Формат(ЭтотОбъект.ДатаНачало, "ДЛФ=DD"));
			СтруктураПараметров.Вставить("пДатаЗаголовка2",	Формат(ЭтотОбъект.ДатаКонец, "ДЛФ=DD"));
			
			//СтруктураПараметров.Вставить("ДатаЗаголовка",	Формат(ВыборкаДокументы.ТекстДата, "ДЛФ=DD"));
			СтруктураПараметров.Вставить("ЧленыКомиссии",	СтрокаКомиссия);
			
			ОбластьМакетаЗаголовок.Параметры.Заполнить(СтруктураПараметров);
			ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
			ТабДокумент.Вывести(ОбластьМакетаШапка);
			
			ОбластьЗаключение = Новый ТабличныйДокумент;
			ВыведеноСтрокЗаключения = ВывестиДлиннуюСтроку(ВыборкаДокументы.ЗаключениеКомиссии,
			ОбластьЗаключение, 
			ОбластьМакетаЗаключение1,
			ОбластьМакетаЗаключение2,
			"ЗаключениеЯчейка1",
			"ЗаключениеЯчейка2");
			Для Счетчик = ВыведеноСтрокЗаключения + 1 По 3 Цикл
				
				ПустаяОбластьМакетаЗаключение2 = Макет.ПолучитьОбласть("Заключение2");
				ОбластьЗаключение.Вывести(ПустаяОбластьМакетаЗаключение2);
				
			КонецЦикла;
			
			СтрокиДвижений = ДвиженияДокументов.НайтиСтроки(Новый Структура("Регистратор", ВыборкаДокументы.Ссылка));
			ТаблицаДвижений = ДвиженияДокументов.Скопировать(СтрокиДвижений);
			
			ВыборкаМатериалы = ВыборкаДокументы.Материалы.Выбрать();
			СуммаИтого 		= 0;
			КоличествоИтого	= 0;
			КоличествоСтрок = ВыборкаМатериалы.Количество();
			Пока ВыборкаМатериалы.Следующий() Цикл
				
				ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаМатериалы);
				
				СтруктураПараметров = Новый Структура("Цена, Сумма, СчетДебета, СчетКредита");
				Цена = 0;
				Сумма = 0;
				
				ЗаполнитьЗначенияСвойств(СтруктураОтбора, ВыборкаМатериалы);
				
				СтруктураОтбора.Номенклатура = ВыборкаМатериалы.НоменклатураСсылка;
				СтруктураОтбора.СчетКт = ВыборкаМатериалы.СчетУчета;
				СтруктураОтбора.КПСКт = ВыборкаМатериалы.КПС;
				
				ТекущиеДвижения = ТаблицаДвижений.НайтиСтроки(СтруктураОтбора);
				Если ТекущиеДвижения.Количество() > 0 Тогда
					ТекущееДвижение = ТекущиеДвижения[0];
					
					Если ТекущееДвижение.Количество <> 0 Тогда
						Цена = Окр(ТекущееДвижение.Сумма / ТекущееДвижение.Количество, 2);
					Иначе
						Цена = 0;
					КонецЕсли;
					Если ВыборкаМатериалы.Количество = ТекущееДвижение.Количество Тогда
						Сумма = ТекущееДвижение.Сумма;
					ИначеЕсли ВыборкаМатериалы.Количество < ТекущееДвижение.Количество Тогда
						Сумма = ВыборкаМатериалы.Количество * Цена;
					Иначе
						Сумма = 0;
					КонецЕсли;
					
					УчтенноеКоличество = Мин(ТекущееДвижение.Количество, ВыборкаМатериалы.Количество);
					ТекущееДвижение.Количество = ТекущееДвижение.Количество - УчтенноеКоличество;
					ТекущееДвижение.Сумма = ТекущееДвижение.Сумма - Сумма;
					
					Если ЗначениеЗаполнено(ТекущееДвижение.СчетДт) Тогда
						СтруктураПараметров.СчетДебета = УправлениеПечатьюБГУ.ПредставлениеРабочегоСчета(
						ТекущееДвижение.КПСДт, ТекущееДвижение.КФО, ТекущееДвижение.СчетДт, ТекущееДвижение.КЭКДт,,)
					КонецЕсли;
					СтруктураПараметров.СчетКредита = УправлениеПечатьюБГУ.ПредставлениеРабочегоСчета(
					ТекущееДвижение.КПСКт, ТекущееДвижение.КФО, ТекущееДвижение.СчетКт, ТекущееДвижение.КЭККт,,);
				КонецЕсли;
				
				СтруктураПараметров.Цена	= Формат(Цена, "ЧДЦ=2");
				СтруктураПараметров.Сумма	= Формат(Сумма, "ЧДЦ=2");
				ОбластьМакетаСтрока.Параметры.Заполнить(СтруктураПараметров);
				
				Если ВыборкаМатериалы.НомерСтроки <> КоличествоСтрок Тогда
					Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда
						ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
						ТабДокумент.Вывести(ОбластьМакетаШапка);
					КонецЕсли;
				Иначе
					Области = Новый Массив;
					Области.Добавить(ОбластьМакетаСтрока);
					Области.Добавить(ОбластьМакетаИтого);
					Области.Добавить(ОбластьМакетаПодвал);
					Области.Добавить(ОбластьЗаключение);
					Области.Добавить(ОбластьКомиссия);
					Области.Добавить(ОбластьМакетаДата);
					Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда
						ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
						ТабДокумент.Вывести(ОбластьМакетаШапка);
					КонецЕсли;
				КонецЕсли;
				
				СуммаИтого 		= СуммаИтого		+ Сумма;
				КоличествоИтого	= КоличествоИтого	+ ВыборкаМатериалы.Количество;
				
				ТабДокумент.Вывести(ОбластьМакетаСтрока);
				
			КонецЦикла;
			
			СтруктураПараметров = Новый Структура;
			СтруктураПараметров.Вставить("КоличествоИтого", КоличествоИтого);
			СтруктураПараметров.Вставить("СуммаИтого", Формат(СуммаИтого, "ЧДЦ=2"));
			СтруктураПараметров.Вставить("СуммаИтогоПрописью",
			ОбщегоНазначенияБГУ.СформироватьСуммуПрописью(СуммаИтого, Неопределено));
			ОбластьМакетаИтого.Параметры.Заполнить(СтруктураПараметров);
			ТабДокумент.Вывести(ОбластьМакетаИтого);
			ОбластьМакетаПодвал.Параметры.Заполнить(СтруктураПараметров);
			ТабДокумент.Вывести(ОбластьМакетаПодвал);
			ТабДокумент.Вывести(ОбластьЗаключение);
			МассивОбластейПроверки = Новый Массив;
			МассивОбластейПроверки.Добавить(ОбластьКомиссия);
			МассивОбластейПроверки.Добавить(ОбластьМакетаДата);
			Если Не ТабДокумент.ПроверитьВывод(МассивОбластейПроверки) Тогда
				ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			КонецЕсли;
			ТабДокумент.Вывести(ОбластьКомиссия);
			ТабДокумент.Вывести(ОбластьМакетаДата);
			
			// В табличном документе зададим имя области, в которую был 
			// выведен объект. Нужно для возможности печати покомплектно.
			УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
			НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументы.Ссылка);
			
			Для каждого ТекДвижение Из СтрокиДвижений Цикл
				
				ДвиженияДокументов.Удалить(ТекДвижение);
				
			КонецЦикла; 
			
		КонецЦикла;
Показать
7. CD_SVEN 21.05.20 10:14 Сейчас в теме
сейчас допустим запросом мы выбираем 2 документ, и на печать выводится 2 печатные формы, но надо что бы была одна в которой будет 1 таблица из 2х документов
8. CD_SVEN 21.05.20 10:46 Сейчас в теме
Прошу помогите пожалуйста
9. Sashares 18 21.05.20 12:02 Сейчас в теме
(8)Выберите в разных запросах - отдельно шапку документов, отдельно данные табличных частей, чтобы в одном запросе все строки табличной части Материалов всех отбираемых документов возвращались сразу.

У вас не рассчитана процедура печати на печать нескольких документов, ее надо переделывать.
10. CD_SVEN 21.05.20 12:32 Сейчас в теме
(9)если вам не сложно подскажите как это сделать? Заранее огромное спасибо
13. Sashares 18 21.05.20 13:22 Сейчас в теме
(10)Открыть конструктор запросов, и переделать запрос на тот, который требуется.
11. CD_SVEN 21.05.20 13:04 Сейчас в теме
(9)хоты бы пример покажите пожалуйста
12. Sashares 18 21.05.20 13:21 Сейчас в теме
14. CD_SVEN 21.05.20 13:34 Сейчас в теме
(12) как в запросе выбрать шапку документа
15. Sashares 18 21.05.20 14:54 Сейчас в теме
(14)
Шапка документа - это реквизиты самого документа, без табличных частей.
Если этот вопрос вызывает у вас сложности, стоит почитать книги по платформе.
16. CD_SVEN 21.05.20 15:38 Сейчас в теме +0.4 $m
Табличная часть подтягивается, но цена, сумма, причина списания СчетДебета СчетКкредит не выходит, прошу помочь.

Функция ПечатьАкта230(МассивОбъектов, ОбъектыПечати, ИмяМакета)
	
	ТабДокумент = Новый ТабличныйДокумент;
	
	ЗапросСсылка=Новый Запрос;
	ЗапросСсылка.Текст="ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка КАК Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ
	|ГДЕ
	|	АктСписанияМЗ.Проведен = ИСТИНА
	|	И АктСписанияМЗ.Дата МЕЖДУ &ДатаН И &ДатаК";
	Если ЗначениеЗаполнено(ЭтотОбъект.Учреждение) тогда
		ЗапросСсылка.Текст=ЗапросСсылка.Текст+"
		
		|	И АктСписанияМЗ.Организация = &Учреждение";
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ЭтотОбъект.МОЛ) тогда
		ЗапросСсылка.Текст=ЗапросСсылка.Текст+"
		|		И АктСписанияМЗ.ЦМООтправитель = &МОЛ";
	КонецЕсли;
	ЗапросСсылка.УстановитьПараметр("МОЛ", ЭтотОбъект.Мол);
	ЗапросСсылка.УстановитьПараметр("Учреждение", ЭтотОбъект.Учреждение);
	
	ЗапросСсылка.УстановитьПараметр("ДатаН", ЭтотОбъект.ДатаНачало);
	ЗапросСсылка.УстановитьПараметр("ДатаК", КонецДня(ЭтотОбъект.ДатаКонец));
	
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("МассивОбъектов", ЗапросСсылка.Выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка"));
	//Запрос.УстановитьПараметр("МассивОбъектов", Ссылка);
	Запрос.УстановитьПараметр("МОЛ", ЭтотОбъект.Мол);   
	Запрос.УстановитьПараметр("Учреждение", ЭтотОбъект.Учреждение);
	
	Запрос.УстановитьПараметр("ДатаН", ЭтотОбъект.ДатаНачало);
	Запрос.УстановитьПараметр("ДатаК", КонецДня(ЭтотОбъект.ДатаКонец));
	
	
	Запрос.Текст =
	"ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	АктСписанияМЗ.Ссылка КАК Ссылка,
	|	ЕПСБУ.Ссылка КАК Счет
	|ПОМЕСТИТЬ СчетаДокументов
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Ссылка = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка В(&МассивОбъектов)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка В(&МассивОбъектов)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка В(&МассивОбъектов)
	|
	|ОБЪЕДИНИТЬ ВСЕ
	|
	|ВЫБРАТЬ
	|	АктСписанияМЗ.Ссылка,
	|	ЕПСБУ.Ссылка
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ,
	|	ПланСчетов.ЕПСБУ КАК ЕПСБУ
	|ГДЕ
	|	ЕПСБУ.Родитель.Родитель.Родитель = АктСписанияМЗ.СчетУчета
	|	И ЕПСБУ.ЭлементГруппа = ЛОЖЬ
	|	И АктСписанияМЗ.Ссылка В(&МассивОбъектов)
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.СчетДт, ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ПустаяСсылка)) КАК СчетДт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КПСДт, ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПСДт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КЭКДт, ЗНАЧЕНИЕ(Справочник.КОСГУ.ПустаяСсылка)) КАК КЭКДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КФО КАК КФО,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт, ЗНАЧЕНИЕ(ПланСчетов.ЕПСБУ.ПустаяСсылка)) КАК СчетКт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КПСКт, ЗНАЧЕНИЕ(Справочник.КлассификационныеПризнакиСчетов.ПустаяСсылка)) КАК КПСКт,
	|	ЕСТЬNULL(ЖурналПроводокЕПСБУДвиженияССубконто.КЭККт, ЗНАЧЕНИЕ(Справочник.КОСГУ.ПустаяСсылка)) КАК КЭККт,
	|	ВЫБОР
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт2 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт3 КАК Справочник.Номенклатура)
	|	КОНЕЦ КАК Номенклатура,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор КАК Регистратор,
	|	СУММА(ЖурналПроводокЕПСБУДвиженияССубконто.КоличествоКт) КАК Количество,
	|	СУММА(ЖурналПроводокЕПСБУДвиженияССубконто.Сумма) КАК Сумма
	|ИЗ
	|	РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(
	|			,
	|			,
	|			Регистратор В (&МассивОбъектов)
	|				И Регистратор ССЫЛКА Документ.АктСписанияМЗ,
	|			,
	|			) КАК ЖурналПроводокЕПСБУДвиженияССубконто
	|ГДЕ
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт В
	|			(ВЫБРАТЬ
	|				СчетаДокументов.Счет
	|			ИЗ
	|				СчетаДокументов КАК СчетаДокументов
	|			ГДЕ
	|				СчетаДокументов.Ссылка = ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор)
	|
	|СГРУППИРОВАТЬ ПО
	|	ВЫБОР
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт1 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт1 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт2 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт2 КАК Справочник.Номенклатура)
	|		КОГДА ЖурналПроводокЕПСБУДвиженияССубконто.ВидСубконтоКт3 = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Номенклатура)
	|			ТОГДА ВЫРАЗИТЬ(ЖурналПроводокЕПСБУДвиженияССубконто.СубконтоКт3 КАК Справочник.Номенклатура)
	|	КОНЕЦ,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетКт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КЭКДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КЭККт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.Регистратор,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КПСКт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.СчетДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КПСДт,
	|	ЖурналПроводокЕПСБУДвиженияССубконто.КФО
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ РАЗРЕШЕННЫЕ
	|	АктСписанияМЗ.Ссылка КАК Ссылка,
	|	АктСписанияМЗ.Номер КАК ТекстНомер,
	|	АктСписанияМЗ.Дата КАК ТекстДата,
	|	АктСписанияМЗ.Организация КАК Организация,
	|	АктСписанияМЗ.Организация.НаименованиеПолное КАК НаименованиеОрганизации,
	|	АктСписанияМЗ.Организация.КодОКПО КАК КодОКПО,
	|	АктСписанияМЗ.Организация.ИНН КАК ИНН,
	|	АктСписанияМЗ.Организация.КПП КАК КПП,
	|	АктСписанияМЗ.ПодразделениеОтправитель КАК ПодразделениеОтправитель,
	|	АктСписанияМЗ.ПодразделениеОтправитель.Наименование КАК Подразделение,
	|	АктСписанияМЗ.ЦМООтправитель КАК ЦМООтправитель,
	|	АктСписанияМЗ.ЦМООтправитель.Сотрудник.Контрагент КАК ЦМО,
	|	АктСписанияМЗ.ДолжностьПредседательКомиссии КАК ДолжностьПредседателяКомиссии,
	|	АктСписанияМЗ.ФамилияПредседательКомиссии КАК ФамилияПредседателяКомиссии,
	|	АктСписанияМЗ.ИмяПредседательКомиссии КАК ИмяПредседателяКомиссии,
	|	АктСписанияМЗ.ОтчествоПредседательКомиссии КАК ОтчествоПредседателяКомиссии,
	|	АктСписанияМЗ.НомерПриказа КАК ТекстНомерПриказа,
	|	АктСписанияМЗ.ДатаПриказа КАК ТекстДатаПриказа,
	|	АктСписанияМЗ.Руководитель.Контрагент КАК ДиректорСсылка,
	|	АктСписанияМЗ.ЗаключениеКомиссии КАК ЗаключениеКомиссии,
	|	АктСписанияМЗ.Материалы.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		Номенклатура КАК НоменклатураСсылка,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗ.Материалы.Номенклатура.НаименованиеПолное = """"
	|				ТОГДА АктСписанияМЗ.Материалы.Номенклатура.Наименование
	|			ИНАЧЕ АктСписанияМЗ.Материалы.Номенклатура.НаименованиеПолное
	|		КОНЕЦ КАК НоменклатураПредставление,
	|		Номенклатура.Наименование КАК НоменклатураНаименование,
	|		Номенклатура.НаименованиеПолное КАК НоменклатураНаименованиеПолное,
	|		КоличествоНорма КАК НормаРасхода,
	|		Количество КАК Количество,
	|		ПричинаСписания КАК ПричинаСписания,
	|		ПРЕДСТАВЛЕНИЕ(АктСписанияМЗ.Материалы.Номенклатура.ЕдиницаИзмерения) КАК Единица,
	|		Номенклатура.Код КАК КодНоменклатуры,
	|		Номенклатура.НоменклатурныйНомер КАК НоменклатурныйНомерНоменклатуры,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗ.Материалы.Номенклатура.НоменклатурныйНомер = """"
	|				ТОГДА АктСписанияМЗ.Материалы.Номенклатура.Код
	|			ИНАЧЕ АктСписанияМЗ.Материалы.Номенклатура.НоменклатурныйНомер
	|		КОНЕЦ КАК НоменклатурныйНомер,
	|		СчетУчета КАК СчетУчета,
	|		КПС КАК КПС
	|	) КАК Материалы,
	|	АктСписанияМЗ.СоставКомиссии.(
	|		Ссылка КАК Ссылка,
	|		НомерСтроки КАК НомерСтроки,
	|		ДолжностьЧленаКомиссии КАК ДолжностьЧленаКомиссии,
	|		ФамилияЧленаКомиссии КАК ФамилияЧленаКомиссии,
	|		ИмяЧленаКомиссии КАК ИмяЧленаКомиссии,
	|		ОтчествоЧленаКомиссии КАК ОтчествоЧленаКомиссии
	|	) КАК СоставКомиссии
	|ИЗ
	|	Документ.АктСписанияМЗ КАК АктСписанияМЗ
	|ГДЕ
	|	АктСписанияМЗ.Дата МЕЖДУ &ДатаН И &ДатаК
	|	И АктСписанияМЗ.Организация = &Учреждение
	|	И АктСписанияМЗ.ЦМООтправитель = &МОЛ
	|	И АктСписанияМЗ.Ссылка В(&МассивОбъектов)
	|
	|УПОРЯДОЧИТЬ ПО
	|	АктСписанияМЗ.Дата,
	|	АктСписанияМЗ.Номер,
	|	НомерСтроки
	|;
	|
	|////////////////////////////////////////////////////////////­////////////////////
	|ВЫБРАТЬ
	|	ВложенныйЗапрос.Ссылка КАК Ссылка,
	|	ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
	|	ВложенныйЗапрос.НоменклатураПредставление КАК НоменклатураПредставление,
	|	ВложенныйЗапрос.НормаРасхода КАК НормаРасхода,
	|	ВложенныйЗапрос.Количество КАК Количество,
	|	ВложенныйЗапрос.ПричинаСписания КАК ПричинаСписания,
	|	ВложенныйЗапрос.Единица КАК Единица,
	|	ВложенныйЗапрос.КодНаименование КАК КодНаименование,
	|	ВложенныйЗапрос.НоменклатурныйНомерНоменклатуры КАК НоменклатурныйНомерНоменклатуры,
	|	ВложенныйЗапрос.НоменклатурныйНомер КАК НоменклатурныйНомер,
	|	ВложенныйЗапрос.СчетУчета КАК СчетУчета,
	|	ВложенныйЗапрос.КПС КАК КПС,
	|	ВложенныйЗапрос.НоменклатураСсылка КАК НоменклатураСсылка,
	|	ВложенныйЗапрос.НоменклатураНаименование КАК НоменклатураНаименование,
	|	ВложенныйЗапрос.НоменклатураНаименованиеПолное КАК НоменклатураНаименованиеПолное
	|ИЗ
	|	(ВЫБРАТЬ
	|		АктСписанияМЗМатериалы.Ссылка КАК Ссылка,
	|		АктСписанияМЗМатериалы.НомерСтроки КАК НомерСтроки,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗМатериалы.Номенклатура.НаименованиеПолное = """"
	|				ТОГДА АктСписанияМЗМатериалы.Номенклатура.Наименование
	|			ИНАЧЕ АктСписанияМЗМатериалы.Номенклатура.НаименованиеПолное
	|		КОНЕЦ КАК НоменклатураПредставление,
	|		АктСписанияМЗМатериалы.КоличествоНорма КАК НормаРасхода,
	|		АктСписанияМЗМатериалы.Количество КАК Количество,
	|		АктСписанияМЗМатериалы.ПричинаСписания КАК ПричинаСписания,
	|		ПРЕДСТАВЛЕНИЕ(АктСписанияМЗМатериалы.Номенклатура.ЕдиницаИзмерения) КАК Единица,
	|		АктСписанияМЗМатериалы.Номенклатура.Код КАК КодНаименование,
	|		АктСписанияМЗМатериалы.Номенклатура.НоменклатурныйНомер КАК НоменклатурныйНомерНоменклатуры,
	|		ВЫБОР
	|			КОГДА АктСписанияМЗМатериалы.Номенклатура.НоменклатурныйНомер = """"
	|				ТОГДА АктСписанияМЗМатериалы.Номенклатура.Код
	|			ИНАЧЕ АктСписанияМЗМатериалы.Номенклатура.НоменклатурныйНомер
	|		КОНЕЦ КАК НоменклатурныйНомер,
	|		АктСписанияМЗМатериалы.Номенклатура.СчетУчета КАК СчетУчета,
	|		АктСписанияМЗМатериалы.КПС КАК КПС,
	|		АктСписанияМЗМатериалы.Номенклатура КАК НоменклатураСсылка,
	|		АктСписанияМЗМатериалы.Номенклатура.Наименование КАК НоменклатураНаименование,
	|		АктСписанияМЗМатериалы.Номенклатура.НаименованиеПолное КАК НоменклатураНаименованиеПолное
	|	ИЗ
	|		Документ.АктСписанияМЗ.Материалы КАК АктСписанияМЗМатериалы
	|	ГДЕ
	|		АктСписанияМЗМатериалы.Ссылка В(&МассивОбъектов)) КАК ВложенныйЗапрос";
	РезультатЗапроса = Запрос.ВыполнитьПакет();
	
	ДвиженияДокументов = РезультатЗапроса[1].Выгрузить();
	ВыборкаДокументы = РезультатЗапроса[2].Выбрать();
	ВыборкаМатериалы = РезультатЗапроса[3].выбрать();
	
	ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
	ТабДокумент.Автомасштаб = Истина;
	ТабДокумент.ПолеСлева  = 5;
	ТабДокумент.ПолеСправа = 0;
	ТабДокумент.ИмяПараметровПечати = "ПараметрыПечати_АктСписанияМЗ_0504230";
	
	Макет = ПолучитьМакет("ПФ_MXL_АктСписанияМЗ0504230_52н");;
	
	ОбластьМакетаЗаголовок  = Макет.ПолучитьОбласть("Заголовок");
	ОбластьМакетаШапка      = Макет.ПолучитьОбласть("Шапка");
	ОбластьМакетаСтрока     = Макет.ПолучитьОбласть("Строка");
	ОбластьМакетаИтого      = Макет.ПолучитьОбласть("Итого");
	ОбластьМакетаПодвал     = Макет.ПолучитьОбласть("Подвал");
	ОбластьМакетаКомиссия   = Макет.ПолучитьОбласть("Комиссия");
	ОбластьМакетаДата       = Макет.ПолучитьОбласть("Дата");
	
	ОбластьМакетаЗаключение1 = Макет.ПолучитьОбласть("Заключение1");
	ОбластьМакетаЗаключение2 = Макет.ПолучитьОбласть("Заключение2");
	
	ЕстьДопОбластиКомиссия = Макет.Области.Найти("Комиссия1") <> Неопределено;
	МассивДопОбластейКомиссия = Новый Массив;
	Если ЕстьДопОбластиКомиссия Тогда
		МассивДопОбластейКомиссия.Добавить(Макет.ПолучитьОбласть("Комиссия1"));
		МассивДопОбластейКомиссия.Добавить(Макет.ПолучитьОбласть("Комиссия2"));
		МассивДопОбластейКомиссия.Добавить(Макет.ПолучитьОбласть("Комиссия3"));
		МассивДопОбластейКомиссия.Добавить(Макет.ПолучитьОбласть("Комиссия4"));
		МассивДопОбластейКомиссия.Добавить(ОбластьМакетаКомиссия);
	Иначе
		МассивДопОбластейКомиссия.Добавить(ОбластьМакетаКомиссия);
	КонецЕсли;
	
	ПервыйДокумент = Истина;
	СтруктураОтбора = Новый Структура("Номенклатура, СчетКт, КПСКт");
	
	 ВыборкаДокументы.Следующий();
		Если Не ПервыйДокумент Тогда
			ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		
		ПервыйДокумент = Ложь;
		НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
		
		ОбластьМакетаЗаголовок.Параметры.Заполнить(ВыборкаДокументы);
		
		ДанныеДиректора = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
		ВыборкаДокументы.ДиректорСсылка, ВыборкаДокументы.ТекстДата);
		Справочники.Контрагенты.ПолучитьДанныеКонтрагента(ДанныеДиректора, Истина);
		ДанныеЦМО = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
		ВыборкаДокументы.ЦМО, ВыборкаДокументы.ТекстДата);
		Справочники.Контрагенты.ПолучитьДанныеКонтрагента(ДанныеЦМО, Истина);
		
		ГлавныйБухгалтер = ОрганизационнаяСтруктураКлиентСервер.ОтветственноеЛицоОрганизации(
		Перечисления.ОтветственныеЛицаОрганизаций.ГлавныйБухгалтер, ВыборкаДокументы.Организация,
		ВыборкаДокументы.ТекстДата, ВыборкаДокументы.ПодразделениеОтправитель);
		ДанныеГлБухгалтера = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество",
		ГлавныйБухгалтер.ОтветственноеЛицоСсылка, ВыборкаДокументы.ТекстДата);
		Справочники.Сотрудники.ПолучитьДанныеСотрудника(ДанныеГлБухгалтера, Истина);
		ПараметрыОтметкиБухгалтерии = Новый Структура;
		ПараметрыОтметкиБухгалтерии.Вставить("Дата", Формат(ВыборкаДокументы.ТекстДата,"ДФ='MMMM yyyy'"));
		ПараметрыОтметкиБухгалтерии.Вставить("ФИОГлавныйБухгалтер",
		КорреспондентыКлиентСервер.ФИО(ДанныеГлБухгалтера));
		Для каждого ТекОбластьКомиссия Из МассивДопОбластейКомиссия Цикл
			
			ТекОбластьКомиссия.Параметры.Заполнить(ПараметрыОтметкиБухгалтерии);
			
		КонецЦикла;
		
		СтрокаКомиссия = "";
		ВыборкаКомиссия = ВыборкаДокументы.СоставКомиссии.Выбрать();
		ОбластьКомиссия = СформироватьОбластьКомиссия(
		ВыборкаДокументы, ВыборкаКомиссия, МассивДопОбластейКомиссия, 3, СтрокаКомиссия, Истина);
		
		СтруктураПараметров = Новый Структура;
		СтруктураПараметров.Вставить("Директор", 		КорреспондентыКлиентСервер.ФИО(ДанныеДиректора, Истина));
		СтруктураПараметров.Вставить("МОЛ", 			"" + ДанныеЦМО.Фамилия + " " + ДанныеЦМО.Имя + " "
		+ ДанныеЦМО.Отчество);
		СтруктураПараметров.Вставить("ДатаПриказа", 	?(ЗначениеЗаполнено(ВыборкаДокументы.ТекстДатаПриказа),
		Формат(ВыборкаДокументы.ТекстДатаПриказа, "ДЛФ=DD"),
		"_______________"));
		СтруктураПараметров.Вставить("НомерПриказа", 	?(ЗначениеЗаполнено(ВыборкаДокументы.ТекстНомерПриказа),
		СокрЛП(ВыборкаДокументы.ТекстНомерПриказа),
		"_______________"));
		СтруктураПараметров.Вставить("Номер", 			РегистрыСведений.НастройкиПечатиПрефиксаНомера
		.ПолучитьНомерДляПечатиПоСсылкеИдентификаторуДокумента(
		"АктСписанияМЗ", ВыборкаДокументы.ТекстНомер));
		СтруктураПараметров.Вставить("Дата", 			Формат(ВыборкаДокументы.ТекстДата, "ДЛФ=D"));
		СтруктураПараметров.Вставить("ДатаЗаголовка",	Формат(ВыборкаДокументы.ТекстДата, "ДЛФ=DD"));
		СтруктураПараметров.Вставить("ЧленыКомиссии",	СтрокаКомиссия);
		
		ОбластьМакетаЗаголовок.Параметры.Заполнить(СтруктураПараметров);
		ТабДокумент.Вывести(ОбластьМакетаЗаголовок);
		ТабДокумент.Вывести(ОбластьМакетаШапка);
		
		ОбластьЗаключение = Новый ТабличныйДокумент;
		ВыведеноСтрокЗаключения = ВывестиДлиннуюСтроку(ВыборкаДокументы.ЗаключениеКомиссии,
		ОбластьЗаключение, 
		ОбластьМакетаЗаключение1,
		ОбластьМакетаЗаключение2,
		"ЗаключениеЯчейка1",
		"ЗаключениеЯчейка2");
		Для Счетчик = ВыведеноСтрокЗаключения + 1 По 3 Цикл
			
			ПустаяОбластьМакетаЗаключение2 = Макет.ПолучитьОбласть("Заключение2");
			ОбластьЗаключение.Вывести(ПустаяОбластьМакетаЗаключение2);
			
		КонецЦикла;
		
		
		//Ошибка начинается отсюдаа
		
		//СтрокиДвижений = ДвиженияДокументов.НайтиСтроки(Новый Структура("Регистратор", ВыборкаДокументы.Ссылка));
		ТаблицаДвижений = ДвиженияДокументов.Скопировать();
		
		//ВыборкаМатериалы = ВыборкаДокументы.Материалы.Выбрать();
		СуммаИтого 		= 0;
		КоличествоИтого	= 0;
		КоличествоСтрок = ВыборкаМатериалы.Количество();
		Пока ВыборкаМатериалы.Следующий() Цикл
			
			ОбластьМакетаСтрока.Параметры.Заполнить(ВыборкаМатериалы);
			
			СтруктураПараметров = Новый Структура("Цена, Сумма, СчетДебета, СчетКредита");
			Цена = 0;
			Сумма = 0;
			
			ЗаполнитьЗначенияСвойств(СтруктураОтбора, ВыборкаМатериалы);
			
			СтруктураОтбора.Номенклатура = ВыборкаМатериалы.НоменклатураСсылка;
			СтруктураОтбора.СчетКт = ВыборкаМатериалы.СчетУчета;
			СтруктураОтбора.КПСКт = ВыборкаМатериалы.КПС;
			
			//Ошибка начинается отсюдаа-----------------------------------------------------------------------------------------------
			ТекущиеДвижения = ТаблицаДвижений.НайтиСтроки(СтруктураОтбора);
			Если ТекущиеДвижения.Количество() > 0 Тогда
				ТекущееДвижение = ТекущиеДвижения[0];
				
				Если ТекущееДвижение.Количество <> 0 Тогда
					Цена = Окр(ТекущееДвижение.Сумма / ТекущееДвижение.Количество, 2);
				Иначе
					Цена = 0;
				КонецЕсли;
				Если ВыборкаМатериалы.Количество = ТекущееДвижение.Количество Тогда
					Сумма = ТекущееДвижение.Сумма;
				ИначеЕсли ВыборкаМатериалы.Количество < ТекущееДвижение.Количество Тогда
					Сумма = ВыборкаМатериалы.Количество * Цена;
				Иначе
					Сумма = 0;
				КонецЕсли;
				
				УчтенноеКоличество = Мин(ТекущееДвижение.Количество, ВыборкаМатериалы.Количество);
				ТекущееДвижение.Количество = ТекущееДвижение.Количество - УчтенноеКоличество;
				ТекущееДвижение.Сумма = ТекущееДвижение.Сумма - Сумма;
				
				Если ЗначениеЗаполнено(ТекущееДвижение.СчетДт) Тогда
					СтруктураПараметров.СчетДебета = УправлениеПечатьюБГУ.ПредставлениеРабочегоСчета(
					ТекущееДвижение.КПСДт, ТекущееДвижение.КФО, ТекущееДвижение.СчетДт, ТекущееДвижение.КЭКДт,,)
				КонецЕсли;
				СтруктураПараметров.СчетКредита = УправлениеПечатьюБГУ.ПредставлениеРабочегоСчета(
				ТекущееДвижение.КПСКт, ТекущееДвижение.КФО, ТекущееДвижение.СчетКт, ТекущееДвижение.КЭККт,,);
			КонецЕсли;
			
			СтруктураПараметров.Цена	= Формат(Цена, "ЧДЦ=2");
			СтруктураПараметров.Сумма	= Формат(Сумма, "ЧДЦ=2");
			ОбластьМакетаСтрока.Параметры.Заполнить(СтруктураПараметров);
			
			Если ВыборкаМатериалы.НомерСтроки <> КоличествоСтрок Тогда
				Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда
					ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
					ТабДокумент.Вывести(ОбластьМакетаШапка);
				КонецЕсли;
			Иначе
				Области = Новый Массив;
				Области.Добавить(ОбластьМакетаСтрока);
				Области.Добавить(ОбластьМакетаИтого);
				Области.Добавить(ОбластьМакетаПодвал);
				Области.Добавить(ОбластьЗаключение);
				Области.Добавить(ОбластьКомиссия);
				Области.Добавить(ОбластьМакетаДата);
				Если Не ТабДокумент.ПроверитьВывод(ОбластьМакетаСтрока) Тогда
					ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
					ТабДокумент.Вывести(ОбластьМакетаШапка);
				КонецЕсли;
			КонецЕсли;
			
			СуммаИтого 		= СуммаИтого		+ Сумма;
			КоличествоИтого	= КоличествоИтого	+ ВыборкаМатериалы.Количество;
			
			ТабДокумент.Вывести(ОбластьМакетаСтрока);
			
		КонецЦикла;
		
		СтруктураПараметров = Новый Структура;
		СтруктураПараметров.Вставить("КоличествоИтого", КоличествоИтого);
		СтруктураПараметров.Вставить("СуммаИтого", Формат(СуммаИтого, "ЧДЦ=2"));
		СтруктураПараметров.Вставить("СуммаИтогоПрописью",
		ОбщегоНазначенияБГУ.СформироватьСуммуПрописью(СуммаИтого, Неопределено));
		ОбластьМакетаИтого.Параметры.Заполнить(СтруктураПараметров);
		ТабДокумент.Вывести(ОбластьМакетаИтого);
		ОбластьМакетаПодвал.Параметры.Заполнить(СтруктураПараметров);
		ТабДокумент.Вывести(ОбластьМакетаПодвал);
		ТабДокумент.Вывести(ОбластьЗаключение);
		МассивОбластейПроверки = Новый Массив;
		МассивОбластейПроверки.Добавить(ОбластьКомиссия);
		МассивОбластейПроверки.Добавить(ОбластьМакетаДата);
		Если Не ТабДокумент.ПроверитьВывод(МассивОбластейПроверки) Тогда
			ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
		КонецЕсли;
		ТабДокумент.Вывести(ОбластьКомиссия);
		ТабДокумент.Вывести(ОбластьМакетаДата);
		
		// В табличном документе зададим имя области, в которую был 
		// выведен объект. Нужно для возможности печати покомплектно.
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент,
		НомерСтрокиНачало, ОбъектыПечати, ВыборкаДокументы.Ссылка);
		
		//Для каждого ТекДвижение Из ТаблицаДвижений Цикл
		//	
		//	ДвиженияДокументов.Удалить(ТекДвижение);
		//	
		//КонецЦикла; 
		
	
	
	Возврат ТабДокумент;
	
	
	
КонецФункции
Показать
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Программист 1С
Новороссийск
зарплата от 70 000 руб.
Полный день

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Специалист 1 категории (Программист 1С ФЗД)
Фрязино
зарплата от 110 000 руб.
Полный день

Специалист 1 категории (Программист 1С)
Фрязино
зарплата от 110 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству