diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
index 536a9df..d7127fe 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
@@ -59,6 +59,7 @@
// Второй проход: отбор строк, по которым ребёнок и его контрагент определены однозначно.
СтрокиКЗаполнению = Новый Массив;
Контрагенты = Новый Соответствие;
+ ОрганизацииКонтрагентов = Новый Соответствие;
Для Каждого ДанныеПлатежа Из РазобранныеСтроки Цикл
@@ -83,6 +84,9 @@
СтрокиКЗаполнению.Добавить(СтрокаКЗаполнению);
Контрагенты.Вставить(Ребенок.Контрагент, Истина);
+ // Договор ищется только по организации ребёнка: при переводе ребёнка из сада в сад
+ // у родителя остаются договоры прежних учреждений.
+ ОрганизацииКонтрагентов.Вставить(Ребенок.Контрагент, Ребенок.Организация);
КонецЦикла;
@@ -107,7 +111,7 @@
КонецЕсли;
// Договоры определяются одним запросом сразу по всем контрагентам документа.
- Договоры = ДоговорыПоКонтрагентам(Контрагенты, ДокументОбъект, СчетРасчетов);
+ Договоры = ДоговорыПоКонтрагентам(Контрагенты, ОрганизацииКонтрагентов, ДокументОбъект, СчетРасчетов);
// КФО строк берётся из настройки лицевого счёта: раздел счёта -> допустимые КФО.
// Используется типовой механизм, поэтому выбор совпадает с поведением типовых форм:
@@ -209,6 +213,8 @@
//
// Параметры:
// Контрагенты - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты (дети) документа.
+// ОрганизацииКонтрагентов - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Организации -
+// организация ребёнка по контрагенту. Пустая ссылка - отбор по организации не применяется.
// ДокументОбъект - ДокументОбъект.КассовоеПоступление - документ, по дате и организации которого ищутся остатки.
// СчетРасчетов - ПланСчетовСсылка.ЕПСБУ - счёт расчётов родительской платы (205.31).
//
@@ -216,7 +222,7 @@
// Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - договоры по контрагентам,
// определённые однозначно.
//
-Функция ДоговорыПоКонтрагентам(Контрагенты, ДокументОбъект, СчетРасчетов)
+Функция ДоговорыПоКонтрагентам(Контрагенты, ОрганизацииКонтрагентов, ДокументОбъект, СчетРасчетов)
КонтрагентыМассив = Новый Массив;
Для Каждого Элемент Из Контрагенты Цикл
@@ -228,10 +234,12 @@
КоличествоДоговоров = Новый Соответствие;
// 1. Договоры из остатков по счёту 205.31 - приоритетный источник.
- ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ДокументОбъект, СчетРасчетов, Результат, Неоднозначные);
+ ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ОрганизацииКонтрагентов, ДокументОбъект, СчетРасчетов,
+ Результат, Неоднозначные);
// 2. Для остальных контрагентов - единственный договор, отобранный по реквизиту "Контрагент".
- ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, Результат, Неоднозначные, КоличествоДоговоров);
+ ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, ОрганизацииКонтрагентов, Результат, Неоднозначные,
+ КоличествоДоговоров);
// 3. Диагностика по контрагентам, для которых договор определить не удалось.
Для Каждого Элемент Из Контрагенты Цикл
@@ -266,12 +274,15 @@
//
// Параметры:
// КонтрагентыМассив - Массив из СправочникСсылка.Контрагенты - контрагенты (дети), по которым ищутся остатки.
+// ОрганизацииКонтрагентов - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Организации -
+// организация ребёнка по контрагенту. Пустая ссылка - отбор по организации не применяется.
// ДокументОбъект - ДокументОбъект.КассовоеПоступление - документ, по дате и организации которого ищутся остатки.
// Счет20531 - ПланСчетовСсылка.ЕПСБУ - счёт расчётов родительской платы (205.31).
// Результат - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - дополняется найденными договорами.
// Неоднозначные - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты с несколькими договорами в остатках.
//
-Процедура ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ДокументОбъект, Счет20531, Результат, Неоднозначные)
+Процедура ЗаполнитьДоговорыПоОстаткам20531(КонтрагентыМассив, ОрганизацииКонтрагентов, ДокументОбъект, Счет20531,
+ Результат, Неоднозначные)
Если НЕ ЗначениеЗаполнено(Счет20531) Тогда
Возврат;
@@ -287,15 +298,19 @@
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Остатки.Субконто1 КАК Контрагент,
- | Остатки.Субконто2 КАК Договор
+ | Остатки.Субконто2 КАК Договор,
+ | Договоры.Организация КАК Организация
|ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
| &Дата,
| Счет В ИЕРАРХИИ (&Счет20531),
| &ВидыСубконто,
| Организация = &Организация И Субконто1 В (&Контрагенты)) КАК Остатки
+ | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Договоры КАК Договоры
+ | ПО Остатки.Субконто2 = Договоры.Ссылка
|ГДЕ
- | Остатки.СуммаОстаток <> 0";
+ | Остатки.СуммаОстаток <> 0
+ | И НЕ Договоры.ВАрхиве";
Запрос.УстановитьПараметр("Дата", ДокументОбъект.Дата);
Запрос.УстановитьПараметр("Счет20531", Счет20531);
Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
@@ -309,6 +324,10 @@
Продолжить;
КонецЕсли;
+ Если НЕ ОрганизацияДоговораПодходит(Выборка.Организация, ОрганизацииКонтрагентов[Выборка.Контрагент]) Тогда
+ Продолжить;
+ КонецЕсли;
+
НайденныйДоговор = Результат[Выборка.Контрагент];
Если НайденныйДоговор = Неопределено Тогда
Результат.Вставить(Выборка.Контрагент, Выборка.Договор);
@@ -321,24 +340,32 @@
КонецПроцедуры
// Дополняет результат единственным договором, отобранным по реквизиту "Контрагент".
+// Учитываются только действующие договоры (не помеченные на удаление и не находящиеся в архиве),
+// организация договора должна совпадать с организацией ребёнка: при переводе ребёнка из сада в сад
+// у родителя остаются договоры прежних учреждений.
//
// Параметры:
// КонтрагентыМассив - Массив из СправочникСсылка.Контрагенты - контрагенты (дети), по которым отбираются договоры.
+// ОрганизацииКонтрагентов - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Организации -
+// организация ребёнка по контрагенту. Пустая ссылка - отбор по организации не применяется.
// Результат - Соответствие из СправочникСсылка.Контрагенты, СправочникСсылка.Договоры - дополняется найденными договорами.
// Неоднозначные - Соответствие из СправочникСсылка.Контрагенты, Булево - контрагенты с неоднозначным договором.
// КоличествоДоговоров - Соответствие из СправочникСсылка.Контрагенты, Число - количество найденных договоров.
//
-Процедура ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, Результат, Неоднозначные, КоличествоДоговоров)
+Процедура ЗаполнитьДоговорыПоОтбору(КонтрагентыМассив, ОрганизацииКонтрагентов, Результат, Неоднозначные,
+ КоличествоДоговоров)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Договоры.Контрагент КАК Контрагент,
- | Договоры.Ссылка КАК Договор
+ | Договоры.Ссылка КАК Договор,
+ | Договоры.Организация КАК Организация
|ИЗ
| Справочник.Договоры КАК Договоры
|ГДЕ
| НЕ Договоры.ПометкаУдаления
+ | И НЕ Договоры.ВАрхиве
| И Договоры.Контрагент В (&Контрагенты)
|УПОРЯДОЧИТЬ ПО
| Договоры.Контрагент";
@@ -348,6 +375,10 @@
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
+ Если НЕ ОрганизацияДоговораПодходит(Выборка.Организация, ОрганизацииКонтрагентов[Выборка.Контрагент]) Тогда
+ Продолжить;
+ КонецЕсли;
+
ДоговорыКонтрагента = Найденные[Выборка.Контрагент];
Если ДоговорыКонтрагента = Неопределено Тогда
ДоговорыКонтрагента = Новый Массив;
@@ -371,6 +402,29 @@
КонецПроцедуры
+// Проверяет, что договор относится к организации ребёнка.
+//
+// При переводе ребёнка из сада в сад по нему остаются договоры прежних учреждений,
+// поэтому договор без проверки организации выбирается неверно.
+//
+// Параметры:
+// ОрганизацияДоговора - СправочникСсылка.Организации - организация, указанная в договоре.
+// ОрганизацияРебенка - СправочникСсылка.Организации - текущая организация ребёнка;
+// пустая ссылка или Неопределено - отбор по организации не применяется.
+//
+// Возвращаемое значение:
+// Булево - Истина, если договор подходит; Ложь - если относится к другой организации.
+//
+Функция ОрганизацияДоговораПодходит(ОрганизацияДоговора, ОрганизацияРебенка)
+
+ Если НЕ ЗначениеЗаполнено(ОрганизацияРебенка) Тогда
+ Возврат Истина;
+ КонецЕсли;
+
+ Возврат ОрганизацияДоговора = ОрганизацияРебенка;
+
+КонецФункции
+
// Заполняет реквизиты строк расшифровки платежа по результатам разбора назначения.
// КОСГУ "000", проставленный типовой загрузкой реестров, заменяется принудительно;
// остальные заполненные значения не перезаписываются.
@@ -678,7 +732,8 @@
| Дети.Код КАК Код,
| Дети.Ссылка КАК Ссылка,
| Дети.Наименование КАК Наименование,
- | Дети.Контрагент КАК Контрагент
+ | Дети.Контрагент КАК Контрагент,
+ | Дети.Организация КАК Организация
|ИЗ
| Справочник.Дети КАК Дети
|ГДЕ
@@ -688,8 +743,12 @@
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
- Результат.Вставить(СокрЛП(Выборка.Код), Новый Структура("Ссылка, Наименование, Контрагент",
- Выборка.Ссылка, Выборка.Наименование, Выборка.Контрагент));
+ Ребенок = Новый Структура;
+ Ребенок.Вставить("Ссылка", Выборка.Ссылка);
+ Ребенок.Вставить("Наименование", Выборка.Наименование);
+ Ребенок.Вставить("Контрагент", Выборка.Контрагент);
+ Ребенок.Вставить("Организация", Выборка.Организация);
+ Результат.Вставить(СокрЛП(Выборка.Код), Ребенок);
КонецЦикла;
Возврат Результат;
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
index 136d7f6..7dc1313 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
@@ -11,6 +11,8 @@
Checked
Checked
Checked
+ Extended
+ Extended
Extended
@@ -28,8 +30,10 @@
PersonalComputer
Russian
Role.ПС_ОсновнаяРоль
- 1.0.3
+ 1.0.4
Language.Русский
+
+
TaxiEnableVersion8_2
Русский
@@ -52,6 +56,8 @@
CommonPicture.ОтменитьДействие
CommonPicture.ПовторитьДействие
CommonPicture.Сумма
+ CommonPicture.ПС_Лого_Родительская_Плата
+ CommonPicture.ПС_Заставка_Родительская_Плата
Role.ПС_ОсновнаяРоль
Role.БазовыеПраваБГУ
Role.ПС_ЧтениеРодительскойПлаты
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
index 7266f66..76c5480 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
@@ -22,6 +22,10 @@
Объект.Период
+
+ OnChange
+ ПериодПриИзменении
+
ПолеПериодРасширеннаяПодсказка
13
@@ -67,6 +71,10 @@
Объект.Организация
+
+ OnChange
+ ОрганизацияПриИзменении
+
ПолеОрганизацияРасширеннаяПодсказка
16
@@ -112,6 +120,10 @@
Объект.ИФО
+
+ OnChange
+ ИФОПриИзменении
+
ПолеИФОРасширеннаяПодсказка
19
@@ -157,6 +169,10 @@
Объект.Учреждение
+
+ OnChange
+ УчреждениеПриИзменении
+
ПолеУчреждениеРасширеннаяПодсказка
307
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
index 12738e6..9b1614f 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
@@ -22,6 +22,58 @@
#КонецОбласти
+#Область ОбработчикиСобытийЭлементовШапкиФормы
+
+// Обновляет таблицы пульта при изменении периода отбора.
+//
+// Параметры:
+// Элемент - ПолеФормы - изменённое поле отбора.
+//
+&НаКлиенте
+Процедура ПериодПриИзменении(Элемент)
+
+ ОбновитьТаблицыНаСервере();
+
+КонецПроцедуры
+
+// Обновляет таблицы пульта при изменении организации (ЦБ).
+//
+// Параметры:
+// Элемент - ПолеФормы - изменённое поле отбора.
+//
+&НаКлиенте
+Процедура ОрганизацияПриИзменении(Элемент)
+
+ ОбновитьТаблицыНаСервере();
+
+КонецПроцедуры
+
+// Обновляет таблицы пульта при изменении ИФО.
+//
+// Параметры:
+// Элемент - ПолеФормы - изменённое поле отбора.
+//
+&НаКлиенте
+Процедура ИФОПриИзменении(Элемент)
+
+ ОбновитьТаблицыНаСервере();
+
+КонецПроцедуры
+
+// Обновляет таблицы пульта при изменении учреждения (сада).
+//
+// Параметры:
+// Элемент - ПолеФормы - изменённое поле отбора.
+//
+&НаКлиенте
+Процедура УчреждениеПриИзменении(Элемент)
+
+ ОбновитьТаблицыНаСервере();
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДокументыПередачи
// Сужает таблицу принятий до принятий по выбранному документу передачи.
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Roles/ПС_ЗаписьРодительскойПлаты/Rights.rights b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Roles/ПС_ЗаписьРодительскойПлаты/Rights.rights
index 29e5a5a..d92b064 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Roles/ПС_ЗаписьРодительскойПлаты/Rights.rights
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Roles/ПС_ЗаписьРодительскойПлаты/Rights.rights
@@ -3,16 +3,19 @@
false
false
false
+
-
@@ -71,10 +123,6 @@
Read
true
-
- View
- true
-
Insert
true
@@ -95,6 +143,85 @@
UndoPosting
true
+
+ View
+ true
+
+
+ Edit
+ true
+
+
+ InteractiveSetDeletionMark
+ true
+
+
+ InteractiveClearDeletionMark
+ true
+
+
+ InteractiveDeleteMarked
+ true
+
+
+ InteractivePosting
+ true
+
+
+ InteractivePostingRegular
+ true
+
+
+ InteractiveUndoPosting
+ true
+
+
+ InteractiveChangeOfPosted
+ true
+
+
+ ReadDataHistory
+ true
+
+
+ ReadDataHistoryOfMissingData
+ true
+
+
+ UpdateDataHistory
+ true
+
+
+ UpdateDataHistoryOfMissingData
+ true
+
+
+ UpdateDataHistorySettings
+ true
+
+
+ UpdateDataHistoryVersionComment
+ true
+
+
+ ViewDataHistory
+ true
+
+
+ EditDataHistoryVersionComment
+ true
+
+
+ SwitchToDataHistoryVersion
+ true
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+