В начало

Квитанция на оплату пени по СП

 

Рис. Команда «Печать квитанции на пени по СП» в конфигураторе

 

Листинг. Модуль формы элемента справочника «Партнеры»

&НаСервере

Процедура ПечатьКвитанцииНаПениПоСП_НаСервере(ТабДок, ТекБП)

 

            Справочники.Партнеры.ПечатьКвитанцииНаОплатуПениПоСП_Далее(ТабДок, ТекБП);                                              

КонецПроцедуры

 

&НаКлиенте

Процедура ПечатьКвитанцииНаПениПоСП(Команда)

 

            ТабДок = Новый ТабличныйДокумент;   

           

            Для Каждого ТекБП Из Элементы.СудебныеПроцессы.ВыделенныеСтроки Цикл 

                       

                        МОтв = ПроверкаТчОтветчики(ТекБП);

                        Если ЗначениеЗаполнено(МОтв) Тогда

                                   ПарОтв = Новый Структура("МОтв", МОтв);

                                   ПарОтв.Вставить("ТекБП", ТекБП);

                                   ПарОтв.Вставить("ТипКвитанции", "На пени по СП");

                                   ОткрытьФорму("Справочник.Партнеры.Форма.ФормаВыбораПлательщика", ПарОтв, ЭтаФорма);

                                   Возврат;

                        КонецЕсли;

                       

                        ПечатьКвитанцииНаПениПоСП_НаСервере(ТабДок, ТекБП);

            КонецЦикла;

           

            ТабДок.ОтображатьСетку = Ложь;

            ТабДок.Защита = Ложь;

            ТабДок.ТолькоПросмотр = Ложь;

            ТабДок.ОтображатьЗаголовки = Ложь;

            ТабДок.Показать("Квитанция на пени по СП");

           

КонецПроцедуры

 

Рис. Форма выбора плательщика справочника «Партнеры»

 

Листинг. Модуль формы выбора плательщика

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

 

            Для Каждого Эл Из Параметры.МОтв Цикл

                        Элементы.Плательщик.СписокВыбора.Добавить(Эл.Ссылка);

            КонецЦикла;

           

            ТекБП = Параметры.ТекБП; 

            ТипКвитанции = Параметры.ТипКвитанции;

КонецПроцедуры

 

&НаСервере

Процедура ВыбратьПлательщикаНаСервере(ТабДок, ТекБП, Знач Плательщик, Знач ТипКвитанции)

           

            Если ТипКвитанции = "На госпошлину" Тогда

                        Справочники.Партнеры.ПечатьКвитанцииНаОплатуГоспошлиныДалее(ТабДок, ТекБП, Плательщик);

            ИначеЕсли ТипКвитанции = "На пени по иску" Тогда

                        Справочники.Партнеры.ПечатьКвитанцииНаОплатуПениПоИску_Далее(ТабДок, ТекБП, Плательщик);

            ИначеЕсли ТипКвитанции = "На пени по СП" Тогда

                        Справочники.Партнеры.ПечатьКвитанцииНаОплатуПениПоСП_Далее(ТабДок, ТекБП, Плательщик);                       

            КонецЕсли;   

 

КонецПроцедуры

 

&НаКлиенте

Процедура ВыбратьПлательщика(Команда)

            ТабДок = Новый ТабличныйДокумент;   

 

            ВыбратьПлательщикаНаСервере(ТабДок, ТекБП, ЭтотОбъект.Плательщик, ЭтотОбъект.ТипКвитанции);

           

            ТабДок.ОтображатьСетку = Ложь;

            ТабДок.Защита = Ложь;

            ТабДок.ТолькоПросмотр = Ложь;

            ТабДок.ОтображатьЗаголовки = Ложь;

            ТабДок.Показать(?(ЗначениеЗаполнено(ЭтотОбъект.ТипКвитанции), "Квитанция " + НРег(ЭтотОбъект.ТипКвитанции), "Таблица")); 

           

            ЭтаФорма.Закрыть();

КонецПроцедуры

 

Рис. Макет «Квитанция на оплату»

 

Листинг. Модуль менеджера справочника «Партнеры»

Процедура ПечатьКвитанцииНаОплатуПениПоСП_Далее(ТабДок, ВхБП, Знач Плательщик = Неопределено) Экспорт

            ТабДок.АвтоМасштаб = Истина;

            ТабДок.ОриентацияСтраницы       = ОриентацияСтраницы.Портрет;

            ТабДок.ИмяПараметровПечати      = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечатьКвитанцииНаОплатуГоспошлины";

            Макет = Справочники.Партнеры.ПолучитьМакет("КвитанцияНаОплату");

           

            Запрос = Новый Запрос();

            Запрос.Текст = "ВЫБРАТЬ

                           |        CRM_БизнесПроцесс.Ссылка КАК СсылкаНаБП,

                           |        CRM_БизнесПроцесс.Истец КАК Истец,

                           |        CRM_БизнесПроцесс.Истец.НаименованиеКраткое КАК ИстецНаименованиеКраткое,

                           |        CRM_БизнесПроцесс.Истец.ИНН КАК ИстецИНН,

                           |        CRM_БизнесПроцесс.Истец.РасчетныйСчет КАК ИстецРасчетныйСчет,

                           |        CRM_БизнесПроцесс.Истец.Банк КАК ИстецБанк,

                           |        CRM_БизнесПроцесс.Истец.БИК КАК ИстецБИК,

                           |        CRM_БизнесПроцесс.Истец.КорСчет КАК ИстецКорСчет,

                           |        CRM_БизнесПроцесс.НомерСП КАК НомерСП,

                           |        CRM_БизнесПроцесс.НомерДелаСП КАК НомерДелаСП,

                           |        CRM_БизнесПроцесс.НомерДелаИска КАК НомерДелаИска,

                           |        CRM_БизнесПроцесс.Ответчик КАК Ответчик,

                           |        CRM_БизнесПроцесс.Партнер КАК СсылкаНаПартнеры,

                           |        CRM_БизнесПроцесс.СуммаПени КАК СуммаПени,

                           |        CRM_БизнесПроцесс.СуммаПениВИске КАК СуммаПениВИске,

                           |        CRM_БизнесПроцесс.СуммаПениПоРешению КАК СуммаПениПоРешению,

                           |        CRM_БизнесПроцесс.Партнер.УК_ЛицевойСчетЕИРЦ КАК ЛС,

                           |        CRM_БизнесПроцесс.НачалоПЗ КАК НачалоПЗ,

                           |        CRM_БизнесПроцесс.КонецПЗ КАК КонецПЗ,

                           |        CRM_БизнесПроцесс.ФормаСудопроизводства.Ссылка КАК ФормаСудопроизводства,

                           |        CRM_БизнесПроцесс.Партнер.УК_ЛицевойСчетЕИРЦ КАК ЛсЕирц

                           |ИЗ

                           |        БизнесПроцесс.CRM_БизнесПроцесс КАК CRM_БизнесПроцесс

                           |ГДЕ

                           |        CRM_БизнесПроцесс.Ссылка = &ВхБП";

            Запрос.УстановитьПараметр("ВхБП", ВхБП);

            Результат = Запрос.Выполнить();

            Выборка = Результат.Выбрать();

           

            НедостаточноДанныхДляQRКода = 0;

                                  

            Если Выборка.Следующий() Тогда

                        //=========================

                        // Область "Шапка"

                        //=========================           

                        ОШ = Макет.ПолучитьОбласть("Шапка"); 

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.Истец) Тогда 

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.Истец = "Истец не заполнен в БП";

                        ИначеЕсли НЕ ЗначениеЗаполнено(Выборка.ИстецНаименованиеКраткое) Тогда

                                   ОШ.Параметры.Истец = "Не заполнено краткое наименование УК в справочнике";

                        Иначе 

                                   ОШ.Параметры.Истец = Выборка.ИстецНаименованиеКраткое;

                        КонецЕсли;   

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.ИстецИНН) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ИстецИНН = "Не заполнен ИНН получателя в справочнике"

                        Иначе    

                                   ОШ.Параметры.ИстецИНН = Выборка.ИстецИНН;

                        КонецЕсли;   

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.ИстецРасчетныйСчет) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ИстецРасчетныйСчет = "Не заполнен р/с получателя в справочнике";

                        Иначе

                                   ОШ.Параметры.ИстецРасчетныйСчет = Выборка.ИстецРасчетныйСчет;

                        КонецЕсли;   

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.ИстецБанк) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ИстецБанк = "Не заполнен банк получателя в справочнике";

                        Иначе

                                   ОШ.Параметры.ИстецБанк = Выборка.ИстецБанк;

                        КонецЕсли;

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.ИстецБИК) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ИстецБИК = "Не заполнен БИК получателя в справочнике";

                        Иначе

                                   ОШ.Параметры.ИстецБИК = Выборка.ИстецБИК;

                        КонецЕсли;

                       

                        Если НЕ ЗначениеЗаполнено(Выборка.ИстецКорСчет) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ИстецКорСчет = "Не заполнен к/с банка получателя в справочнике";

                        Иначе

                                   ОШ.Параметры.ИстецКорСчет = Выборка.ИстецКорСчет;

                        КонецЕсли;

                       

                        //====================================

                        //Наименование платежа, <=210 символов

                        //====================================

                        Если НЕ ЗначениеЗаполнено(Выборка.НачалоПЗ) ИЛИ НЕ ЗначениеЗаполнено(Выборка.КонецПЗ) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.НаименованиеПлатежа = "Не заполнены [Начало ПЗ] или [Конец ПЗ]!";

                        Иначе

                                  

                                   Если ЗначениеЗаполнено(Выборка.НомерДелаСП) Тогда

                                              

                                               ОШ.Параметры.НаименованиеПлатежа = "Оплата пени по СП № " + Выборка.НомерДелаСП +

                                                                              ", ЛС №" + Выборка.ЛсЕирц;

                                   Иначе

                                               НедостаточноДанныхДляQRКода = 1;

                                               ОШ.Параметры.НаименованиеПлатежа = "Не заполнен [Номер дела СП] в разделе [Судебный приказ]!";

                                   КонецЕсли;   

                                              

                        КонецЕсли;   

                       

                        //==========================

                        //Лицевой счет плательщика

                        //==========================

                        Если НЕ ЗначениеЗаполнено(Выборка.ЛсЕирц) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ЛсЕирц = "л/с не заполнен";

                        Иначе

                                   ОШ.Параметры.ЛсЕирц = Выборка.ЛсЕирц;                              

                        КонецЕсли;   

                       

                        Если ЗначениеЗаполнено(Плательщик) Тогда

                                   ФиоПлательщика = Плательщик.ФИО;

                        Иначе              

                                   ФиоПлательщика = Выборка.Ответчик;

                        КонецЕсли;   

                       

                        Если НЕ ЗначениеЗаполнено(ФиоПлательщика) Тогда

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.ФиоПлательщика = "Не заполнено ФИО плательщика";

                        Иначе

                                   ОШ.Параметры.ФиоПлательщика = ФиоПлательщика;

                        КонецЕсли;

                       

 

                        ОШ.Параметры.АдресПлательщика = БизнесПроцессы.CRM_БизнесПроцесс.ЧисткаАдреса(БизнесПроцессы.CRM_БизнесПроцесс.АдресИзЛСдляБалашихи(Выборка.СсылкаНаПартнеры));

                          

                                  

                        Если Выборка.ФормаСудопроизводства = Перечисления.F1_ВидыСудебногоПроцесса.ПриказноеПроизводство Тогда//Задание 1331, от 28.04.2025

                                  

                                   Если НЕ ЗначениеЗаполнено(Выборка.СуммаПени) Тогда

                                               НедостаточноДанныхДляQRКода = 1;

                                               ОШ.Параметры.СуммаПлатежаРуб = "[Сумма пени] не заполнена в разделе [Судебный приказ]!";                                              

                                   Иначе 

                                               ОШ.Параметры.СуммаПлатежаРуб = Цел(Выборка.СуммаПени);

                                               ОШ.Параметры.СуммаПлатежаКоп = Формат((Выборка.СуммаПени - Цел(Выборка.СуммаПени))* 100, "ЧЦ=2; ЧН=00");

                                   КонецЕсли;

                                  

                        Иначе  

                                  

                                   НедостаточноДанныхДляQRКода = 1;

                                   ОШ.Параметры.СуммаПлатежаРуб = "Это не СП!";

                                  

                        КонецЕсли;

                       

 

           

                        ТабДок.Вывести(ОШ);

 

                       

                        //=================

                        //Область ПОДВАЛ

                        //=================                                         

                        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");

                       

                        Если ЗначениеЗаполнено(Плательщик) Тогда

                                   ФамилияПлательщика = Плательщик.Фамилия;

                                   ИмяПлательщика = Плательщик.Имя;                              

                                   ОтчествоПлательщика = Плательщик.Отчество;

                        Иначе

                                   ФамилияПлательщика = Выборка.Ответчик.Фамилия;

                                   ИмяПлательщика = Выборка.Ответчик.Имя;                              

                                   ОтчествоПлательщика = Выборка.Ответчик.Отчество;                        

                        КонецЕсли;   

                                  

                        QRСтрока = "ST00011|Name=" + ОШ.Параметры.Истец +

                                   "|PersonalAcc=" + ОШ.Параметры.ИстецРасчетныйСчет +

                                   "|BankName=" + ОШ.Параметры.ИстецБанк +

                                   "|BIC=" + ОШ.Параметры.ИстецБИК +

                                                  "|CorrespAcc=" + ОШ.Параметры.ИстецКорСчет +

                                                  "|PayeeINN=" + ОШ.Параметры.ИстецИНН +

                                   "|LastName=" + ФамилияПлательщика + //Выборка.Ответчик.Фамилия +

                                                  "|FirstName=" + ИмяПлательщика + //Выборка.Ответчик.Имя +

                                                  "|MiddleName=" + ОтчествоПлательщика + //Выборка.Ответчик.Отчество +

                                                  "|Purpose=" + ОШ.Параметры.НаименованиеПлатежа +                     

                                                  "|PersAcc=" + ОШ.Параметры.ЛсЕирц +                       

                                   "|PayerAddress=" + ОШ.Параметры.АдресПлательщика +

                                                  "|Sum=" + Формат(Выборка.СуммаПени * 100, "ЧГ=");//Сумма в копейках и без пробела

                       

        ТекстОшибки = "";                   

                        ДанныеQRКода = УправлениеПечатью.ДанныеQRКода(QRСтрока, 0, 190);

                        Если Не ПустаяСтрока(ТекстОшибки) Тогда

                        ОбщегоНазначения.СообщитьПользователю(ТекстОшибки);

                        КонецЕсли;

                        КартинкаQRКода = Новый Картинка(ДанныеQRКода);

                        ОбластьПодвал.Рисунки.QRКод.Картинка = КартинкаQRКода; 

                       

                       

                        Если НедостаточноДанныхДляQRКода = 0 Тогда

                                   ТабДок.Вывести(ОбластьПодвал);

                        Иначе

                                   //Если данные неполные в бланке, то QR-код вообще не формируем

                                   ОбластьСОшибкой = Макет.ПолучитьОбласть("СообщениеОбОшибке");      

                                   ТабДок.Вывести(ОбластьСОшибкой);                             

                        КонецЕсли;   

                                              

                                                          

            КонецЕсли;   

КонецПроцедуры