История подарочных сертификатов в УНФ 3.0

В заказе клиента сделал кнопку, по которой показывается информация о сертификатах, которые содержатся в товарной части заказа или по которым была оплата.

Выглядит так:

Табличка в реквизитах формы:

Элементы формы:

Код довольно простой:

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

	
	//Временно пока все серии
	НомераСертификатов = Объект.СерииНоменклатуры.Выгрузить().ВыгрузитьКолонку("Серия");
	Для Каждого Строка ИЗ Объект.Предоплата Цикл
		Если Строка.ОплатаСертификатом Тогда
			НомераСертификатов.Добавить(Строка.НомерСертификата);
		КонецЕсли;
	КонецЦикла;
	З.УстановитьПараметр("НомераСертификатов", НомераСертификатов);
	
	ТЗ = З.Выполнить().Выгрузить();
	ЭтаФорма.ппдс_ПодарочныеСертификаты.Очистить();
	ЭтаФорма.ппдс_ПодарочныеСертификаты.Загрузить(ТЗ);
	
КонецПроцедуры

Поле Документ пришлось создавать программно при создании формы, почему-то вручную созданный не отображался, пока не установишь стандартные настройки формы, после закрытия заказа настройки не сохранялись.

Среда: УНФ 3.0.10.178 Объем: 1.5 час.

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *