diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo index 867abac..0e4b017 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo @@ -46,22 +46,6 @@ Use - - ИДСтроки - - ru - ИД строки (квитанции) - - - String - - 25 - - - - - Use - ДокументПередачи @@ -187,4 +171,21 @@ Use true + + ИДСтроки + + ru + ИД строки (квитанции) + + + String + + 50 + + + + + Use + true + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Catalogs/ВидыНалоговИПлатежей/ВидыНалоговИПлатежей.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Catalogs/ВидыНалоговИПлатежей/ВидыНалоговИПлатежей.mdo new file mode 100644 index 0000000..fddbdea --- /dev/null +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Catalogs/ВидыНалоговИПлатежей/ВидыНалоговИПлатежей.mdo @@ -0,0 +1,32 @@ + + + + + + + + + + ВидыНалоговИПлатежей + Adopted + + Checked + + true + + СчетУчета + Adopted + + Checked + + + Checked + String + + + 6 + + + + + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl deleted file mode 100644 index 32e87a4..0000000 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl +++ /dev/null @@ -1,33 +0,0 @@ -// ВнутренниеЭлектронныеДокументыБГУ: расширение. -// Дополняет состав документов, обрабатываемых внутренним ЭДО БГУ, документами -// учёта родительской платы: передачей поступивших платежей в учреждение и -// принятием поступивших платежей из ЦБ. - -#Область ПрограммныйИнтерфейс - -// Определяет, обрабатывается ли учётный документ механизмом внутреннего ЭДО БГУ. -// В типовой список типов БГУ документы расширения не входят, поэтому дополняем результат. -// -// Параметры: -// ТипИсточника - Тип - тип ссылки или объекта учётного документа. -// -// Возвращаемое значение: -// Булево - Истина, если документ обрабатывается внутренним ЭДО БГУ. -// -&Вместо("ЭтоВнутреннийДокументЭДО") -Функция ПС_ЭтоВнутреннийДокументЭДО(ТипИсточника) Экспорт - - Результат = ПродолжитьВызов(ТипИсточника); - - Если НЕ Результат Тогда - Результат = ТипИсточника = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") - ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения") - ИЛИ ТипИсточника = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ") - ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ"); - КонецЕсли; - - Возврат Результат; - -КонецФункции - -#КонецОбласти diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl index ab77ab9..24733d7 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl @@ -1,4 +1,3 @@ -ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО(); // ПС_РазборПлатежейПоРодительскойПлате: идентификация ребёнка и его контрагента по назначению платежа // в строках табличной части "Расшифровка платежа" документа КассовоеПоступление (БГУ 2.0). #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда @@ -124,14 +123,21 @@ // // Возвращаемое значение: // Структура - результат разбора: -// * ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка; пустая строка, если не распознан; -// * ФИО - Строка - ФИО ребёнка из назначения платежа; пустая строка, если не распознано. +// * ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка; пустая строка, если не распознан; +// * ФИО - Строка - ФИО ребёнка из назначения платежа; пустая строка, если не распознано; +// * Группа - Строка - группа детского сада (5-я часть назначения); пустая строка, если не распознана; +// * ПериодОплаты - Строка - период оплаты (6-я часть назначения, например "Июнь"); пустая строка, если не распознан; +// * РасчетныйСчет - Строка - лицевой счёт учреждения (2-я часть назначения, без префикса "л/с"); +// пустая строка, если не распознан. // Функция РазобратьНазначениеПлатежа(ТекстНазначения) Экспорт Результат = Новый Структура; Результат.Вставить("ЛицевойСчет", ""); Результат.Вставить("ФИО", ""); + Результат.Вставить("Группа", ""); + Результат.Вставить("ПериодОплаты", ""); + Результат.Вставить("РасчетныйСчет", ""); Если НЕ ЗначениеЗаполнено(ТекстНазначения) Тогда Возврат Результат; @@ -140,10 +146,55 @@ Результат.ЛицевойСчет = ОпределитьЛицевойСчетРебенка(ТекстНазначения); Результат.ФИО = ОпределитьФИОИзНазначения(ТекстНазначения); + // Разбор по частям: "учреждение,л/с учреждения,л/с ребёнка,ФИО,группа,период". + ЧастиНазначения = СтрРазделить(ТекстНазначения, ","); + Если ЧастиНазначения.Количество() >= 2 Тогда + Результат.РасчетныйСчет = УбратьПрефиксЛицевогоСчета(ЧастиНазначения[1]); + КонецЕсли; + Если ЧастиНазначения.Количество() >= 6 Тогда + Результат.Группа = СокрЛП(ЧастиНазначения[4]); + Результат.ПериодОплаты = СокрЛП(ЧастиНазначения[5]); + КонецЕсли; + Возврат Результат; КонецФункции +// Проверяет, есть ли в расшифровке платежа лицевые счета детей - признак платежа родительской платы. +// Применяется, когда признак "Родительская плата" не установлен: если лицевой счёт ребёнка распознан +// и найден в справочнике детей, платёж, скорее всего, относится к родительской плате. +// +// Параметры: +// ДокументОбъект - ДокументОбъект.КассовоеПоступление - проверяемый документ. +// +// Возвращаемое значение: +// Булево - Истина, если хотя бы один распознанный лицевой счёт найден в справочнике детей. +// +Функция ЕстьЛицевыеСчетаДетей(ДокументОбъект) Экспорт + + КодыПоиска = Новый Массив; + + Для Каждого СтрокаПлатежа Из ДокументОбъект.РасшифровкаПлатежа Цикл + + ДанныеПлатежа = РазобратьНазначениеПлатежа(СтрокаПлатежа.Примечание); + Если НЕ ЗначениеЗаполнено(ДанныеПлатежа.ЛицевойСчет) Тогда + Продолжить; + КонецЕсли; + + Для Каждого Код Из КодыПоискаРебенка(ДанныеПлатежа.ЛицевойСчет) Цикл + КодыПоиска.Добавить(Код); + КонецЦикла; + + КонецЦикла; + + Если КодыПоиска.Количество() = 0 Тогда + Возврат Ложь; + КонецЕсли; + + Возврат ДетиПоЛицевымСчетам(КодыПоиска).Количество() > 0; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции @@ -413,6 +464,29 @@ КонецФункции +// Убирает префикс "л/с" (в любом регистре и написании) из значения части назначения платежа. +// +// Параметры: +// Значение - Строка - часть назначения платежа, например "л/с 03003001079". +// +// Возвращаемое значение: +// Строка - значение без префикса и лишних пробелов. +// +Функция УбратьПрефиксЛицевогоСчета(Значение) + + Текст = СокрЛП(Значение); + ВерхнийРегистр = ВРЕГ(Текст); + + Если Лев(ВерхнийРегистр, 3) = "Л/С" Тогда + Возврат СокрЛП(Сред(Текст, 4)); + ИначеЕсли Лев(ВерхнийРегистр, 2) = "ЛС" Тогда + Возврат СокрЛП(Сред(Текст, 3)); + КонецЕсли; + + Возврат Текст; + +КонецФункции + // Возвращает ФИО ребёнка из текста назначения платежа (4-я часть, разделитель - запятая). // Для поиска используется пара "Фамилия Имя", как в реестрах. // diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl index 495268f..cbef21b 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl @@ -43,10 +43,7 @@ // Вёрстка и набор областей повторяют типовую печатную форму документа ИзвещениеИсходящее. // Заполняется та сторона, от которой печатается извещение: для передачи поступивших платежей - // отправитель (централизованная бухгалтерия), для принятия платежей - получатель (учреждение). -// Суммы и счета берутся из проводок документа, поэтому печатается только проведённый документ. -// -// Документ передачи платежей ЦБ охватывает несколько учреждений, поэтому из него формируется -// отдельное извещение на каждое учреждение, присутствующее в табличной части "Задолженность". +// Данные берутся из табличной части "Задолженность", поэтому печатается и непроведённый документ. // // Параметры: // ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения, @@ -54,7 +51,7 @@ // // Возвращаемое значение: // ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан, -// не проведён, нет проводок или не найден макет. +// в нём нет строк или не найден макет. // Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт @@ -74,18 +71,10 @@ Возврат ТабличныйДокумент; КонецЕсли; - Если НЕ ДокументОбъект.Проведен Тогда - ОбщегоНазначения.СообщитьПользователю( - "Печатная форма извещения формируется по проводкам документа, поэтому печатается" - + " только проведённый документ. Проведите документ и повторите печать."); - Возврат ТабличныйДокумент; - КонецЕсли; - - Проводки = ПроводкиИзвещения(ДокументСсылка); + Проводки = ДанныеИзвещенияПоРеестру(ДокументОбъект); Если Проводки.Количество() = 0 Тогда ОбщегоНазначения.СообщитьПользователю( - "По документу не найдено проводок в регистре бухгалтерии - печатная форма" - + " извещения не сформирована."); + "Печатная форма извещения не сформирована: в документе нет строк с платежами."); Возврат ТабличныйДокумент; КонецЕсли; @@ -145,10 +134,420 @@ КонецФункции +// Формирует печатную форму реестра поступивших платежей по документу подсистемы. +// +// Реестр строится по табличной части "Задолженность" и не зависит от проводок документа, +// поэтому печатается и непроведённый документ. +// +// Параметры: +// ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения, +// ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемый документ. +// +// Возвращаемое значение: +// ТабличныйДокумент - печатная форма реестра; пустой табличный документ, если документ +// не записан, не содержит строк или в документе нет макета. +// +Функция ПечатьРеестраПлатежей(ДокументСсылка) Экспорт + + ТабличныйДокумент = Новый ТабличныйДокумент; + ТабличныйДокумент.АвтоМасштаб = Истина; + ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; + + Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда + ОбщегоНазначения.СообщитьПользователю( + "Печатная форма реестра не сформирована: документ не записан в базу." + + " Запишите документ и повторите печать."); + Возврат ТабличныйДокумент; + КонецЕсли; + + ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); + Если ДокументОбъект = Неопределено Тогда + ОбщегоНазначения.СообщитьПользователю( + "Печатная форма реестра не сформирована: не удалось прочитать документ."); + Возврат ТабличныйДокумент; + КонецЕсли; + + Если ДокументОбъект.Задолженность.Количество() = 0 Тогда + ОбщегоНазначения.СообщитьПользователю( + "Печатная форма реестра не сформирована: в документе нет строк с платежами."); + Возврат ТабличныйДокумент; + КонецЕсли; + + Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ") Тогда + Макет = Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПолучитьМакет("РеестрПлатежей"); + Учреждение = ДокументОбъект.Организация; + Иначе + Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("РеестрПлатежей"); + Учреждение = ДокументОбъект.Учреждение; + КонецЕсли; + + Если Макет = Неопределено Тогда + ОбщегоНазначения.СообщитьПользователю( + "Печатная форма реестра не сформирована: в документе не найден макет печатной формы."); + Возврат ТабличныйДокумент; + КонецЕсли; + + ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); + ОбластьЗаголовок.Параметры.ЗаголовокРеестра = + "Реестр поступивших платежей по родительской плате за " + + Формат(ДокументОбъект.Период, "ДФ='MMMM yyyy'"); + ОбластьЗаголовок.Параметры.РеквизитыДокумента = + "Документ № " + ДокументОбъект.Номер + " от " + Формат(ДокументОбъект.Дата, "ДЛФ=DD") + + ", " + Строка(Учреждение); + ТабличныйДокумент.Вывести(ОбластьЗаголовок); + + ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("ОбластьШапкаТаблицы")); + + ОбластьСтрока = Макет.ПолучитьОбласть("ОбластьСтрокаТаблицы"); + ИтогоСумма = 0; + Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл + ОбластьСтрока.Параметры.Плательщик = СтрокаРеестра.Контрагент; + ОбластьСтрока.Параметры.Сумма = СтрокаРеестра.Сумма; + ОбластьСтрока.Параметры.ЛицевойСчет = СтрокаРеестра.ЛицевойСчет; + ОбластьСтрока.Параметры.Ребенок = СтрокаРеестра.Ребенок; + ОбластьСтрока.Параметры.НазначениеПлатежа = СтрокаРеестра.НазначениеПлатежа; + ОбластьСтрока.Параметры.Организация = Учреждение; + ОбластьСтрока.Параметры.РассчетныйСчет = СтрокаРеестра.РасчетныйСчет; + ОбластьСтрока.Параметры.Группа = СтрокаРеестра.Группа; + ОбластьСтрока.Параметры.Период = СтрокаРеестра.ПериодОплаты; + ОбластьСтрока.Параметры.ДатаПлатежа = СтрокаРеестра.ДатаПлатежа; + ТабличныйДокумент.Вывести(ОбластьСтрока); + ИтогоСумма = ИтогоСумма + СтрокаРеестра.Сумма; + КонецЦикла; + + ОбластьПодвал = Макет.ПолучитьОбласть("ОбластьПодвалТаблицы"); + ОбластьПодвал.Параметры.ОбщаяСумма = ИтогоСумма; + ТабличныйДокумент.Вывести(ОбластьПодвал); + + Возврат ТабличныйДокумент; + +КонецФункции + +// Создаёт (или перезаполняет) исходящее извещение ф. 0504805 по документу передачи платежей. +// +// Извещение создаётся как обёртка: заполняются шапка и табличная часть "Передаваемые проводки" +// (она же данные печати), документ не проводится - бухгалтерские проводки остаются в документе +// передачи. Извещение служит носителем шапки, связей и данных для электронного документооборота. +// +// Параметры: +// ДокументПередачи - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ-основание. +// +// Возвращаемое значение: +// ДокументСсылка.ИзвещениеИсходящее - созданное или перезаполненное извещение; +// пустая ссылка, если извещение проведено. +// +Функция СоздатьИзвещениеПоПередаче(ДокументПередачи) Экспорт + + Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПередачи, + "Организация, Учреждение, ИФО, Период, Ответственный, ИзвещениеИсходящее"); + + ИзвещениеОбъект = Неопределено; + Если ЗначениеЗаполнено(Реквизиты.ИзвещениеИсходящее) Тогда + ИзвещениеОбъект = Реквизиты.ИзвещениеИсходящее.ПолучитьОбъект(); + КонецЕсли; + + Если ИзвещениеОбъект = Неопределено Тогда + ИзвещениеОбъект = Документы.ИзвещениеИсходящее.СоздатьДокумент(); + ИначеЕсли ИзвещениеОбъект.Проведен Тогда + ОбщегоНазначения.СообщитьПользователю( + "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся." + + " Распроведите извещение или отвяжите его от документа передачи."); + Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка(); + КонецЕсли; + + ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + ИзвещениеОбъект.Организация = Реквизиты.Организация; + ИзвещениеОбъект.Получатель = КонтрагентПоОрганизации(Реквизиты.Учреждение); + ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийИсходящееИзвещение.ПолучениеДохода; + ИзвещениеОбъект.ИФО = Реквизиты.ИФО; + ИзвещениеОбъект.Ответственный = Реквизиты.Ответственный; + ИзвещениеОбъект.Комментарий = + "Передача поступивших платежей по родительской плате за " + + Формат(Реквизиты.Период, "ДФ='MMMM yyyy'") + + ". Основание: " + Строка(ДокументПередачи) + "."; + + ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументПередачи); + + ИзвещениеОбъект.Записать(РежимЗаписиДокумента.Запись); + + Возврат ИзвещениеОбъект.Ссылка; + +КонецФункции + +// Создаёт (или перезаполняет) входящее извещение ф. 0504805 по документу принятия платежей. +// +// Извещение создаётся как обёртка: заполняются шапка и табличная часть "Передаваемые проводки", +// документ не проводится - проводки формирует документ принятия. +// +// Параметры: +// ДокументПринятия - ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - документ-основание. +// +// Возвращаемое значение: +// ДокументСсылка.ИзвещениеВходящее - созданное или перезаполненное извещение; +// пустая ссылка, если извещение проведено. +// +Функция СоздатьИзвещениеПоПринятию(ДокументПринятия) Экспорт + + Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПринятия, + "Организация, ЦБ, ИФО, Период, Ответственный, ИзвещениеВходящее, ДокументПередачи"); + + ИзвещениеОбъект = Неопределено; + Если ЗначениеЗаполнено(Реквизиты.ИзвещениеВходящее) Тогда + ИзвещениеОбъект = Реквизиты.ИзвещениеВходящее.ПолучитьОбъект(); + КонецЕсли; + + Если ИзвещениеОбъект = Неопределено Тогда + ИзвещениеОбъект = Документы.ИзвещениеВходящее.СоздатьДокумент(); + ИначеЕсли ИзвещениеОбъект.Проведен Тогда + ОбщегоНазначения.СообщитьПользователю( + "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся." + + " Распроведите извещение или отвяжите его от документа принятия."); + Возврат Документы.ИзвещениеВходящее.ПустаяСсылка(); + КонецЕсли; + + ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + ИзвещениеОбъект.Организация = Реквизиты.Организация; + ИзвещениеОбъект.Отправитель = КонтрагентПоОрганизации(Реквизиты.ЦБ); + ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийВходящееИзвещение.ПолучениеДохода; + ИзвещениеОбъект.ИФО = Реквизиты.ИФО; + ИзвещениеОбъект.Ответственный = Реквизиты.Ответственный; + ИзвещениеОбъект.Комментарий = + "Принятие поступивших платежей по родительской плате за " + + Формат(Реквизиты.Период, "ДФ='MMMM yyyy'") + + ". Основание: " + Строка(ДокументПринятия) + "."; + + Если ЗначениеЗаполнено(Реквизиты.ДокументПередачи) Тогда + ИзвещениеОбъект.ДокументОснование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта( + Реквизиты.ДокументПередачи, "ИзвещениеИсходящее"); + КонецЕсли; + + ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументПринятия); + + ИзвещениеОбъект.Записать(РежимЗаписиДокумента.Запись); + + Возврат ИзвещениеОбъект.Ссылка; + +КонецФункции + #КонецОбласти #Область СлужебныеПроцедурыИФункции +// Заполняет табличную часть "Передаваемые проводки" извещения по строкам реестра документа. +// +// Строки отражают операцию зачисления в доход бюджета: Дт 303.05 (КЭК 831) - Кт 205.31 (КЭК 660). +// КПС берётся из строки реестра, КФО - из шапки документа. +// +// Параметры: +// ИзвещениеОбъект - ДокументОбъект.ИзвещениеИсходящее, ДокументОбъект.ИзвещениеВходящее - заполняемое извещение. +// ДокументСсылка - ДокументСсылка - документ подсистемы, по строкам которого заполняется извещение. +// +Процедура ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументСсылка) + + ИзвещениеОбъект.ПередаваемыеПроводки.Очистить(); + + ДокументОбъект = ДокументСсылка.ПолучитьОбъект(); + Если ДокументОбъект = Неопределено Тогда + Возврат; + КонецЕсли; + + СчетДт = БухгалтерскийУчет.СчетПоКоду("303.05", ДокументОбъект.Дата, ДокументОбъект.Организация); + СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", ДокументОбъект.Дата, ДокументОбъект.Организация); + КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831"); + КЭККт = Справочники.КОСГУ.НайтиПоКоду("660"); + + Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл + + Проводка = ИзвещениеОбъект.ПередаваемыеПроводки.Добавить(); + Проводка.КФО = ДокументОбъект.КФО; + Проводка.СчетДт = СчетДт; + Проводка.КПСДт = СтрокаРеестра.КПС; + Проводка.КЭКДт = КЭКДт; + Проводка.СчетКт = СчетКт; + Проводка.КПСКт = СтрокаРеестра.КПС; + Проводка.КЭККт = КЭККт; + Проводка.Сумма = СтрокаРеестра.Сумма; + Проводка.Содержание = "Поступление родительской платы"; + + КонецЦикла; + +КонецПроцедуры + +// Возвращает контрагента, соответствующего организации, для подстановки в извещение. +// +// Параметры: +// Организация - СправочникСсылка.Организации - организация (сад или централизованная бухгалтерия). +// +// Возвращаемое значение: +// СправочникСсылка.Контрагенты - контрагент организации; пустая ссылка, если соответствие не найдено. +// +Функция КонтрагентПоОрганизации(Организация) + + Если НЕ ЗначениеЗаполнено(Организация) Тогда + Возврат Справочники.Контрагенты.ПустаяСсылка(); + КонецЕсли; + + Контрагент = БюджетнаяОтчетностьПолучениеНСИ.КонтрагентПоОрганизации(Организация); + Если ЗначениеЗаполнено(Контрагент) Тогда + Возврат Контрагент; + КонецЕсли; + + // Штатный подбор сравнивает одновременно ИНН, КПП и бюджет организации с реквизитами + // юридического лица контрагента. Если КПП или бюджет расходятся, контрагент не находится - + // подбираем по ИНН и уточняем по КПП и бюджету. + Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Организация, "ИНН, КПП, Бюджет"); + + Если НЕ ЗначениеЗаполнено(Реквизиты.ИНН) Тогда + ОбщегоНазначения.СообщитьПользователю( + "У организации " + Строка(Организация) + " не заполнен ИНН:" + + " контрагент для извещения не подобран, заполните его вручную."); + Возврат Справочники.Контрагенты.ПустаяСсылка(); + КонецЕсли; + + Кандидаты = КонтрагентыПоИНН(Реквизиты.ИНН); + + Контрагент = ОтобратьКонтрагента(Кандидаты, Реквизиты); + Если ЗначениеЗаполнено(Контрагент) Тогда + Возврат Контрагент; + КонецЕсли; + + ВсеПомеченные = Кандидаты.Количество() > 0; + Для Каждого Кандидат Из Кандидаты Цикл + Если НЕ Кандидат.ПометкаУдаления Тогда + ВсеПомеченные = Ложь; + Прервать; + КонецЕсли; + КонецЦикла; + + Если ВсеПомеченные Тогда + ОбщегоНазначения.СообщитьПользователю( + "Для организации " + Строка(Организация) + + " найден только контрагент, помеченный на удаление: снимите пометку удаления" + + " или заведите действующего контрагента."); + Возврат Справочники.Контрагенты.ПустаяСсылка(); + КонецЕсли; + + ОбщегоНазначения.СообщитьПользователю(СтрШаблон( + "Для организации %1 не найден контрагент: ИНН %2, КПП %3, кандидатов по ИНН - %4." + + " Проверьте КПП и бюджет в юридическом лице контрагента или заполните контрагента вручную.", + Строка(Организация), Реквизиты.ИНН, + ?(ЗначениеЗаполнено(Реквизиты.КПП), Реквизиты.КПП, "<не заполнен>"), Кандидаты.Количество())); + + Возврат Справочники.Контрагенты.ПустаяСсылка(); + +КонецФункции + +// Возвращает контрагентов-юрлиц с указанным ИНН (без помеченных на удаление). +// +// Параметры: +// ИНН - Строка - ИНН организации. +// +// Возвращаемое значение: +// Массив из Структура - кандидаты: Контрагент, КПП, Бюджет. +// +Функция КонтрагентыПоИНН(ИНН) + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Контрагенты.Ссылка КАК Контрагент, + | ЮридическиеЛица.КПП КАК КПП, + | ЮридическиеЛица.Бюджет КАК Бюджет, + | Контрагенты.ПометкаУдаления КАК ПометкаУдаления + |ИЗ + | Справочник.Контрагенты КАК Контрагенты + | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ЮридическиеЛица КАК ЮридическиеЛица + | ПО Контрагенты.ЮридическоеФизическоеЛицо = ЮридическиеЛица.Ссылка + |ГДЕ + | Контрагенты.ВидКонтрагента = &ВидКонтрагента + | И ЮридическиеЛица.ИНН = &ИНН"; + Запрос.УстановитьПараметр("ВидКонтрагента", Перечисления.ЮрФизЛицо.ЮрЛицо); + Запрос.УстановитьПараметр("ИНН", ИНН); + + Кандидаты = Новый Массив; + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Кандидаты.Добавить(Новый Структура("Контрагент, КПП, Бюджет, ПометкаУдаления", + Выборка.Контрагент, Выборка.КПП, Выборка.Бюджет, Выборка.ПометкаУдаления)); + КонецЦикла; + + Возврат Кандидаты; + +КонецФункции + +// Выбирает контрагента из кандидатов по ИНН, уточняя по КПП и бюджету организации. +// +// Параметры: +// Кандидаты - Массив из Структура - кандидаты, найденные по ИНН. +// Реквизиты - Структура - реквизиты организации: ИНН, КПП, Бюджет. +// +// Возвращаемое значение: +// СправочникСсылка.Контрагенты - единственный подходящий контрагент; +// пустая ссылка, если однозначно выбрать нельзя. +// +Функция ОтобратьКонтрагента(Кандидаты, Реквизиты) + + // Помеченные на удаление в работу не принимаются: из них можно только подсказать причину. + Рабочие = Новый Массив; + Для Каждого Кандидат Из Кандидаты Цикл + Если НЕ Кандидат.ПометкаУдаления Тогда + Рабочие.Добавить(Кандидат); + КонецЕсли; + КонецЦикла; + + Если Рабочие.Количество() = 0 Тогда + Возврат Справочники.Контрагенты.ПустаяСсылка(); + КонецЕсли; + + // ИНН уникален для организации: единственный кандидат принимается без уточнений, + // даже если КПП в юридическом лице контрагента отличается. + Если Рабочие.Количество() = 1 Тогда + Возврат Рабочие[0].Контрагент; + КонецЕсли; + + Кандидаты = Рабочие; + + Если ЗначениеЗаполнено(Реквизиты.КПП) Тогда + Кандидаты = ОтобратьПоРеквизиту(Кандидаты, "КПП", Реквизиты.КПП); + Если Кандидаты.Количество() = 1 Тогда + Возврат Кандидаты[0].Контрагент; + КонецЕсли; + КонецЕсли; + + Если ЗначениеЗаполнено(Реквизиты.Бюджет) Тогда + Кандидаты = ОтобратьПоРеквизиту(Кандидаты, "Бюджет", Реквизиты.Бюджет); + Если Кандидаты.Количество() = 1 Тогда + Возврат Кандидаты[0].Контрагент; + КонецЕсли; + КонецЕсли; + + Возврат Справочники.Контрагенты.ПустаяСсылка(); + +КонецФункции + +// Оставляет кандидатов с указанным значением реквизита. +// +// Параметры: +// Кандидаты - Массив из Структура - кандидаты. +// ИмяРеквизита - Строка - имя реквизита структуры-кандидата. +// Значение - Произвольный - требуемое значение реквизита. +// +// Возвращаемое значение: +// Массив из Структура - отобранные кандидаты. +// +Функция ОтобратьПоРеквизиту(Кандидаты, ИмяРеквизита, Значение) + + Отобрано = Новый Массив; + Для Каждого Кандидат Из Кандидаты Цикл + Если Кандидат[ИмяРеквизита] = Значение Тогда + Отобрано.Добавить(Кандидат); + КонецЕсли; + КонецЦикла; + + Возврат Отобрано; + +КонецФункции + // Формирует структуру параметров одного извещения для вывода. // // Параметры: @@ -172,7 +571,7 @@ КонецФункции -// Выводит в табличный документ одно извещение по переданным проводкам. +// Выводит в табличный документ одно извещение по переданным данным. // // Параметры: // ТабличныйДокумент - ТабличныйДокумент - печатная форма, в которую выводится извещение. @@ -180,7 +579,7 @@ // ДокументСсылка - ДокументСсылка - печатаемый документ. // ДокументОбъект - ДокументОбъект - печатаемый документ. // ПараметрыИзвещения - Структура - параметры извещения, см. НоваяСтруктураИзвещения. -// Проводки - ТаблицаЗначений - проводки извещения, см. ПроводкиИзвещения. +// Проводки - ТаблицаЗначений - данные извещения, см. ДанныеИзвещенияПоРеестру. // Процедура ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки) @@ -402,47 +801,105 @@ КонецФункции -// Возвращает проводки документа по данным регистра бухгалтерии. +// Возвращает идентификатор строки поступления для регистра взаиморасчётов. +// +// Идентификатор связывает строку табличной части "Задолженность" наших документов +// со строкой расшифровки платежа кассового поступления: ":<номер строки>". +// Длина не должна превышать 50 символов (измерение регистра и реквизит табличных частей). // // Параметры: -// ДокументСсылка - ДокументСсылка - печатаемый документ. +// ДокументСсылка - ДокументСсылка.КассовоеПоступление - документ поступления. +// НомерСтроки - Число - номер строки табличной части "Расшифровка платежа". // // Возвращаемое значение: -// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание, -// СубконтоКт1, СубконтоКт2, СубконтоКт3. +// Строка // -Функция ПроводкиИзвещения(ДокументСсылка) +Функция ИдентификаторСтрокиПоступления(ДокументСсылка, НомерСтроки) Экспорт - Запрос = Новый Запрос; - Запрос.Текст = - "ВЫБРАТЬ - | Проводки.СчетДт КАК СчетДт, - | Проводки.КПСДт КАК КПСДт, - | Проводки.КЭКДт КАК КЭКДт, - | Проводки.СчетКт КАК СчетКт, - | Проводки.КПСКт КАК КПСКт, - | Проводки.КЭККт КАК КЭККт, - | Проводки.КФО КАК КФО, - | Проводки.Сумма КАК Сумма, - | Проводки.Содержание КАК Содержание, - | Проводки.СубконтоКт1 КАК СубконтоКт1, - | Проводки.СубконтоКт2 КАК СубконтоКт2, - | Проводки.СубконтоКт3 КАК СубконтоКт3 - |ИЗ - | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(, , Регистратор = &ДокументСсылка) КАК Проводки - | - |УПОРЯДОЧИТЬ ПО - | Проводки.НомерСтроки"; - Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка); + Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда + Возврат ""; + КонецЕсли; - Возврат Запрос.Выполнить().Выгрузить(); + Возврат Строка(ДокументСсылка.УникальныйИдентификатор()) + ":" + Формат(НомерСтроки, "ЧГ=0"); + +КонецФункции + +// Возвращает данные извещения по строкам табличной части "Задолженность". +// +// Извещение не имеет собственных проводок: строки отражают операцию зачисления в доход +// бюджета (Дт 303.05, КЭК 831 - Кт 205.31, КЭК 660), которую выполняет документ подсистемы. +// КПС берётся из строки реестра, КФО - из шапки документа. +// +// Параметры: +// ДокументОбъект - ДокументОбъект - печатаемый документ. +// +// Возвращаемое значение: +// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание. +// +Функция ДанныеИзвещенияПоРеестру(ДокументОбъект) + + Данные = Новый ТаблицаЗначений; + Данные.Колонки.Добавить("СчетДт"); + Данные.Колонки.Добавить("КПСДт"); + Данные.Колонки.Добавить("КЭКДт"); + Данные.Колонки.Добавить("СчетКт"); + Данные.Колонки.Добавить("КПСКт"); + Данные.Колонки.Добавить("КЭККт"); + Данные.Колонки.Добавить("КФО"); + Данные.Колонки.Добавить("Сумма"); + Данные.Колонки.Добавить("Содержание"); + + СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("303.05"); + СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31"); + КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831"); + КЭККт = Справочники.КОСГУ.НайтиПоКоду("660"); + + Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл + СтрокаДанных = Данные.Добавить(); + СтрокаДанных.СчетДт = СчетДт; + СтрокаДанных.КПСДт = СтрокаРеестра.КПС; + СтрокаДанных.КЭКДт = КЭКДт; + СтрокаДанных.СчетКт = СчетКт; + СтрокаДанных.КПСКт = СтрокаРеестра.КПС; + СтрокаДанных.КЭККт = КЭККт; + СтрокаДанных.КФО = ДокументОбъект.КФО; + СтрокаДанных.Сумма = СтрокаРеестра.Сумма; + СтрокаДанных.Содержание = СодержаниеСтрокиИзвещения(СтрокаРеестра); + КонецЦикла; + + Возврат Данные; + +КонецФункции + +// Формирует текст содержания строки извещения. +// +// Параметры: +// СтрокаРеестра - СтрокаТаблицыЗначений - строка табличной части "Задолженность". +// +// Возвращаемое значение: +// Строка +// +Функция СодержаниеСтрокиИзвещения(СтрокаРеестра) + + ЧастиСодержания = Новый Массив; + Если ЗначениеЗаполнено(СтрокаРеестра.Ребенок) Тогда + ЧастиСодержания.Добавить("Ребенок: " + Строка(СтрокаРеестра.Ребенок)); + КонецЕсли; + Если ЗначениеЗаполнено(СтрокаРеестра.Договор) Тогда + ЧастиСодержания.Добавить("Договор: " + Строка(СтрокаРеестра.Договор)); + КонецЕсли; + Если ЗначениеЗаполнено(СтрокаРеестра.ПериодОплаты) Тогда + ЧастиСодержания.Добавить("Период: " + СтрокаРеестра.ПериодОплаты); + КонецЕсли; + + Возврат СтрСоединить(ЧастиСодержания, "; "); КонецФункции // Сворачивает проводки по счетам для раздела "Обороты в журнал операций". // // Параметры: -// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения. +// Проводки - ТаблицаЗначений - данные извещения, см. ДанныеИзвещенияПоРеестру. // // Возвращаемое значение: // ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма. diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo index 20c4ff4..7be3209 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo @@ -75,10 +75,13 @@ Catalog.ИсточникиФинансовогоОбеспечения Catalog.Пользователи Catalog.КОСГУ + Catalog.ВидыНалоговИПлатежей Document.НачислениеРодительскойПлаты Document.ПС_ПринятиеПоступившихПлатежейИзЦБ Document.ПС_ПередачаПоступившихПлатежейВУчреждения Document.КассовоеПоступление + Document.ИзвещениеИсходящее + Document.ИзвещениеВходящее Enum.КВД Enum.ПС_ВидыОперацийПоВзаиморасчетам Report.ПС_ВедомостьЦБПоРодительскойПлате diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеВходящее/ИзвещениеВходящее.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеВходящее/ИзвещениеВходящее.mdo new file mode 100644 index 0000000..171e42b --- /dev/null +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеВходящее/ИзвещениеВходящее.mdo @@ -0,0 +1,16 @@ + + + + + + + + + + ИзвещениеВходящее + Adopted + + Checked + + true + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеИсходящее/ИзвещениеИсходящее.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеИсходящее/ИзвещениеИсходящее.mdo new file mode 100644 index 0000000..d61f4f1 --- /dev/null +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ИзвещениеИсходящее/ИзвещениеИсходящее.mdo @@ -0,0 +1,16 @@ + + + + + + + + + + ИзвещениеИсходящее + Adopted + + Checked + + true + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl index 9f89306..e6b6c1e 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl @@ -16,6 +16,16 @@ ПС_РазборПлатежейПоРодительскойПлате.ЗаполнитьКонтрагентовПоНазначениюПлатежа(ЭтотОбъект); + // Признак "Родительская плата" сбрасывается, если в корреспондирующем счёте указан 303.00. + // Без признака приход по регистру взаиморасчётов не формируется, поэтому предупреждаем + // по факту распознанного и найденного лицевого счёта ребёнка. + Если НЕ РодительскаяПлата + И ПС_РазборПлатежейПоРодительскойПлате.ЕстьЛицевыеСчетаДетей(ЭтотОбъект) Тогда + ОбщегоНазначения.СообщитьПользователю( + "В расшифровке платежа распознан лицевой счёт ребёнка, но признак ""Родительская плата""" + + " не установлен: приход по взаиморасчётам по родительской плате не будет сформирован."); + КонецЕсли; + КонецПроцедуры &После("ОбработкаПроведения") @@ -68,6 +78,8 @@ Движение.ИФО = ИФО; Движение.КФО = СтрокаРасшифровки.КФО; Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа; + Движение.ИДСтроки = ПС_УчетРодительскойПлаты.ИдентификаторСтрокиПоступления( + Ссылка, СтрокаРасшифровки.НомерСтроки); Движение.Сумма = СтрокаРасшифровки.Сумма; Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПоступлениеПлатежа; diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form index 3fbe579..47df018 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form @@ -685,6 +685,276 @@ Normal + + ЗадолженностьЛицевойСчет + 113 + + <key>ru</key> + <value>Лицевой счет</value> + + true + true + + true + + + Объект.Задолженность.ЛицевойСчет + + + ЗадолженностьЗадолженностьЛицевойСчетРасширеннаяПодсказка + 115 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьЛицевойСчетКонтекстноеМеню + 114 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьНазначениеПлатежа + 116 + + <key>ru</key> + <value>Назначение платежа</value> + + true + true + + true + + + Объект.Задолженность.НазначениеПлатежа + + + ЗадолженностьЗадолженностьНазначениеПлатежаРасширеннаяПодсказка + 118 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьНазначениеПлатежаКонтекстноеМеню + 117 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьРасчетныйСчет + 119 + + <key>ru</key> + <value>Расчетный счет</value> + + true + true + + true + + + Объект.Задолженность.РасчетныйСчет + + + ЗадолженностьЗадолженностьРасчетныйСчетРасширеннаяПодсказка + 121 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьРасчетныйСчетКонтекстноеМеню + 120 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьГруппа + 122 + + <key>ru</key> + <value>Группа</value> + + true + true + + true + + + Объект.Задолженность.Группа + + + ЗадолженностьЗадолженностьГруппаРасширеннаяПодсказка + 124 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьГруппаКонтекстноеМеню + 123 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьПериодОплаты + 125 + + <key>ru</key> + <value>Период оплаты</value> + + true + true + + true + + + Объект.Задолженность.ПериодОплаты + + + ЗадолженностьЗадолженностьПериодОплатыРасширеннаяПодсказка + 127 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьПериодОплатыКонтекстноеМеню + 126 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьДатаПлатежа + 128 + + <key>ru</key> + <value>Дата приема платежа</value> + + true + true + + true + + + Объект.Задолженность.ДатаПлатежа + + + ЗадолженностьЗадолженностьДатаПлатежаРасширеннаяПодсказка + 130 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьДатаПлатежаКонтекстноеМеню + 129 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + ЗадолженностьКоманднаяПанель 30 @@ -835,6 +1105,50 @@ ГруппаСтраницыОбщихДанных 88 + + ПринятиеПлатежей + 138 + + <key>ru</key> + <value>Принятие платежей</value> + + true + true + + true + + + Объект.ПринятиеПлатежей + + + ПринятиеПлатежейРасширеннаяПодсказка + 140 + Label + true + true + + Left + + + + ПринятиеПлатежейКонтекстноеМеню + 139 + true + + LabelField + Enter + true + Left + true + + true + true + true + + 1 + + + ИФО 10 @@ -922,6 +1236,46 @@ Normal + + ИзвещениеИсходящее + 135 + true + true + + true + + + Объект.ИзвещениеИсходящее + + + ИзвещениеИсходящееРасширеннаяПодсказка + 137 + Label + true + true + + Left + + + + ИзвещениеИсходящееКонтекстноеМеню + 136 + true + + LabelField + Enter + true + Left + true + + true + true + true + + 1 + + + Комментарий 81 @@ -1291,6 +1645,58 @@ UserCmds Auto + + ПечатьРеестраПлатежей + 131 + true + true + + true + + + ФормаПечатьРеестраПлатежейРасширеннаяПодсказка + 132 + Label + true + true + + Left + + + Form.Command.ПечатьРеестраПлатежей + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьИзвещение + 133 + true + true + + true + + + ФормаСоздатьИзвещениеРасширеннаяПодсказка + 134 + Label + true + true + + Left + + + Form.Command.СоздатьИзвещение + Normal + Auto + true + true + UserCmds + Auto + Left true @@ -1396,6 +1802,38 @@ + + ПечатьРеестраПлатежей + + <key>ru</key> + <value>Реестр платежей</value> + + 5 + + true + + + + ПечатьРеестраПлатежей + + + + + СоздатьИзвещение + + <key>ru</key> + <value>Создать извещение 0504805</value> + + 6 + + true + + + + СоздатьИзвещение + + + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl index 39ca6ce..50fd18b 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl @@ -104,6 +104,25 @@ КонецПроцедуры +&НаКлиенте +Процедура ПечатьРеестраПлатежей(Команда) + + ТабличныйДокумент = ПечатьРеестраПлатежейНаСервере(Объект.Ссылка); + ТабличныйДокумент.Показать("Реестр платежей"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзвещение(Команда) + + Извещение = СоздатьИзвещениеНаСервере(); + Если ЗначениеЗаполнено(Извещение) Тогда + ПараметрыФормы = Новый Структура("Ключ", Извещение); + ОткрытьФорму("Документ.ИзвещениеИсходящее.Форма.ФормаДокумента", ПараметрыФормы, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ПросмотрБухгалтерскихЗаписей(Команда) @@ -121,38 +140,15 @@ &НаКлиенте Процедура СоздатьПринятиеПлатежей(Команда) - Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда - СообщениеПользователю = Новый СообщениеПользователю; - СообщениеПользователю.Текст = "Сначала запишите документ передачи платежей."; - СообщениеПользователю.Сообщить(); - Возврат; + Принятие = СоздатьПринятиеПлатежейНаСервере(); + Если ЗначениеЗаполнено(Принятие) Тогда + ПараметрыФормы = Новый Структура("Ключ", Принятие); + ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента", + ПараметрыФормы, + ЭтотОбъект, + Строка(Принятие)); КонецЕсли; - Если НЕ Объект.Проведен Тогда - СообщениеПользователю = Новый СообщениеПользователю; - СообщениеПользователю.Текст = "Перед созданием приёма платежей документ передачи должен быть проведён."; - СообщениеПользователю.Сообщить(); - Возврат; - КонецЕсли; - - // Документ передачи адресный: открывается форма одного документа принятия по учреждению - // документа. Строки подбираются по саду, документ записывает пользователь. - Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда - СообщениеПользователю = Новый СообщениеПользователю; - СообщениеПользователю.Текст = "Не заполнено учреждение (получатель) документа передачи."; - СообщениеПользователю.Сообщить(); - Возврат; - КонецЕсли; - - ПараметрыФормы = Новый Структура; - ПараметрыФормы.Вставить("ДокументПередачи", Объект.Ссылка); - ПараметрыФормы.Вставить("ОрганизацияСада", Объект.Учреждение); - - ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента", - ПараметрыФормы, - ЭтотОбъект, - Строка(Объект.Ссылка)); - КонецПроцедуры &НаКлиенте @@ -173,6 +169,72 @@ КонецФункции +&НаСервере +Функция ПечатьРеестраПлатежейНаСервере(ДокументСсылка) + + Возврат ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка); + +КонецФункции + +&НаСервере +Функция СоздатьПринятиеПлатежейНаСервере() + + Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда + ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ передачи платежей."); + Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка(); + КонецЕсли; + + Если НЕ Объект.Проведен Тогда + ОбщегоНазначения.СообщитьПользователю( + "Перед созданием приёма платежей документ передачи должен быть проведён."); + Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка(); + КонецЕсли; + + Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда + ОбщегоНазначения.СообщитьПользователю( + "Не заполнено учреждение (получатель) документа передачи."); + Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка(); + КонецЕсли; + + // Документ передачи адресный: приём платежей по нему один. Если он уже создан, + // открывается существующий - повторное нажатие не плодит документы. + Если ЗначениеЗаполнено(Объект.ПринятиеПлатежей) Тогда + Существующий = Объект.ПринятиеПлатежей.ПолучитьОбъект(); + Если Существующий <> Неопределено И НЕ Существующий.ПометкаУдаления Тогда + Возврат Объект.ПринятиеПлатежей; + КонецЕсли; + КонецЕсли; + + Принятие = Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.СоздатьДокумент(); + Принятие.Организация = Объект.Учреждение; + Принятие.Заполнить(Объект.Ссылка); + Принятие.Записать(РежимЗаписиДокумента.Запись); + + Объект.ПринятиеПлатежей = Принятие.Ссылка; + Записать(); + + Возврат Принятие.Ссылка; + +КонецФункции + +&НаСервере +Функция СоздатьИзвещениеНаСервере() + + Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда + ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ передачи платежей."); + Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка(); + КонецЕсли; + + Извещение = ПС_УчетРодительскойПлаты.СоздатьИзвещениеПоПередаче(Объект.Ссылка); + Если ЗначениеЗаполнено(Извещение) Тогда + Объект.ИзвещениеИсходящее = Извещение; + Записать(); + КонецЕсли; + + Возврат Извещение; + +КонецФункции + &НаСервере Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию() @@ -187,8 +249,10 @@ КонецПроцедуры // Подбирает в табличную часть "Задолженность" поступившие платежи, ещё не переданные -// в учреждения: остатки регистра накопления ПС_ВзаиморасчетыПоРодительскойПлате. -// Предыдущая передача выбирает остатки, поэтому следующая их уже не видит. +// в учреждения: остатки регистра накопления ПС_ВзаиморасчетыПоРодительскойПлате в разрезе +// квитанций (измерение "ИДСтроки"). Предыдущая передача выбирает остатки, поэтому следующая +// их уже не видит. Реквизиты реестра (лицевой счёт, расчётный счёт, группа, период оплаты, +// назначение платежа) разбираются из назначения платежа строки расшифровки кассового поступления. // &НаСервере Процедура ЗаполнитьПоПоступившимПлатежамНаСервере() @@ -208,6 +272,7 @@ Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ + | Остатки.ИДСтроки КАК ИДСтроки, | Остатки.Плательщик КАК Контрагент, | Остатки.Договор КАК Договор, | Остатки.Ребенок КАК Ребенок, @@ -240,29 +305,87 @@ ЗначенияИФО = Новый Соответствие; ЗначенияКФО = Новый Соответствие; + СтрокиОстатков = Новый Массив; Пока Выборка.Следующий() Цикл + СтрокаОстатка = Новый Структура; + СтрокаОстатка.Вставить("ИДСтроки", Выборка.ИДСтроки); + СтрокаОстатка.Вставить("Контрагент", Выборка.Контрагент); + СтрокаОстатка.Вставить("Договор", Выборка.Договор); + СтрокаОстатка.Вставить("Ребенок", Выборка.Ребенок); + СтрокаОстатка.Вставить("КПС", Выборка.КПС); + СтрокаОстатка.Вставить("Сумма", Выборка.Сумма); + СтрокиОстатков.Добавить(СтрокаОстатка); + ЗначенияИФО.Вставить(Выборка.ИФО, Истина); ЗначенияКФО.Вставить(Выборка.КФО, Истина); - НоваяСтрока = Объект.Задолженность.Добавить(); - НоваяСтрока.Контрагент = Выборка.Контрагент; - НоваяСтрока.Договор = Выборка.Договор; - НоваяСтрока.Ребенок = Выборка.Ребенок; - НоваяСтрока.КПС = Выборка.КПС; - НоваяСтрока.Сумма = Выборка.Сумма; - КонецЦикла; - Если Объект.Задолженность.Количество() = 0 Тогда + Если СтрокиОстатков.Количество() = 0 Тогда ОбщегоНазначения.СообщитьПользователю( "Поступивших платежей, ещё не переданных в учреждения, не найдено."); Возврат; КонецЕсли; + // Расшифровки платежей читаются одним запросом на весь документ. + Расшифровки = РасшифровкиПлатежейПоИД(СтрокиОстатков); + + СтрокБезИдентификатора = 0; + СтрокБезРасшифровки = 0; + + Для Каждого СтрокаОстатка Из СтрокиОстатков Цикл + + НоваяСтрока = Объект.Задолженность.Добавить(); + НоваяСтрока.Контрагент = СтрокаОстатка.Контрагент; + НоваяСтрока.Договор = СтрокаОстатка.Договор; + НоваяСтрока.Ребенок = СтрокаОстатка.Ребенок; + НоваяСтрока.КПС = СтрокаОстатка.КПС; + НоваяСтрока.Сумма = СтрокаОстатка.Сумма; + НоваяСтрока.ИДСтроки = СтрокаОстатка.ИДСтроки; + + ДанныеРасшифровки = Расшифровки[СтрокаОстатка.ИДСтроки]; + Если ДанныеРасшифровки = Неопределено Тогда + // Идентификатор строки пишется в регистр при проведении кассового поступления: + // у документов, проведённых до появления измерения, он пуст. + Если СтрДлина(СокрЛП(СтрокаОстатка.ИДСтроки)) < 38 Тогда + СтрокБезИдентификатора = СтрокБезИдентификатора + 1; + Иначе + СтрокБезРасшифровки = СтрокБезРасшифровки + 1; + КонецЕсли; + Продолжить; + КонецЕсли; + + ТекстНазначения = СокрЛП(ДанныеРасшифровки.Примечание); + ДанныеПлатежа = ПС_РазборПлатежейПоРодительскойПлате.РазобратьНазначениеПлатежа(ТекстНазначения); + + НоваяСтрока.НазначениеПлатежа = Лев(ТекстНазначения, 200); + НоваяСтрока.ЛицевойСчет = ДанныеПлатежа.ЛицевойСчет; + НоваяСтрока.РасчетныйСчет = ДанныеПлатежа.РасчетныйСчет; + НоваяСтрока.Группа = ДанныеПлатежа.Группа; + НоваяСтрока.ПериодОплаты = ДанныеПлатежа.ПериодОплаты; + НоваяСтрока.ДатаПлатежа = ДанныеРасшифровки.Дата; + + КонецЦикла; + Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма"); + Если СтрокБезИдентификатора > 0 Тогда + ОбщегоНазначения.СообщитьПользователю(СтрШаблон( + "По %1 строкам в регистре нет идентификатора квитанции: кассовое поступление не перепроведено." + + " Лицевой счёт, назначение платежа, расчётный счёт, группа, период оплаты и дата платежа" + + " не заполнены. Перепроведите кассовые поступления и заполните документ заново.", + СтрокБезИдентификатора)); + КонецЕсли; + + Если СтрокБезРасшифровки > 0 Тогда + ОбщегоНазначения.СообщитьПользователю(СтрШаблон( + "По %1 строкам идентификатор квитанции есть, но строка расшифровки платежа не найдена:" + + " кассовое поступление изменялось после проведения. Перепроведите кассовые поступления" + + " и заполните документ заново.", СтрокБезРасшифровки)); + КонецЕсли; + // Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ, // поэтому переносим их в шапку, если в остатках они единственные. ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО); @@ -275,6 +398,70 @@ КонецПроцедуры +// Возвращает расшифровки платежей по идентификаторам строк поступлений. +// +// Параметры: +// СтрокиОстатков - Массив из Структура - строки остатков регистра взаиморасчётов +// с полем "ИДСтроки" вида ":<номер строки>". +// +// Возвращаемое значение: +// Соответствие из Строка, Структура - расшифровки по идентификатору строки: +// * Примечание - Строка - текст назначения платежа; +// * Дата - Дата - дата кассового поступления. +// +&НаСервере +Функция РасшифровкиПлатежейПоИД(СтрокиОстатков) + + Результат = Новый Соответствие; + Идентификаторы = Новый Соответствие; + ДокументыПоступления = Новый Массив; + + Для Каждого СтрокаОстатка Из СтрокиОстатков Цикл + + Идентификатор = СокрЛП(СтрокаОстатка.ИДСтроки); + Если СтрДлина(Идентификатор) < 38 Тогда + Продолжить; + КонецЕсли; + + ИдентификаторДокумента = Лев(Идентификатор, 36); + Если Идентификаторы[ИдентификаторДокумента] <> Неопределено Тогда + Продолжить; + КонецЕсли; + Идентификаторы.Вставить(ИдентификаторДокумента, Истина); + + ДокументыПоступления.Добавить(Документы.КассовоеПоступление.ПолучитьСсылку( + Новый УникальныйИдентификатор(ИдентификаторДокумента))); + + КонецЦикла; + + Если ДокументыПоступления.Количество() = 0 Тогда + Возврат Результат; + КонецЕсли; + + Запрос = Новый Запрос; + Запрос.Текст = + "ВЫБРАТЬ + | Расшифровка.Ссылка КАК Ссылка, + | Расшифровка.НомерСтроки КАК НомерСтроки, + | Расшифровка.Примечание КАК Примечание, + | Расшифровка.Ссылка.Дата КАК Дата + |ИЗ + | Документ.КассовоеПоступление.РасшифровкаПлатежа КАК Расшифровка + |ГДЕ + | Расшифровка.Ссылка В (&ДокументыПоступления)"; + Запрос.УстановитьПараметр("ДокументыПоступления", ДокументыПоступления); + + Выборка = Запрос.Выполнить().Выбрать(); + Пока Выборка.Следующий() Цикл + Результат.Вставить( + ПС_УчетРодительскойПлаты.ИдентификаторСтрокиПоступления(Выборка.Ссылка, Выборка.НомерСтроки), + Новый Структура("Примечание, Дата", Выборка.Примечание, Выборка.Дата)); + КонецЦикла; + + Возврат Результат; + +КонецФункции + &НаСервере Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО) @@ -302,7 +489,7 @@ ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка", ПараметрыФормы, ЭтотОбъект, - УникальныйИдентификатор); + "Проводки" + Строка(ДокументСсылка)); КонецПроцедуры diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl index c715820..7fe5880 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl @@ -34,6 +34,12 @@ КомандаПечати.Представление = "Извещение (ф. 0504805)"; КомандаПечати.Порядок = 1; + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.МенеджерПечати = "Документ.ПС_ПередачаПоступившихПлатежейВУчреждения"; + КомандаПечати.Идентификатор = "РеестрПлатежей"; + КомандаПечати.Представление = "Реестр платежей"; + КомандаПечати.Порядок = 2; + КонецПроцедуры // Формирует печатные формы документа для подсистемы БСП "Печать". @@ -47,17 +53,25 @@ // Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда - Возврат; + Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда + Для Каждого ДокументСсылка Из МассивОбъектов Цикл + УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( + КоллекцияПечатныхФорм, + "Извещение0504805", + "Извещение (ф. 0504805)", + ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка)); + КонецЦикла; КонецЕсли; - Для Каждого ДокументСсылка Из МассивОбъектов Цикл - УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( - КоллекцияПечатныхФорм, - "Извещение0504805", - "Извещение (ф. 0504805)", - ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка)); - КонецЦикла; + Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РеестрПлатежей") Тогда + Для Каждого ДокументСсылка Из МассивОбъектов Цикл + УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( + КоллекцияПечатныхФорм, + "РеестрПлатежей", + "Реестр платежей", + ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка)); + КонецЦикла; + КонецЕсли; КонецПроцедуры diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl index d6e5f22..6974651 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl @@ -1,7 +1,7 @@ // ПС_ПередачаПоступившихПлатежейВУчреждения: модуль объекта. -// Сторона ЦБ: Дт 205.31.56X — Кт 304.04.130. -// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением -// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ. +// Сторона ЦБ — администратор кассовых поступлений. Бухгалтерских проводок документ не формирует: +// учёт ведётся в регистре накопления ПС_ВзаиморасчетыПоРодительскойПлате, а информация +// передаётся учреждению реестром платежей и извещением (ф. 0504805). // Документ собирает поступившие платежи (приход в регистре накопления // ПС_ВзаиморасчетыПоРодительскойПлате, сделанный кассовыми поступлениями) // и передаёт их учреждениям — расход по тому же регистру. Пока передано не всё, @@ -13,50 +13,11 @@ Процедура ОбработкаПроведения(Отказ, РежимПроведения) - Движения.ЖурналПроводокЕПСБУ.Очистить(); - Движения.ЖурналПроводокЕПСБУ.Записывать = Истина; - Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок"); - Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить(); Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина; - СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация); - - // Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются - // реквизитами документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем. - СчетКт = СчетКорреспондент; - Если НЕ ЗначениеЗаполнено(СчетКт) Тогда - ОбщегоНазначения.СообщитьПользователю( - "Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.", - , "СчетКорреспондент", "Объект", Отказ); - Возврат; - КонецЕсли; - - ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт); - - // КПС строк заполняется при подборе поступивших платежей (см. модуль формы), - // КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ). Для Каждого СтрокаЗадолженности Из Задолженность Цикл - Движение = Движения.ЖурналПроводокЕПСБУ.Добавить(); - Движение.Период = Дата; - Движение.Организация = Организация; - Движение.ИФО = ИФО; - Движение.КФО = КФО; - Движение.СчетДт = СчетДт; - Движение.СчетКт = СчетКт; - Движение.КПСДт = СтрокаЗадолженности.КПС; - Движение.КПСКт = СтрокаЗадолженности.КПС; - Движение.КЭКДт = КЭКПроводки(СчетДт, "Дт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор); - Движение.КЭККт = КЭККорреспондент; - Движение.Сумма = СтрокаЗадолженности.Сумма; - Движение.ЖурналОпераций = ЖурналОпераций; - Движение.Содержание = "Передача поступивших платежей по родительской плате в учреждение"; - - Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент; - Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор; - Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = Учреждение; - // Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом. ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход(); ДвижениеПС.Период = Дата; @@ -74,18 +35,10 @@ КонецЦикла; - // В конфигурации есть подписка на событие "ОбработкаПроведения" (ЗаписатьТаблицуПроводок), - // которая выполняется после модуля объекта и перезаписывает проводки документа: если таблица - // проводок не передана, набор записей регистра очищается. Поэтому передаём сформированную - // таблицу через ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок. - БухгалтерскиеОперацииСервер.ИнициализироватьБухгалтерскиеОперации(ЭтотОбъект); - ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок = Движения.ЖурналПроводокЕПСБУ.Выгрузить(); - КонецПроцедуры Процедура ОбработкаУдаленияПроведения(Отказ) - Движения.ЖурналПроводокЕПСБУ.Записывать = Истина; Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина; КонецПроцедуры @@ -170,34 +123,6 @@ КонецПроцедуры -// Возвращает КЭК проводки, определённый по настройкам счёта -// и типу контрагента (подстатья КОСГУ). -// -// Параметры: -// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки. -// ДтКт - Строка - сторона проводки: "Дт" или "Кт". -// Субконто1 - Произвольный - значение первого субконто проводки. -// Субконто2 - Произвольный - значение второго субконто проводки. -// -// Возвращаемое значение: -// СправочникСсылка.КОСГУ - КЭК проводки. -// -Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено) - - ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки(); - ПараметрыКЭК.Организация = Организация; - ПараметрыКЭК.ИФО = ИФО; - ПараметрыКЭК.КФО = КФО; - ПараметрыКЭК.Дата = Дата; - ПараметрыКЭК.Счет = Счет; - ПараметрыКЭК.ДтКт = ДтКт; - ПараметрыКЭК.Субконто1 = Субконто1; - ПараметрыКЭК.Субконто2 = Субконто2; - - Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК); - -КонецФункции - #КонецОбласти #КонецЕсли diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Templates/РеестрПлатежей/Template.mxlx b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Templates/РеестрПлатежей/Template.mxlx new file mode 100644 index 0000000..a03772f --- /dev/null +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Templates/РеестрПлатежей/Template.mxlx @@ -0,0 +1,574 @@ + + + + ru + ru + + ru + Русский + Русский + + + + 10 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 3 + + + + 3 + + 4 + + + + 4 + + 5 + + + + 5 + + 6 + + + + 6 + + 7 + + + + 7 + + 4 + + + + 8 + + 8 + + + + 9 + + 9 + + + + + c4c71b73-7783-4619-abbc-ece4486e4bdb + 10 + + 0 + + 10 + + + + 1 + + 11 + + + + 2 + + 12 + + + + 3 + + 4 + + + + 4 + + 5 + + + + 5 + + 13 + + + + 6 + + 7 + + + + 7 + + 14 + + + + 8 + + 8 + + + + 9 + + 9 + + + + + 0 + + + + 15 + ЗаголовокРеестра + + + + + + 1 + + + + 15 + РеквизитыДокумента + + + + + + 2 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 16 + + + ru + ФИО плательщика + + + + + + + 16 + + + ru + Сумма + + + + + + + 17 + + + ru + Лицевой счет ребенка + + + + + + + 16 + + + ru + ФИО ребенка + + + + + + + 16 + + + ru + Назначение платежа + + + + + + + 16 + + + ru + Организация + + + + + + + 16 + + + ru + Рассчетный счет + + + + + + + 16 + + + ru + Группа + + + + + + + 17 + + + ru + Период оплаты + + + + + + + 17 + + + ru + Дата приема платежа + + + + + + + + 3 + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + + 4 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 15 + Плательщик + + + + + 19 + Сумма + + + + + 15 + ЛицевойСчет + + + + + 15 + Ребенок + + + + + 15 + НазначениеПлатежа + + + + + 15 + Организация + + + + + 15 + РассчетныйСчет + + + + + 15 + Группа + + + + + 15 + Период + + + + + 15 + ДатаПлатежа + + + + + + 5 + + true + + + + 6 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 20 + + + ru + ИТОГО: + + + + + + + 21 + ОбщаяСумма + + + + + true + 22 + 7 + 7 + + Заголовок + + Rows + 0 + 1 + -1 + -1 + + + + ОбластьПодвалТаблицы + + Rows + 6 + 6 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + ОбластьСтрокаТаблицы + + Rows + 4 + 4 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + ОбластьШапкаТаблицы + + Rows + 2 + 2 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + Solid + + + + + + 198 + + + 81 + + + 111 + + + 186 + + + 190 + + + 152 + + + 137 + + + 106 + + + 103 + + + 213 + + + 74 + + + 99 + + + 171 + + + 167 + + + 0 + 0 + Center + Wrap + Parameter + + + 1 + 0 + Center + + + 1 + 0 + Center + Wrap + + + 2 + + + 0 + 0 + Center + Wrap + Parameter + + + ru + ЧДЦ=2 + + + + + 1 + + + 1 + 0 + Center + Parameter + + + ru + ЧДЦ=2 + + + + + 72 + + \ No newline at end of file diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo index 850ce83..3748a9e 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo @@ -30,7 +30,6 @@ true true Document.ПС_ПередачаПоступившихПлатежейВУчреждения.Form.ФормаДокумента - AccountingRegister.ЖурналПроводокЕПСБУ AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате true true @@ -193,6 +192,36 @@ Use Use + + ИзвещениеИсходящее + + ru + Извещение исходящее + + + DocumentRef.ИзвещениеИсходящее + + + + + Use + Use + + + ПринятиеПлатежей + + ru + Документ принятия платежей + + + DocumentRef.ПС_ПринятиеПоступившихПлатежейИзЦБ + + + + + Use + Use + ФормаДокумента @@ -257,7 +286,7 @@ String - 25 + 50 @@ -297,6 +326,108 @@ Use Use + + ЛицевойСчет + + ru + Лицевой счет + + + String + + 25 + + + + + Use + Use + + + НазначениеПлатежа + + ru + Назначение платежа + + + String + + 200 + + + + + Use + Use + + + РасчетныйСчет + + ru + Расчетный счет + + + String + + 25 + + + + + Use + Use + + + Группа + + ru + Группа + + + String + + 50 + + + + + Use + Use + + + ПериодОплаты + + ru + Период оплаты + + + String + + 30 + + + + + Use + Use + + + ДатаПлатежа + + ru + Дата платежа + + + Date + + Date + + + + + Use + Use + ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель @@ -305,4 +436,11 @@ Извещение ф. 0504805 (103н) — получатель + + РеестрПлатежей + + ru + Реестр платежей + + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Form.form index ed4f03d..8852316 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Form.form +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Form.form @@ -722,6 +722,276 @@ Normal + + ЗадолженностьЛицевойСчет + 119 + + <key>ru</key> + <value>Лицевой счет</value> + + true + true + + true + + + Объект.Задолженность.ЛицевойСчет + + + ЗадолженностьЗадолженностьЛицевойСчетРасширеннаяПодсказка + 121 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьЛицевойСчетКонтекстноеМеню + 120 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьНазначениеПлатежа + 122 + + <key>ru</key> + <value>Назначение платежа</value> + + true + true + + true + + + Объект.Задолженность.НазначениеПлатежа + + + ЗадолженностьЗадолженностьНазначениеПлатежаРасширеннаяПодсказка + 124 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьНазначениеПлатежаКонтекстноеМеню + 123 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьРасчетныйСчет + 125 + + <key>ru</key> + <value>Расчетный счет</value> + + true + true + + true + + + Объект.Задолженность.РасчетныйСчет + + + ЗадолженностьЗадолженностьРасчетныйСчетРасширеннаяПодсказка + 127 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьРасчетныйСчетКонтекстноеМеню + 126 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьГруппа + 128 + + <key>ru</key> + <value>Группа</value> + + true + true + + true + + + Объект.Задолженность.Группа + + + ЗадолженностьЗадолженностьГруппаРасширеннаяПодсказка + 130 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьГруппаКонтекстноеМеню + 129 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьПериодОплаты + 131 + + <key>ru</key> + <value>Период оплаты</value> + + true + true + + true + + + Объект.Задолженность.ПериодОплаты + + + ЗадолженностьЗадолженностьПериодОплатыРасширеннаяПодсказка + 133 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьПериодОплатыКонтекстноеМеню + 132 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + + + ЗадолженностьДатаПлатежа + 134 + + <key>ru</key> + <value>Дата приема платежа</value> + + true + true + + true + + + Объект.Задолженность.ДатаПлатежа + + + ЗадолженностьЗадолженностьДатаПлатежаРасширеннаяПодсказка + 136 + Label + true + true + + Left + + + + ЗадолженностьЗадолженностьДатаПлатежаКонтекстноеМеню + 135 + true + + InputField + Auto + true + Left + true + + true + true + true + true + true + true + Normal + + ЗадолженностьКоманднаяПанель 30 @@ -902,19 +1172,18 @@ 112 true - InputField + LabelField Enter true Left true - + true true - true - true - true - true - Normal + true + + 1 + @@ -1004,6 +1273,51 @@ Normal + + ВидПлатежаВБюджет + 116 + + <key>ru</key> + <value>Вид платежа в бюджет (аналитика 303.05)</value> + + true + true + + true + + + Объект.ВидПлатежаВБюджет + + + ВидПлатежаВБюджетРасширеннаяПодсказка + 118 + Label + true + true + + Left + + + + ВидПлатежаВБюджетКонтекстноеМеню + 117 + true + + InputField + Enter + true + Left + true + + true + true + true + true + true + true + Normal + + ГруппаКорреспондентующегоСчёта 109 @@ -1128,6 +1442,46 @@ Auto + + ИзвещениеВходящее + 141 + true + true + + true + + + Объект.ИзвещениеВходящее + + + ИзвещениеВходящееРасширеннаяПодсказка + 143 + Label + true + true + + Left + + + + ИзвещениеВходящееКонтекстноеМеню + 142 + true + + LabelField + Enter + true + Left + true + + true + true + true + + 1 + + + Комментарий 87 @@ -1381,6 +1735,58 @@ UserCmds Auto + + ПечатьРеестраПлатежей + 137 + true + true + + true + + + ФормаПечатьРеестраПлатежейРасширеннаяПодсказка + 138 + Label + true + true + + Left + + + Form.Command.ПечатьРеестраПлатежей + Normal + Auto + true + true + UserCmds + Auto + + + СоздатьИзвещение + 139 + true + true + + true + + + ФормаСоздатьИзвещениеРасширеннаяПодсказка + 140 + Label + true + true + + Left + + + Form.Command.СоздатьИзвещение + Normal + Auto + true + true + UserCmds + Auto + Left true @@ -1466,6 +1872,38 @@ + + ПечатьРеестраПлатежей + + <key>ru</key> + <value>Реестр платежей</value> + + 4 + + true + + + + ПечатьРеестраПлатежей + + + + + СоздатьИзвещение + + <key>ru</key> + <value>Создать извещение 0504805</value> + + 5 + + true + + + + СоздатьИзвещение + + + diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl index abee674..7ca78ff 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl @@ -139,6 +139,25 @@ КонецПроцедуры +&НаКлиенте +Процедура ПечатьРеестраПлатежей(Команда) + + ТабличныйДокумент = ПечатьРеестраПлатежейНаСервере(Объект.Ссылка); + ТабличныйДокумент.Показать("Реестр платежей"); + +КонецПроцедуры + +&НаКлиенте +Процедура СоздатьИзвещение(Команда) + + Извещение = СоздатьИзвещениеНаСервере(); + Если ЗначениеЗаполнено(Извещение) Тогда + ПараметрыФормы = Новый Структура("Ключ", Извещение); + ОткрытьФорму("Документ.ИзвещениеВходящее.Форма.ФормаДокумента", ПараметрыФормы, ЭтотОбъект); + КонецЕсли; + +КонецПроцедуры + &НаКлиенте Процедура ПросмотрБухгалтерскихЗаписей(Команда) @@ -185,6 +204,31 @@ КонецФункции +&НаСервере +Функция ПечатьРеестраПлатежейНаСервере(ДокументСсылка) + + Возврат ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка); + +КонецФункции + +&НаСервере +Функция СоздатьИзвещениеНаСервере() + + Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда + ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ принятия платежей."); + Возврат Документы.ИзвещениеВходящее.ПустаяСсылка(); + КонецЕсли; + + Извещение = ПС_УчетРодительскойПлаты.СоздатьИзвещениеПоПринятию(Объект.Ссылка); + Если ЗначениеЗаполнено(Извещение) Тогда + Объект.ИзвещениеВходящее = Извещение; + Записать(); + КонецЕсли; + + Возврат Извещение; + +КонецФункции + &НаСервере Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию() diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl index 6b681ab..908fb86 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl @@ -34,6 +34,12 @@ КомандаПечати.Представление = "Извещение (ф. 0504805)"; КомандаПечати.Порядок = 1; + КомандаПечати = КомандыПечати.Добавить(); + КомандаПечати.МенеджерПечати = "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ"; + КомандаПечати.Идентификатор = "РеестрПлатежей"; + КомандаПечати.Представление = "Реестр платежей"; + КомандаПечати.Порядок = 2; + КонецПроцедуры // Формирует печатные формы документа для подсистемы БСП "Печать". @@ -47,17 +53,25 @@ // Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт - Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда - Возврат; + Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда + Для Каждого ДокументСсылка Из МассивОбъектов Цикл + УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( + КоллекцияПечатныхФорм, + "Извещение0504805", + "Извещение (ф. 0504805)", + ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка)); + КонецЦикла; КонецЕсли; - Для Каждого ДокументСсылка Из МассивОбъектов Цикл - УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( - КоллекцияПечатныхФорм, - "Извещение0504805", - "Извещение (ф. 0504805)", - ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка)); - КонецЦикла; + Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РеестрПлатежей") Тогда + Для Каждого ДокументСсылка Из МассивОбъектов Цикл + УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( + КоллекцияПечатныхФорм, + "РеестрПлатежей", + "Реестр платежей", + ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка)); + КонецЦикла; + КонецЕсли; КонецПроцедуры diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl index e34a9ef..8a9673c 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl @@ -1,5 +1,7 @@ // ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль объекта. -// Сторона детского сада: Дт 304.04.130 — Кт 205.31.66X. +// Сторона детского сада, методическая операция 1.3: Дт 303.05.831 — Кт 205.31.660 +// (п. 104 Инструкции № 162н) — зачисление суммы в доход бюджета на основании извещения +// от администратора кассовых поступлений. // Проводки формируются в процедуре ОбработкаПроведения прямым заполнением // набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ. // Документ вводится на основании документа передачи платежей ЦБ и принимает @@ -57,22 +59,15 @@ Движения.ЖурналПроводокЕПСБУ.Записывать = Истина; Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок"); + // Методическая операция 1.3: Дт 303.05.831 — Кт 205.31.660 (п. 104 Инструкции № 162н). + СчетДт = БухгалтерскийУчет.СчетПоКоду("303.05", Дата, Организация); СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация); - - // Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются реквизитами - // документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем. - СчетДт = СчетКорреспондент; - Если НЕ ЗначениеЗаполнено(СчетДт) Тогда - ОбщегоНазначения.СообщитьПользователю( - "Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.", - , "СчетКорреспондент", "Объект", Отказ); - Возврат; - КонецЕсли; + КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831"); + КЭККт = Справочники.КОСГУ.НайтиПоКоду("660"); ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт); - // КПС строк наследуется из строк документа передачи (см. ЗаполнитьСтрокиПоДокументуПередачи), - // КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ). + // КПС строк наследуется из строк документа передачи (см. ЗаполнитьСтрокиПоДокументуПередачи). Для Каждого СтрокаЗадолженности Из Задолженность Цикл Движение = Движения.ЖурналПроводокЕПСБУ.Добавить(); @@ -84,13 +79,16 @@ Движение.СчетКт = СчетКт; Движение.КПСДт = СтрокаЗадолженности.КПС; Движение.КПСКт = СтрокаЗадолженности.КПС; - Движение.КЭКДт = КЭККорреспондент; - Движение.КЭККт = КЭКПроводки(СчетКт, "Кт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор); + Движение.КЭКДт = КЭКДт; + Движение.КЭККт = КЭККт; Движение.Сумма = СтрокаЗадолженности.Сумма; Движение.ЖурналОпераций = ЖурналОпераций; Движение.Содержание = "Принятие поступивших платежей по родительской плате из ЦБ"; - Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = ЦБ; + // Аналитика по счёту 303.05 - вид платежа в бюджет ("Доходы от родительской платы"): + // обобщённая аналитика ожидаемых поступлений, задаётся пользователем в шапке документа. + Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ВидыНалоговИПлатежей] = ВидПлатежаВБюджет; + Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор; @@ -155,6 +153,12 @@ ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ); КонецЕсли; + Если НЕ ЗначениеЗаполнено(ВидПлатежаВБюджет) Тогда + ОбщегоНазначения.СообщитьПользователю( + "Не заполнен вид платежа в бюджет - аналитика по счёту 303.05", + , "ВидПлатежаВБюджет", "Объект", Отказ); + КонецЕсли; + Если Задолженность.Количество() = 0 Тогда ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ); Иначе @@ -218,7 +222,13 @@ | СтрокиПередачи.Ребенок КАК Ребенок, | СтрокиПередачи.ИДСтроки КАК ИДСтроки, | СтрокиПередачи.Сумма КАК Сумма, - | СтрокиПередачи.КПС КАК КПС + | СтрокиПередачи.КПС КАК КПС, + | СтрокиПередачи.ЛицевойСчет КАК ЛицевойСчет, + | СтрокиПередачи.НазначениеПлатежа КАК НазначениеПлатежа, + | СтрокиПередачи.РасчетныйСчет КАК РасчетныйСчет, + | СтрокиПередачи.Группа КАК Группа, + | СтрокиПередачи.ПериодОплаты КАК ПериодОплаты, + | СтрокиПередачи.ДатаПлатежа КАК ДатаПлатежа |ИЗ | Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи |ГДЕ @@ -238,34 +248,6 @@ КонецПроцедуры -// Возвращает КЭК проводки, определённый по настройкам счёта -// и типу контрагента (подстатья КОСГУ). -// -// Параметры: -// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки. -// ДтКт - Строка - сторона проводки: "Дт" или "Кт". -// Субконто1 - Произвольный - значение первого субконто проводки. -// Субконто2 - Произвольный - значение второго субконто проводки. -// -// Возвращаемое значение: -// СправочникСсылка.КОСГУ - КЭК проводки. -// -Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено) - - ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки(); - ПараметрыКЭК.Организация = Организация; - ПараметрыКЭК.ИФО = ИФО; - ПараметрыКЭК.КФО = КФО; - ПараметрыКЭК.Дата = Дата; - ПараметрыКЭК.Счет = Счет; - ПараметрыКЭК.ДтКт = ДтКт; - ПараметрыКЭК.Субконто1 = Субконто1; - ПараметрыКЭК.Субконто2 = Субконто2; - - Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК); - -КонецФункции - #КонецОбласти #КонецЕсли diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Templates/РеестрПлатежей/Template.mxlx b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Templates/РеестрПлатежей/Template.mxlx new file mode 100644 index 0000000..a03772f --- /dev/null +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Templates/РеестрПлатежей/Template.mxlx @@ -0,0 +1,574 @@ + + + + ru + ru + + ru + Русский + Русский + + + + 10 + + 0 + + 1 + + + + 1 + + 2 + + + + 2 + + 3 + + + + 3 + + 4 + + + + 4 + + 5 + + + + 5 + + 6 + + + + 6 + + 7 + + + + 7 + + 4 + + + + 8 + + 8 + + + + 9 + + 9 + + + + + c4c71b73-7783-4619-abbc-ece4486e4bdb + 10 + + 0 + + 10 + + + + 1 + + 11 + + + + 2 + + 12 + + + + 3 + + 4 + + + + 4 + + 5 + + + + 5 + + 13 + + + + 6 + + 7 + + + + 7 + + 14 + + + + 8 + + 8 + + + + 9 + + 9 + + + + + 0 + + + + 15 + ЗаголовокРеестра + + + + + + 1 + + + + 15 + РеквизитыДокумента + + + + + + 2 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 16 + + + ru + ФИО плательщика + + + + + + + 16 + + + ru + Сумма + + + + + + + 17 + + + ru + Лицевой счет ребенка + + + + + + + 16 + + + ru + ФИО ребенка + + + + + + + 16 + + + ru + Назначение платежа + + + + + + + 16 + + + ru + Организация + + + + + + + 16 + + + ru + Рассчетный счет + + + + + + + 16 + + + ru + Группа + + + + + + + 17 + + + ru + Период оплаты + + + + + + + 17 + + + ru + Дата приема платежа + + + + + + + + 3 + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + 18 + + + + + + 4 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 15 + Плательщик + + + + + 19 + Сумма + + + + + 15 + ЛицевойСчет + + + + + 15 + Ребенок + + + + + 15 + НазначениеПлатежа + + + + + 15 + Организация + + + + + 15 + РассчетныйСчет + + + + + 15 + Группа + + + + + 15 + Период + + + + + 15 + ДатаПлатежа + + + + + + 5 + + true + + + + 6 + + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + 20 + + + ru + ИТОГО: + + + + + + + 21 + ОбщаяСумма + + + + + true + 22 + 7 + 7 + + Заголовок + + Rows + 0 + 1 + -1 + -1 + + + + ОбластьПодвалТаблицы + + Rows + 6 + 6 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + ОбластьСтрокаТаблицы + + Rows + 4 + 4 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + ОбластьШапкаТаблицы + + Rows + 2 + 2 + -1 + -1 + c4c71b73-7783-4619-abbc-ece4486e4bdb + + + + Solid + + + + + + 198 + + + 81 + + + 111 + + + 186 + + + 190 + + + 152 + + + 137 + + + 106 + + + 103 + + + 213 + + + 74 + + + 99 + + + 171 + + + 167 + + + 0 + 0 + Center + Wrap + Parameter + + + 1 + 0 + Center + + + 1 + 0 + Center + Wrap + + + 2 + + + 0 + 0 + Center + Wrap + Parameter + + + ru + ЧДЦ=2 + + + + + 1 + + + 1 + 0 + Center + Parameter + + + ru + ЧДЦ=2 + + + + + 72 + + \ No newline at end of file diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo index 96f1c1f..9f721a5 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo @@ -207,6 +207,36 @@ Use Use + + ВидПлатежаВБюджет + + ru + Вид платежа в бюджет (аналитика 303.05) + + + CatalogRef.ВидыНалоговИПлатежей + + + + + Use + Use + + + ИзвещениеВходящее + + ru + Извещение входящее + + + DocumentRef.ИзвещениеВходящее + + + + + Use + Use + ФормаДокумента @@ -271,7 +301,7 @@ String - 25 + 50 @@ -311,6 +341,108 @@ Use Use + + ЛицевойСчет + + ru + Лицевой счет + + + String + + 25 + + + + + Use + Use + + + НазначениеПлатежа + + ru + Назначение платежа + + + String + + 200 + + + + + Use + Use + + + РасчетныйСчет + + ru + Расчетный счет + + + String + + 25 + + + + + Use + Use + + + Группа + + ru + Группа + + + String + + 50 + + + + + Use + Use + + + ПериодОплаты + + ru + Период оплаты + + + String + + 30 + + + + + Use + Use + + + ДатаПлатежа + + ru + Дата платежа + + + Date + + Date + + + + + Use + Use + ПФ_MXL_Извещение0504805_103н_ПС_РП @@ -319,4 +451,11 @@ Извещение ф. 0504805 (103н) — родительская плата + + РеестрПлатежей + + ru + Реестр платежей + +