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

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

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

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



Свежие комментарии