В 1С Управление Нашей Фирмой 3.0 заявление на возврат от покупателя формируется в функции МакетЗаявленияНаВозврат которая расположена в ОбщийМодуль.ОбщегоНазначенияРМК.
В данной процедуре происходит получение макета "ПФ_MXL_ЗаявлениеНаВозвратРМК" и заполнение его данными с последующем возвратом в переменной "БланкЗаявлениея"
ТекстФункции:
В 1С Управление Нашей Фирмой 3.0 заявление на возврат от покупателя формируется в функции МакетЗаявленияНаВозврат которая расположена в ОбщийМодуль.ОбщегоНазначенияРМК.
В данной процедуре происходит получение макета "ПФ_MXL_ЗаявлениеНаВозвратРМК" и заполнение его данными с последующем возвратом в переменной "БланкЗаявлениея"
ТекстФункции:
// Подготавливает на печать бланк заявления на возврат товаров
//
// Параметры:
// ДанныеЗаявленияНаВозврат - Структура:
// *Товары - Массив,
// *ФИОПокупателя - Строка,
// *ДатаРождения - Дата,
// *УдостоверениеЛичности - Строка,
// *СуммаДокумента - Число,
// *ЧекПродажи - ОпределяемыйТип.ЧекККМРМК,
// *Магазин - ОпределяемыйТип.ТорговыйОбъектРМК,
// *ЧекНомер - Число,
// *ЧекДата - Дата,
// *Кому - Строка,
// *ОтКого - Строка,
// *Дата - Дата.
//
// Возвращаемое значение:
// БланкЗаявления - ТабличныйДокумент
//
Функция МакетЗаявленияНаВозврат(ДанныеЗаявленияНаВозврат) Экспорт
БланкЗаявления = Новый ТабличныйДокумент;
Если ДанныеЗаявленияНаВозврат.Свойство("ДатаРождения")
И ЗначениеЗаполнено(ДанныеЗаявленияНаВозврат.ДатаРождения) Тогда
ДатаРожденияКлиента = ДанныеЗаявленияНаВозврат.ДатаРождения;
ДанныеЗаявленияНаВозврат.ДатаРождения = Формат(ДатаРожденияКлиента, "ДЛФ=DD");
КонецЕсли;
Если ДанныеЗаявленияНаВозврат.Свойство("ЧекДата")
И ЗначениеЗаполнено(ДанныеЗаявленияНаВозврат.ЧекДата) Тогда
ДатаПробитияЧекаПродажи = ДанныеЗаявленияНаВозврат.ЧекДата;
ДанныеЗаявленияНаВозврат.ЧекДата = Формат(ДатаПробитияЧекаПродажи, "ДЛФ=D");
КонецЕсли;
Если ДанныеЗаявленияНаВозврат.Свойство("ОтКого")
И ЗначениеЗаполнено(ДанныеЗаявленияНаВозврат.ОтКого) Тогда
ФИОЗаявителя = ДанныеЗаявленияНаВозврат.ОтКого;
ФИОЗаявителяРодительныйПадеж = СклонениеФИОВУказанномПадеже(ФИОЗаявителя, 2);
ДанныеЗаявленияНаВозврат.ОтКого = СтрШаблон("от %1", ФИОЗаявителяРодительныйПадеж);
КонецЕсли;
Если ДанныеЗаявленияНаВозврат.Свойство("ОтКого")
И ЗначениеЗаполнено(ДанныеЗаявленияНаВозврат.ОтКого) Тогда
КемКупленТовар = ДанныеЗаявленияНаВозврат.ФИОПокупателя;
КемКупленТоварТворительныйПадеж = СклонениеФИОВУказанномПадеже(КемКупленТовар, 5);
ДанныеЗаявленияНаВозврат.ФИОПокупателя = КемКупленТоварТворительныйПадеж;
КонецЕсли;
Макет = ПолучитьОбщийМакет("ПФ_MXL_ЗаявлениеНаВозвратРМК");
ШапкаМакета = Макет.ПолучитьОбласть("Шапка");
ПараметрыШапки = ШапкаМакета.Параметры;
ШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
СтрокаТаблицыМакета = Макет.ПолучитьОбласть("Товар");
ПодвалМакета = Макет.ПолучитьОбласть("Подвал");
ПараметрыШапки.Заполнить(ДанныеЗаявленияНаВозврат);
// постобработка шапки
ЭтоВозвратНесколькихТоваров =
ДанныеЗаявленияНаВозврат.Свойство("Товары") И ДанныеЗаявленияНаВозврат.Товары.Количество() > 1;
ПараметрыШапки.О1 = ?(ЭтоВозвратНесколькихТоваров,
НСтр("ru = 'и'"), НСтр("ru = ''"));
ПараметрыШапки.О2 = ?(ЭтоВозвратНесколькихТоваров,
НСтр("ru = 'ы'"), НСтр("ru = ''"));
ПараметрыШапки.О3 = ?(ЭтоВозвратНесколькихТоваров,
НСтр("ru = 'ы'"), НСтр("ru = ''"));
ДлинноеПодчеркивание = "______________________________________________________";
СреднееПодчеркивание = "________________";
КороткоеПодчеркивание = "________";
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.ОтКого)
ИЛИ ПараметрыШапки.ОтКого = "от " Тогда
ПараметрыШапки.ОтКого = СтрШаблон("от %1", ДлинноеПодчеркивание);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.ФИОПокупателя) Тогда
ПараметрыШапки.ФИОПокупателя = ДлинноеПодчеркивание;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.ДатаРождения) Тогда
ПараметрыШапки.ДатаРождения = СреднееПодчеркивание;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.УдостоверениеЛичности) Тогда
ПараметрыШапки.УдостоверениеЛичности = СтрШаблон("%1%1%1", ДлинноеПодчеркивание);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.ЧекНомер) Тогда
ПараметрыШапки.ЧекНомер = КороткоеПодчеркивание;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ПараметрыШапки.ЧекДата) Тогда
ПараметрыШапки.ЧекДата = СреднееПодчеркивание;
КонецЕсли;
БланкЗаявления.Вывести(ШапкаМакета);
БланкЗаявления.Вывести(ШапкаТаблицы);
Для Каждого СтрокаТоваров Из ДанныеЗаявленияНаВозврат.Товары Цикл
СтрокаТаблицыМакета.Параметры.Заполнить(СтрокаТоваров);
БланкЗаявления.Вывести(СтрокаТаблицыМакета);
КонецЦикла;
ПодвалМакета.Параметры.Заполнить(ДанныеЗаявленияНаВозврат);
ПодвалМакета.Параметры.Дата = Формат(ТекущаяДатаСеанса(), "ДЛФ = DD");
БланкЗаявления.Вывести(ПодвалМакета);
БланкЗаявления.АвтоМасштаб = Истина;
ОбщегоНазначенияРМКПереопределяемый.ЗаполнитьЗаявлениеНаВозврат(БланкЗаявления, ДанныеЗаявленияНаВозврат);
Если ТипЗнч(БланкЗаявления) <> Тип("ТабличныйДокумент") Тогда
БланкЗаявления = Новый ТабличныйДокумент;
КонецЕсли;
Возврат БланкЗаявления;
КонецФункции