diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo
new file mode 100644
index 0000000..4aa9238
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo
@@ -0,0 +1,190 @@
+
+
+
+
+
+
+
+
+
+
+ ПС_ВзаиморасчетыПоРодительскойПлате
+
+ ru
+ Взаиморасчеты по родительской плате
+
+ true
+ Managed
+ true
+
+ Сумма
+
+ ru
+ Сумма
+
+
+ Number
+
+ 15
+ 2
+
+
+
+
+ Use
+
+
+ ВидОперации
+
+ ru
+ Вид операции
+
+
+ EnumRef.ПС_ВидыОперацийПоВзаиморасчетам
+
+
+
+ Use
+
+
+ ИДСтроки
+
+ ru
+ ИД строки (квитанции)
+
+
+ String
+
+ 25
+
+
+
+
+ Use
+
+
+ ДокументПередачи
+
+ ru
+ Документ передачи
+
+
+ DocumentRef.ПС_ПередачаЗадолженностиВЦБ
+
+
+
+ Use
+
+
+ Организация
+
+ ru
+ Организация (ЦБ)
+
+
+ CatalogRef.Организации
+
+
+
+ Use
+ true
+
+
+ Учреждение
+
+ ru
+ Учреждение-отправитель
+
+
+ CatalogRef.Контрагенты
+
+
+
+ Use
+ true
+
+
+ Плательщик
+
+ ru
+ Плательщик (родитель)
+
+
+ CatalogRef.Контрагенты
+
+
+
+ Use
+ true
+
+
+ Ребенок
+
+ ru
+ Ребенок
+
+
+ CatalogRef.Дети
+
+
+
+ Use
+ true
+
+
+ Договор
+
+ ru
+ Договор
+
+
+ CatalogRef.Договоры
+
+
+
+ Use
+ true
+
+
+ ИФО
+
+ ru
+ ИФО
+
+
+ CatalogRef.ИсточникиФинансовогоОбеспечения
+
+
+
+ Use
+ true
+
+
+ КФО
+
+ ru
+ КФО
+
+
+ EnumRef.КВД
+
+
+
+ Use
+ true
+
+
+ КПС
+
+ ru
+ КПС
+
+
+ CatalogRef.КлассификационныеПризнакиСчетов
+
+
+
+ Use
+ true
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/ChartsOfAccounts/ЕПСБУ/ЕПСБУ.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/ChartsOfAccounts/ЕПСБУ/ЕПСБУ.mdo
new file mode 100644
index 0000000..8cdd8cc
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/ChartsOfAccounts/ЕПСБУ/ЕПСБУ.mdo
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+ ЕПСБУ
+ Adopted
+
+ Checked
+
+ true
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
index 8ad524a..1fca46d 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
@@ -103,4 +103,70 @@
КонецФункции
+// Поиск организации, соответствующей контрагенту, по ИНН.
+//
+// Операция, обратная КонтрагентПоОрганизации. В документах начисления и передачи
+// учреждение (сад) представлено ссылкой на справочник Организации, а в документах
+// принятия, в регистре взаиморасчётов и в отборах пульта управления - ссылкой на
+// справочник Контрагенты. Сопоставление выполняется по ИНН.
+//
+// Параметры:
+// Контрагент - CatalogRef.Контрагенты - контрагент, для которого ищем организацию.
+// ИмяПоляПодсказки - Строка - имя реквизита для сообщения пользователю.
+//
+// Возвращаемое значение:
+// CatalogRef.Организации - если найдена ровно одна организация с ИНН контрагента.
+// Пустая ссылка - в остальных случаях (нет ИНН / нет организации / найдено несколько).
+// Причина выводится пользователю.
+//
+Функция ОрганизацияПоКонтрагенту(Контрагент, ИмяПоляПодсказки = "") Экспорт
+
+ ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();
+ Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
+ Возврат ПустаяОрганизация;
+ КонецЕсли;
+
+ Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Организация",
+ "Поле """ + ИмяПоляПодсказки + """");
+
+ // Сопоставление выполняем запросом по ИНН: прямое чтение реквизита заимствованного
+ // справочника Контрагенты в расширении не разбирается анализатором.
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Организации.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.Организации КАК Организации
+ | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
+ | ПО Контрагенты.ИНН = Организации.ИНН
+ |ГДЕ
+ | Контрагенты.Ссылка = &Контрагент
+ | И НЕ Организации.ПометкаУдаления";
+ Запрос.УстановитьПараметр("Контрагент", Контрагент);
+
+ Представление = Строка(Контрагент);
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Не найдена организация с тем же ИНН, что у контрагента (" + Представление + ").|"
+ + Подсказка + " не определена - отбор по учреждению не применён.");
+ Возврат ПустаяОрганизация;
+ КонецЕсли;
+
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ ПервыйНайденный = Выборка.Ссылка;
+
+ Если Выборка.Следующий() Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Найдено несколько организаций с тем же ИНН, что у контрагента (" + Представление + ").|"
+ + Подсказка + " не определена - отбор по учреждению не применён.");
+ Возврат ПустаяОрганизация;
+ КонецЕсли;
+
+ Возврат ПервыйНайденный;
+
+КонецФункции
+
#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
new file mode 100644
index 0000000..7d720e1
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
@@ -0,0 +1,575 @@
+// ПС_РазборПлатежейПоРодительскойПлате: идентификация ребёнка и его контрагента по назначению платежа
+// в строках табличной части "Расшифровка платежа" документа КассовоеПоступление (БГУ 2.0).
+#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
+
+#Область ПрограммныйИнтерфейс
+
+// Заполняет контрагента, ребёнка, договор, счёт расчётов и КОСГУ назначения платежа
+// в строках расшифровки платежа документа с признаком "Родительская плата"
+// по тексту назначения платежа (реквизит "Примечание").
+// Уже заполненные значения не перезаписываются, нераспознанные строки остаются пустыми,
+// по каждой такой строке выводится диагностическое сообщение.
+//
+// Параметры:
+// ДокументОбъект - ДокументОбъект.КассовоеПоступление - записываемый документ.
+//
+// Возвращаемое значение:
+// Структура - итоги разбора:
+// * ВсегоСтрок - Число - количество строк расшифровки платежа;
+// * Заполнено - Число - количество строк с заполненным контрагентом;
+// * НеРаспознано - Число - количество строк, по которым контрагент не определён.
+//
+Функция ЗаполнитьКонтрагентовПоНазначениюПлатежа(ДокументОбъект) Экспорт
+
+ Результат = Новый Структура("ВсегоСтрок, Заполнено, НеРаспознано", 0, 0, 0);
+ Результат.ВсегоСтрок = ДокументОбъект.РасшифровкаПлатежа.Количество();
+
+ Если НЕ ДокументОбъект.РодительскаяПлата Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ // Первый проход: разбор назначения платежа, без обращения к базе.
+ РазобранныеСтроки = Новый Массив;
+ КодыПоиска = Новый Массив;
+
+ Для Каждого СтрокаПлатежа Из ДокументОбъект.РасшифровкаПлатежа Цикл
+
+ Если ЗначениеЗаполнено(СтрокаПлатежа.Ребенок) Тогда
+ Результат.Заполнено = Результат.Заполнено + 1;
+ Продолжить;
+ КонецЕсли;
+
+ ДанныеПлатежа = РазобратьНазначениеПлатежа(СтрокаПлатежа.Примечание);
+ ДанныеПлатежа.Вставить("СтрокаПлатежа", СтрокаПлатежа);
+ РазобранныеСтроки.Добавить(ДанныеПлатежа);
+
+ Для Каждого Код Из КодыПоискаРебенка(ДанныеПлатежа.ЛицевойСчет) Цикл
+ КодыПоиска.Добавить(Код);
+ КонецЦикла;
+
+ КонецЦикла;
+
+ Если РазобранныеСтроки.Количество() = 0 Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ // Один запрос на весь документ: дети по распознанным лицевым счетам.
+ ДетиПоСчетам = ДетиПоЛицевымСчетам(КодыПоиска);
+
+ // Второй проход: отбор строк, по которым ребёнок и его контрагент определены однозначно.
+ СтрокиКЗаполнению = Новый Массив;
+ Контрагенты = Новый Соответствие;
+
+ Для Каждого ДанныеПлатежа Из РазобранныеСтроки Цикл
+
+ СтрокаПлатежа = ДанныеПлатежа.СтрокаПлатежа;
+ Ребенок = РебенокПоЛицевомуСчету(ДетиПоСчетам, ДанныеПлатежа.ЛицевойСчет);
+
+ Если Ребенок = Неопределено
+ Или НЕ ЗначениеЗаполнено(Ребенок.Контрагент) Тогда
+ Результат.НеРаспознано = Результат.НеРаспознано + 1;
+ ОбщегоНазначения.СообщитьПользователю(
+ СтрШаблон("Кассовое поступление %1, строка %2: контрагент не определён - %3.",
+ Строка(ДокументОбъект.Номер), СтрокаПлатежа.НомерСтроки,
+ ПричинаНераспознанногоРебенка(ДанныеПлатежа.ЛицевойСчет, Ребенок)));
+ Продолжить;
+ КонецЕсли;
+
+ СтрокаКЗаполнению = Новый Структура("СтрокаПлатежа, Ребенок, Контрагент");
+ СтрокаКЗаполнению.СтрокаПлатежа = СтрокаПлатежа;
+ СтрокаКЗаполнению.Ребенок = Ребенок.Ссылка;
+ СтрокаКЗаполнению.Контрагент = Ребенок.Контрагент;
+ СтрокиКЗаполнению.Добавить(СтрокаКЗаполнению);
+
+ Контрагенты.Вставить(Ребенок.Контрагент, Истина);
+
+ КонецЦикла;
+
+ Если СтрокиКЗаполнению.Количество() = 0 Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ // Счёт расчётов и КОСГУ родительской платы: типовая загрузка реестров их не определяет,
+ // а для проводок по счёту 205.31 они обязательны.
+ СчетРасчетов = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
+ Если НЕ ЗначениеЗаполнено(СчетРасчетов) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ СтрШаблон("Кассовое поступление %1: в плане счетов ЕПСБУ не найден счёт 205.31 - счёт расчётов не заполнен.",
+ Строка(ДокументОбъект.Номер)));
+ КонецЕсли;
+
+ КОСГУНазначениеПлатежа = Справочники.КОСГУ.НайтиПоКоду("131");
+ Если НЕ ЗначениеЗаполнено(КОСГУНазначениеПлатежа) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ СтрШаблон("Кассовое поступление %1: в справочнике КОСГУ не найден код 131 - КОСГУ назначения платежа не заполнен.",
+ Строка(ДокументОбъект.Номер)));
+ КонецЕсли;
+
+ // Договоры определяются одним запросом сразу по всем контрагентам документа.
+ Договоры = ДоговорыПоКонтрагентам(Контрагенты, ДокументОбъект, СчетРасчетов);
+
+ Результат.Заполнено = Результат.Заполнено + ЗаполнитьСтрокиРасшифровки(
+ СтрокиКЗаполнению, Договоры, СчетРасчетов, КОСГУНазначениеПлатежа);
+
+ Возврат Результат;
+
+КонецФункции
+
+// Разбирает текст назначения платежа и определяет лицевой счёт ребёнка.
+// Обращения к базе здесь нет: поиск ребёнка выполняет вызывающий код одним запросом на весь документ.
+//
+// Параметры:
+// ТекстНазначения - Строка - назначение платежа (реквизит "Примечание" строки расшифровки платежа).
+//
+// Возвращаемое значение:
+// Структура - результат разбора:
+// * ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка; пустая строка, если не распознан;
+// * ФИО - Строка - ФИО ребёнка из назначения платежа; пустая строка, если не распознано.
+//
+Функция РазобратьНазначениеПлатежа(ТекстНазначения) Экспорт
+
+ Результат = Новый Структура;
+ Результат.Вставить("ЛицевойСчет", "");
+ Результат.Вставить("ФИО", "");
+
+ Если НЕ ЗначениеЗаполнено(ТекстНазначения) Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Результат.ЛицевойСчет = ОпределитьЛицевойСчетРебенка(ТекстНазначения);
+ Результат.ФИО = ОпределитьФИОИзНазначения(ТекстНазначения);
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Определяет договоры для контрагентов документа.
+//
+// Параметры:
+// Контрагенты - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты (дети) документа.
+// ДокументОбъект - ДокументОбъект.КассовоеПоступление - документ, по дате и организации которого ищутся остатки.
+// СчетРасчетов - ПланСчетовСсылка.ЕПСБУ - счёт расчётов родительской платы (205.31).
+//
+// Возвращаемое значение:
+// Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - договоры по контрагентам,
+// определённые однозначно.
+//
+Функция ДоговорыПоКонтрагентам(Контрагенты, ДокументОбъект, СчетРасчетов)
+
+ КонтрагентыМассив = Новый Массив;
+ Для Каждого Элемент Из Контрагенты Цикл
+ КонтрагентыМассив.Добавить(Элемент.Ключ);
+ КонецЦикла;
+
+ Результат = Новый Соответствие;
+ Неоднозначные = Новый Соответствие;
+ КоличествоДоговоров = Новый Соответствие;
+
+ // 1. Договоры из остатков по счёту 205.31 - приоритетный источник.
+ ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ДокументОбъект, СчетРасчетов, Результат, Неоднозначные);
+
+ // 2. Для остальных контрагентов - единственный договор, отобранный по реквизиту "Контрагент".
+ ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, Результат, Неоднозначные, КоличествоДоговоров);
+
+ // 3. Диагностика по контрагентам, для которых договор определить не удалось.
+ Для Каждого Элемент Из Контрагенты Цикл
+
+ Если Результат[Элемент.Ключ] <> Неопределено Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Если Неоднозначные[Элемент.Ключ] <> Неопределено Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ СтрШаблон("Кассовое поступление %1: по контрагенту %2 в остатках счёта 205.31 найдено несколько договоров, договор не заполнен.",
+ Строка(ДокументОбъект.Номер), Строка(Элемент.Ключ)));
+ Продолжить;
+ КонецЕсли;
+
+ Количество = КоличествоДоговоров[Элемент.Ключ];
+ Если Количество = Неопределено Тогда
+ Количество = 0;
+ КонецЕсли;
+
+ ОбщегоНазначения.СообщитьПользователю(
+ СтрШаблон("Кассовое поступление %1: по контрагенту %2 найдено договоров - %3, договор не заполнен.",
+ Строка(ДокументОбъект.Номер), Строка(Элемент.Ключ), Количество));
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Дополняет результат договорами, найденными в остатках по счёту 205.31.
+//
+// Параметры:
+// КонтрагентыМассив - Массив из СправочникСсылка.Контрагенты - контрагенты (дети), по которым ищутся остатки.
+// ДокументОбъект - ДокументОбъект.КассовоеПоступление - документ, по дате и организации которого ищутся остатки.
+// Счет20531 - ПланСчетовСсылка.ЕПСБУ - счёт расчётов родительской платы (205.31).
+// Результат - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - дополняется найденными договорами.
+// Неоднозначные - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты с несколькими договорами в остатках.
+//
+Процедура ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ДокументОбъект, Счет20531, Результат, Неоднозначные)
+
+ Если НЕ ЗначениеЗаполнено(Счет20531) Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Порядок субконто берём из настройки самого счёта: субконто1 - контрагенты, субконто2 - договоры.
+ ВидыСубконто = Новый Массив;
+ Для Каждого СтрокаСубконто Из Счет20531.ВидыСубконто Цикл
+ ВидыСубконто.Добавить(СтрокаСубконто.ВидСубконто);
+ КонецЦикла;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ | Остатки.Субконто1 КАК Контрагент,
+ | Остатки.Субконто2 КАК Договор
+ |ИЗ
+ | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
+ | &Дата,
+ | Счет В ИЕРАРХИИ (&Счет20531),
+ | &ВидыСубконто,
+ | Организация = &Организация И Субконто1 В (&Контрагенты)) КАК Остатки
+ |ГДЕ
+ | Остатки.СуммаОстаток <> 0";
+ Запрос.УстановитьПараметр("Дата", ДокументОбъект.Дата);
+ Запрос.УстановитьПараметр("Счет20531", Счет20531);
+ Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
+ Запрос.УстановитьПараметр("Контрагенты", КонтрагентыМассив);
+ Запрос.УстановитьПараметр("Организация", ДокументОбъект.Организация);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ Пока Выборка.Следующий() Цикл
+
+ Если НЕ ЗначениеЗаполнено(Выборка.Договор) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ НайденныйДоговор = Результат[Выборка.Контрагент];
+ Если НайденныйДоговор = Неопределено Тогда
+ Результат.Вставить(Выборка.Контрагент, Выборка.Договор);
+ ИначеЕсли НайденныйДоговор <> Выборка.Договор Тогда
+ Неоднозначные.Вставить(Выборка.Контрагент, Истина);
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Дополняет результат единственным договором, отобранным по реквизиту "Контрагент".
+//
+// Параметры:
+// КонтрагентыМассив - Массив из СправочникСсылка.Контрагенты - контрагенты (дети), по которым отбираются договоры.
+// Результат - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - дополняется найденными договорами.
+// Неоднозначные - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты с неоднозначным договором.
+// КоличествоДоговоров - Соответствие из СправочникСсылка.Контрагенты, Число - количество найденных договоров.
+//
+Процедура ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, Результат, Неоднозначные, КоличествоДоговоров)
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Договоры.Контрагент КАК Контрагент,
+ | Договоры.Ссылка КАК Договор
+ |ИЗ
+ | Справочник.Договоры КАК Договоры
+ |ГДЕ
+ | НЕ Договоры.ПометкаУдаления
+ | И Договоры.Контрагент В (&Контрагенты)
+ |УПОРЯДОЧИТЬ ПО
+ | Договоры.Контрагент";
+ Запрос.УстановитьПараметр("Контрагенты", КонтрагентыМассив);
+
+ Найденные = Новый Соответствие;
+ Выборка = Запрос.Выполнить().Выбрать();
+ Пока Выборка.Следующий() Цикл
+
+ ДоговорыКонтрагента = Найденные[Выборка.Контрагент];
+ Если ДоговорыКонтрагента = Неопределено Тогда
+ ДоговорыКонтрагента = Новый Массив;
+ Найденные.Вставить(Выборка.Контрагент, ДоговорыКонтрагента);
+ КонецЕсли;
+ ДоговорыКонтрагента.Добавить(Выборка.Договор);
+
+ КонецЦикла;
+
+ Для Каждого Элемент Из Найденные Цикл
+
+ КоличествоДоговоров.Вставить(Элемент.Ключ, Элемент.Значение.Количество());
+
+ Если Элемент.Значение.Количество() = 1
+ И Результат[Элемент.Ключ] = Неопределено
+ И Неоднозначные[Элемент.Ключ] = Неопределено Тогда
+ Результат.Вставить(Элемент.Ключ, Элемент.Значение[0]);
+ КонецЕсли;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Заполняет реквизиты строк расшифровки платежа по результатам разбора назначения.
+// КОСГУ "000", проставленный типовой загрузкой реестров, заменяется принудительно;
+// остальные заполненные значения не перезаписываются.
+//
+// Параметры:
+// СтрокиКЗаполнению - Массив из Структура - строки, по которым определён ребёнок и контрагент.
+// Договоры - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры -
+// договоры, определённые по контрагентам однозначно.
+// СчетРасчетов - ПланСчетовСсылка.ЕПСБУ - счёт расчётов родительской платы.
+// КОСГУНазначениеПлатежа - СправочникСсылка.КОСГУ - КОСГУ назначения платежа.
+//
+// Возвращаемое значение:
+// Число - количество заполненных строк расшифровки платежа.
+//
+Функция ЗаполнитьСтрокиРасшифровки(СтрокиКЗаполнению, Договоры, СчетРасчетов, КОСГУНазначениеПлатежа)
+
+ // Типовая загрузка реестров прописывает в КОСГУ назначения платежа код "000" -
+ // для родительской платы его нужно заменить принудительно.
+ КОСГУНеУказан = Справочники.КОСГУ.НайтиПоКоду("000");
+
+ Заполнено = 0;
+
+ Для Каждого СтрокаКЗаполнению Из СтрокиКЗаполнению Цикл
+
+ СтрокаРасшифровки = СтрокаКЗаполнению.СтрокаПлатежа;
+
+ СтрокаРасшифровки.Ребенок = СтрокаКЗаполнению.Ребенок;
+ СтрокаРасшифровки.Контрагент = СтрокаКЗаполнению.Контрагент;
+
+ Договор = Договоры[СтрокаКЗаполнению.Контрагент];
+ Если Договор = Неопределено Тогда
+ Договор = Справочники.Договоры.ПустаяСсылка();
+ КонецЕсли;
+ СтрокаРасшифровки.Договор = Договор;
+
+ Если НЕ ЗначениеЗаполнено(СтрокаРасшифровки.СчетРасчетов) И ЗначениеЗаполнено(СчетРасчетов) Тогда
+ СтрокаРасшифровки.СчетРасчетов = СчетРасчетов;
+ КонецЕсли;
+
+ КОСГУСтроки = СтрокаРасшифровки.КОСГУНазначениеПлатежа;
+ КОСГУПустой = НЕ ЗначениеЗаполнено(КОСГУСтроки)
+ Или (ЗначениеЗаполнено(КОСГУНеУказан) И КОСГУСтроки = КОСГУНеУказан);
+ Если ЗначениеЗаполнено(КОСГУНазначениеПлатежа) И КОСГУПустой Тогда
+ СтрокаРасшифровки.КОСГУНазначениеПлатежа = КОСГУНазначениеПлатежа;
+ КонецЕсли;
+
+ Заполнено = Заполнено + 1;
+
+ КонецЦикла;
+
+ Возврат Заполнено;
+
+КонецФункции
+
+// Определяет лицевой счёт ребёнка по тексту назначения платежа.
+// Лицевой счёт идёт после последнего вхождения "л/с" и может начинаться с буквы "Х" или "Г".
+//
+// Параметры:
+// ТекстНазначения - Строка - назначение платежа.
+//
+// Возвращаемое значение:
+// Строка - лицевой счёт ребёнка (возможно, с буквой "Х"/"Г" на первом месте); пустая строка, если не найден.
+//
+Функция ОпределитьЛицевойСчетРебенка(ТекстНазначения)
+
+ // Латинские "X"/"x" приводим к кириллической "Х": в реестрах встречаются оба варианта.
+ Текст = СтрЗаменить(ВРЕГ(ТекстНазначения), "X", "Х");
+
+ Позиция = СтрНайти(Текст, "Л/С", НаправлениеПоиска.СКонца);
+ ДлинаПрефикса = 3;
+ Если Позиция = 0 Тогда
+ Позиция = СтрНайти(Текст, "ЛС", НаправлениеПоиска.СКонца);
+ ДлинаПрефикса = 2;
+ КонецЕсли;
+ Если Позиция = 0 Тогда
+ Возврат "";
+ КонецЕсли;
+
+ Фрагмент = СокрЛП(Сред(Текст, Позиция + ДлинаПрефикса, 20));
+
+ Буква = "";
+ Если Лев(Фрагмент, 1) = "Х" Или Лев(Фрагмент, 1) = "Г" Тогда
+ Буква = Лев(Фрагмент, 1);
+ Фрагмент = Сред(Фрагмент, 2);
+ КонецЕсли;
+
+ Цифры = "";
+ Для Индекс = 1 По СтрДлина(Фрагмент) Цикл
+ Символ = Сред(Фрагмент, Индекс, 1);
+ Если НЕ СимволЯвляетсяЦифрой(Символ) Тогда
+ Прервать;
+ КонецЕсли;
+ Цифры = Цифры + Символ;
+ КонецЦикла;
+
+ Возврат Буква + Цифры;
+
+КонецФункции
+
+// Возвращает ФИО ребёнка из текста назначения платежа (4-я часть, разделитель - запятая).
+// Для поиска используется пара "Фамилия Имя", как в реестрах.
+//
+// Параметры:
+// ТекстНазначения - Строка - назначение платежа.
+//
+// Возвращаемое значение:
+// Строка - ФИО ребёнка; пустая строка, если часть не найдена.
+//
+Функция ОпределитьФИОИзНазначения(ТекстНазначения)
+
+ Части = СтрРазделить(ТекстНазначения, ",");
+ Если Части.Количество() < 4 Тогда
+ Возврат "";
+ КонецЕсли;
+
+ ФИО = СокрЛП(Части[3]);
+
+ Слова = СтрРазделить(ФИО, " ", Ложь);
+ Если Слова.Количество() >= 2 Тогда
+ Возврат Слова[0] + " " + Слова[1];
+ КонецЕсли;
+
+ Возврат ФИО;
+
+КонецФункции
+
+// Возвращает варианты лицевого счёта для поиска в справочнике детей.
+// В справочнике код может храниться как с буквой "Х"/"Г", так и без неё.
+//
+// Параметры:
+// ЛицевойСчет - Строка - лицевой счёт, распознанный в назначении платежа.
+//
+// Возвращаемое значение:
+// Массив из Строка - варианты кода; пустой массив, если лицевой счёт не распознан.
+//
+Функция КодыПоискаРебенка(ЛицевойСчет)
+
+ Коды = Новый Массив;
+ Если НЕ ЗначениеЗаполнено(ЛицевойСчет) Тогда
+ Возврат Коды;
+ КонецЕсли;
+
+ // Код справочника хранится дополненным пробелами до длины 15, поэтому нормализуем обе стороны сравнения.
+ ЛицевойСчет = СокрЛП(ЛицевойСчет);
+ Коды.Добавить(ЛицевойСчет);
+ Если Лев(ЛицевойСчет, 1) = "Х" Или Лев(ЛицевойСчет, 1) = "Г" Тогда
+ Коды.Добавить(СокрЛП(Сред(ЛицевойСчет, 2)));
+ КонецЕсли;
+
+ Возврат Коды;
+
+КонецФункции
+
+// Загружает детей по лицевым счетам одним запросом.
+// Лицевой счёт уникален для ЦБ и всех подшефных учреждений, поэтому отбор по организации не применяется.
+//
+// Параметры:
+// Коды - Массив из Строка - варианты лицевых счетов, распознанные в строках документа.
+//
+// Возвращаемое значение:
+// Соответствие из Строка, Структура - найденные дети по коду: Ссылка, Наименование, Контрагент.
+//
+Функция ДетиПоЛицевымСчетам(Коды)
+
+ Результат = Новый Соответствие;
+ Если Коды.Количество() = 0 Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Дети.Код КАК Код,
+ | Дети.Ссылка КАК Ссылка,
+ | Дети.Наименование КАК Наименование,
+ | Дети.Контрагент КАК Контрагент
+ |ИЗ
+ | Справочник.Дети КАК Дети
+ |ГДЕ
+ | НЕ Дети.ПометкаУдаления
+ | И Дети.Код В (&Коды)";
+ Запрос.УстановитьПараметр("Коды", Коды);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ Пока Выборка.Следующий() Цикл
+ Результат.Вставить(СокрЛП(Выборка.Код), Новый Структура("Ссылка, Наименование, Контрагент",
+ Выборка.Ссылка, Выборка.Наименование, Выборка.Контрагент));
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Находит ребёнка в заранее загруженном соответствии по распознанному лицевому счёту.
+//
+// Параметры:
+// ДетиПоСчетам - Соответствие из Строка, Структура - дети, загруженные по лицевым счетам документа.
+// ЛицевойСчет - Строка - лицевой счёт, распознанный в назначении платежа.
+//
+// Возвращаемое значение:
+// Структура, Неопределено - Ссылка, Наименование, Контрагент найденного ребёнка;
+// Неопределено, если ребёнок не найден.
+//
+Функция РебенокПоЛицевомуСчету(ДетиПоСчетам, ЛицевойСчет)
+
+ Для Каждого Код Из КодыПоискаРебенка(ЛицевойСчет) Цикл
+ Ребенок = ДетиПоСчетам[Код];
+ Если Ребенок <> Неопределено Тогда
+ Возврат Ребенок;
+ КонецЕсли;
+ КонецЦикла;
+
+ Возврат Неопределено;
+
+КонецФункции
+
+// Формирует причину, по которой контрагент в строке не определён.
+//
+// Параметры:
+// ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка.
+// Ребенок - Структура, Неопределено - найденный ребёнок (если найден, но без контрагента).
+//
+// Возвращаемое значение:
+// Строка - текст причины.
+//
+Функция ПричинаНераспознанногоРебенка(ЛицевойСчет, Ребенок)
+
+ Если Ребенок <> Неопределено Тогда
+ Возврат СтрШаблон("у ребёнка %1 не заполнен контрагент", Ребенок.Наименование);
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(ЛицевойСчет) Тогда
+ Возврат "не удалось определить лицевой счёт ребёнка";
+ КонецЕсли;
+
+ Возврат СтрШаблон("не найден ребёнок с лицевым счётом %1", ЛицевойСчет);
+
+КонецФункции
+
+// Определяет, является ли символ цифрой.
+//
+// Параметры:
+// Символ - Строка - проверяемый символ.
+//
+// Возвращаемое значение:
+// Булево - Истина, если символ является цифрой.
+//
+Функция СимволЯвляетсяЦифрой(Символ)
+
+ Если НЕ ЗначениеЗаполнено(Символ) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Возврат СтрНайти("0123456789", Символ) > 0;
+
+КонецФункции
+
+#КонецОбласти
+
+#КонецЕсли
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/ПС_РазборПлатежейПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/ПС_РазборПлатежейПоРодительскойПлате.mdo
new file mode 100644
index 0000000..325dbec
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/ПС_РазборПлатежейПоРодительскойПлате.mdo
@@ -0,0 +1,7 @@
+
+
+ ПС_РазборПлатежейПоРодительскойПлате
+ true
+ true
+ true
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
index 6397413..46b786d 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
@@ -57,55 +57,37 @@
КонецФункции
-// Возвращает КЭК, определяющий экономический смысл операции по счёту 304.04
-// ("Внутриведомственные расчеты"): для доходной операции это КЭК счёта 401.10
-// проводок документа-основания. Если проводок по 401.10 в основании нет
-// (например, основание - документ передачи задолженности), берётся КЭК счёта 304.04.
-// Автоматически такой КЭК не определяется - соответствующих сопоставлений в справочниках нет.
-//
-// Параметры:
-// ДокументИсточник - ДокументСсылка.НачислениеРодительскойПлаты, ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ - проведённый документ, проводки которого используются как источник данных.
+// Возвращает счёт, корреспондирующий со счётом расчётов по доходам (205.31),
+// по умолчанию: 304.04 (внутриведомственные расчёты).
//
// Возвращаемое значение:
-// СправочникСсылка.КОСГУ - КЭК счёта 401.10 (или 304.04) проводок документа-источника; пустая ссылка, если проводок нет.
+// ПланСчетовСсылка.ЕПСБУ - счёт по умолчанию; пустая ссылка, если счёт не найден в плане счетов.
//
-Функция КЭКПоЭкономическомуСмыслу(ДокументИсточник) Экспорт
+Функция СчетКорреспондентПоУмолчанию() Экспорт
- Если НЕ ЗначениеЗаполнено(ДокументИсточник) Тогда
+ Счет = ПланыСчетов.ЕПСБУ.НайтиПоКоду("304.04");
+ Если Счет = Неопределено Тогда
+ Возврат ПланыСчетов.ЕПСБУ.ПустаяСсылка();
+ КонецЕсли;
+
+ Возврат Счет;
+
+КонецФункции
+
+// Возвращает КЭК корреспондирующего счёта по умолчанию: 131
+// (доходы от оказания платных услуг). Значение редактируется пользователем в документе.
+//
+// Возвращаемое значение:
+// СправочникСсылка.КОСГУ - КЭК по умолчанию; пустая ссылка, если КЭК не найден.
+//
+Функция КЭККорреспондентПоУмолчанию() Экспорт
+
+ КЭК = Справочники.КОСГУ.НайтиПоКоду("131");
+ Если КЭК = Неопределено Тогда
Возврат Справочники.КОСГУ.ПустаяСсылка();
КонецЕсли;
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ ПЕРВЫЕ 1
- | ВЫБОР
- | КОГДА Проводки.СчетДт.Код = ""401.10"" ИЛИ Проводки.СчетКт.Код = ""401.10""
- | ТОГДА 0
- | ИНАЧЕ 1
- | КОНЕЦ КАК Приоритет,
- | ВЫБОР
- | КОГДА Проводки.СчетДт.Код В (""401.10"", ""304.04"")
- | ТОГДА Проводки.КЭКДт
- | ИНАЧЕ Проводки.КЭККт
- | КОНЕЦ КАК КЭК
- |ИЗ
- | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто КАК Проводки
- |ГДЕ
- | Проводки.Регистратор = &ДокументИсточник
- | И (Проводки.СчетДт.Код В (""401.10"", ""304.04"")
- | ИЛИ Проводки.СчетКт.Код В (""401.10"", ""304.04""))
- |
- |УПОРЯДОЧИТЬ ПО
- | Приоритет,
- | Проводки.НомерСтроки";
- Запрос.УстановитьПараметр("ДокументИсточник", ДокументИсточник);
-
- Выборка = Запрос.Выполнить().Выбрать();
- Если НЕ Выборка.Следующий() Тогда
- Возврат Справочники.КОСГУ.ПустаяСсылка();
- КонецЕсли;
-
- Возврат Выборка.КЭК;
+ Возврат КЭК;
КонецФункции
@@ -120,15 +102,23 @@
// ДокументСсылка - ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ, ДокументСсылка.ПС_ПринятиеЗадолженностиОтУчреждения - печатаемый документ.
//
// Возвращаемое значение:
-// ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не проведён или макет не найден.
+// ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан, не проведён, нет проводок или не найден макет.
//
Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
+ Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Печатная форма извещения не сформирована: документ не записан в базу. Запишите документ и повторите печать.");
+ Возврат ТабличныйДокумент;
+ КонецЕсли;
+
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Если ДокументОбъект = Неопределено Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Печатная форма извещения не сформирована: не удалось прочитать документ.");
Возврат ТабличныйДокумент;
КонецЕсли;
@@ -152,7 +142,24 @@
+ ". Основание: " + Строка(ДокументОбъект.ДокументПередачи) + ".";
КонецЕсли;
- Если Макет = Неопределено ИЛИ НЕ ДокументОбъект.Проведен Тогда
+ Если Макет = Неопределено Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Печатная форма извещения не сформирована: в документе не найден макет печатной формы.");
+ Возврат ТабличныйДокумент;
+ КонецЕсли;
+
+ Если НЕ ДокументОбъект.Проведен Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Печатная форма извещения формируется по проводкам документа, поэтому печатается"
+ + " только проведённый документ. Проведите документ и повторите печать.");
+ Возврат ТабличныйДокумент;
+ КонецЕсли;
+
+ Проводки = ПроводкиИзвещения(ДокументСсылка);
+ Если Проводки.Количество() = 0 Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "По документу не найдено проводок в регистре бухгалтерии - печатная форма"
+ + " извещения не сформирована.");
Возврат ТабличныйДокумент;
КонецЕсли;
@@ -170,7 +177,6 @@
ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("Шапка"));
- Проводки = ПроводкиИзвещения(ДокументСсылка);
ИтогоСумма = 0;
Для Каждого Проводка Из Проводки Цикл
@@ -197,7 +203,7 @@
ЗаполнитьПодписиСтороны(ОбластьПодвал.Параметры, СторонаПечати, ДокументОбъект);
ТабличныйДокумент.Вывести(ОбластьПодвал);
- УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, Новый Соответствие, ДокументСсылка);
+ УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, Новый СписокЗначений, ДокументСсылка);
Возврат ТабличныйДокумент;
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
index a2b6c66..78973e8 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
@@ -48,6 +48,7 @@
Role.БазовыеПраваБГУ
CommonModule.ПС_РаботаСКонтрагентами
CommonModule.ПС_УчетРодительскойПлаты
+ CommonModule.ПС_РазборПлатежейПоРодительскойПлате
CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента
Catalog.Контрагенты
Catalog.Договоры
@@ -64,11 +65,16 @@
Document.НачислениеРодительскойПлаты
Document.ПС_ПередачаЗадолженностиВЦБ
Document.ПС_ПринятиеЗадолженностиОтУчреждения
+ Document.КассовоеПоступление
Enum.КВД
+ Enum.ПС_ВидыОперацийПоВзаиморасчетам
+ Report.ПС_ОборотнаяВедомостьПоРодительскойПлате
DataProcessor.ПС_УправлениеРасчетамиПоРодительскойПлате
InformationRegister.ПлательщикиПоУслугамДДУ
InformationRegister.ФИОФизическихЛиц
InformationRegister.ДокументыФизическихЛиц
AccumulationRegister.ТабельУчетаПосещаемостиДетей
+ AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате
+ ChartOfAccounts.ЕПСБУ
AccountingRegister.ЖурналПроводокЕПСБУ
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
index 25bb2b4..bbfeaf5 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
@@ -1,5 +1,9 @@
+
+ ru
+ Управление расчетами по родительской плате
+
ГруппаФильтры
9
@@ -53,7 +57,7 @@
14
ru
- Организация
+ Организация (ЦБ)
true
true
@@ -139,11 +143,11 @@
- ПолеЦБ
- 20
+ ПолеУчреждение
+ 305
ru
- ЦБ
+ Учреждение (сад)
true
true
@@ -151,11 +155,11 @@
true
- Объект.ЦБ
+ Объект.Учреждение
- ПолеЦБРасширеннаяПодсказка
- 22
+ ПолеУчреждениеРасширеннаяПодсказка
+ 307
Label
true
true
@@ -164,8 +168,8 @@
- ПолеЦБКонтекстноеМеню
- 21
+ ПолеУчреждениеКонтекстноеМеню
+ 306
true
InputField
@@ -214,6 +218,33 @@
UserCmds
Auto
+
+ ОборотнаяВедомость
+ 308
+ true
+ true
+
+ true
+
+
+ ОборотнаяВедомостьРасширеннаяПодсказка
+ 309
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.ОборотнаяВедомость
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
true
true
@@ -657,6 +688,43 @@
Normal
+
+ ДокументыПринятияПередачаСальдо
+ 313
+
+ ru
+ Начальное сальдо
+
+ true
+ true
+
+ true
+
+
+ ДокументыПринятия.ПередачаСальдо
+
+
+ ТаблицаДокументыПринятияДокументыПринятияПередачаСальдоРасширеннаяПодсказка
+ 315
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаДокументыПринятияДокументыПринятияПередачаСальдоКонтекстноеМеню
+ 314
+ true
+
+ CheckBoxField
+ Auto
+ true
+ Left
+ true
+
+
ТаблицаДокументыПринятияКоманднаяПанель
105
@@ -1182,6 +1250,43 @@
true
+
+ ДокументыПередачиПередачаСальдо
+ 310
+
+ ru
+ Начальное сальдо
+
+ true
+ true
+
+ true
+
+
+ ДокументыПередачи.ПередачаСальдо
+
+
+ ТаблицаДокументыПередачиДокументыПередачиПередачаСальдоРасширеннаяПодсказка
+ 312
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаДокументыПередачиДокументыПередачиПередачаСальдоКонтекстноеМеню
+ 311
+ true
+
+ CheckBoxField
+ Auto
+ true
+ Left
+ true
+
+
ТаблицаДокументыПередачиКоманднаяПанель
62
@@ -2414,6 +2519,47 @@
Normal
+
+ ТаблицаОстатковВыводТаблицаОстатковВывод6
+ 58
+ true
+ true
+
+ true
+
+
+ ТаблицаОстатков.Счет
+
+
+ ТаблицаОстатковВыводТаблицаОстатковВывод6РасширеннаяПодсказка
+ 60
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаОстатковВыводТаблицаОстатковВывод6КонтекстноеМеню
+ 59
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
ТаблицаОстатковВыводТаблицаОстатковВывод2
46
@@ -2578,47 +2724,6 @@
Normal
-
- ТаблицаОстатковВыводТаблицаОстатковВывод6
- 58
- true
- true
-
- true
-
-
- ТаблицаОстатков.Счет
-
-
- ТаблицаОстатковВыводТаблицаОстатковВывод6РасширеннаяПодсказка
- 60
- Label
- true
- true
-
- Left
-
-
-
- ТаблицаОстатковВыводТаблицаОстатковВывод6КонтекстноеМеню
- 59
- true
-
- InputField
- Auto
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- Normal
-
-
ТаблицаОстатковВыводКоманднаяПанель
28
@@ -2763,6 +2868,518 @@
auto
+
+ СтраницаКассовыеПоступления
+ 316
+
+ ТаблицаКассовыеПоступления
+ 318
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления
+
+ None
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления
+ 331
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.Ссылка
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступленияРасширеннаяПодсказка
+ 333
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступленияКонтекстноеМеню
+ 332
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления1
+ 334
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.Дата
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления1РасширеннаяПодсказка
+ 336
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления1КонтекстноеМеню
+ 335
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления2
+ 337
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.Номер
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления2РасширеннаяПодсказка
+ 339
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления2КонтекстноеМеню
+ 338
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления3
+ 340
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.Организация
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления3РасширеннаяПодсказка
+ 342
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления3КонтекстноеМеню
+ 341
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления4
+ 343
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.СуммаДокумента
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления4РасширеннаяПодсказка
+ 345
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления4КонтекстноеМеню
+ 344
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления5
+ 346
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.Проведен
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления5РасширеннаяПодсказка
+ 348
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления5КонтекстноеМеню
+ 347
+ true
+
+ CheckBoxField
+ Auto
+ true
+ Left
+ true
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления6
+ 349
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.ПометкаУдаления
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления6РасширеннаяПодсказка
+ 351
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления6КонтекстноеМеню
+ 350
+ true
+
+ CheckBoxField
+ Auto
+ true
+ Left
+ true
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления7
+ 352
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.СтрокВсего
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления7РасширеннаяПодсказка
+ 354
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления7КонтекстноеМеню
+ 353
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления8
+ 355
+ true
+ true
+
+ true
+
+
+ КассовыеПоступления.СтрокНеРаспознано
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления8РасширеннаяПодсказка
+ 357
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияТаблицаКассовыеПоступления8КонтекстноеМеню
+ 356
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ ТаблицаКассовыеПоступленияКоманднаяПанель
+ 319
+ Left
+ true
+
+
+ ТаблицаКассовыеПоступленияСтрокаПоиска
+ 322
+
+ ТаблицаКассовыеПоступленияСтрокаПоискаРасширеннаяПодсказка
+ 324
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияСтрокаПоискаКонтекстноеМеню
+ 323
+ true
+
+ ТаблицаКассовыеПоступления
+
+ true
+
+
+
+ ТаблицаКассовыеПоступленияСостояниеПросмотра
+ 328
+
+ ТаблицаКассовыеПоступленияСостояниеПросмотраРасширеннаяПодсказка
+ 330
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияСостояниеПросмотраКонтекстноеМеню
+ 329
+ true
+
+ ViewStatusAddition
+ ТаблицаКассовыеПоступления
+
+ true
+
+
+
+ ТаблицаКассовыеПоступленияУправлениеПоиском
+ 325
+
+ ТаблицаКассовыеПоступленияУправлениеПоискомРасширеннаяПодсказка
+ 327
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияУправлениеПоискомКонтекстноеМеню
+ 326
+ true
+
+ SearchControlAddition
+ ТаблицаКассовыеПоступления
+
+ true
+
+
+
+ ТаблицаКассовыеПоступленияРасширеннаяПодсказка
+ 321
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаКассовыеПоступленияКонтекстноеМеню
+ 320
+ true
+
+ true
+ true
+ true
+ true
+ true
+ MultiRow
+ Auto
+
+ 1
+ 1
+ AutoUse
+ AutoUse
+ true
+ true
+ true
+ true
+ Auto
+ Auto
+ true
+ true
+ true
+ true
+ AsFileRef
+ true
+
+ true
+
+ true
+ true
+
+ true
+
+
+ ru
+ Кассовые поступления
+
+
+ СтраницаКассовыеПоступленияРасширеннаяПодсказка
+ 317
+ Label
+ true
+ true
+
+ Left
+
+
+ Page
+
+ Auto
+ auto
+
+
true
true
@@ -3165,6 +3782,23 @@
true
+
+ ПередачаСальдо
+
+ ru
+ Начальное сальдо
+
+ 53
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
ДокументыПринятия
@@ -3365,6 +3999,23 @@
true
+
+ ПередачаСальдо
+
+ ru
+ Начальное сальдо
+
+ 54
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
Начисления
@@ -3711,6 +4362,190 @@
+
+ КассовыеПоступления
+
+ ru
+ КассовыеПоступления
+
+ 55
+
+ ValueTable
+
+
+ true
+
+
+ true
+
+
+ Ссылка
+
+ ru
+ Ссылка
+
+ 56
+
+ DocumentRef.КассовоеПоступление
+
+
+ true
+
+
+ true
+
+
+
+ Дата
+
+ ru
+ Дата
+
+ 57
+
+ Date
+
+
+
+ true
+
+
+ true
+
+
+
+ Номер
+
+ ru
+ Номер
+
+ 58
+
+ String
+
+ 50
+
+
+
+ true
+
+
+ true
+
+
+
+ Организация
+
+ ru
+ Организация
+
+ 59
+
+ CatalogRef.Организации
+
+
+ true
+
+
+ true
+
+
+
+ СуммаДокумента
+
+ ru
+ СуммаДокумента
+
+ 60
+
+ Number
+
+ 15
+ 2
+
+
+
+ true
+
+
+ true
+
+
+
+ Проведен
+
+ ru
+ Проведен
+
+ 61
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ ПометкаУдаления
+
+ ru
+ ПометкаУдаления
+
+ 62
+
+ Boolean
+
+
+ true
+
+
+ true
+
+
+
+ СтрокВсего
+
+ ru
+ Строк всего
+
+ 63
+
+ Number
+
+ 10
+
+
+
+ true
+
+
+ true
+
+
+
+ СтрокНеРаспознано
+
+ ru
+ Строк не распознано
+
+ 64
+
+ Number
+
+ 10
+
+
+
+ true
+
+
+ true
+
+
+
Обновить
@@ -3727,6 +4562,22 @@
+
+ ОборотнаяВедомость
+
+ ru
+ Оборотная ведомость
+
+ 3
+
+
+
+ ОборотнаяВедомость
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
index 68806c3..2819528 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
@@ -6,8 +6,14 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
- Если НЕ ЗначениеЗаполнено(Объект.Период) Тогда
- Объект.Период = НачалоМесяца(ТекущаяДатаСеанса());
+ Если НЕ ЗначениеЗаполнено(Объект.Период.ДатаНачала)
+ ИЛИ НЕ ЗначениеЗаполнено(Объект.Период.ДатаОкончания) Тогда
+ Объект.Период.Вариант = ВариантСтандартногоПериода.ЭтотМесяц;
+ КонецЕсли;
+
+ // Пульт ведётся со стороны ЦБ, поэтому по умолчанию подставляем организацию ЦБ.
+ Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
+ Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли;
ОбновитьТаблицыНаСервере();
@@ -27,6 +33,41 @@
КонецПроцедуры
+// Открывает оборотную ведомость по расчетам по родительской плате.
+//
+// В отчёт передаются текущие отборы пульта (организация, учреждение, ИФО) и границы периода.
+// Значения попадают в отчёт через штатный параметр формы отчёта "Отбор": для полей набора
+// данных это отбор, для параметров компоновки (НачалоПериода, КонецПериода) - значения.
+//
+&НаКлиенте
+Процедура ОборотнаяВедомость(Команда)
+
+ Если НЕ ПериодЗаполненНаСервере() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Отбор = Новый Структура;
+
+ Если ЗначениеЗаполнено(Объект.Организация) Тогда
+ Отбор.Вставить("Организация", Объект.Организация);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
+ Отбор.Вставить("Учреждение", Объект.Учреждение);
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(Объект.ИФО) Тогда
+ Отбор.Вставить("ИФО", Объект.ИФО);
+ КонецЕсли;
+
+ Отбор.Вставить("НачалоПериода", Объект.Период.ДатаНачала);
+ Отбор.Вставить("КонецПериода", Объект.Период.ДатаОкончания);
+
+ ПараметрыФормы = Новый Структура("Отбор", Отбор);
+ ОткрытьФорму("Отчет.ПС_ОборотнаяВедомостьПоРодительскойПлате.Форма", ПараметрыФормы);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -37,18 +78,65 @@
&НаСервере
Процедура ОбновитьТаблицыНаСервере()
- ЗаполнитьНачисления();
- ЗаполнитьДокументыПередачи();
+ Если НЕ ПериодЗаполненНаСервере() Тогда
+ ОчиститьТаблицы();
+ Возврат;
+ КонецЕсли;
+
+ // Отборы формы заданы в терминах ЦБ: Организация - это ЦБ (справочник Организации),
+ // Учреждение - сад (справочник Контрагенты). Документы начисления и передачи хранят
+ // сад как Организацию, а ЦБ в документе передачи - как Контрагента. Приводим значения
+ // отбора к типам, которые есть в документах, сопоставлением по ИНН.
+ ЦБКонтрагент = Неопределено;
+ Если ЗначениеЗаполнено(Объект.Организация) Тогда
+ ЦБКонтрагент = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Объект.Организация, "Организация (ЦБ)");
+ Если НЕ ЗначениеЗаполнено(ЦБКонтрагент) Тогда
+ ОчиститьТаблицы();
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ СадОрганизация = Неопределено;
+ Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
+ СадОрганизация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Объект.Учреждение, "Учреждение (сад)");
+ Если НЕ ЗначениеЗаполнено(СадОрганизация) Тогда
+ ОчиститьТаблицы();
+ Возврат;
+ КонецЕсли;
+ КонецЕсли;
+
+ ЗаполнитьНачисления(СадОрганизация);
+ ЗаполнитьДокументыПередачи(ЦБКонтрагент, СадОрганизация);
ЗаполнитьДокументыПринятия();
- ЗаполнитьСверку();
+ ЗаполнитьСверку(ЦБКонтрагент, СадОрганизация);
ЗаполнитьТаблицуОстатков();
+ ЗаполнитьКассовыеПоступления();
+
+КонецПроцедуры
+
+// Очищает таблицы формы. Вызывается, когда значения отборов не удалось сопоставить
+// с данными документов; причина уже выведена пользователю.
+//
+&НаСервере
+Процедура ОчиститьТаблицы()
+
+ Начисления.Очистить();
+ ДокументыПередачи.Очистить();
+ ДокументыПринятия.Очистить();
+ Сверка.Очистить();
+ ТаблицаОстатков.Очистить();
+ КассовыеПоступления.Очистить();
КонецПроцедуры
// Заполняет таблицу формы Начисления по установленным фильтрам.
//
+// Параметры:
+// СадОрганизация - CatalogRef.Организации, Неопределено - учреждение (сад) в виде
+// организации; Неопределено - отбор по учреждению не задан.
+//
&НаСервере
-Процедура ЗаполнитьНачисления()
+Процедура ЗаполнитьНачисления(СадОрганизация)
Начисления.Очистить();
@@ -60,24 +148,25 @@
| Документы.Номер КАК Номер,
| Документы.Организация КАК Организация,
| Документы.ИФО КАК ИФО,
- | Документы.Период КАК Период,
+ | Документы.НачалоПериода КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.НачислениеРодительскойПлаты КАК Документы
|ГДЕ
- | (&Период = ДАТАВРЕМЯ(1, 1, 1)
- | ИЛИ Документы.Период >= &Период)
- | И (&Организация = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.Организация = &Организация)
+ | Документы.НачалоПериода >= &НачалоПериода
+ | И Документы.НачалоПериода <= &КонецПериода
+ | И (&Сад = НЕОПРЕДЕЛЕНО
+ | ИЛИ Документы.Организация = &Сад)
| И (&ИФО = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.ИФО = &ИФО)
+ | ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ";
- Запрос.УстановитьПараметр("Период", Объект.Период);
- Запрос.УстановитьПараметр("Организация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+ Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
+ Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
+ Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
@@ -89,8 +178,14 @@
// Заполняет таблицу формы ДокументыПередачи по установленным фильтрам.
//
+// Параметры:
+// ЦБКонтрагент - CatalogRef.Контрагенты, Неопределено - ЦБ в виде контрагента
+// (документ передачи хранит ЦБ именно так); Неопределено - отбор не задан.
+// СадОрганизация - CatalogRef.Организации, Неопределено - учреждение (сад) в виде
+// организации; Неопределено - отбор по учреждению не задан.
+//
&НаСервере
-Процедура ЗаполнитьДокументыПередачи()
+Процедура ЗаполнитьДокументыПередачи(ЦБКонтрагент, СадОрганизация)
ДокументыПередачи.Очистить();
@@ -105,26 +200,28 @@
| Документы.ИФО КАК ИФО,
| Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
+ | Документы.ПередачаСальдо КАК ПередачаСальдо,
| Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК Документы
|ГДЕ
- | (&Период = ДАТАВРЕМЯ(1, 1, 1)
- | ИЛИ Документы.Период >= &Период)
- | И (&Организация = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.Организация = &Организация)
- | И (&ИФО = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.ИФО = &ИФО)
+ | Документы.Период >= &НачалоПериода
+ | И Документы.Период <= &КонецПериода
| И (&ЦБ = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.ЦБ = &ЦБ)
+ | ИЛИ Документы.ЦБ = &ЦБ)
+ | И (&Сад = НЕОПРЕДЕЛЕНО
+ | ИЛИ Документы.Организация = &Сад)
+ | И (&ИФО = НЕОПРЕДЕЛЕНО
+ | ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ";
- Запрос.УстановитьПараметр("Период", Объект.Период);
- Запрос.УстановитьПараметр("Организация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+ Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
+ Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
+ Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент);
+ Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
- Запрос.УстановитьПараметр("ЦБ", ?(ЗначениеЗаполнено(Объект.ЦБ), Объект.ЦБ, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
@@ -151,22 +248,27 @@
| Документы.ИФО КАК ИФО,
| Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
+ | Документы.ПередачаСальдо КАК ПередачаСальдо,
| Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ПС_ПринятиеЗадолженностиОтУчреждения КАК Документы
|ГДЕ
- | (&Период = ДАТАВРЕМЯ(1, 1, 1)
- | ИЛИ Документы.Период >= &Период)
+ | Документы.Период >= &НачалоПериода
+ | И Документы.Период <= &КонецПериода
| И (&Организация = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.Организация = &Организация)
+ | ИЛИ Документы.Организация = &Организация)
+ | И (&Учреждение = НЕОПРЕДЕЛЕНО
+ | ИЛИ Документы.Учреждение = &Учреждение)
| И (&ИФО = НЕОПРЕДЕЛЕНО
- | ИЛИ Документы.ИФО = &ИФО)
+ | ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ";
- Запрос.УстановитьПараметр("Период", Объект.Период);
+ Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
+ Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("Организация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+ Запрос.УстановитьПараметр("Учреждение", ?(ЗначениеЗаполнено(Объект.Учреждение), Объект.Учреждение, Неопределено));
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
@@ -179,8 +281,14 @@
// Заполняет таблицу формы Сверка: сопоставляет суммы наших документов передачи
// и принятия. Приёмка связана с передачей через реквизит ДокументПередачи.
//
+// Параметры:
+// ЦБКонтрагент - CatalogRef.Контрагенты, Неопределено - ЦБ в виде контрагента
+// (документ передачи хранит ЦБ именно так); Неопределено - отбор не задан.
+// СадОрганизация - CatalogRef.Организации, Неопределено - учреждение (сад) в виде
+// организации; Неопределено - отбор по учреждению не задан.
+//
&НаСервере
-Процедура ЗаполнитьСверку()
+Процедура ЗаполнитьСверку(ЦБКонтрагент, СадОрганизация)
Сверка.Очистить();
@@ -215,22 +323,23 @@
| ПО Передача.Ссылка = ВТПринято.ДокументПередачи
|ГДЕ
| НЕ Передача.ПометкаУдаления
- | И (&Период = ДАТАВРЕМЯ(1, 1, 1)
- | ИЛИ Передача.Период >= &Период)
- | И (&Организация = НЕОПРЕДЕЛЕНО
- | ИЛИ Передача.Организация = &Организация)
- | И (&ИФО = НЕОПРЕДЕЛЕНО
- | ИЛИ Передача.ИФО = &ИФО)
+ | И Передача.Период >= &НачалоПериода
+ | И Передача.Период <= &КонецПериода
| И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.ЦБ = &ЦБ)
+ | И (&Сад = НЕОПРЕДЕЛЕНО
+ | ИЛИ Передача.Организация = &Сад)
+ | И (&ИФО = НЕОПРЕДЕЛЕНО
+ | ИЛИ Передача.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Передача.Период,
| Передача.Организация";
- Запрос.УстановитьПараметр("Период", Объект.Период);
- Запрос.УстановитьПараметр("Организация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+ Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
+ Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
+ Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент);
+ Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
- Запрос.УстановитьПараметр("ЦБ", ?(ЗначениеЗаполнено(Объект.ЦБ), Объект.ЦБ, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
@@ -247,8 +356,14 @@
ТаблицаОстатков.Очистить();
- НачалоПериода = Объект.Период;
- КонецПериода = КонецМесяца(Объект.Период);
+ Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Остатки и обороты по счетам ведутся без разреза по учреждению,"
+ + " поэтому отбор по учреждению на эту страницу не влияет.");
+ КонецЕсли;
+
+ НачалоПериода = Объект.Период.ДатаНачала;
+ КонецПериода = Объект.Период.ДатаОкончания;
Запрос = Новый Запрос;
Запрос.Текст =
@@ -294,10 +409,19 @@
|СГРУППИРОВАТЬ ПО
| ОстаткиИОбороты.ИФО";
+ Счет205 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
+ Счет304 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("304.04");
+ Если Счет205 = Неопределено ИЛИ Счет304 = Неопределено Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Остатки и обороты не рассчитаны: в плане счетов ЕПСБУ не найден счет"
+ + " 205.31 и/или 304.04.");
+ Возврат;
+ КонецЕсли;
+
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
- Запрос.УстановитьПараметр("Счет205", ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31"));
- Запрос.УстановитьПараметр("Счет304", ПланыСчетов.ЕПСБУ.НайтиПоКоду("304.04"));
+ Запрос.УстановитьПараметр("Счет205", Счет205);
+ Запрос.УстановитьПараметр("Счет304", Счет304);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
@@ -307,4 +431,78 @@
КонецПроцедуры
+// Заполняет таблицу формы КассовыеПоступления: документы с признаком "Родительская плата" за период
+// по установленным отборам.
+// Колонка "Строк не распознано" показывает строки расшифровки платежа, в которых не определён ребёнок, -
+// именно они требуют ручного доввода.
+//
+&НаСервере
+Процедура ЗаполнитьКассовыеПоступления()
+
+ КассовыеПоступления.Очистить();
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Поступления.Ссылка КАК Ссылка,
+ | Поступления.Дата КАК Дата,
+ | Поступления.Номер КАК Номер,
+ | Поступления.Организация КАК Организация,
+ | Поступления.СуммаДокумента КАК СуммаДокумента,
+ | Поступления.Проведен КАК Проведен,
+ | Поступления.ПометкаУдаления КАК ПометкаУдаления,
+ | КОЛИЧЕСТВО(СтрокиПлатежа.НомерСтроки) КАК СтрокВсего,
+ | КОЛИЧЕСТВО(СтрокиПлатежа.Ребенок) КАК СтрокРаспознано
+ |ИЗ
+ | Документ.КассовоеПоступление КАК Поступления
+ | ЛЕВОЕ СОЕДИНЕНИЕ Документ.КассовоеПоступление.РасшифровкаПлатежа КАК СтрокиПлатежа
+ | ПО СтрокиПлатежа.Ссылка = Поступления.Ссылка
+ |ГДЕ
+ | Поступления.РодительскаяПлата
+ | И Поступления.Дата >= &НачалоПериода
+ | И Поступления.Дата <= &КонецПериода
+ | И (&Организация = НЕОПРЕДЕЛЕНО
+ | ИЛИ Поступления.Организация = &Организация)
+ |СГРУППИРОВАТЬ ПО
+ | Поступления.Ссылка,
+ | Поступления.Дата,
+ | Поступления.Номер,
+ | Поступления.Организация,
+ | Поступления.СуммаДокумента,
+ | Поступления.Проведен,
+ | Поступления.ПометкаУдаления
+ |УПОРЯДОЧИТЬ ПО
+ | Поступления.Дата УБЫВ";
+ Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
+ Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
+ Запрос.УстановитьПараметр("Организация",
+ ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ Пока Выборка.Следующий() Цикл
+ НоваяСтрока = КассовыеПоступления.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
+ НоваяСтрока.СтрокНеРаспознано = Выборка.СтрокВсего - Выборка.СтрокРаспознано;
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Проверяет, что в периоде заданы обе границы. Если нет - выводит сообщение пользователю.
+//
+// Возвращаемое значение:
+// Булево - Истина, если период заполнен.
+//
+&НаСервере
+Функция ПериодЗаполненНаСервере()
+
+ Если ЗначениеЗаполнено(Объект.Период.ДатаНачала) И ЗначениеЗаполнено(Объект.Период.ДатаОкончания) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ ОбщегоНазначения.СообщитьПользователю(
+ "Не задан период. Укажите период в поле «Период» и повторите действие.");
+ Возврат Ложь;
+
+КонецФункции
+
#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
index 2939630..ecc8ba7 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
@@ -7,23 +7,16 @@
ПС_УправлениеРасчетамиПоРодительскойПлате
ru
- Управление расчётами по родительской плате
+ Управление расчетами по родительской плате
true
DataProcessor.ПС_УправлениеРасчетамиПоРодительскойПлате.Form.Форма
-
- Период
-
- Date
-
- Date
-
-
-
-
-
Организация
+
+ ru
+ Организация (ЦБ)
+
CatalogRef.Организации
@@ -38,11 +31,11 @@
-
- ЦБ
+
+ Учреждение
ru
- ЦБ (получатель)
+ Учреждение (сад)
CatalogRef.Контрагенты
@@ -50,11 +43,23 @@
+
+ Период
+
+ ru
+ Период
+
+
+ StandardPeriod
+
+
+
+
Форма
ru
- Управление расчётами по родительской плате
+ Управление расчетами по родительской плате
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl
new file mode 100644
index 0000000..c9aae48
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl
@@ -0,0 +1,130 @@
+// Расширение модуля объекта документа КассовоеПоступление: идентификация контрагента (ребёнка)
+// по назначению платежа в строках табличной части "Расшифровка платежа".
+// Работает только для документов с признаком "Родительская плата":
+// автозаполнение контрагента и договора в строках расшифровки.
+
+#Область ОбработчикиСобытий
+
+#Если Сервер Тогда
+
+&После("ПередЗаписью")
+Процедура ПС_ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
+
+ Если ОбменДанными.Загрузка Тогда
+ Возврат;
+ КонецЕсли;
+
+ ПС_РазборПлатежейПоРодительскойПлате.ЗаполнитьКонтрагентовПоНазначениюПлатежа(ЭтотОбъект);
+
+КонецПроцедуры
+
+&После("ОбработкаПроведения")
+Процедура ПС_ОбработкаПроведения(Отказ, РежимПроведения)
+
+ Если НЕ РодительскаяПлата Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Оплата закрывает задолженность, принятую от учреждения. Переплата допускается -
+ // она даёт отрицательный (кредитовый) остаток по ребёнку. Строки без определённого
+ // ребёнка или договора пропускаются: это не оплата родительской платы.
+ Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
+ Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
+
+ СтрокиОплаты = Новый Массив;
+ Дети = Новый Массив;
+
+ Для Каждого СтрокаРасшифровки Из РасшифровкаПлатежа Цикл
+
+ Если НЕ ЗначениеЗаполнено(СтрокаРасшифровки.Ребенок)
+ Или НЕ ЗначениеЗаполнено(СтрокаРасшифровки.Договор) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ СтрокиОплаты.Добавить(СтрокаРасшифровки);
+ Дети.Добавить(СтрокаРасшифровки.Ребенок);
+
+ КонецЦикла;
+
+ Если СтрокиОплаты.Количество() = 0 Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Сады детей загружаем одним запросом, контрагента сада ищем по одному разу на сад:
+ // обращение к базе внутри цикла по строкам недопустимо.
+ ОрганизацииСадов = ПС_ОрганизацииСадовДетей(Дети);
+ КонтрагентыСадов = Новый Соответствие;
+
+ Для Каждого СтрокаРасшифровки Из СтрокиОплаты Цикл
+
+ ОрганизацияСада = ОрганизацииСадов[СтрокаРасшифровки.Ребенок];
+
+ КонтрагентСада = КонтрагентыСадов[ОрганизацияСада];
+ Если КонтрагентСада = Неопределено Тогда
+ КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияСада, "Учреждение");
+ КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада);
+ КонецЕсли;
+
+ Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход();
+ Движение.Период = Дата;
+ Движение.Организация = Организация;
+ Движение.Учреждение = КонтрагентСада;
+ Движение.Плательщик = СтрокаРасшифровки.Контрагент;
+ Движение.Ребенок = СтрокаРасшифровки.Ребенок;
+ Движение.Договор = СтрокаРасшифровки.Договор;
+ Движение.ИФО = ИФО;
+ Движение.КФО = СтрокаРасшифровки.КФО;
+ Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа;
+ Движение.Сумма = СтрокаРасшифровки.Сумма;
+ Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.Оплата;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+#КонецЕсли
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+#Если Сервер Тогда
+
+// Возвращает организации детских садов по детям одним запросом.
+//
+// Параметры:
+// Дети - Массив из СправочникСсылка.Дети - дети, по которым нужно определить сад.
+//
+// Возвращаемое значение:
+// Соответствие из СправочникСсылка.Дети, СправочникСсылка.Организации - организация сада по ребёнку.
+//
+Функция ПС_ОрганизацииСадовДетей(Дети)
+
+ Результат = Новый Соответствие;
+ Если Дети.Количество() = 0 Тогда
+ Возврат Результат;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Дети.Ссылка КАК Ссылка,
+ | Дети.Организация КАК Организация
+ |ИЗ
+ | Справочник.Дети КАК Дети
+ |ГДЕ
+ | Дети.Ссылка В (&Дети)";
+ Запрос.УстановитьПараметр("Дети", Дети);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ Пока Выборка.Следующий() Цикл
+ Результат.Вставить(Выборка.Ссылка, Выборка.Организация);
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецЕсли
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/КассовоеПоступление.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/КассовоеПоступление.mdo
new file mode 100644
index 0000000..a43a348
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/КассовоеПоступление.mdo
@@ -0,0 +1,175 @@
+
+
+
+
+
+
+
+
+
+ КассовоеПоступление
+ Adopted
+
+ Checked
+ Extended
+
+ true
+ AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате
+
+ РодительскаяПлата
+ Adopted
+
+ Checked
+
+
+ Checked
+ Boolean
+
+
+
+
+
+ Организация
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.Организации
+
+
+
+
+
+ КорСчет
+ Adopted
+
+ Checked
+
+
+ Checked
+ ChartOfAccountsRef.ЕПСБУ
+
+
+
+
+
+ ИФО
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.ИсточникиФинансовогоОбеспечения
+
+
+
+
+
+
+
+
+
+ РасшифровкаПлатежа
+ Adopted
+
+ Checked
+
+
+ Примечание
+ Adopted
+
+ Checked
+
+
+ Checked
+ String
+
+
+ 254
+
+
+
+
+
+ Контрагент
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.Контрагенты
+
+
+
+
+
+ Договор
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.Договоры
+
+
+
+
+
+ КОСГУНазначениеПлатежа
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.КОСГУ
+
+
+
+
+
+ СчетРасчетов
+ Adopted
+
+ Checked
+
+
+ Checked
+ ChartOfAccountsRef.ЕПСБУ
+
+
+
+
+
+ Ребенок
+ Adopted
+
+ Checked
+
+
+ Checked
+ CatalogRef.Дети
+
+
+
+
+
+ КФО
+ Adopted
+
+ Checked
+
+
+ Checked
+ EnumRef.КВД
+
+
+
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
index 4e0a74b..f452bac 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
@@ -4,7 +4,7 @@
ГруппаОрганизаций
71
- ГруппаОрганизацииИДокумента
+ ГруппаОрганизацииИПериода
96
Организация
@@ -55,52 +55,6 @@
Normal
-
- ДокументНачисления
- 19
- true
- true
-
- true
-
-
- Объект.ДокументНачисления
-
-
- OnChange
- ДокументНачисленияПриИзменении
-
-
- ДокументНачисленияРасширеннаяПодсказка
- 21
- Label
- true
- true
-
- Left
-
-
-
- ДокументНачисленияКонтекстноеМеню
- 20
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
Период
13
@@ -150,10 +104,10 @@
ru
- Группа организации и документа
+ Группа организации и периода
- ГруппаОрганизацииИДокументаРасширеннаяПодсказка
+ ГруппаОрганизацииИПериодаРасширеннаяПодсказка
97
Label
true
@@ -918,6 +872,93 @@
ГруппаСтраницыОперации
94
+
+ ПередачаСальдо
+ 98
+
+ ru
+ Передача начального сальдо
+
+ true
+ true
+
+ true
+
+
+ Объект.ПередачаСальдо
+
+
+ OnChange
+ ПередачаСальдоПриИзменении
+
+
+ ПередачаСальдоРасширеннаяПодсказка
+ 100
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПередачаСальдоКонтекстноеМеню
+ 99
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+
+ ДокументНачисления
+ 19
+ true
+ true
+
+ true
+
+
+ Объект.ДокументНачисления
+
+
+ OnChange
+ ДокументНачисленияПриИзменении
+
+
+ ДокументНачисленияРасширеннаяПодсказка
+ 21
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДокументНачисленияКонтекстноеМеню
+ 20
+ true
+
+ InputField
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
ИФО
22
@@ -1005,6 +1046,130 @@
Normal
+
+ ГруппаКорреспондентующегоСчёта
+ 109
+
+ СчетКорреспондент
+ 101
+
+ ru
+ Счет
+
+ true
+ true
+
+ true
+
+
+ Объект.СчетКорреспондент
+
+
+ СчетКорреспондентРасширеннаяПодсказка
+ 103
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СчетКорреспондентКонтекстноеМеню
+ 102
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ КЭККорреспондент
+ 104
+
+ ru
+ КЭК
+
+ true
+ true
+
+ true
+
+
+ Объект.КЭККорреспондент
+
+
+ КЭККорреспондентРасширеннаяПодсказка
+ 106
+ Label
+ true
+ true
+
+ Left
+
+
+
+ КЭККорреспондентКонтекстноеМеню
+ 105
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Корреспондентующий счёт
+
+
+ ГруппаКорреспондентующегоСчётаРасширеннаяПодсказка
+ 110
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Auto
+ Auto
+ NormalSeparation
+ true
+ true
+ true
+ Auto
+ Auto
+
+
Комментарий
87
@@ -1258,6 +1423,32 @@
UserCmds
Auto
+
+ ЗаполнитьПоОстаткам20531
+ 107
+ true
+ true
+
+ true
+
+
+ ФормаЗаполнитьПоОстаткам20531РасширеннаяПодсказка
+ 108
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ЗаполнитьПоОстаткам20531
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
Left
true
@@ -1343,6 +1534,22 @@
+
+ ЗаполнитьПоОстаткам20531
+
+ ru
+ Заполнить по остаткам счета 205.31
+
+ 4
+
+
+
+ ЗаполнитьПоОстаткам20531
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
index 14f0fec..23b1ffb 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
@@ -12,6 +12,12 @@
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
+ // Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию.
+ // В режиме передачи начального сальдо скрывается документ начисления и появляется
+ // команда заполнения по остаткам счёта 205.31.
+ ЗаполнитьКорреспондирующийСчетПоУмолчанию();
+ ОбновитьВидимостьРеквизитовРежимаСальдо();
+
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Основание = Неопределено;
Если Параметры.Свойство("Основание", Основание)
@@ -105,10 +111,27 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ЗаполнитьПоОстаткам20531(Команда)
+
+ ЗаполнитьПоОстаткам20531НаСервере();
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
+&НаКлиенте
+Процедура ПередачаСальдоПриИзменении(Элемент)
+
+ // В режиме сальдо поле документа начисления скрывается, команда заполнения по остаткам - показывается.
+ РежимСальдо = (Объект.ПередачаСальдо = Истина);
+ Элементы.ЗаполнитьПоОстаткам20531.Видимость = РежимСальдо;
+ Элементы.ДокументНачисления.Видимость = НЕ РежимСальдо;
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ДокументНачисленияПриИзменении(Элемент)
@@ -139,6 +162,179 @@
КонецФункции
+&НаСервере
+Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
+
+ Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
+ Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
+ Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ОбновитьВидимостьРеквизитовРежимаСальдо()
+
+ // В режиме начального сальдо документ начисления не используется: его поле скрывается,
+ // а вместо него доступна команда заполнения по остаткам счёта 205.31.
+ РежимСальдо = (Объект.ПередачаСальдо = Истина);
+ Элементы.ЗаполнитьПоОстаткам20531.Видимость = РежимСальдо;
+ Элементы.ДокументНачисления.Видимость = НЕ РежимСальдо;
+
+КонецПроцедуры
+
+// Заполняет табличную часть "Задолженность" остатками счёта 205.31 на дату документа
+// по организации (учреждению-саду). Строки доступны для ручной правки.
+//
+&НаСервере
+Процедура ЗаполнитьПоОстаткам20531НаСервере()
+
+ Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Заполнение по остаткам невозможно: не заполнена организация (учреждение-сад).");
+ Возврат;
+ КонецЕсли;
+
+ Счет20531 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
+ Если Счет20531 = Неопределено Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Заполнение по остаткам невозможно: в плане счетов ЕПСБУ не найден счет 205.31.");
+ Возврат;
+ КонецЕсли;
+
+ // Порядок субконто берём из настройки самого счёта: субконто1 - первое субконто счёта.
+ ВидыСубконто = Новый Массив;
+ Для Каждого СтрокаСубконто Из Счет20531.ВидыСубконто Цикл
+ ВидыСубконто.Добавить(СтрокаСубконто.ВидСубконто);
+ КонецЦикла;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Остатки.Субконто1 КАК Контрагент,
+ | Остатки.Субконто2 КАК Договор,
+ | Дети.Ссылка КАК Ребенок,
+ | Остатки.КПС КАК КПС,
+ | Остатки.ИФО КАК ИФО,
+ | Остатки.КФО КАК КФО,
+ | Остатки.СуммаОстаток КАК Сумма
+ |ИЗ
+ | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
+ | &Дата,
+ | Счет В ИЕРАРХИИ (&Счет20531),
+ | &ВидыСубконто,
+ | Организация = &Организация) КАК Остатки
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Дети КАК Дети
+ | ПО Дети.Контрагент = Остатки.Субконто1
+ |ГДЕ
+ | Остатки.СуммаОстаток <> 0
+ |
+ |УПОРЯДОЧИТЬ ПО
+ | Остатки.Субконто1,
+ | Остатки.Субконто2";
+ Запрос.УстановитьПараметр("Дата", Объект.Дата);
+ Запрос.УстановитьПараметр("Счет20531", Счет20531);
+ Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
+ Запрос.УстановитьПараметр("Организация", Объект.Организация);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ Объект.Задолженность.Очистить();
+
+ ЗначенияИФО = Новый Соответствие;
+ ЗначенияКФО = Новый Соответствие;
+
+ Пока Выборка.Следующий() Цикл
+
+ ЗначенияИФО.Вставить(Выборка.ИФО, Истина);
+ ЗначенияКФО.Вставить(Выборка.КФО, Истина);
+
+ НоваяСтрока = Объект.Задолженность.Добавить();
+ НоваяСтрока.Контрагент = Выборка.Контрагент;
+ НоваяСтрока.Договор = Выборка.Договор;
+ НоваяСтрока.Ребенок = Выборка.Ребенок;
+ НоваяСтрока.КПС = Выборка.КПС;
+ НоваяСтрока.Сумма = Выборка.Сумма;
+
+ КонецЦикла;
+
+ Если Объект.Задолженность.Количество() = 0 Тогда
+ ВывестиДиагностикуЗаполненияПоОстаткам(Счет20531);
+ Возврат;
+ КонецЕсли;
+
+ Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
+
+ // Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ,
+ // поэтому переносим их в шапку, если в остатках они единственные.
+ ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО);
+
+ Если ЗначенияИФО.Количество() > 1 ИЛИ ЗначенияКФО.Количество() > 1 Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Остатки найдены в разрезе нескольких ИФО и/или КФО, а в документе ИФО и КФО задаются"
+ + " на весь документ. Проверьте их заполнение и при необходимости перенесите"
+ + " сальдо отдельными документами.");
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО)
+
+ Если ЗначенияКФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.КФО) Тогда
+ Для Каждого КлючИЗначение Из ЗначенияКФО Цикл
+ Объект.КФО = КлючИЗначение.Ключ;
+ КонецЦикла;
+ КонецЕсли;
+
+ Если ЗначенияИФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.ИФО) Тогда
+ Для Каждого КлючИЗначение Из ЗначенияИФО Цикл
+ Объект.ИФО = КлючИЗначение.Ключ;
+ КонецЦикла;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаСервере
+Процедура ВывестиДиагностикуЗаполненияПоОстаткам(Счет20531)
+
+ // Проверяем, есть ли вообще остатки по счёту на дату документа - без отборов
+ // по организации и субконто. Это позволяет понять, что именно не совпало.
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | КОЛИЧЕСТВО(*) КАК ВсегоСтрок
+ |ИЗ
+ | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
+ | &Дата,
+ | Счет В ИЕРАРХИИ (&Счет20531), , ) КАК Остатки";
+ Запрос.УстановитьПараметр("Дата", Объект.Дата);
+ Запрос.УстановитьПараметр("Счет20531", Счет20531);
+
+ Выборка = Запрос.Выполнить().Выбрать();
+ ВсегоСтрок = 0;
+ Если Выборка.Следующий() Тогда
+ ВсегоСтрок = Выборка.ВсегоСтрок;
+ КонецЕсли;
+
+ ДатаДокумента = Формат(Объект.Дата, "ДЛФ=DD");
+
+ Если ВсегоСтрок = 0 Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Остатков по счёту " + Счет20531.Код + " на " + ДатаДокумента
+ + " нет ни по одной организации. Проверьте дату документа.");
+ Иначе
+ ОбщегоНазначения.СообщитьПользователю(
+ "Остатки по счёту " + Счет20531.Код + " на " + ДатаДокумента + " есть ("
+ + ВсегоСтрок + " стр.), но не отобраны по организации " + Строка(Объект.Организация)
+ + " и/или по субконто счёта. Проверьте организацию в документе.");
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаСервере
Процедура ЗаполнитьПоДокументуНачисленияНаСервере(ДокументНачисленияСсылка)
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
index 2cb8006..cf187a4 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
@@ -82,17 +82,20 @@
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
- СчетДт = БухгалтерскийУчет.СчетПоКоду("304.04", Дата, Организация);
СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
- ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
- // КЭК счёта 304.04 несёт экономический смысл операции: для доходной операции это КЭК
- // счёта 401.10 проводок документа начисления. Автоматически он не определяется.
- КЭК30404 = ПС_УчетРодительскойПлаты.КЭКПоЭкономическомуСмыслу(ДокументНачисления);
- Если НЕ ЗначениеЗаполнено(КЭК30404) Тогда
- КЭК30404 = КЭКПроводки(СчетДт, "Дт", ЦБ);
+ // Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются реквизитами
+ // документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем.
+ СчетДт = СчетКорреспондент;
+ Если НЕ ЗначениеЗаполнено(СчетДт) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
+ , "СчетКорреспондент", "Объект", Отказ);
+ Возврат;
КонецЕсли;
+ ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
+
// КПС строк наследуется из проводок документа начисления (см. ЗаполнитьКПССтрок),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
@@ -106,7 +109,7 @@
Движение.СчетКт = СчетКт;
Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС;
- Движение.КЭКДт = КЭК30404;
+ Движение.КЭКДт = КЭККорреспондент;
Движение.КЭККт = КЭКПроводки(СчетКт, "Кт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций;
@@ -141,6 +144,8 @@
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
+ ЗаполнитьРеквизитыПоУмолчанию();
+
СуммаДокумента = Задолженность.Итог("Сумма");
ЗаполнитьКПССтрок();
@@ -156,7 +161,7 @@
ОбщегоНазначения.СообщитьПользователю("Не заполнен получатель - ЦБ (администратор доходов)", , "ЦБ", "Объект", Отказ);
КонецЕсли;
- Если НЕ ЗначениеЗаполнено(ДокументНачисления) Тогда
+ Если НЕ ПередачаСальдо И НЕ ЗначениеЗаполнено(ДокументНачисления) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнен документ начисления родительской платы", , "ДокументНачисления", "Объект", Отказ);
КонецЕсли;
@@ -169,9 +174,12 @@
Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
- ОбщегоНазначения.СообщитьПользователю(
- "Не заполнен КПС строки табличной части ""Задолженность"". Заполнение возможно только на основании проведённого документа начисления родительской платы.",
- , "Задолженность", "Объект", Отказ);
+ ТекстСообщения = "Не заполнен КПС строки табличной части ""Задолженность"".";
+ Если НЕ ПередачаСальдо Тогда
+ ТекстСообщения = ТекстСообщения
+ + " Заполнение возможно только на основании проведённого документа начисления родительской платы.";
+ КонецЕсли;
+ ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
КонецЦикла;
@@ -188,11 +196,32 @@
#Область СлужебныеПроцедурыИФункции
+// Заполняет счёт, корреспондирующий со счётом расчётов по доходам (205.31), и его КЭК
+// значениями по умолчанию, если они не заданы пользователем.
+//
+Процедура ЗаполнитьРеквизитыПоУмолчанию()
+
+ Если НЕ ЗначениеЗаполнено(СчетКорреспондент) Тогда
+ СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(КЭККорреспондент) Тогда
+ КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
+ КонецЕсли;
+
+КонецПроцедуры
+
// Заполняет строки табличной части "Задолженность" КПС, унаследованным
// из проводок документа начисления родительской платы.
//
Процедура ЗаполнитьКПССтрок()
+ // В режиме передачи начального сальдо КПС строк заполняется по остаткам счёта 205.31,
+ // а не по проводкам документа начисления.
+ Если ПередачаСальдо Тогда
+ Возврат;
+ КонецЕсли;
+
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(ЭтотОбъект, ДокументНачисления);
КонецПроцедуры
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ПС_ПередачаЗадолженностиВЦБ.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ПС_ПередачаЗадолженностиВЦБ.mdo
index 47b9828..bb5da20 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ПС_ПередачаЗадолженностиВЦБ.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ПС_ПередачаЗадолженностиВЦБ.mdo
@@ -177,6 +177,51 @@
Use
Use
+
+ ПередачаСальдо
+
+ ru
+ Передача начального сальдо
+
+
+ Boolean
+
+
+
+
+ Use
+ Use
+
+
+ КЭККорреспондент
+
+ ru
+ КЭК корреспондирующего счета
+
+
+ CatalogRef.КОСГУ
+
+
+
+
+ Use
+ Use
+
+
+ СчетКорреспондент
+
+ ru
+ Счет корреспондирующий
+
+
+ ChartOfAccountsRef.ЕПСБУ
+
+
+
+
+ Use
+ Use
+
ФормаДокумента
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
index 5c15b16..3e49597 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
@@ -1014,6 +1014,133 @@
Normal
+
+ ПередачаСальдо
+ 94
+
+ ru
+ Передача начального сальдо
+
+ true
+ true
+
+ true
+
+
+ Объект.ПередачаСальдо
+
+
+ ПередачаСальдоРасширеннаяПодсказка
+ 96
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ПередачаСальдоКонтекстноеМеню
+ 95
+ true
+
+ CheckBoxField
+ Enter
+ true
+ Left
+ true
+
+
+
+ СчетКорреспондент
+ 97
+
+ ru
+ Счет корреспондирующий
+
+ true
+ true
+
+ true
+
+
+ Объект.СчетКорреспондент
+
+
+ СчетКорреспондентРасширеннаяПодсказка
+ 99
+ Label
+ true
+ true
+
+ Left
+
+
+
+ СчетКорреспондентКонтекстноеМеню
+ 98
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ КЭККорреспондент
+ 100
+
+ ru
+ КЭК корреспондирующего счета
+
+ true
+ true
+
+ true
+
+
+ Объект.КЭККорреспондент
+
+
+ КЭККорреспондентРасширеннаяПодсказка
+ 102
+ Label
+ true
+ true
+
+ Left
+
+
+
+ КЭККорреспондентКонтекстноеМеню
+ 101
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
true
true
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
index d68a28f..1246c2e 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
@@ -12,6 +12,10 @@
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
+ // Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию
+ // (в режиме начального сальдо наследуются из документа передачи).
+ ЗаполнитьКорреспондирующийСчетПоУмолчанию();
+
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Основание = Неопределено;
Если Параметры.Свойство("Основание", Основание)
@@ -115,6 +119,19 @@
КонецФункции
+&НаСервере
+Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
+
+ Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
+ Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
+ Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
+ КонецЕсли;
+
+КонецПроцедуры
+
&НаСервере
Процедура ЗаполнитьПоДокументуПередачиНаСервере(ДокументПередачиСсылка)
@@ -168,6 +185,14 @@
Объект.Ответственный = ВыборкаШапка.Ответственный;
Объект.Период = ВыборкаШапка.Период;
Объект.ДокументПередачи = ДокументПередачиСсылка;
+
+ // Режим начального сальдо и корреспондирующий счёт с КЭК наследуются от документа передачи.
+ РеквизитыПередачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПередачиСсылка,
+ "ПередачаСальдо, СчетКорреспондент, КЭККорреспондент");
+ Объект.ПередачаСальдо = РеквизитыПередачи.ПередачаСальдо;
+ Объект.СчетКорреспондент = РеквизитыПередачи.СчетКорреспондент;
+ Объект.КЭККорреспондент = РеквизитыПередачи.КЭККорреспондент;
+
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
Объект.ИФО = ВыборкаШапка.ИФО;
КонецЕсли;
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
index dbe1936..81d6d1a 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
@@ -2,6 +2,8 @@
// Сторона ЦБ: Дт 205.31.56X — Кт 304.04.130.
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ.
+// Кроме проводок документ формирует приход в регистре накопления
+// ПС_ВзаиморасчетыПоРодительскойПлате (принятая от учреждения задолженность).
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
@@ -26,7 +28,10 @@
| ПередачаЗадолженности.ИФО КАК ИФО,
| ПередачаЗадолженности.Ответственный КАК Ответственный,
| ПередачаЗадолженности.Период КАК Период,
- | ПередачаЗадолженности.КФО КАК КФО
+ | ПередачаЗадолженности.КФО КАК КФО,
+ | ПередачаЗадолженности.ПередачаСальдо КАК ПередачаСальдо,
+ | ПередачаЗадолженности.СчетКорреспондент КАК СчетКорреспондент,
+ | ПередачаЗадолженности.КЭККорреспондент КАК КЭККорреспондент
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК ПередачаЗадолженности
|ГДЕ
@@ -49,6 +54,10 @@
Период = ВыборкаШапка.Период;
КФО = ВыборкаШапка.КФО;
ДокументПередачи = ДанныеЗаполнения;
+ // Режим начального сальдо и корреспондирующий счёт с КЭК наследуются от передачи.
+ ПередачаСальдо = ВыборкаШапка.ПередачаСальдо;
+ СчетКорреспондент = ВыборкаШапка.СчетКорреспондент;
+ КЭККорреспондент = ВыборкаШапка.КЭККорреспондент;
// Учёт по ИФО ведётся только при включённой функциональной опции.
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
ИФО = ВыборкаШапка.ИФО;
@@ -88,17 +97,23 @@
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
- СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
- СчетКт = БухгалтерскийУчет.СчетПоКоду("304.04", Дата, Организация);
- ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
+ Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
+ Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
- // КЭК счёта 304.04 несёт экономический смысл операции и берётся из проводок документа передачи
- // (КЭК счёта 401.10, унаследованный от документа начисления). Автоматически он не определяется.
- КЭК30404 = ПС_УчетРодительскойПлаты.КЭКПоЭкономическомуСмыслу(ДокументПередачи);
- Если НЕ ЗначениеЗаполнено(КЭК30404) Тогда
- КЭК30404 = КЭКПроводки(СчетКт, "Кт", Учреждение);
+ СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
+
+ // Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК наследуются
+ // из документа передачи (заполняются при вводе на основании).
+ СчетКт = СчетКорреспондент;
+ Если НЕ ЗначениеЗаполнено(СчетКт) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
+ , "СчетКорреспондент", "Объект", Отказ);
+ Возврат;
КонецЕсли;
+ ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
+
// КПС строк наследуется из проводок документа передачи (см. ЗаполнитьКПССтрок),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
@@ -113,7 +128,7 @@
Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС;
Движение.КЭКДт = КЭКПроводки(СчетДт, "Дт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
- Движение.КЭККт = КЭК30404;
+ Движение.КЭККт = КЭККорреспондент;
Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Принятие задолженности по родительской плате от учреждения";
@@ -122,6 +137,24 @@
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = Учреждение;
+ // Взаиморасчеты по родительской плате: принятая от учреждения задолженность.
+ ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
+ ДвижениеПС.Период = Дата;
+ ДвижениеПС.Организация = Организация;
+ ДвижениеПС.Учреждение = Учреждение;
+ ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
+ ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
+ ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
+ ДвижениеПС.ИФО = ИФО;
+ ДвижениеПС.КФО = КФО;
+ ДвижениеПС.КПС = СтрокаЗадолженности.КПС;
+ ДвижениеПС.Сумма = СтрокаЗадолженности.Сумма;
+ ДвижениеПС.ВидОперации = ?(ПередачаСальдо,
+ Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.НачальноеСальдо,
+ Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПринятоОтУчреждения);
+ ДвижениеПС.ИДСтроки = СтрокаЗадолженности.ИДСтроки;
+ ДвижениеПС.ДокументПередачи = ДокументПередачи;
+
КонецЦикла;
// В конфигурации есть подписка на событие "ОбработкаПроведения" (ЗаписатьТаблицуПроводок),
@@ -136,6 +169,7 @@
Процедура ОбработкаУдаленияПроведения(Отказ)
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
+ Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
КонецПроцедуры
@@ -147,6 +181,8 @@
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
+ ЗаполнитьРеквизитыПоУмолчанию();
+
СуммаДокумента = Задолженность.Итог("Сумма");
ЗаполнитьКПССтрок();
@@ -175,9 +211,12 @@
Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
- ОбщегоНазначения.СообщитьПользователю(
- "Не заполнен КПС строки табличной части ""Задолженность"". Заполнение возможно только на основании проведённого документа передачи задолженности.",
- , "Задолженность", "Объект", Отказ);
+ ТекстСообщения = "Не заполнен КПС строки табличной части ""Задолженность"".";
+ Если НЕ ПередачаСальдо Тогда
+ ТекстСообщения = ТекстСообщения
+ + " Заполнение возможно только на основании проведённого документа передачи задолженности.";
+ КонецЕсли;
+ ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
КонецЦикла;
@@ -194,6 +233,21 @@
#Область СлужебныеПроцедурыИФункции
+// Заполняет счёт, корреспондирующий со счётом расчётов по доходам (205.31), и его КЭК
+// значениями по умолчанию, если они не заданы пользователем.
+//
+Процедура ЗаполнитьРеквизитыПоУмолчанию()
+
+ Если НЕ ЗначениеЗаполнено(СчетКорреспондент) Тогда
+ СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
+ КонецЕсли;
+
+ Если НЕ ЗначениеЗаполнено(КЭККорреспондент) Тогда
+ КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
+ КонецЕсли;
+
+КонецПроцедуры
+
// Заполняет строки табличной части "Задолженность" КПС, унаследованным
// из проводок документа передачи задолженности.
//
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ПС_ПринятиеЗадолженностиОтУчреждения.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ПС_ПринятиеЗадолженностиОтУчреждения.mdo
index 7667fa8..5e14160 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ПС_ПринятиеЗадолженностиОтУчреждения.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ПС_ПринятиеЗадолженностиОтУчреждения.mdo
@@ -10,7 +10,7 @@
ПС_ПринятиеЗадолженностиОтУчреждения
ru
- Принятие начислений от учреждения
+ Принятие в ЦБ начислений от учреждения
true
DontUse
@@ -22,7 +22,7 @@
ru
- Принятие начислений от учреждения (ЦБ)
+ Принятия в ЦБ начислений от учреждения
String
9
@@ -31,6 +31,7 @@
true
Document.ПС_ПринятиеЗадолженностиОтУчреждения.Form.ФормаДокумента
AccountingRegister.ЖурналПроводокЕПСБУ
+ AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате
true
true
@@ -177,6 +178,51 @@
Use
Use
+
+ ПередачаСальдо
+
+ ru
+ Передача начального сальдо
+
+
+ Boolean
+
+
+
+
+ Use
+ Use
+
+
+ КЭККорреспондент
+
+ ru
+ КЭК корреспондирующего счета
+
+
+ CatalogRef.КОСГУ
+
+
+
+
+ Use
+ Use
+
+
+ СчетКорреспондент
+
+ ru
+ Счет корреспондирующий
+
+
+ ChartOfAccountsRef.ЕПСБУ
+
+
+
+
+ Use
+ Use
+
ФормаДокумента
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Enums/ПС_ВидыОперацийПоВзаиморасчетам/ПС_ВидыОперацийПоВзаиморасчетам.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Enums/ПС_ВидыОперацийПоВзаиморасчетам/ПС_ВидыОперацийПоВзаиморасчетам.mdo
new file mode 100644
index 0000000..08364cd
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Enums/ПС_ВидыОперацийПоВзаиморасчетам/ПС_ВидыОперацийПоВзаиморасчетам.mdo
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+ ПС_ВидыОперацийПоВзаиморасчетам
+
+ ru
+ Виды операций по взаиморасчетам
+
+ true
+ BothWays
+
+ ПринятоОтУчреждения
+
+ ru
+ Принято от учреждения
+
+
+
+ Оплата
+
+ ru
+ Оплата родительской платы
+
+
+
+ НачальноеСальдо
+
+ ru
+ Начальное сальдо
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ObjectModule.bsl
new file mode 100644
index 0000000..7b359c3
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ObjectModule.bsl
@@ -0,0 +1,85 @@
+#Область ОбработчикиСобытий
+
+// Настраивает отчёт перед компоновкой результата.
+//
+Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
+
+ УстановитьВыбранныеПоля();
+ УстановитьПериодПоУмолчанию();
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Задаёт выбранные поля отчёта: учреждение и показатели оборотной ведомости.
+//
+// Состав колонок задаётся кодом, потому что в макете схемы выбранным полем задано только
+// учреждение, а добавить показатели в вариант настроек средствами метаданных нельзя.
+// Группировки и отборы при этом остаются настраиваемыми: все измерения набора данных
+// (учреждение, плательщик, ребенок, договор, период задолженности, ИФО, КФО, КПС)
+// доступны в настройках отчёта.
+//
+Процедура УстановитьВыбранныеПоля()
+
+ ВыбранныеПоля = КомпоновщикНастроек.Настройки.Выбор.Элементы;
+ ВыбранныеПоля.Очистить();
+
+ ИменаПолей = Новый Массив;
+ ИменаПолей.Добавить("Учреждение");
+ ИменаПолей.Добавить("СуммаНачальныйОстаток");
+ ИменаПолей.Добавить("СуммаПриход");
+ ИменаПолей.Добавить("СуммаРасход");
+ ИменаПолей.Добавить("СуммаКонечныйОстаток");
+
+ Для Каждого ИмяПоля Из ИменаПолей Цикл
+ ВыбранноеПоле = ВыбранныеПоля.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
+ ВыбранноеПоле.Поле = Новый ПолеКомпоновкиДанных(ИмяПоля);
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Заполняет границы периода текущим месяцем, если они не заданы пользователем.
+//
+Процедура УстановитьПериодПоУмолчанию()
+
+ ЗначенияПараметров = КомпоновщикНастроек.Настройки.ПараметрыДанных;
+
+ Если ПериодЗадан(ЗначенияПараметров) Тогда
+ Возврат;
+ КонецЕсли;
+
+ ТекущийМесяц = Новый СтандартныйПериод(ВариантСтандартногоПериода.ЭтотМесяц);
+ ЗначенияПараметров.УстановитьЗначениеПараметра(
+ Новый ПараметрКомпоновкиДанных("НачалоПериода"), ТекущийМесяц.ДатаНачала);
+ ЗначенияПараметров.УстановитьЗначениеПараметра(
+ Новый ПараметрКомпоновкиДанных("КонецПериода"), ТекущийМесяц.ДатаОкончания);
+
+КонецПроцедуры
+
+// Проверяет, что в настройках заданы обе границы периода.
+//
+// Параметры:
+// ЗначенияПараметров - ЗначенияПараметровДанныхКомпоновкиДанных - настройки параметров данных.
+//
+// Возвращаемое значение:
+// Булево - Истина, если обе границы периода заполнены.
+//
+Функция ПериодЗадан(ЗначенияПараметров)
+
+ ЗначениеНачалаПериода = ЗначенияПараметров.НайтиЗначениеПараметра(
+ Новый ПараметрКомпоновкиДанных("НачалоПериода"));
+ ЗначениеКонцаПериода = ЗначенияПараметров.НайтиЗначениеПараметра(
+ Новый ПараметрКомпоновкиДанных("КонецПериода"));
+
+ Если ЗначениеНачалаПериода = Неопределено ИЛИ ЗначениеКонцаПериода = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ Возврат ЗначениеЗаполнено(ЗначениеНачалаПериода.Значение)
+ И ЗначениеЗаполнено(ЗначениеКонцаПериода.Значение);
+
+КонецФункции
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/Templates/ОсновнаяСхема/Template.dcs b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/Templates/ОсновнаяСхема/Template.dcs
new file mode 100644
index 0000000..1c03a46
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/Templates/ОсновнаяСхема/Template.dcs
@@ -0,0 +1,296 @@
+
+
+
+ ИсточникДанных1
+ Local
+
+
+ НаборДанных1
+
+ Организация
+ Организация
+ Организация
+
+ d5p1:CatalogRef.Организации
+
+
+
+ Учреждение
+ Учреждение
+ Учреждение
+
+ d5p1:CatalogRef.Контрагенты
+
+
+
+ Плательщик
+ Плательщик
+ Плательщик
+
+ d5p1:CatalogRef.Контрагенты
+
+
+
+ Ребенок
+ Ребенок
+ Ребенок
+
+ d5p1:CatalogRef.Дети
+
+
+
+ Договор
+ Договор
+ Договор
+
+ d5p1:CatalogRef.Договоры
+
+
+
+ ИФО
+ ИФО
+ ИФО
+
+ d5p1:CatalogRef.ИсточникиФинансовогоОбеспечения
+
+
+
+ КФО
+ КФО
+ КФО
+
+ d5p1:EnumRef.КВД
+
+
+
+ КПС
+ КПС
+ КПС
+
+ d5p1:CatalogRef.КлассификационныеПризнакиСчетов
+
+
+
+ СуммаНачальныйОстаток
+ СуммаНачальныйОстаток
+ СуммаНачальныйОстаток
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ СуммаПриход
+ СуммаПриход
+ СуммаПриход
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ СуммаРасход
+ СуммаРасход
+ СуммаРасход
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+
+ СуммаКонечныйОстаток
+ СуммаКонечныйОстаток
+ СуммаКонечныйОстаток
+
+ xs:decimal
+
+ 15
+ 2
+ Any
+
+
+
+ ИсточникДанных1
+ ВЫБРАТЬ
+ Взаиморасчеты.Организация КАК Организация,
+ Взаиморасчеты.Учреждение КАК Учреждение,
+ Взаиморасчеты.Плательщик КАК Плательщик,
+ Взаиморасчеты.Ребенок КАК Ребенок,
+ Взаиморасчеты.Договор КАК Договор,
+ Взаиморасчеты.ИФО КАК ИФО,
+ Взаиморасчеты.КФО КАК КФО,
+ Взаиморасчеты.КПС КАК КПС,
+ Взаиморасчеты.СуммаНачальныйОстаток КАК СуммаНачальныйОстаток,
+ Взаиморасчеты.СуммаПриход КАК СуммаПриход,
+ Взаиморасчеты.СуммаРасход КАК СуммаРасход,
+ Взаиморасчеты.СуммаКонечныйОстаток КАК СуммаКонечныйОстаток
+ИЗ
+ РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Авто) КАК Взаиморасчеты
+
+
+ СуммаКонечныйОстаток
+ Сумма(СуммаКонечныйОстаток)
+
+
+ СуммаНачальныйОстаток
+ Сумма(СуммаНачальныйОстаток)
+
+
+ СуммаПриход
+ Сумма(СуммаПриход)
+
+
+ СуммаРасход
+ Сумма(СуммаРасход)
+
+
+ НачалоПериода
+
+
+ ru
+ Начало периода
+
+
+
+ xs:dateTime
+
+ DateTime
+
+
+ 0001-01-01T00:00:00
+ false
+
+
+
+ КонецПериода
+
+
+ ru
+ Конец периода
+
+
+
+ xs:dateTime
+
+ DateTime
+
+
+ 0001-01-01T00:00:00
+ false
+
+
+
+
+
+ Учреждение
+
+
+
+
+ НачалоПериода
+ 0001-01-01T00:00:00
+
+
+ КонецПериода
+ 0001-01-01T00:00:00
+
+
+
+
+
+ Учреждение
+ Items
+ None
+
+
+
+
+
+ Основной
+ По учреждениям
+
+
+
+ Учреждение
+
+
+ Ребенок
+
+
+ СуммаНачальныйОстаток
+
+
+ СуммаПриход
+
+
+ СуммаРасход
+
+
+ СуммаКонечныйОстаток
+
+
+
+
+ false
+ НачалоПериода
+
+ Custom
+ 0001-01-01T00:00:00
+
+ 72cd9cbb-7fe9-43fa-b89a-8648efdb95e6
+
+
+ false
+ КонецПериода
+
+ Custom
+ 0001-01-01T00:00:00
+
+ d45e92ce-0652-44e0-9cb7-6765030106ee
+
+
+
+
+
+ Учреждение
+ Items
+ None
+
+
+
+
+
+
+
+
+
+
+
+ Ребенок
+ Items
+ None
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ПС_ОборотнаяВедомостьПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ПС_ОборотнаяВедомостьПоРодительскойПлате.mdo
new file mode 100644
index 0000000..8441a79
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Reports/ПС_ОборотнаяВедомостьПоРодительскойПлате/ПС_ОборотнаяВедомостьПоРодительскойПлате.mdo
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+ ПС_ОборотнаяВедомостьПоРодительскойПлате
+
+ ru
+ Оборотная ведомость по расчетам по родительской плате
+
+ true
+ Report.ПС_ОборотнаяВедомостьПоРодительскойПлате.Template.ОсновнаяСхема
+
+ ОсновнаяСхема
+
+ ru
+ Основная схема
+
+ DataCompositionSchema
+
+