&НаСервере
Процедура
ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
//Читаем РС по ключу
Запись = РегистрыСведений.УК_СостояниеРасчетов.СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Запись,
Параметры.ТекПлатеж);
Запись.Прочитать();
//Заполняем параметры
ЛС = Параметры.ЛС;
ТекущееНачисление
= Запись.Сумма;
ТипКвитанции
= Параметры.ТипКвитанции;
КонецПроцедуры
&НаСервере
Процедура
ПечатьКвитанцииНаТекущееНачисление(ТабДок, ТекЛС, Получатель, СуммаПлатежа)
ТабДок.АвтоМасштаб
= Истина;
ТабДок.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
ТабДок.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатьКвитанцииНаДолгБезБПнаСервере";
Макет = Справочники.Партнеры.ПолучитьМакет("КвитанцияНаОплату");
Запрос = Новый Запрос();
Запрос.Текст
= "ВЫБРАТЬ
| УК_ПоставщикиУслуг.Ссылка КАК
Ссылка,
| УК_ПоставщикиУслуг.Наименование
КАК Наименование,
| УК_ПоставщикиУслуг.НаименованиеКраткое
КАК НаименованиеКраткое,
| УК_ПоставщикиУслуг.НаименованиеПолное
КАК НаименованиеПолное,
| УК_ПоставщикиУслуг.ИНН КАК ИНН,
| УК_ПоставщикиУслуг.ОГРН КАК ОГРН,
| УК_ПоставщикиУслуг.КПП КАК КПП,
| УК_ПоставщикиУслуг.Банк КАК Банк,
| УК_ПоставщикиУслуг.РасчетныйСчет
КАК РасчетныйСчет,
| УК_ПоставщикиУслуг.КорСчет КАК КорСчет,
| УК_ПоставщикиУслуг.БИК КАК БИК
|ИЗ
| Справочник.УК_ПоставщикиУслуг КАК
УК_ПоставщикиУслуг
|ГДЕ
| УК_ПоставщикиУслуг.Ссылка =
&Получатель";
Запрос.УстановитьПараметр("Получатель",
Получатель);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
НедостаточноДанныхДляQRКода
= 0;
Если Выборка.Следующий()
Тогда
//=========================
// Область
"Шапка"
//==========================
ОШ = Макет.ПолучитьОбласть("Шапка");
Если НЕ ЗначениеЗаполнено(Выборка.Наименование)
Тогда
ОШ.Параметры.Истец = "Получатель не заполнен в
справочнике";
НедостаточноДанныхДляQRКода = 1;
ИначеЕсли
НЕ ЗначениеЗаполнено(Выборка.НаименованиеКраткое)
Тогда
ОШ.Параметры.Истец = "Не заполнено краткое
наименование получателя";
Иначе
ОШ.Параметры.Истец = Выборка.НаименованиеКраткое;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Выборка.ИНН)
Тогда
ОШ.Параметры.ИстецИНН = "Не заполнен ИНН получателя
в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ИстецИНН = Выборка.ИНН;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Выборка.РасчетныйСчет)
Тогда
ОШ.Параметры.ИстецРасчетныйСчет = "Не заполнен р/с
получателя в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ИстецРасчетныйСчет = Выборка.РасчетныйСчет;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Выборка.Банк)
Тогда
ОШ.Параметры.ИстецБанк = "Не заполнент
банк получателя в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ИстецБанк = Выборка.Банк;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Выборка.БИК)
Тогда
ОШ.Параметры.ИстецБИК = "Не заполнен БИК получателя
в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ИстецБИК = Выборка.БИК;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Выборка.КорСчет)
Тогда
ОШ.Параметры.ИстецКорСчет = "Не заполнен к/с банка
получателя в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ИстецКорСчет = Выборка.КорСчет;
КонецЕсли;
ОШ.Параметры.НаименованиеПлатежа
= "Оплата долга по ЛС " + ТекЛС.УК_ЛицевойСчетЕИРЦ;
//Лицевой счет
плательщика
Если НЕ ЗначениеЗаполнено(ТекЛС.УК_ЛицевойСчетЕИРЦ)
Тогда
ОШ.Параметры.ЛсЕирц = "л/с ЕИРЦ не заполнен";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ЛсЕирц = ТекЛС.УК_ЛицевойСчетЕИРЦ;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ТекЛС.F1_ФИО) Тогда
ОШ.Параметры.ФиоПлательщика = "Не заполнено ФИО на
карточке ЛС";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.ФиоПлательщика = ТекЛС.F1_ФИО;
КонецЕсли;
ОШ.Параметры.АдресПлательщика
=
БизнесПроцессы.CRM_БизнесПроцесс.ЧисткаАдреса(БизнесПроцессы.CRM_БизнесПроцесс.АдресИзЛСдляБалашихи(ТекЛС));
Если НЕ ЗначениеЗаполнено(СуммаПлатежа)
Тогда
ОШ.Параметры.СуммаПлатежаРуб = "Сумма долга не расчитана в справочнике";
НедостаточноДанныхДляQRКода = 1;
Иначе
ОШ.Параметры.СуммаПлатежаРуб = Цел(СуммаПлатежа);
ОШ.Параметры.СуммаПлатежаКоп = Формат((СуммаПлатежа - Цел(СуммаПлатежа))
* 100, "ЧЦ=2; ЧН=00");
КонецЕсли;
ТабДок.Вывести(ОШ);
//=================
//Область ПОДВАЛ
//=================
ОбластьПодвал
= Макет.ПолучитьОбласть("Подвал");
QRСтрока
= "ST00011|Name=" + ОШ.Параметры.Истец +
"|PersonalAcc="
+ ОШ.Параметры.ИстецРасчетныйСчет +
"|BankName="
+ ОШ.Параметры.ИстецБанк +
"|BIC=" + ОШ.Параметры.ИстецБИК +
"|CorrespAcc="
+ ОШ.Параметры.ИстецРасчетныйСчет +
"|PayeeINN="
+ ОШ.Параметры.ИстецИНН +
"|LastName="
+ ТекЛС.УК_ФизЛицо.Фамилия +
"|FirstName="
+ ТекЛС.УК_ФизЛицо.Имя +
"|MiddleName="
+ ТекЛС.УК_ФизЛицо.Отчество +
"|Purpose="
+ ОШ.Параметры.НаименованиеПлатежа
+
"|PersAcc="
+ ОШ.Параметры.ЛсЕирц +
"|PayerAddress="
+ ОШ.Параметры.АдресПлательщика +
"|Sum="
+ ?(ЗначениеЗаполнено(СуммаПлатежа),
Формат(СуммаПлатежа * 100, "ЧГ="),
0);//Сумма в копейках и без пробела!
ТекстОшибки
= "";
ДанныеQRКода
= УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190);
Если
Не ПустаяСтрока(ТекстОшибки)
Тогда
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки);
КонецЕсли;
КартинкаQRКода
= Новый Картинка(ДанныеQRКода);
ОбластьПодвал.Рисунки.QRКод.Картинка
= КартинкаQRКода;
Если НедостаточноДанныхДляQRКода = 0 Тогда
ТабДок.Вывести(ОбластьПодвал);
Иначе
//Если
данные неполные в бланке, то QR-код вообще не формируем
ОбластьСОшибкой = Макет.ПолучитьОбласть("СообщениеОбОшибке");
ТабДок.Вывести(ОбластьСОшибкой);
КонецЕсли;
КонецЕсли;
КонецПроцедуры//ПечатьКвитанцииНаТекущееНачисление
&НаКлиенте
Процедура
ВыбратьПолучателя(Команда)
ТабДок =
Новый ТабличныйДокумент;
Если ТипКвитанции
= "На текущее начисление" Тогда
ПечатьКвитанцииНаТекущееНачисление(ТабДок, ЛС, Получатель, ТекущееНачисление);
КонецЕсли;
ТабДок.ОтображатьСетку
= Ложь;
ТабДок.Защита
= Ложь;
ТабДок.ТолькоПросмотр
= Ложь;
ТабДок.ОтображатьЗаголовки
= Ложь;
ТабДок.Показать(?(ЗначениеЗаполнено(ЭтотОбъект.ТипКвитанции),
"Квитанция " + НРег(ЭтотОбъект.ТипКвитанции),
"Таблица"));
ЭтаФорма.Закрыть();
КонецПроцедуры
|