Работа функции ?

1. Terabaytus 16.03.21 11:27 Сейчас в теме
Добрый день, дорабатываю обработку не могу сообразить мне нужно добиться от Функция ПечатьПД4_20140101_ДобровольныеПожертвования(ИНН, МассивОбъектов, ОбъектыПечати, ИмяМакета) что бы она возвращала мне одну квитанцию с заполненными реквизитами организации сейчас при выборе организации возвращает то одну квитанцию то целый список не могу понять о чего это зависит ?



&НаКлиенте
Процедура ДобровольныеПожертвования(Команда)
	Если Объект.Период = '00010101' тогда
		сообщить("Не заполнен период!");
		Возврат;
	КонецЕсли;	
		
	ОбъектыПечати = Новый СписокЗначений;
	//МассивОбъектов=ОпрДок();
	МассивОбъектов=Новый Массив;
	
	
		
	ИНН = ЗапросИНН();
	ПолучитьКодПлатежаДобровольныеПожертвования(ИНН);
	
	
		//Если 
	//УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ПФ_MXL_ПД_4_20140101_QR", "Форма № ПД-4 с QR-кодом", 
	ТабличныйДокумент=ПечатьПД4_20140101_ДобровольныеПожертвован­ия(ИНН, МассивОбъектов, ОбъектыПечати, "ПФ_MXL_ПД_4_20140101_QR"); 
	ТабличныйДокумент.АвтоМасштаб			=	Истина;
	ТабличныйДокумент.ОтображатьСетку		=	Ложь;
	ТабличныйДокумент.Защита					=	Ложь;
	ТабличныйДокумент.ТолькоПросмотр			=	Истина;
	ТабличныйДокумент.ОтображатьЗаголовки	=	Ложь;
	ТабличныйДокумент.ПолеСверху = 0;
	ТабличныйДокумент.ПолеСнизу = 0;
	ТабличныйДокумент.ПолеСлева = 0;
	ТабличныйДокумент.ПолеСправа = 0;
	ТабличныйДокумент.ИмяПараметровПечати	=	"Квитанции";
	ТабличныйДокумент.Показать("Квитанции на оплату");
	//КонецЕсли;
КонецПроцедуры
Показать



&НаСервере
Функция ПечатьПД4_20140101_ДобровольныеПожертвования(ИНН, МассивОбъектов, ОбъектыПечати, ИмяМакета)
	
	
	КодПлатежа = ПолучитьКодПлатежаДобровольныеПожертвования(ИНН);
	
	
	//Настройка табличного документа___________________________________________________­______
	ТабличныйДокумент = Новый ТабличныйДокумент;

	ТабличныйДокумент.ИмяПараметровПечати = "ПараметрыПечати_КвитанцияНаОплатуГосуслуг_" + ИмяМакета;
	
	
	ОтчетОбъект=РеквизитФормыВЗначение("Объект");
	Макет = ОтчетОбъект.ПолучитьМакет(ИмяМакета);
	
	НужноПечататьQRКод = Прав(ИмяМакета,2)= "QR";
	ПечататьПоДвеКвитанцииНаЛист = Ложь;
	Попытка
		ОбластьНастроекПечати = Макет.ПолучитьОбласть("НастройкиПечати");
		ПечататьПоДвеКвитанцииНаЛист = Найти(ВРег(ОбластьНастроекПечати.Область(1,4).Текст),"ДА")>0; 
	Исключение
		ПечататьПоДвеКвитанцииНаЛист = Ложь;
	КонецПопытки;
	
	//Конец настройки табличного документа___________________________________________________­______
	
	Выборка = ЗапросКвит(МассивОбъектов);//Запрос.Выполнить().Выбрать(); 
	
	ВыводитьРазделитель = Ложь;
	
	ЕстьГИСГМП = ПолучитьФункциональнуюОпцию("ИспользоватьИнтеграциюГИСГМП");
	ТонкаяЛиния = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная,1);
	НомДок = 0;
	Пока Выборка.Следующий() Цикл
		
		Если НужноПечататьQRКод Тогда
			
			ОшибкаЗаполнения = Ложь;
			
			Если Не ЗначениеЗаполнено(Выборка.ПолучательНаименование) Тогда
				ТекстСообщения = Нстр("ru = 'Не заполнен обязательный реквизит получателя: ""Получатель""'");
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Выборка.Ссылка);
				ОшибкаЗаполнения = Истина;
			КонецЕсли;
			
			Если Не ЗначениеЗаполнено(Выборка.ПолучательБанковскийСчет) Тогда
				ТекстСообщения = Нстр("ru = 'Не заполнен обязательный реквизит получателя: ""Счет""'");
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Выборка.Ссылка);
				ОшибкаЗаполнения = Истина;
			КонецЕсли;
			
			Если Не ЗначениеЗаполнено(Выборка.ПолучательНаименованиеБанка) Тогда
				ТекстСообщения = Нстр("ru = 'Не заполнен обязательный реквизит получателя: ""Банк""'");
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Выборка.Ссылка);
				ОшибкаЗаполнения = Истина;
			КонецЕсли;
			
			Если Не ЗначениеЗаполнено(Выборка.ПолучательБИКБанка) Тогда
				ТекстСообщения = Нстр("ru = 'Не заполнен обязательный реквизит получателя: ""БИК""'");
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения,Выборка.Ссылка);
				ОшибкаЗаполнения = Истина;
			КонецЕсли;
				
			Если ОшибкаЗаполнения Тогда
				Продолжить;
			КонецЕсли;
		КонецЕсли;
		Если ПечататьПоДвеКвитанцииНаЛист Тогда
			Если ВыводитьРазделитель И НомДок%4=0 Тогда   
				ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			КонецЕсли;
		Иначе
			Если ВыводитьРазделитель Тогда 
				ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			КонецЕсли;
		КонецЕсли;
		ВыводитьРазделитель = Истина;
		
		НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
		
		//Заполняем макет квитанции парметрами-----------------------------------------------------
		Квитанция = Макет.ПолучитьОбласть("Квитанция");
		
		ЗаполнитьЗначенияСвойств(Квитанция.Параметры, Выборка);
		

			Квитанция.Параметры.Назначение = "Добровольные пожертвования " + КодПлатежа;
			
			
			Квитанция.Параметры.ИННПолучателя = Выборка.Организация.ИНН;
			Квитанция.Параметры.КПППолучателя = Выборка.Организация.КПП;
			
		
	
		Если ЗначениеЗаполнено(Выборка.УникальныйИдентификаторНачисления) Тогда
			Для Инд = 1 По 25 Цикл
				//Кв
				ТекСимвол = Сред(Выборка.УникальныйИдентификаторНачисления,Инд,1);
				Если ЗначениеЗаполнено(ТекСимвол) И СтроковыеФункцииКлиентСервер.ТолькоЛатиницаВСтроке(ТекСимвол) Тогда				
					ТекОбласть = Квитанция.Область("С"+Инд);
				    ТекОбласть.ГраницаСнизу = ТонкаяЛиния;
				КонецЕсли;
				Квитанция.Параметры.Заполнить(Новый Структура("С"+Инд,ТекСимвол));
				//ТабличныйДокумент.Присоединить(ТекОбласть);
			КонецЦикла;
		КонецЕсли;
		//Конец заполнения макета квитанции парметрами-----------------------------------------------------
		
		//Заполняем QR код---------------------------------------------------------------------------------
		Если НужноПечататьQRКод Тогда
			РеквизитыПлатежа = Новый Структура("ТекстПолучателя,
												|НомерСчетаПолучателя,
												|НаименованиеБанкаПолучателя,
												|БИКБанкаПолучателя,
												|СчетБанкаПолучателя,
												|СуммаЧислом,
												|НазначениеПлатежа,
												|ИННПлательщика,
												|ИННПолучателя,
												|КПППолучателя,
												|КодБК,
												|КодОКТМО,
												|ФамилияПлательщика,
												|ИмяПлательщика,
												|ОтчествоПлательщика,
												|АдресПлательщика,
												|ФИОРебенка,
												|СНИЛС,
												|ИдентификаторНачисления,
												|НомерДоговора,
												|НаправлениеДеятельности,
												|СтатусСоставителя,
												|ПоказательОснования,
												|ПоказательПериода,
												|ПоказательНомера,
												|ПоказательДаты,
												|ПоказательТипа,
												|НомерЛицевогоСчетаПлательщика,
												//add 1 след
												|ВидПлатежа,
												|ВидПлатежа");
									//			|Ссылка");
			
		
			РеквизитыПлатежа.ТекстПолучателя = Выборка.Организация.НаименованиеСокращенное ;
			РеквизитыПлатежа.НомерСчетаПолучателя = Выборка.ПолучательБанковскийСчет;
			РеквизитыПлатежа.НаименованиеБанкаПолучателя = Выборка.ПолучательНаименованиеБанка;
			РеквизитыПлатежа.БИКБанкаПолучателя = Выборка.ПолучательБИКБанка;
			РеквизитыПлатежа.СчетБанкаПолучателя = Выборка.ПолучательКорСчетБанка; 
			
			РеквизитыПлатежа.СуммаЧислом = Выборка.СуммаДокумента;
			
			
			РеквизитыПлатежа.НазначениеПлатежа = КодПлатежа;//Назначение;
			
			
			РеквизитыПлатежа.ИННПолучателя  = Выборка.Организация.ИНН;//Выборка.ИННПолучателя;
			РеквизитыПлатежа.КПППолучателя  = Выборка.Организация.КПП;//Выборка.КПППолучателя;
			РеквизитыПлатежа.КодБК 			= "00000000000000000130";//Выборка.КодБКПлатежа;
			РеквизитыПлатежа.КодОКТМО 		= Выборка.Организация.КодОКТМО;//Выборка.КодОКТМО;
		
			РеквизитыПлатежа.ВидПлатежа = "Добровольные пожертвования";
			
			
			Если ЗначениеЗаполнено(Выборка.УникальныйИдентификаторНачисления) Тогда
				РеквизитыПлатежа.ИдентификаторНачисления = Выборка.УникальныйИдентификаторНачисления;	
			КонецЕсли;
			
			
			РеквизитыПлатежа.НомерЛицевогоСчетаПлательщика = КодПлатежа;
			
			//Конец заполнения QR кода---------------------------------------------------------------------------------
			
			QRСтрока = УправлениеПечатью.ФорматнаяСтрокаУФЭБС(РеквизитыПлатежа);
				
			Если ПустаяСтрока(QRСтрока) Тогда
				Продолжить;
			КонецЕсли;
			
					
			
			ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 1, 250);
			
			Если НЕ ТипЗнч(ДанныеQRКода) = Тип("ДвоичныеДанные") Тогда
				
				Шаблон = Нстр("ru = 'Не удалось сформировать QR-код для документа %1.
						 |Технические подробности см. в журнале регистрации.'");
				ТекстСообщения = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Шаблон,
								 Выборка.Ссылка);
								 
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения);
				
				Продолжить;
			КонецЕсли;
			
			КартинкаQRКода = Новый Картинка(ДанныеQRКода);
			
			Квитанция.Рисунки.QRКодСправа.Картинка = КартинкаQRКода;
		КонецЕсли;
		
		ТабличныйДокумент.Вывести(Квитанция);
		
		УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, );
		
		НомДок = НомДок + 1;
	КонецЦикла;
	
	
	Возврат ТабличныйДокумент;
		
КонецФункции
Показать
По теме из базы знаний
Найденные решения
24. Terabaytus 18.03.21 11:30 Сейчас в теме
(15)Всё оказалось проще квитанции выводились в цикле
 Пока Выборка.Следующий() Цикл КонецЦикла;
нужно было его только
Прервать
.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. alivan 16.03.21 12:35 Сейчас в теме
(1)
не могу понять о чего это зависит ?

Наверное от даты. Сколько на выбранную дату существует документов.
Нужно смотреть функцию ЗапросКвит(МассивОбъектов).
Aleksandr_prof; Terabaytus; +2 Ответить
14. Terabaytus 16.03.21 12:35 Сейчас в теме
(12)
(13)
&НаСервере
Функция  ЗапросКвит(МассивОбъектов)
	Запрос = Новый Запрос("ВЫБРАТЬ
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик КАК Плательщик
	                      |ПОМЕСТИТЬ ВТ_КВитанцииТекПериод
	                      |ИЗ
	                      |	Документ.КвитанцияНаОплатуГосуслуг КАК КвитанцияНаОплатуГосуслуг
	                      |ГДЕ
	                      |	КвитанцияНаОплатуГосуслуг.Дата МЕЖДУ &Дата1 И &Дата2
	                      |	И КвитанцияНаОплатуГосуслуг.ПометкаУдаления = ЛОЖЬ
	                      |	И (КвитанцияНаОплатуГосуслуг.Организация = &Организация
	                      |			ИЛИ &ПоВсемОрганизациям)
	                      |	И (КвитанцияНаОплатуГосуслуг.ГруппаДетскогоУчреждения = &Группа
	                      |			ИЛИ &ПоВсемГруппам)
	                      |	И (КвитанцияНаОплатуГосуслуг.Учащийся = &Учащийся
	                      |			ИЛИ &ПоВсемУчащимся)
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	МАКСИМУМ(КвитанцияНаОплатуГосуслуг.Дата) КАК Дата,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся КАК Учащийся,
	                      |	КвитанцияНаОплатуГосуслуг.Договор КАК Договор,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся.Контрагент КАК УчащийсяКонтрагент
	                      |ПОМЕСТИТЬ ВТ_ПоследниеКвитанции
	                      |ИЗ
	                      |	Документ.КвитанцияНаОплатуГосуслуг КАК КвитанцияНаОплатуГосуслуг
	                      |ГДЕ
	                      |	КвитанцияНаОплатуГосуслуг.ПометкаУдаления = ЛОЖЬ
	                      |	И КвитанцияНаОплатуГосуслуг.Учащийся.ДатаВыбытия <> ДАТАВРЕМЯ(1, 1, 1)
	                      |	И НЕ КвитанцияНаОплатуГосуслуг.Плательщик В
	                      |				(ВЫБРАТЬ
	                      |					ВТ_КВитанцииТекПериод.Плательщик
	                      |				ИЗ
	                      |					ВТ_КВитанцииТекПериод)
	                      |	И (КвитанцияНаОплатуГосуслуг.Организация = &Организация
	                      |			ИЛИ &ПоВсемОрганизациям)
	                      |	И (КвитанцияНаОплатуГосуслуг.ГруппаДетскогоУчреждения = &Группа
	                      |			ИЛИ &ПоВсемГруппам)
	                      |	И (КвитанцияНаОплатуГосуслуг.Учащийся = &Учащийся
	                      |			ИЛИ &ПоВсемУчащимся)
	                      |
	                      |СГРУППИРОВАТЬ ПО
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся,
	                      |	КвитанцияНаОплатуГосуслуг.Договор,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся.Контрагент
	                      |
	                      |ИНДЕКСИРОВАТЬ ПО
	                      |	Дата,
	                      |	Учащийся,
	                      |	Договор
	                      |;
	                      |
	                      |////////////////////////////////////////////////////////////­////////////////////
	                      |ВЫБРАТЬ
	                      |	КвитанцияНаОплатуГосуслуг.ЛицевойСчет КАК ЛицевойСчет,
	                      |	КвитанцияНаОплатуГосуслуг.Номенклатура КАК Номенклатура,
	                      |	КвитанцияНаОплатуГосуслуг.Организация КАК Организация,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик КАК Плательщик,
	                      |	КвитанцияНаОплатуГосуслуг.Договор КАК Договор,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся КАК ФИОРебенка,
	                      |	ФизическиеЛица.СтраховойНомерПФР КАК СНИЛС,
	                      |	""Л.Сч №"" + КвитанцияНаОплатуГосуслуг.Учащийся.Код КАК НомерЛицевогоСчетаПлательщика,
	                      |	КвитанцияНаОплатуГосуслуг.Договор.НомерДоговора КАК НомерДоговора,
	                      |	КвитанцияНаОплатуГосуслуг.Договор.НаправлениеДеятельности КАК НаправлениеДеятельности,
	                      |	КвитанцияНаОплатуГосуслуг.КодОКАТО КАК КодОКТМО,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик.Представление КАК ПлательщикФИО,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо.ИНН КАК ИННПлательщика,
	                      |	ФизическиеЛицаКонтактнаяИнформация.Представление КАК ПлательщикАдрес,
	                      |	ЖурналПроводокЕПСБУОстатки.СуммаОстаток КАК СуммаДокумента,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательНаименование КАК ПолучательНаименование,
						  
	                      //|	КвитанцияНаОплатуГосуслуг.ПолучательБанковскийСчет КАК ПолучательБанковскийСчет,
	                      |	РеквизитыЛицевыхСчетов.СчетКазначейства.Код КАК ПолучательБанковскийСчет,
						  
						  //++ 14.01.2021 пока принудительно
	                      //|	КвитанцияНаОплатуГосуслуг.ПолучательНаименованиеБанка КАК ПолучательНаименованиеБанка,
	                      |	""ОТДЕЛЕНИЕ ВОЛОГДА БАНКА РОССИИ//УФК ПО ВОЛОГОДСКОЙ ОБЛАСТИ г Вологда"" КАК ПолучательНаименованиеБанка,
						  
	                      //|	КвитанцияНаОплатуГосуслуг.ПолучательБИКБанка КАК ПолучательБИКБанка,
	                      |	РеквизитыЛицевыхСчетов.СчетКазначейства.КассовыйОрган.Код КАК ПолучательБИКБанка,
	                      |	КвитанцияНаОплатуГосуслуг.УникальныйИдентификаторНачисления КАК УникальныйИдентификаторНачисления,
						  // ++14.01.2021 подменяем на навый к/с
	                      //|	КвитанцияНаОплатуГосуслуг.ПолучательКорСчетБанка КАК ПолучательКорСчетБанка,
	                      |РеквизитыЛицевыхСчетов.СчетКазначейства.КассовыйОрган.КоррСчет КАК ПолучательКорСчетБанка,
	                      |	ПоследниеКвитанции.УчащийсяКонтрагент.ВидКонтрагента КАК ВидКонтрагента,
	                      |	КвитанцияНаОплатуГосуслуг.Дата КАК Дата,
	                      |	КвитанцияНаОплатуГосуслуг.НазначениеПлатежа КАК Назначение
	                      |ИЗ
	                      |	Документ.КвитанцияНаОплатуГосуслуг КАК КвитанцияНаОплатуГосуслуг
	                      |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследниеКвитанции КАК ПоследниеКвитанции
	                      |		ПО КвитанцияНаОплатуГосуслуг.Учащийся = ПоследниеКвитанции.Учащийся
	                      |			И КвитанцияНаОплатуГосуслуг.Договор = ПоследниеКвитанции.Договор
	                      |			И КвитанцияНаОплатуГосуслуг.Дата = ПоследниеКвитанции.Дата
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
	                      |		ПО КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
	                      |			И (ФизическиеЛицаКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
	                      |			И (ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица))
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	                      |		ПО КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо = ФизическиеЛица.Ссылка
						  
	                      |			ЛЕВОЕ СОЕДИНЕНИЕ Справочник.РеквизитыЛицевыхСчетов КАК РеквизитыЛицевыхСчетов
	                      |				ПО (РеквизитыЛицевыхСчетов.Владелец = КвитанцияНаОплатуГосуслуг.ЛицевойСчет)
	                      |				И (НЕ РеквизитыЛицевыхСчетов.ПометкаУдаления)
						  
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
	                      |				&ПериодДата,
	                      |				Счет.Код = ""205.31"",
	                      |				,
	                      |				Субконто1 В
	                      |					(ВЫБРАТЬ
	                      |						ВТ_ПоследниеКвитанции.УчащийсяКонтрагент
	                      |					ИЗ
	                      |						ВТ_ПоследниеКвитанции)) КАК ЖурналПроводокЕПСБУОстатки
	                      |		ПО КвитанцияНаОплатуГосуслуг.Учащийся.Контрагент = ЖурналПроводокЕПСБУОстатки.Субконто1
	                      |			И КвитанцияНаОплатуГосуслуг.Договор = ЖурналПроводокЕПСБУОстатки.Субконто2
	                      |ГДЕ
	                      |	ЖурналПроводокЕПСБУОстатки.СуммаОстаток > 0
	                      |
	                      |ОБЪЕДИНИТЬ ВСЕ
	                      |
	                      |ВЫБРАТЬ
	                      |	КвитанцияНаОплатуГосуслуг.ЛицевойСчет,
	                      |	КвитанцияНаОплатуГосуслуг.Номенклатура,
	                      |	КвитанцияНаОплатуГосуслуг.Организация,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик,
	                      |	КвитанцияНаОплатуГосуслуг.Договор,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся,
	                      |	ФизическиеЛица.СтраховойНомерПФР,
	                      |	""Л.Сч №"" + КвитанцияНаОплатуГосуслуг.Учащийся.Код,
	                      |	КвитанцияНаОплатуГосуслуг.Договор.НомерДоговора,
	                      |	КвитанцияНаОплатуГосуслуг.Договор.НаправлениеДеятельности,
	                      |	КвитанцияНаОплатуГосуслуг.КодОКАТО,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик.Представление,
	                      |	КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо.ИНН,
	                      |	ФизическиеЛицаКонтактнаяИнформация.Представление,
	                      |	КвитанцияНаОплатуГосуслуг.СуммаДокумента,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательНаименование,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательБанковскийСчет,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательНаименованиеБанка,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательБИКБанка,
	                      |	КвитанцияНаОплатуГосуслуг.УникальныйИдентификаторНачисления,
	                      |	КвитанцияНаОплатуГосуслуг.ПолучательКорСчетБанка,
	                      |	КвитанцияНаОплатуГосуслуг.Учащийся.Контрагент.ВидКонтрагента,
	                      |	КвитанцияНаОплатуГосуслуг.Дата,
	                      |	КвитанцияНаОплатуГосуслуг.НазначениеПлатежа
	                      |ИЗ
	                      |	Документ.КвитанцияНаОплатуГосуслуг КАК КвитанцияНаОплатуГосуслуг
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица.КонтактнаяИнформация КАК ФизическиеЛицаКонтактнаяИнформация
	                      |		ПО КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо = ФизическиеЛицаКонтактнаяИнформация.Ссылка
	                      |			И (ФизическиеЛицаКонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
	                      |			И (ФизическиеЛицаКонтактнаяИнформация.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.АдресПоПропискеФизическиеЛица))
	                      |		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ФизическиеЛица КАК ФизическиеЛица
	                      |		ПО КвитанцияНаОплатуГосуслуг.Плательщик.ЮридическоеФизическоеЛицо = ФизическиеЛица.Ссылка
	                      |ГДЕ
	                      |	КвитанцияНаОплатуГосуслуг.Дата МЕЖДУ &Дата1 И &Дата2
	                      |	И КвитанцияНаОплатуГосуслуг.ПометкаУдаления = ЛОЖЬ
	                      |	И (КвитанцияНаОплатуГосуслуг.Организация = &Организация
	                      |			ИЛИ &ПоВсемОрганизациям)
	                      |	И (КвитанцияНаОплатуГосуслуг.ГруппаДетскогоУчреждения = &Группа
	                      |			ИЛИ &ПоВсемГруппам)
	                      |	И (КвитанцияНаОплатуГосуслуг.Учащийся = &Учащийся
	                      |			ИЛИ &ПоВсемУчащимся)
	                      |
	                      |УПОРЯДОЧИТЬ ПО
	                      |	ПлательщикФИО");

	//Запрос.УстановитьПараметр("МассивОбъектов",МассивОбъектов);
	//Запрос.УстановитьПараметр("ПериодДата",КонецМесяца(ДобавитьМесяц(Объект.Период,-1)));
	Запрос.УстановитьПараметр("ПериодДата", Новый Граница(КонецМесяца(ДобавитьМесяц(Объект.Период,-1)), ВидГраницы.Включая) );
	Запрос.УстановитьПараметр("Дата1",Объект.Период);
	Запрос.УстановитьПараметр("Дата2",КонецМесяца(Объект.Период));

	Запрос.УстановитьПараметр("Организация", Объект.Организация);
	Запрос.УстановитьПараметр("ПоВсемОрганизациям", Объект.Организация.Пустая());
	
	Запрос.УстановитьПараметр("Группа", Объект.Группа);
	Запрос.УстановитьПараметр("ПоВсемГруппам", Объект.Группа.Пустая());
	
	Запрос.УстановитьПараметр("Учащийся", Объект.Ребенок);
	Запрос.УстановитьПараметр("ПоВсемУчащимся", Объект.Ребенок.Пустая());
	
	Выборка = Запрос.Выполнить().Выбрать();
	Возврат Выборка;
КонецФункции
Показать
15. user633533_encantado 11 16.03.21 12:39 Сейчас в теме
(14) Ну и на вскидку видно, что квитанции отбираются как угодно, но только не по ссылкам. Отобраны будут в зависимости от указанных параметров запроса. Так что же вы ожидали тогда ?
Terabaytus; +1 Ответить
24. Terabaytus 18.03.21 11:30 Сейчас в теме
(15)Всё оказалось проще квитанции выводились в цикле
 Пока Выборка.Следующий() Цикл КонецЦикла;
нужно было его только
Прервать
.
16. alivan 16.03.21 12:44 Сейчас в теме
(14) Не видно в запросах, где используется данный параметр. Запросы живут своей жизнью, независимо от МасивОбъектов.
Попробуйте принудительно задать параметр ("Учащийся", Объект.Ребенок), если за этот период на этого ребенка одна квитанция.
Terabaytus; +1 Ответить
17. Terabaytus 16.03.21 12:50 Сейчас в теме
(16)Моя цель дописать эту обработку что бы получить обезличенную квитанцию что бы подгружалось одна и забивалась реквизитами выбранной организации не подскажете куда копать ?
18. alivan 16.03.21 12:52 Сейчас в теме
(14) Вот это условие непонятно
КвитанцияНаОплатуГосуслуг.Учащийся = &Учащийся
| ИЛИ &ПоВсемУчащимся)
ПоВсемУчащимся - пустая ссылка или ссылка на определенный объект и что в результате?
Попробуйте оставить одного учащегося, задать его конкретно, а ПоВсемУчащимся убрать.
Terabaytus; +1 Ответить
19. Ul_developer 16.03.21 12:58 Сейчас в теме
(18)ПоВсемУчащимся 100% булево
Terabaytus; +1 Ответить
20. alivan 16.03.21 12:59 Сейчас в теме
(19) Запрос.УстановитьПараметр("ПоВсемУчащимся", Объект.Ребенок.Пустая());
Как-то не похоже на булево.
22. Ul_developer 16.03.21 14:07 Сейчас в теме
(20)Прошу прощения не внимательно посмотрел, значит еще и условия прописаны не очень корректно
23. starik-2005 3039 16.03.21 14:27 Сейчас в теме
(20)
Как-то не похоже на булево.
Это и есть булево. Не путайте с "ПустаяСсылка()"
2. user633533_encantado 11 16.03.21 11:39 Сейчас в теме
Выборка = ЗапросКвит(МассивОбъектов);

У вас же печать квитанции идет по какому-то массиву. Если в этом масиве один элемент, то будет одна квитанция, будет несколько - несколько квитанций.
Terabaytus; +1 Ответить
3. Terabaytus 16.03.21 11:44 Сейчас в теме
(2)Так и думал на него, а как одну квитанцию в нём оставить ?
4. user633533_encantado 11 16.03.21 11:48 Сейчас в теме
(3) Из вашего кода не видно, что это за массив и как он формируется.
6. Terabaytus 16.03.21 11:52 Сейчас в теме
(4)
МассивОбъектов=Новый Массив; 
создаётся в команде передаётся параметром в функцию
ЗапросКвит(МассивОбъектов)

вам код функции нужен ?
8. user633533_encantado 11 16.03.21 11:57 Сейчас в теме
(6) А где он заполняется, он же не пустой.
10. Terabaytus 16.03.21 12:02 Сейчас в теме
(8)На сколько я понимаю создаётся он в команде
МассивОбъектов=Новый Массив;
а заполняется вот здесь
Выборка = ЗапросКвит(МассивОбъектов);
хотя если изменить эту конструкцию допустим на
Выборка = ЗапросКвит("1");
то это не на что не влияет.
12. user633533_encantado 11 16.03.21 12:22 Сейчас в теме
(10) Мало информации. Не видно запроса к БД, не видно как заполняется массив объектов.
5. AnryMc 849 16.03.21 11:48 Сейчас в теме
(3) Для искусственного интеллекта:

1-й вариант: Удалить лишние из уже заполненных
2-й вариант: Заполнить как надо
7. AnryMc 849 16.03.21 11:56 Сейчас в теме
Если печать из открытого объекта: то "МассивОбъектов" - ссылка только на текущий объект
Если из списка (то обычно) - список всех ВЫДЕЛЕННЫХ строк из списка
Aleksandr_prof; +1 Ответить
9. user633533_encantado 11 16.03.21 11:58 Сейчас в теме
(7) Тут не такой случай, "Процедура ДобровольныеПожертвования(Команда)" на это намекает.
11. Terabaytus 16.03.21 12:03 Сейчас в теме
(7) открытого объекта это как не понял ?
21. Ul_developer 16.03.21 13:00 Сейчас в теме
МассивОбъектов надо заполнить ссылкой на объект который печатаешь, а потом установить ограничение в запросе что бы получать данные только по переданному массиву объектов
Оставьте свое сообщение

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