diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo
index b4f85b3..867abac 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/AccumulationRegisters/ПС_ВзаиморасчетыПоРодительскойПлате/ПС_ВзаиморасчетыПоРодительскойПлате.mdo
@@ -93,10 +93,10 @@
Учреждение
ru
- Учреждение-отправитель
+ Учреждение (сад)
- CatalogRef.Контрагенты
+ CatalogRef.Организации
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl
new file mode 100644
index 0000000..32e87a4
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/Module.bsl
@@ -0,0 +1,33 @@
+// ВнутренниеЭлектронныеДокументыБГУ: расширение.
+// Дополняет состав документов, обрабатываемых внутренним ЭДО БГУ, документами
+// учёта родительской платы: передачей поступивших платежей в учреждение и
+// принятием поступивших платежей из ЦБ.
+
+#Область ПрограммныйИнтерфейс
+
+// Определяет, обрабатывается ли учётный документ механизмом внутреннего ЭДО БГУ.
+// В типовой список типов БГУ документы расширения не входят, поэтому дополняем результат.
+//
+// Параметры:
+// ТипИсточника - Тип - тип ссылки или объекта учётного документа.
+//
+// Возвращаемое значение:
+// Булево - Истина, если документ обрабатывается внутренним ЭДО БГУ.
+//
+&Вместо("ЭтоВнутреннийДокументЭДО")
+Функция ПС_ЭтоВнутреннийДокументЭДО(ТипИсточника) Экспорт
+
+ Результат = ПродолжитьВызов(ТипИсточника);
+
+ Если НЕ Результат Тогда
+ Результат = ТипИсточника = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения")
+ ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения")
+ ИЛИ ТипИсточника = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ")
+ ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ");
+ КонецЕсли;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/ВнутренниеЭлектронныеДокументыБГУ.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/ВнутренниеЭлектронныеДокументыБГУ.mdo
new file mode 100644
index 0000000..f9e47ba
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутренниеЭлектронныеДокументыБГУ/ВнутренниеЭлектронныеДокументыБГУ.mdo
@@ -0,0 +1,17 @@
+
+
+ ВнутренниеЭлектронныеДокументыБГУ
+ Adopted
+
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+
+ true
+ true
+ true
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/Module.bsl
new file mode 100644
index 0000000..e04041a
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/Module.bsl
@@ -0,0 +1,57 @@
+// ВнутреннийЭДОПереопределяемый: расширение.
+// Адресация электронных извещений по учреждению (саду).
+
+#Область СлужебныеПроцедурыИФункции
+
+// Дополняет параметры нового электронного документа: электронное извещение по передаче
+// платежей адресуется учреждению-получателю, а не ЦБ.
+//
+// Маршрут подписания выбирается по ключу настройки внутреннего ЭДО
+// (организация + вид документа + команда печати), поэтому без адресации по саду
+// для всех садов получался бы один общий маршрут, и подписать извещение
+// руководителем конкретного сада было бы невозможно.
+//
+// Параметры:
+// ПараметрыДокумента - Структура - параметры открытия электронного документа,
+// см. ВнутреннийЭДОКлиентСервер.ПараметрыОткрытияЭлектронногоДокумента().
+//
+&После("ПриЗаполненииПараметровНовогоЭлектронногоДокумента")
+Процедура ПС_ПриЗаполненииПараметровНовогоЭлектронногоДокумента(ПараметрыДокумента)
+
+ УчетныйДокумент = ПараметрыДокумента.УчетныйДокумент;
+
+ Если ТипЗнч(УчетныйДокумент) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
+ УчетныйДокумент = УчетныйДокумент.Ссылка;
+ КонецЕсли;
+
+ Если ТипЗнч(УчетныйДокумент) = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
+ Учреждение = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетныйДокумент, "Учреждение").Учреждение;
+ Если ЗначениеЗаполнено(Учреждение) Тогда
+ ПараметрыДокумента.Организация = Учреждение;
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+// Дополняет получение организации учётного документа для проверок внутреннего ЭДО,
+// в том числе для запрета редактирования формы после завершения подписания:
+// для документа передачи организацией считается учреждение-получатель.
+//
+// Параметры:
+// Форма - ФормаКлиентскогоПриложения - форма учётного документа.
+// Источник - ДокументОбъект - учётный документ.
+// Организация - ОпределяемыйТип.Организация - организация учётного документа.
+// СтандартнаяОбработка - Булево - Истина, если организация берётся как Источник.Организация.
+//
+&После("ПриПолученииОрганизацииПоОбъекту")
+Процедура ПС_ПриПолученииОрганизацииПоОбъекту(Форма, Источник, Организация, СтандартнаяОбработка)
+
+ Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения")
+ И ЗначениеЗаполнено(Источник.Учреждение) Тогда
+ СтандартнаяОбработка = Ложь;
+ Организация = Источник.Учреждение;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/ВнутреннийЭДОПереопределяемый.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/ВнутреннийЭДОПереопределяемый.mdo
new file mode 100644
index 0000000..b365d59
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ВнутреннийЭДОПереопределяемый/ВнутреннийЭДОПереопределяемый.mdo
@@ -0,0 +1,17 @@
+
+
+ ВнутреннийЭДОПереопределяемый
+ Adopted
+
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+ Checked
+
+ true
+ true
+ true
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/Module.bsl
new file mode 100644
index 0000000..651932f
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/Module.bsl
@@ -0,0 +1,175 @@
+#Область ПрограммныйИнтерфейс
+
+// Вызывается из обработчика "ПриЗаписи" модулей объектов извещений внутреннего ЭДО.
+// Аннулирует электронные документы, печатная форма которых перестала соответствовать
+// данным учётного документа. Штатный перевод подписанного электронного документа
+// в неактуальные возможен только из состояния "Аннулирован".
+//
+// Параметры:
+// Источник - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения,
+// ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ - записываемый документ.
+// Отказ - Булево - признак отказа от записи документа.
+//
+Процедура ПС_АннулироватьЭлектронныеДокументыПриИзменении(Источник, Отказ) Экспорт
+
+ Ссылка = Источник.Ссылка;
+
+ Если Ссылка.Пустая() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Попытка
+ ПС_АннулироватьНеактуальныеЭлектронныеДокументы(Ссылка);
+ Исключение
+ ЗаписьЖурналаРегистрации(
+ НСтр("ru = 'Внутренний ЭДО извещений.Аннулирование при изменении документа'"),
+ УровеньЖурналаРегистрации.Ошибка,
+ Источник.Метаданные(),
+ Ссылка,
+ ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
+ КонецПопытки;
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Аннулирует актуальные подписанные электронные документы, печатная форма которых
+// отличается от печатной формы учётного документа на текущий момент.
+//
+// Параметры:
+// УчетныйДокумент - ДокументСсылка - извещение, данные которого были изменены.
+//
+Процедура ПС_АннулироватьНеактуальныеЭлектронныеДокументы(УчетныйДокумент)
+
+ ЭлектронныеДокументы = ВнутреннийЭДО.ЭлектронныеДокументыАктуальные(УчетныйДокумент);
+
+ СостояниеЗавершен = ПредопределенноеЗначение("Перечисление.СостоянияДокументовВнутреннегоЭДО.Завершен");
+ СостояниеТребуетсяУточнение = ПредопределенноеЗначение("Перечисление.СостоянияДокументовВнутреннегоЭДО.ТребуетсяУточнение");
+
+ Для Каждого СтрокаСписка Из ЭлектронныеДокументы Цикл
+
+ Если СтрокаСписка.Состояние <> СостояниеЗавершен
+ И СтрокаСписка.Состояние <> СостояниеТребуетсяУточнение Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ЭлектронныйДокумент = СтрокаСписка.ЭлектронныйДокумент;
+
+ Если НЕ ПС_ПечатнаяФормаОтличаетсяОтПодписанной(
+ УчетныйДокумент, ЭлектронныйДокумент, СтрокаСписка.ИдентификаторКомандыПечати) Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ПараметрыАннулирования = Новый Структура;
+ ПараметрыАннулирования.Вставить("УчетныйДокумент", УчетныйДокумент);
+ ПараметрыАннулирования.Вставить("ЭлектронныйДокумент", ЭлектронныйДокумент);
+ ПараметрыАннулирования.Вставить("ВидПодписи", ПС_ВидПодписиТекущегоПользователя(ЭлектронныйДокумент));
+ ПараметрыАннулирования.Вставить("Комментарий",
+ НСтр("ru = 'Автоматически аннулирован: изменены данные учётного документа'"));
+
+ ВнутреннийЭДО.АннулироватьЭлектронныйДокумент(ПараметрыАннулирования);
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Определяет, отличается ли сохранённая в электронном документе печатная форма
+// от печатной формы учётного документа на текущий момент.
+//
+// Параметры:
+// УчетныйДокумент - ДокументСсылка - извещение.
+// ЭлектронныйДокумент - ДокументСсылка.ВнутреннийЭлектронныйДокумент - электронный документ.
+// ИдентификаторКомандыПечати - Строка - идентификатор команды печати извещения.
+//
+// Возвращаемое значение:
+// Булево - Истина, если печатные формы различаются.
+//
+Функция ПС_ПечатнаяФормаОтличаетсяОтПодписанной(
+ УчетныйДокумент, ЭлектронныйДокумент, ИдентификаторКомандыПечати)
+
+ ОсновнойФайл = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлектронныйДокумент, "ОсновнойФайл").ОсновнойФайл;
+
+ Если НЕ ЗначениеЗаполнено(ОсновнойФайл) Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ДвоичныеДанныеСохраненнойФормы = РаботаСФайлами.ДвоичныеДанныеФайла(ОсновнойФайл, Ложь);
+
+ Если ДвоичныеДанныеСохраненнойФормы = Неопределено Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ПараметрыПечати = Новый Структура;
+ ПараметрыПечати.Вставить("УчетныйДокумент", УчетныйДокумент);
+ ПараметрыПечати.Вставить("ИдентификаторКомандыПечати", ИдентификаторКомандыПечати);
+
+ ВнутреннийЭДОПереопределяемый.ПриПолученииТабличногоДокументаАктуальногоДокумента(ПараметрыПечати);
+
+ ТабличныйДокументТекущий = ПС_ТабличныйДокументУчетногоДокумента(ПараметрыПечати);
+
+ Если ТабличныйДокументТекущий.ВысотаТаблицы = 0 Тогда
+ Возврат Ложь;
+ КонецЕсли;
+
+ ТабличныйДокументСохраненный = ВнутреннийЭДО.ТабличныйДокументИзДвоичныхДанныхАрхива(ДвоичныеДанныеСохраненнойФормы);
+
+ Возврат НЕ ВнутреннийЭДО.ТабличныеДокументыИдентичны(ТабличныйДокументСохраненный, ТабличныйДокументТекущий);
+
+КонецФункции
+
+// Формирует табличный документ печатной формы учётного документа в привилегированном режиме.
+//
+// Параметры:
+// ПараметрыПечати - Структура - параметры печати: УчетныйДокумент, ИдентификаторКомандыПечати.
+//
+// Возвращаемое значение:
+// ТабличныйДокумент - печатная форма учётного документа.
+//
+Функция ПС_ТабличныйДокументУчетногоДокумента(ПараметрыПечати)
+
+ // Печать учётного документа может обращаться к данным, недоступным пользователю,
+ // поэтому печатная форма формируется в привилегированном режиме
+ // с восстановлением исходного значения режима.
+ ТекущийПривилегированныйРежим = ПривилегированныйРежим();
+ УстановитьПривилегированныйРежим(Истина);
+
+ Попытка
+ ДвоичныеДанные = ВнутреннийЭДО.ДвоичныеДанныеУчетногоДокумента(ПараметрыПечати);
+ Исключение
+ УстановитьПривилегированныйРежим(ТекущийПривилегированныйРежим);
+ ВызватьИсключение;
+ КонецПопытки;
+
+ УстановитьПривилегированныйРежим(ТекущийПривилегированныйРежим);
+
+ Возврат ВнутреннийЭДО.ТабличныйДокументИзДвоичныхДанныхАрхива(ДвоичныеДанные);
+
+КонецФункции
+
+// Возвращает вид подписи текущего пользователя по маршруту электронного документа.
+// Если пользователь не является подписантом маршрута, возвращается пустая ссылка -
+// аннулирование в этом случае выполняется без отметки строки маршрута.
+//
+// Параметры:
+// ЭлектронныйДокумент - ДокументСсылка.ВнутреннийЭлектронныйДокумент - электронный документ.
+//
+// Возвращаемое значение:
+// ПеречислениеСсылка.ВидыЭлектронныхПодписейБГУ - вид подписи текущего пользователя.
+//
+Функция ПС_ВидПодписиТекущегоПользователя(ЭлектронныйДокумент)
+
+ СоставМаршрута = ВнутреннийЭДО.СоставМаршрутаПодписанияДокумента(ЭлектронныйДокумент);
+
+ СтрокиПодписанта = СоставМаршрута.НайтиСтроки(Новый Структура("Подписант", Пользователи.ТекущийПользователь()));
+
+ Если СтрокиПодписанта.Количество() > 0 Тогда
+ Возврат СтрокиПодписанта[0].ВидПодписи;
+ КонецЕсли;
+
+ Возврат ПредопределенноеЗначение("Перечисление.ВидыЭлектронныхПодписейБГУ.ПустаяСсылка");
+
+КонецФункции
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/ПС_ВнутреннийЭДОИзвещений.mdo
similarity index 61%
rename from 153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo
rename to 153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/ПС_ВнутреннийЭДОИзвещений.mdo
index 896612e..d5ce782 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ВнутреннийЭДОИзвещений/ПС_ВнутреннийЭДОИзвещений.mdo
@@ -1,9 +1,9 @@
-
- ПС_РаботаСКонтрагентами
+
+ ПС_ВнутреннийЭДОИзвещений
ru
- ПС Работа с контрагентами
+ ПС_Внутренний ЭДО извещений
true
true
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ИдентификаторыОбъектовЭДО/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ИдентификаторыОбъектовЭДО/Module.bsl
new file mode 100644
index 0000000..ab2fd83
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ИдентификаторыОбъектовЭДО/Module.bsl
@@ -0,0 +1,238 @@
+#Область ПрограммныйИнтерфейс
+
+// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
+// по документам внутреннего ЭДО, созданным в расширении конфигурации.
+//
+// Настройки внутреннего ЭДО ключуются идентификатором объекта метаданных, который библиотека
+// заполняет только по объектам основной конфигурации. Записи по документам расширения создаются
+// этой процедурой, а если обновление данных справочника пометило их на удаление, восстанавливаются.
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
+// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
+// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
+//
+Функция ПС_ОбеспечитьИдентификаторыДокументовЭДО() Экспорт
+
+ ПолныеИменаДокументов = Новый Массив;
+ ПолныеИменаДокументов.Добавить("Документ.ПС_ПередачаПоступившихПлатежейВУчреждения");
+ ПолныеИменаДокументов.Добавить("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ");
+
+ СуществующиеЗаписи = ПС_СуществующиеЗаписи(ПолныеИменаДокументов);
+
+ Результат = Новый Соответствие;
+
+ Для Каждого ПолноеИмя Из ПолныеИменаДокументов Цикл
+ СуществующаяЗапись = СуществующиеЗаписи.Получить(ПолноеИмя);
+ Результат.Вставить(ПолноеИмя, ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя,
+ СуществующаяЗапись.Ссылка, СуществующаяЗапись.ТребуетсяВосстановление));
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+#КонецОбласти
+
+#Область СлужебныеПроцедурыИФункции
+
+// Обеспечивает наличие записи справочника идентификаторов по полному имени объекта метаданных.
+//
+// Параметры:
+// ПолноеИмя - Строка - полное имя объекта метаданных;
+// Идентификатор - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись справочника;
+// ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
+//
+// Возвращаемое значение:
+// СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
+//
+Функция ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя, Идентификатор, ТребуетсяВосстановление)
+
+ Если ЗначениеЗаполнено(Идентификатор) И НЕ ТребуетсяВосстановление Тогда
+ Возврат Идентификатор;
+ КонецЕсли;
+
+ Если ЗначениеЗаполнено(Идентификатор) Тогда
+ ЗаписьИдентификатора = Идентификатор.ПолучитьОбъект();
+ Иначе
+ ЗаписьИдентификатора = Справочники.ИдентификаторыОбъектовМетаданных.СоздатьЭлемент();
+ КонецЕсли;
+
+ ЗаполнитьЗначенияСвойств(ЗаписьИдентификатора, ПС_СвойстваЗаписиИдентификатора(ПолноеИмя));
+ // Создание записей справочника предусмотрено только механизмом обновления данных справочника,
+ // поэтому запись выполняется в режиме загрузки данных.
+ ЗаписьИдентификатора.ОбменДанными.Загрузка = Истина;
+ ЗаписьИдентификатора.Записать();
+
+ Возврат ЗаписьИдентификатора.Ссылка;
+
+КонецФункции
+
+// Возвращает записи справочника идентификаторов по полным именам объектов метаданных,
+// включая записи, испорченные механизмом обновления данных справочника.
+//
+// Параметры:
+// ПолныеИмена - Массив из Строка - полные имена объектов метаданных.
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение - найденные записи по полным именам объектов метаданных:
+// * Ключ - Строка - полное имя объекта метаданных;
+// * Значение - Структура:
+// ** Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись;
+// ** ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
+//
+Функция ПС_СуществующиеЗаписи(ПолныеИмена)
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка,
+ | ИдентификаторыОбъектовМетаданных.ПолноеИмя КАК ПолноеИмя,
+ | ИдентификаторыОбъектовМетаданных.ПометкаУдаления КАК ПометкаУдаления
+ |ИЗ
+ | Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
+ |ГДЕ
+ | ИдентификаторыОбъектовМетаданных.ПолноеИмя В (&ПолныеИмена)
+ | ИЛИ ИдентификаторыОбъектовМетаданных.ПолноеИмя ПОДОБНО &ШаблонИзмененногоИмени
+ |УПОРЯДОЧИТЬ ПО
+ | ИдентификаторыОбъектовМетаданных.ПометкаУдаления,
+ | ИдентификаторыОбъектовМетаданных.ПолноеИмя";
+ Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИмена);
+ Запрос.УстановитьПараметр("ШаблонИзмененногоИмени", "?%");
+
+ Результат = Новый Соответствие;
+
+ Для Каждого ПолноеИмя Из ПолныеИмена Цикл
+ Запись = Новый Структура("Ссылка, ТребуетсяВосстановление",
+ Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), Ложь);
+ Результат.Вставить(ПолноеИмя, Запись);
+ КонецЦикла;
+
+ Выборка = Запрос.Выполнить().Выбрать();
+
+ Пока Выборка.Следующий() Цикл
+
+ Запись = Результат.Получить(Выборка.ПолноеИмя);
+
+ Если Запись <> Неопределено И НЕ Выборка.ПометкаУдаления Тогда
+ Запись.Ссылка = Выборка.Ссылка;
+ Запись.ТребуетсяВосстановление = Ложь;
+ Продолжить;
+ КонецЕсли;
+
+ Если НЕ Выборка.ПометкаУдаления Тогда
+ Продолжить;
+ КонецЕсли;
+
+ ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка);
+
+ КонецЦикла;
+
+ Возврат Результат;
+
+КонецФункции
+
+// Отмечает запись справочника идентификаторов как испорченную механизмом обновления данных справочника.
+//
+// Параметры:
+// Результат - Соответствие из КлючИЗначение - см. ПС_СуществующиеЗаписи;
+// Выборка - ВыборкаИзРезультатаЗапроса - запись справочника, помеченная на удаление.
+//
+Процедура ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка)
+
+ Для Каждого КлючИЗначение Из Результат Цикл
+
+ Запись = КлючИЗначение.Значение;
+
+ Если ЗначениеЗаполнено(Запись.Ссылка)
+ ИЛИ СтрНайти(Выборка.ПолноеИмя, КлючИЗначение.Ключ) = 0 Тогда
+ Продолжить;
+ КонецЕсли;
+
+ Запись.Ссылка = Выборка.Ссылка;
+ Запись.ТребуетсяВосстановление = Истина;
+
+ Возврат;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+// Возвращает значения реквизитов записи справочника идентификаторов объектов метаданных.
+//
+// Параметры:
+// ПолноеИмя - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ".
+//
+// Возвращаемое значение:
+// Структура - значения реквизитов записи:
+// * Наименование - Строка - представление идентификатора объекта метаданных;
+// * Имя - Строка - имя объекта метаданных;
+// * Синоним - Строка - синоним объекта метаданных;
+// * ПолныйСиноним - Строка - полный синоним объекта метаданных;
+// * ПолноеИмя - Строка - полное имя объекта метаданных;
+// * Родитель - СправочникСсылка.ИдентификаторыОбъектовМетаданных - группа коллекции;
+// * ПорядокКоллекции - Число - порядок коллекции объектов метаданных;
+// * БезДанных - Булево - Ложь;
+// * ЗначениеПустойСсылки - Произвольный - пустая ссылка объекта метаданных;
+// * КлючОбъектаМетаданных - ХранилищеЗначения - ключ объекта метаданных;
+// * ИмяПредопределенныхДанных - Строка - пустая строка;
+// * ПометкаУдаления - Булево - Ложь.
+//
+Функция ПС_СвойстваЗаписиИдентификатора(ПолноеИмя)
+
+ ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
+
+ ПозицияТочки = СтрНайти(ПолноеИмя, ".");
+ ИмяБазовогоТипа = Лев(ПолноеИмя, ПозицияТочки - 1);
+ ИмяТипаСсылки = ИмяБазовогоТипа + "Ссылка." + ОбъектМетаданных.Имя;
+
+ ОписаниеТипаСсылки = Новый ОписаниеТипов(ИмяТипаСсылки);
+
+ Синоним = ?(ЗначениеЗаполнено(ОбъектМетаданных.Синоним), ОбъектМетаданных.Синоним, ОбъектМетаданных.Имя);
+ СвойстваКоллекции = ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа);
+
+ Свойства = Новый Структура;
+ Свойства.Вставить("Наименование", Синоним + " (" + СвойстваКоллекции.СинонимВЕдЧисле + ")");
+ Свойства.Вставить("Имя", ОбъектМетаданных.Имя);
+ Свойства.Вставить("Синоним", Синоним);
+ Свойства.Вставить("ПолныйСиноним", СвойстваКоллекции.СинонимВЕдЧисле + ". " + Синоним);
+ Свойства.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
+ Свойства.Вставить("Родитель",
+ Справочники.ИдентификаторыОбъектовМетаданных.ПолучитьСсылку(СвойстваКоллекции.Идентификатор));
+ Свойства.Вставить("ПорядокКоллекции", Число(СвойстваКоллекции.ПорядокКоллекции));
+ Свойства.Вставить("БезДанных", Ложь);
+ Свойства.Вставить("ЗначениеПустойСсылки", ОписаниеТипаСсылки.ПривестиЗначение(Неопределено));
+ Свойства.Вставить("КлючОбъектаМетаданных", Новый ХранилищеЗначения(Тип(ИмяТипаСсылки)));
+ Свойства.Вставить("ИмяПредопределенныхДанных", "");
+ Свойства.Вставить("ПометкаУдаления", Ложь);
+
+ Возврат Свойства;
+
+КонецФункции
+
+// Возвращает свойства коллекции объектов метаданных по имени базового типа.
+//
+// Параметры:
+// ИмяБазовогоТипа - Строка - имя базового типа объектов метаданных, например "Документ".
+//
+// Возвращаемое значение:
+// СтрокаТаблицыЗначений - свойства коллекции объектов метаданных.
+//
+Функция ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа)
+
+ СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(Ложь);
+
+ Отбор = Новый Структура("ИмяВЕдЧисле", ИмяБазовогоТипа);
+ НайденныеСвойства = СвойстваКоллекций.НайтиСтроки(Отбор);
+
+ Если НайденныеСвойства.Количество() = 0 Тогда
+ ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
+ НСтр("ru = 'Не найдены свойства коллекции объектов метаданных ""%1"".'"),
+ ИмяБазовогоТипа);
+ КонецЕсли;
+
+ Возврат НайденныеСвойства[0];
+
+КонецФункции
+
+#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ИдентификаторыОбъектовЭДО/ПС_ИдентификаторыОбъектовЭДО.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_ИдентификаторыОбъектовЭДО/ПС_ИдентификаторыОбъектовЭДО.mdo
new file mode 100644
index 0000000..a0fc4c4
--- /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
deleted file mode 100644
index 1fca46d..0000000
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
+++ /dev/null
@@ -1,172 +0,0 @@
-// Поиск контрагента, соответствующего организации, по ИНН.
-//
-// Универсальная функция для обоих документов (Передача задолженности в ЦБ
-// и Принятие задолженности от учреждения). Реквизиты ЦБ и УчреждениеОтправитель
-// имеют тип CatalogRef.Контрагенты, а в связанных документах-основаниях
-// соответствующие организации имеют тип CatalogRef.Организации. Чтобы
-// обеспечить соответствие, ищем элемент справочника Контрагенты с тем же ИНН.
-//
-// Параметры:
-// Организация - CatalogRef.Организации - организация, для которой ищем контрагента.
-// ИмяПоляПодсказки - Строка - имя реквизита формы/документа, которое остаётся
-// незаполненным (для сообщения пользователю). Например,
-// "ЦБ (получатель)" или "Учреждение-отправитель".
-//
-// Возвращаемое значение:
-// CatalogRef.Контрагенты - если найден ровно один контрагент с ИНН организации.
-// Пустая ссылка - в остальных случаях (организация не заполнена / нет ИНН / нет
-// контрагента / найдено несколько). При этом пользователю
-// выводится сообщение с описанием причины.
-//
-#Область ПрограммныйИнтерфейс
-
-Функция КонтрагентПоОрганизации(Организация, ИмяПоляПодсказки = "") Экспорт
-
- ПустойКонтрагент = Справочники.Контрагенты.ПустаяСсылка();
- Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Контрагент",
- "Поле """ + ИмяПоляПодсказки + """");
-
- Если НЕ ЗначениеЗаполнено(Организация) Тогда
- ТекстСообщения = "Не указана организация для поиска контрагента.|"
- + Подсказка + " не заполнен - выберите контрагента вручную.";
- СообщениеПользователю = Новый СообщениеПользователю;
- СообщениеПользователю.Текст = ТекстСообщения;
- СообщениеПользователю.Сообщить();
- Возврат ПустойКонтрагент;
- КонецЕсли;
-
- ИНН = Организация.ИНН;
- Если НЕ ЗначениеЗаполнено(ИНН) Тогда
- Представление = Строка(Организация);
- ТекстСообщения = "У организации (" + Представление + ") не заполнен ИНН.|"
- + Подсказка + " не заполнен - выберите контрагента вручную.";
- СообщениеПользователю = Новый СообщениеПользователю;
- СообщениеПользователю.Текст = ТекстСообщения;
- СообщениеПользователю.Сообщить();
- Возврат ПустойКонтрагент;
- КонецЕсли;
-
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | Контрагенты.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.Контрагенты КАК Контрагенты
- |ГДЕ
- | Контрагенты.ИНН = &ИНН
- | И НЕ Контрагенты.ПометкаУдаления";
- Запрос.УстановитьПараметр("ИНН", ИНН);
-
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- Представление = Строка(Организация);
- ТекстСообщения = "Контрагент с ИНН " + ИНН + " (организация: " + Представление + ") не найден.|"
- + Подсказка + " не заполнен - выберите контрагента вручную.";
- СообщениеПользователю = Новый СообщениеПользователю;
- СообщениеПользователю.Текст = ТекстСообщения;
- СообщениеПользователю.Сообщить();
- Возврат ПустойКонтрагент;
- КонецЕсли;
-
- Выборка = РезультатЗапроса.Выбрать();
- Выборка.Следующий();
- ПервыйНайденный = Выборка.Ссылка;
-
- Если Выборка.Следующий() Тогда
- Представление = Строка(Организация);
- ТекстСообщения = "Найдено несколько контрагентов с ИНН " + ИНН + " (организация: " + Представление + ").|"
- + Подсказка + " не заполнен - выберите контрагента вручную.";
- СообщениеПользователю = Новый СообщениеПользователю;
- СообщениеПользователю.Текст = ТекстСообщения;
- СообщениеПользователю.Сообщить();
- Возврат ПустойКонтрагент;
- КонецЕсли;
-
- Возврат ПервыйНайденный;
-
-КонецФункции
-
-// Обёртка для документов учёта родительской платы: возвращает контрагента ЦБ
-// по константе ОрганизацияЦентрализованнаяБухгалтерия.
-//
-// Параметры:
-// ИмяПоляПодсказки - Строка - имя реквизита формы/документа для сообщения.
-//
-// Возвращаемое значение:
-// CatalogRef.Контрагенты - контрагент, соответствующий организации ЦБ,
-// либо пустая ссылка (с сообщением пользователю).
-//
-Функция КонтрагентЦБПоУмолчанию(ИмяПоляПодсказки = "ЦБ (получатель)") Экспорт
-
- ОрганизацияЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
- Возврат КонтрагентПоОрганизации(ОрганизацияЦБ, ИмяПоляПодсказки);
-
-КонецФункции
-
-// Поиск организации, соответствующей контрагенту, по ИНН.
-//
-// Операция, обратная КонтрагентПоОрганизации. В документах начисления и передачи
-// учреждение (сад) представлено ссылкой на справочник Организации, а в документах
-// принятия, в регистре взаиморасчётов и в отборах пульта управления - ссылкой на
-// справочник Контрагенты. Сопоставление выполняется по ИНН.
-//
-// Параметры:
-// Контрагент - CatalogRef.Контрагенты - контрагент, для которого ищем организацию.
-// ИмяПоляПодсказки - Строка - имя реквизита для сообщения пользователю.
-//
-// Возвращаемое значение:
-// CatalogRef.Организации - если найдена ровно одна организация с ИНН контрагента.
-// Пустая ссылка - в остальных случаях (нет ИНН / нет организации / найдено несколько).
-// Причина выводится пользователю.
-//
-Функция ОрганизацияПоКонтрагенту(Контрагент, ИмяПоляПодсказки = "") Экспорт
-
- ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();
- Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
- Возврат ПустаяОрганизация;
- КонецЕсли;
-
- Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Организация",
- "Поле """ + ИмяПоляПодсказки + """");
-
- // Сопоставление выполняем запросом по ИНН: прямое чтение реквизита заимствованного
- // справочника Контрагенты в расширении не разбирается анализатором.
- Запрос = Новый Запрос;
- Запрос.Текст =
- "ВЫБРАТЬ
- | Организации.Ссылка КАК Ссылка
- |ИЗ
- | Справочник.Организации КАК Организации
- | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
- | ПО Контрагенты.ИНН = Организации.ИНН
- |ГДЕ
- | Контрагенты.Ссылка = &Контрагент
- | И НЕ Организации.ПометкаУдаления";
- Запрос.УстановитьПараметр("Контрагент", Контрагент);
-
- Представление = Строка(Контрагент);
-
- РезультатЗапроса = Запрос.Выполнить();
- Если РезультатЗапроса.Пустой() Тогда
- ОбщегоНазначения.СообщитьПользователю(
- "Не найдена организация с тем же ИНН, что у контрагента (" + Представление + ").|"
- + Подсказка + " не определена - отбор по учреждению не применён.");
- Возврат ПустаяОрганизация;
- КонецЕсли;
-
- Выборка = РезультатЗапроса.Выбрать();
- Выборка.Следующий();
- ПервыйНайденный = Выборка.Ссылка;
-
- Если Выборка.Следующий() Тогда
- ОбщегоНазначения.СообщитьПользователю(
- "Найдено несколько организаций с тем же ИНН, что у контрагента (" + Представление + ").|"
- + Подсказка + " не определена - отбор по учреждению не применён.");
- Возврат ПустаяОрганизация;
- КонецЕсли;
-
- Возврат ПервыйНайденный;
-
-КонецФункции
-
-#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
index 7d720e1..ab77ab9 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РазборПлатежейПоРодительскойПлате/Module.bsl
@@ -1,3 +1,4 @@
+ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
// ПС_РазборПлатежейПоРодительскойПлате: идентификация ребёнка и его контрагента по назначению платежа
// в строках табличной части "Расшифровка платежа" документа КассовоеПоступление (БГУ 2.0).
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
index e7f7f16..495268f 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl
@@ -113,8 +113,8 @@
Иначе
- // ЦБ передаёт поступившие платежи: печатается сторона отправителя,
- // отдельное извещение на каждое учреждение документа.
+ // ЦБ передаёт поступившие платежи: печатается сторона отправителя.
+ // Документ адресный, поэтому извещение одно - по учреждению документа.
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаПоступившихПлатежейВУчреждения_Извещение0504805";
Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель");
Если Макет = Неопределено Тогда
@@ -123,30 +123,19 @@
Возврат ТабличныйДокумент;
КонецЕсли;
- Учреждения = УчрежденияДокументаПередачи(ДокументОбъект);
- Если Учреждения.Количество() = 0 Тогда
+ Если НЕ ЗначениеЗаполнено(ДокументОбъект.Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю(
- "Печатная форма извещения не сформирована: в табличной части ""Задолженность"""
- + " не заполнены учреждения.");
+ "Печатная форма извещения не сформирована: не заполнено учреждение (получатель).");
Возврат ТабличныйДокумент;
КонецЕсли;
- Для Каждого Учреждение Из Учреждения Цикл
+ ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация,
+ ДокументОбъект.Учреждение,
+ "Передача поступивших платежей по родительской плате за "
+ + Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ + ". Основание: " + Строка(ДокументСсылка) + ".");
- ПроводкиУчреждения = ПроводкиПоУчреждению(Проводки, Учреждение);
- Если ПроводкиУчреждения.Количество() = 0 Тогда
- Продолжить;
- КонецЕсли;
-
- ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация,
- Учреждение,
- "Передача поступивших платежей по родительской плате за "
- + Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
- + ". Основание: " + Строка(ДокументСсылка) + ".");
-
- ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, ПроводкиУчреждения);
-
- КонецЦикла;
+ ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки);
КонецЕсли;
@@ -239,64 +228,6 @@
КонецПроцедуры
-// Возвращает список учреждений, присутствующих в табличной части "Задолженность" документа передачи.
-//
-// Параметры:
-// ДокументОбъект - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения - документ передачи платежей.
-//
-// Возвращаемое значение:
-// Массив из СправочникСсылка.Контрагенты - уникальные учреждения в порядке появления в табличной части.
-//
-Функция УчрежденияДокументаПередачи(ДокументОбъект)
-
- Учреждения = Новый Массив;
- Для Каждого СтрокаЗадолженности Из ДокументОбъект.Задолженность Цикл
- Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
- Продолжить;
- КонецЕсли;
- Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
- Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
- КонецЕсли;
- КонецЦикла;
-
- Возврат Учреждения;
-
-КонецФункции
-
-// Возвращает проводки документа, относящиеся к указанному учреждению.
-//
-// Учреждение определяется по субконто кредита счёта расчётов (304.04), поэтому проверяются
-// все позиции субконто.
-//
-// Параметры:
-// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения.
-// Учреждение - СправочникСсылка.Контрагенты - учреждение, по которому отбираются проводки.
-//
-// Возвращаемое значение:
-// ТаблицаЗначений - проводки указанного учреждения, колонки как у Проводки.
-//
-Функция ПроводкиПоУчреждению(Проводки, Учреждение)
-
- Результат = Проводки.Скопировать();
- СтрокиДляУдаления = Новый Массив;
-
- Для Каждого Проводка Из Результат Цикл
- Если Проводка.СубконтоКт1 = Учреждение
- ИЛИ Проводка.СубконтоКт2 = Учреждение
- ИЛИ Проводка.СубконтоКт3 = Учреждение Тогда
- Продолжить;
- КонецЕсли;
- СтрокиДляУдаления.Добавить(Проводка);
- КонецЦикла;
-
- Для Каждого Проводка Из СтрокиДляУдаления Цикл
- Результат.Удалить(Проводка);
- КонецЦикла;
-
- Возврат Результат;
-
-КонецФункции
-
// Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок".
//
// Параметры:
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
index 8b55e71..20c4ff4 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
@@ -22,7 +22,7 @@
true
ПС_
- 8.3.14
+ 8.3.24
Customization
ManagedApplication
PersonalComputer
@@ -53,11 +53,15 @@
CommonPicture.Сумма
Role.ПС_ОсновнаяРоль
Role.БазовыеПраваБГУ
- CommonModule.ПС_РаботаСКонтрагентами
CommonModule.ПС_УчетРодительскойПлаты
CommonModule.ПС_РазборПлатежейПоРодительскойПлате
CommonModule.ВариантыОтчетовПереопределяемый
+ CommonModule.ВнутренниеЭлектронныеДокументыБГУ
+ CommonModule.ВнутреннийЭДОПереопределяемый
+ CommonModule.ПС_ВнутреннийЭДОИзвещений
+ CommonModule.ПС_ИдентификаторыОбъектовЭДО
SettingsStorage.ХранилищеВариантовОтчетов
+ DefinedType.ОснованиеВнутреннегоЭлектронногоДокумента
CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента
Catalog.Контрагенты
Catalog.Договоры
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
index 5e2da5a..859c548 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Form.form
@@ -245,6 +245,37 @@
UserCmds
Auto
+
+ КнопкаИнициализироватьИдентификаторыЭДО
+ 529
+
+ ru
+ Инициализировать идентификаторы ЭДО
+
+ true
+ true
+
+ true
+
+
+ ИнициализироватьИдентификаторыЭДОРасширеннаяПодсказка
+ 530
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualButton
+ Form.Command.ИнициализироватьИдентификаторыЭДО
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
true
true
@@ -473,6 +504,51 @@
Normal
+
+ ТаблицаДокументыПередачиУчреждение
+ 526
+
+ ru
+ Учреждение (сад)
+
+ true
+ true
+
+ true
+
+
+ ДокументыПередачи.Учреждение
+
+
+ ТаблицаДокументыПередачиТаблицаДокументыПередачиУчреждениеРасширеннаяПодсказка
+ 528
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ТаблицаДокументыПередачиТаблицаДокументыПередачиУчреждениеКонтекстноеМеню
+ 527
+ true
+
+ InputField
+ Auto
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
ТаблицаДокументыПередачиСуммаДокумента
379
@@ -1197,7 +1273,6 @@
true
true
true
- true
true
Normal
@@ -3735,6 +3810,23 @@
true
+
+ Учреждение
+
+ ru
+ Учреждение (сад)
+
+ 67
+
+ CatalogRef.Организации
+
+
+ true
+
+
+ true
+
+
ДокументыПринятия
@@ -3826,23 +3918,6 @@
true
-
- Учреждение
-
- ru
- Учреждение
-
- 28
-
- CatalogRef.Контрагенты
-
-
- true
-
-
- true
-
-
ИФО
@@ -3935,23 +4010,6 @@
true
-
- ПередачаСальдо
-
- ru
- Начальное сальдо
-
- 54
-
- Boolean
-
-
- true
-
-
- true
-
-
ЦБ
@@ -3960,7 +4018,7 @@
65
- CatalogRef.Контрагенты
+ CatalogRef.Организации
true
@@ -4225,7 +4283,7 @@
47
- CatalogRef.Контрагенты
+ CatalogRef.Организации
true
@@ -4548,6 +4606,22 @@
+
+ ИнициализироватьИдентификаторыЭДО
+
+ ru
+ Инициализировать идентификаторы ЭДО
+
+ 4
+
+
+
+ ИнициализироватьИдентификаторыЭДО
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
index ec1bef8..376c813 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/Forms/Форма/Module.bsl
@@ -85,6 +85,18 @@
КонецПроцедуры
+// Обеспечивает наличие идентификаторов объектов метаданных по документам внутреннего ЭДО.
+//
+// Команда нужна для разовой проверки механизма внутреннего ЭДО БГУ: без идентификаторов
+// документы расширения не попадают в настройки внутреннего ЭДО (см. ПС_ИдентификаторыОбъектовЭДО).
+//
+&НаКлиенте
+Процедура ИнициализироватьИдентификаторыЭДО(Команда)
+
+ ИнициализироватьИдентификаторыЭДОНаСервере();
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -101,58 +113,52 @@
КонецЕсли;
Отборы = ОтборыДокументовНаСервере();
- Если Отборы = Неопределено Тогда
- ОчиститьТаблицы();
- Возврат;
- КонецЕсли;
ЗаполнитьНачисления(Отборы.СадОрганизация);
- ЗаполнитьДокументыПередачи(Отборы.ЦБОрганизация, Отборы.СадКонтрагент);
- ЗаполнитьДокументыПринятия(Отборы.ЦБКонтрагент, Отборы.СадОрганизация);
- ЗаполнитьСверку(Отборы.ЦБОрганизация, Отборы.СадКонтрагент);
+ ЗаполнитьДокументыПередачи(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
+ ЗаполнитьДокументыПринятия(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
+ ЗаполнитьСверку(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
ЗаполнитьТаблицуОстатков();
ЗаполнитьКассовыеПоступления();
КонецПроцедуры
-// Приводит отборы формы (ЦБ и учреждение) к значениям, в терминах которых они хранятся
-// в документах.
+// Обеспечивает наличие идентификаторов объектов метаданных по документам внутреннего ЭДО
+// и выводит пользователю результат проверки.
//
-// Отборы формы заданы в терминах ЦБ: Организация - это ЦБ (справочник Организации),
-// Учреждение - сад (справочник Контрагенты). В документах те же стороны хранятся
-// по-разному: документ передачи платежей хранит ЦБ как Организацию, а сад - как
-// Контрагента в табличной части "Задолженность"; документ принятия - наоборот.
-// Приводим значения отбора к типам, которые есть в документах, сопоставлением по ИНН.
+&НаСервере
+Процедура ИнициализироватьИдентификаторыЭДОНаСервере()
+
+ ОбъектОбработки = РеквизитФормыВЗначение("Объект");
+ Идентификаторы = ОбъектОбработки.ПС_ИнициализироватьИдентификаторыОбъектовЭДО();
+
+ ТекстыИдентификаторов = Новый Массив;
+
+ Для Каждого КлючИЗначение Из Идентификаторы Цикл
+ ТекстыИдентификаторов.Добавить(КлючИЗначение.Ключ + " -> " + Строка(КлючИЗначение.Значение));
+ КонецЦикла;
+
+ Сообщение = Новый СообщениеПользователю;
+ Сообщение.Текст = "Идентификаторы объектов метаданных внутреннего ЭДО: "
+ + СтрСоединить(ТекстыИдентификаторов, "; ");
+ Сообщение.Сообщить();
+
+КонецПроцедуры
+
+// Возвращает отборы формы в терминах, в которых они хранятся в документах.
+//
+// ЦБ и учреждение (сад) хранятся в документах передачи и принятия организациями,
+// поэтому значения отборов передаются в запросы как есть.
//
// Возвращаемое значение:
-// Структура - отборы документов: ЦБОрганизация, ЦБКонтрагент, СадОрганизация,
-// СадКонтрагент. Неопределено - отбор не удалось сопоставить с данными
-// документов (причина уже выведена пользователю).
+// Структура - отборы документов: ЦБОрганизация, СадОрганизация.
//
&НаСервере
Функция ОтборыДокументовНаСервере()
Отборы = Новый Структура;
- Отборы.Вставить("ЦБОрганизация");
- Отборы.Вставить("ЦБКонтрагент");
- Отборы.Вставить("СадОрганизация");
- Отборы.Вставить("СадКонтрагент");
-
- Если ЗначениеЗаполнено(Объект.Организация) Тогда
- Отборы.ЦБОрганизация = Объект.Организация;
- Отборы.ЦБКонтрагент = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Объект.Организация, "Организация (ЦБ)");
- Если НЕ ЗначениеЗаполнено(Отборы.ЦБКонтрагент) Тогда
- Возврат Неопределено;
- КонецЕсли;
- КонецЕсли;
-
- Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
- Отборы.СадКонтрагент = Объект.Учреждение;
- Отборы.СадОрганизация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Объект.Учреждение, "Учреждение (сад)");
- Если НЕ ЗначениеЗаполнено(Отборы.СадОрганизация) Тогда
- Возврат Неопределено;
- КонецЕсли;
- КонецЕсли;
+ Отборы.Вставить("ЦБОрганизация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено));
+ Отборы.Вставить("СадОрганизация", ?(ЗначениеЗаполнено(Объект.Учреждение), Объект.Учреждение, Неопределено));
Возврат Отборы;
@@ -224,23 +230,24 @@
// Таблица показывает документы передачи поступивших платежей в учреждения (документ ЦБ).
//
// Параметры:
-// ЦБОрганизация - CatalogRef.Организации - ЦБ в виде организации (документ передачи
-// хранит ЦБ в реквизите "Организация"); Неопределено - отбор не задан.
-// СадКонтрагент - CatalogRef.Контрагенты - учреждение (сад) в табличной части
-// "Задолженность"; Неопределено - отбор по учреждению не задан.
+// ЦБОрганизация - CatalogRef.Организации - ЦБ (документ передачи хранит ЦБ
+// в реквизите "Организация"); Неопределено - отбор не задан.
+// СадОрганизация - CatalogRef.Организации - учреждение (сад) в реквизите
+// "Учреждение"; Неопределено - отбор по учреждению не задан.
//
&НаСервере
-Процедура ЗаполнитьДокументыПередачи(ЦБОрганизация, СадКонтрагент)
+Процедура ЗаполнитьДокументыПередачи(ЦБОрганизация, СадОрганизация)
ДокументыПередачи.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
- "ВЫБРАТЬ РАЗЛИЧНЫЕ
+ "ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Дата КАК Дата,
| Документы.Номер КАК Номер,
| Документы.Организация КАК Организация,
+ | Документы.Учреждение КАК Учреждение,
| Документы.ИФО КАК ИФО,
| Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
@@ -248,15 +255,13 @@
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Документы
- | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК Строки
- | ПО Документы.Ссылка = Строки.Ссылка
|ГДЕ
| Документы.Период >= &НачалоПериода
| И Документы.Период <= &КонецПериода
| И (&ЦБОрганизация = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.Организация = &ЦБОрганизация)
- | И (&СадКонтрагент = НЕОПРЕДЕЛЕНО
- | ИЛИ Строки.Учреждение = &СадКонтрагент)
+ | И (&СадОрганизация = НЕОПРЕДЕЛЕНО
+ | ИЛИ Документы.Учреждение = &СадОрганизация)
| И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
@@ -265,7 +270,7 @@
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБОрганизация", ЦБОрганизация);
- Запрос.УстановитьПараметр("СадКонтрагент", СадКонтрагент);
+ Запрос.УстановитьПараметр("СадОрганизация", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
@@ -279,16 +284,15 @@
// Таблица показывает документы принятия поступивших платежей из ЦБ (документ учреждения).
//
// Параметры:
-// ЦБКонтрагент - CatalogRef.Контрагенты - ЦБ в виде контрагента (документ принятия
-// хранит ЦБ в реквизите "ЦБ"); Неопределено - отбор не задан.
-// СадОрганизация - CatalogRef.Организации - учреждение (сад) в виде организации
-// (документ принятия хранит сад в реквизите "Организация");
+// ЦБОрганизация - CatalogRef.Организации - ЦБ (документ принятия хранит ЦБ
+// в реквизите "ЦБ"); Неопределено - отбор не задан.
+// СадОрганизация - CatalogRef.Организации - учреждение (сад) в реквизите "Организация";
// Неопределено - отбор по учреждению не задан.
// ДокументПередачи - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ
// передачи, по которому отбираются принятия; Неопределено - отбор не задан.
//
&НаСервере
-Процедура ЗаполнитьДокументыПринятия(ЦБКонтрагент, СадОрганизация, ДокументПередачи = Неопределено)
+Процедура ЗаполнитьДокументыПринятия(ЦБОрганизация, СадОрганизация, ДокументПередачи = Неопределено)
ДокументыПринятия.Очистить();
@@ -325,7 +329,7 @@
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("Организация", СадОрганизация);
- Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент);
+ Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачи);
@@ -346,12 +350,8 @@
Процедура ЗаполнитьПринятияПоПередачеНаСервере(ДокументПередачи)
Отборы = ОтборыДокументовНаСервере();
- Если Отборы = Неопределено Тогда
- ДокументыПринятия.Очистить();
- Возврат;
- КонецЕсли;
- ЗаполнитьДокументыПринятия(Отборы.ЦБКонтрагент, Отборы.СадОрганизация, ДокументПередачи);
+ ЗаполнитьДокументыПринятия(Отборы.ЦБОрганизация, Отборы.СадОрганизация, ДокументПередачи);
КонецПроцедуры
@@ -360,13 +360,13 @@
// реквизит ДокументПередачи документа принятия.
//
// Параметры:
-// ЦБОрганизация - CatalogRef.Организации - ЦБ в виде организации (документ передачи
-// хранит ЦБ в реквизите "Организация"); Неопределено - отбор не задан.
-// СадКонтрагент - CatalogRef.Контрагенты - учреждение (сад) в табличной части
-// "Задолженность"; Неопределено - отбор по учреждению не задан.
+// ЦБОрганизация - CatalogRef.Организации - ЦБ (документ передачи хранит ЦБ
+// в реквизите "Организация"); Неопределено - отбор не задан.
+// СадОрганизация - CatalogRef.Организации - учреждение (сад) в реквизите
+// "Учреждение"; Неопределено - отбор по учреждению не задан.
//
&НаСервере
-Процедура ЗаполнитьСверку(ЦБОрганизация, СадКонтрагент)
+Процедура ЗаполнитьСверку(ЦБОрганизация, СадОрганизация)
Сверка.Очистить();
@@ -386,10 +386,11 @@
| ДокументПередачи
|;
|
- |ВЫБРАТЬ РАЗЛИЧНЫЕ
+ |ВЫБРАТЬ
| Передача.Ссылка КАК ДокументПередачи,
| Передача.Период КАК Период,
| Передача.Организация КАК ЦБ,
+ | Передача.Учреждение КАК Сад,
| Передача.СуммаДокумента КАК СуммаПередано,
| ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК СуммаПринято,
| Передача.СуммаДокумента - ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК Расхождение,
@@ -398,8 +399,6 @@
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Передача
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПринято КАК ВТПринято
| ПО Передача.Ссылка = ВТПринято.ДокументПередачи
- | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК Строки
- | ПО Передача.Ссылка = Строки.Ссылка
|ГДЕ
| НЕ Передача.ПометкаУдаления
| И Передача.Период >= &НачалоПериода
@@ -407,17 +406,17 @@
| И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.Организация = &ЦБ)
| И (&Сад = НЕОПРЕДЕЛЕНО
- | ИЛИ Строки.Учреждение = &Сад)
+ | ИЛИ Передача.Учреждение = &Сад)
| И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Передача.Период,
- | Передача.Организация";
+ | Передача.Учреждение";
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация);
- Запрос.УстановитьПараметр("Сад", СадКонтрагент);
+ Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ObjectModule.bsl
index 4d76197..308d8d8 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ObjectModule.bsl
@@ -1,3 +1,24 @@
// Обработка ПС_УправлениеРасчетамиПоРодительскойПлате.
// Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl).
-// Модуль объекта оставлен пустым намеренно.
+
+#Область ПрограммныйИнтерфейс
+
+#Если Сервер Или ВнешнееСоединение Или ТолстыйКлиентОбычноеПриложение Тогда
+
+// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
+// по документам внутреннего ЭДО, созданным в расширении конфигурации.
+//
+// Возвращаемое значение:
+// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
+// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
+// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
+//
+Функция ПС_ИнициализироватьИдентификаторыОбъектовЭДО() Экспорт
+
+ Возврат ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
+
+КонецФункции
+
+#КонецЕсли
+
+#КонецОбласти
\ No newline at end of file
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
index ecc8ba7..c00de17 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DataProcessors/ПС_УправлениеРасчетамиПоРодительскойПлате/ПС_УправлениеРасчетамиПоРодительскойПлате.mdo
@@ -38,7 +38,7 @@
Учреждение (сад)
- CatalogRef.Контрагенты
+ CatalogRef.Организации
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DefinedTypes/ОснованиеВнутреннегоЭлектронногоДокумента/ОснованиеВнутреннегоЭлектронногоДокумента.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DefinedTypes/ОснованиеВнутреннегоЭлектронногоДокумента/ОснованиеВнутреннегоЭлектронногоДокумента.mdo
new file mode 100644
index 0000000..f8a0e73
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/DefinedTypes/ОснованиеВнутреннегоЭлектронногоДокумента/ОснованиеВнутреннегоЭлектронногоДокумента.mdo
@@ -0,0 +1,21 @@
+
+
+
+
+
+ ОснованиеВнутреннегоЭлектронногоДокумента
+ Adopted
+
+ Checked
+
+
+ Extended
+ DocumentRef.ПС_ПередачаПоступившихПлатежейВУчреждения
+
+
+ Extended
+ DocumentRef.ПС_ПринятиеПоступившихПлатежейИзЦБ
+
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl
index 124c63b..9f89306 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/КассовоеПоступление/ObjectModule.bsl
@@ -51,25 +51,17 @@
Возврат;
КонецЕсли;
- // Сады детей загружаем одним запросом, контрагента сада ищем по одному разу на сад:
- // обращение к базе внутри цикла по строкам недопустимо.
+ // Сады детей загружаем одним запросом: обращение к базе внутри цикла по строкам недопустимо.
ОрганизацииСадов = ПС_ОрганизацииСадовДетей(Дети);
- КонтрагентыСадов = Новый Соответствие;
Для Каждого СтрокаРасшифровки Из СтрокиОплаты Цикл
ОрганизацияСада = ОрганизацииСадов[СтрокаРасшифровки.Ребенок];
- КонтрагентСада = КонтрагентыСадов[ОрганизацияСада];
- Если КонтрагентСада = Неопределено Тогда
- КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияСада, "Учреждение");
- КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада);
- КонецЕсли;
-
Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
Движение.Период = Дата;
Движение.Организация = Организация;
- Движение.Учреждение = КонтрагентСада;
+ Движение.Учреждение = ОрганизацияСада;
Движение.Плательщик = СтрокаРасшифровки.Контрагент;
Движение.Ребенок = СтрокаРасшифровки.Ребенок;
Движение.Договор = СтрокаРасшифровки.Договор;
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form
index da0cc52..3fbe579 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Form.form
@@ -51,6 +51,47 @@
Normal
+
+ Учреждение
+ 110
+ true
+ true
+
+ true
+
+
+ Объект.Учреждение
+
+
+ УчреждениеРасширеннаяПодсказка
+ 112
+ Label
+ true
+ true
+
+ Left
+
+
+
+ УчреждениеКонтекстноеМеню
+ 111
+ true
+
+ InputField
+ Enter
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
Период
16
@@ -364,47 +405,6 @@
true
-
- ЗадолженностьУчреждение
- 103
- true
- true
-
- true
-
-
- Объект.Задолженность.Учреждение
-
-
- ЗадолженностьЗадолженностьУчреждениеРасширеннаяПодсказка
- 105
- Label
- true
- true
-
- Left
-
-
-
- ЗадолженностьЗадолженностьУчреждениеКонтекстноеМеню
- 104
- true
-
- InputField
- Auto
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- Normal
-
-
ЗадолженностьГруппаКонтрагента
92
@@ -1298,6 +1298,10 @@
OnCreateAtServer
ПриСозданииНаСервере
+
+ NotificationProcessing
+ ОбработкаОповещения
+
true
true
true
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl
index 466c0e9..39ca6ce 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/Forms/ФормаДокумента/Module.bsl
@@ -20,6 +20,9 @@
Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли;
+ // Состояние внутреннего ЭДО (подсистема БГУ): организация документа уже определена.
+ ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+
КонецПроцедуры
&НаСервере
@@ -27,6 +30,8 @@
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
+ ОбщегоНазначенияБГУ.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
КонецПроцедуры
&НаКлиенте
@@ -57,6 +62,25 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
+
+ // Обновляет гиперссылку состояния внутреннего ЭДО.
+ ОбщегоНазначенияБГУКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовШапкиФормы
+
+&НаКлиенте
+Процедура Подключаемый_ДекорацияБГУНажатие(Элемент, СтандартнаяОбработка)
+
+ ОбщегоНазначенияБГУКлиент.ДекорацияНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗадолженность
@@ -111,28 +135,30 @@
Возврат;
КонецЕсли;
- // По каждому учреждению табличной части открывается форма нового документа принятия:
- // строки подбираются по саду документа, записывает документы пользователь.
- ОрганизацииСадов = ОрганизацииСадовНаСервере();
- Если ОрганизацииСадов.Количество() = 0 Тогда
+ // Документ передачи адресный: открывается форма одного документа принятия по учреждению
+ // документа. Строки подбираются по саду, документ записывает пользователь.
+ Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
- СообщениеПользователю.Текст = "В табличной части ""Задолженность"" не заполнены учреждения (получатели).";
+ СообщениеПользователю.Текст = "Не заполнено учреждение (получатель) документа передачи.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
- Для Каждого ОрганизацияСада Из ОрганизацииСадов Цикл
+ ПараметрыФормы = Новый Структура;
+ ПараметрыФормы.Вставить("ДокументПередачи", Объект.Ссылка);
+ ПараметрыФормы.Вставить("ОрганизацияСада", Объект.Учреждение);
- ПараметрыФормы = Новый Структура;
- ПараметрыФормы.Вставить("ДокументПередачи", Объект.Ссылка);
- ПараметрыФормы.Вставить("ОрганизацияСада", ОрганизацияСада);
+ ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента",
+ ПараметрыФормы,
+ ЭтотОбъект,
+ Строка(Объект.Ссылка));
- ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента",
- ПараметрыФормы,
- ЭтотОбъект,
- Строка(Объект.Ссылка) + ":" + Строка(ОрганизацияСада));
+КонецПроцедуры
- КонецЦикла;
+&НаКлиенте
+Процедура Подключаемый_ВыполнитьКомандуБГУ(Команда)
+
+ ОбщегоНазначенияБГУКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
@@ -173,10 +199,15 @@
Возврат;
КонецЕсли;
+ Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда
+ ОбщегоНазначения.СообщитьПользователю(
+ "Заполнение невозможно: не заполнено учреждение (получатель).");
+ Возврат;
+ КонецЕсли;
+
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
- | Остатки.Учреждение КАК Учреждение,
| Остатки.Плательщик КАК Контрагент,
| Остатки.Договор КАК Договор,
| Остатки.Ребенок КАК Ребенок,
@@ -187,12 +218,12 @@
|ИЗ
| РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.Остатки(
| &МоментВремени,
- | Организация = &Организация) КАК Остатки
+ | Организация = &Организация
+ | И Учреждение = &Учреждение) КАК Остатки
|ГДЕ
| Остатки.СуммаОстаток <> 0
- |
+
|УПОРЯДОЧИТЬ ПО
- | Остатки.Учреждение,
| Остатки.Плательщик,
| Остатки.Договор";
// Поступившие платежи собираются на границу конца дня документа: кассовые поступления
@@ -200,6 +231,7 @@
// в остатки не попадали.
Запрос.УстановитьПараметр("МоментВремени", КонецДня(Объект.Дата) + 1);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
+ Запрос.УстановитьПараметр("Учреждение", Объект.Учреждение);
Выборка = Запрос.Выполнить().Выбрать();
@@ -215,7 +247,6 @@
ЗначенияКФО.Вставить(Выборка.КФО, Истина);
НоваяСтрока = Объект.Задолженность.Добавить();
- НоваяСтрока.Учреждение = Выборка.Учреждение;
НоваяСтрока.Контрагент = Выборка.Контрагент;
НоваяСтрока.Договор = Выборка.Договор;
НоваяСтрока.Ребенок = Выборка.Ребенок;
@@ -275,35 +306,4 @@
КонецПроцедуры
-// Возвращает организации садов (учреждений), представленных в табличной части "Задолженность".
-// Учреждение хранится в документе контрагентом, поэтому организация ищется по ИНН.
-//
-// Возвращаемое значение:
-// Массив из СправочникСсылка.Организации - организации получателей в порядке появления в табличной части.
-//
-&НаСервере
-Функция ОрганизацииСадовНаСервере()
-
- Учреждения = Новый Массив;
- Для Каждого СтрокаЗадолженности Из Объект.Задолженность Цикл
- Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
- Продолжить;
- КонецЕсли;
- Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
- Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
- КонецЕсли;
- КонецЦикла;
-
- Организации = Новый Массив;
- Для Каждого Учреждение Из Учреждения Цикл
- Организация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Учреждение, "Получатель (учреждение)");
- Если ЗначениеЗаполнено(Организация) Тогда
- Организации.Добавить(Организация);
- КонецЕсли;
- КонецЦикла;
-
- Возврат Организации;
-
-КонецФункции
-
#КонецОбласти
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl
index 79f8095..c715820 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ManagerModule.bsl
@@ -21,6 +21,46 @@
КонецФункции
+// Заполняет список команд печати документа.
+//
+// Параметры:
+// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
+//
+Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
+
+ КомандаПечати = КомандыПечати.Добавить();
+ КомандаПечати.МенеджерПечати = "Документ.ПС_ПередачаПоступившихПлатежейВУчреждения";
+ КомандаПечати.Идентификатор = "Извещение0504805";
+ КомандаПечати.Представление = "Извещение (ф. 0504805)";
+ КомандаПечати.Порядок = 1;
+
+КонецПроцедуры
+
+// Формирует печатные формы документа для подсистемы БСП "Печать".
+//
+// Параметры:
+// МассивОбъектов - Массив из ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - печатаемые документы.
+// ПараметрыПечати - Структура - параметры печати.
+// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
+// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
+// ПараметрыВывода - Структура - параметры вывода.
+//
+Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
+
+ Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого ДокументСсылка Из МассивОбъектов Цикл
+ УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
+ КоллекцияПечатныхФорм,
+ "Извещение0504805",
+ "Извещение (ф. 0504805)",
+ ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
#КонецЕсли
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl
index ead9bd1..d6e5f22 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl
@@ -55,13 +55,13 @@
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
- Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = СтрокаЗадолженности.Учреждение;
+ Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = Учреждение;
// Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом.
ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход();
ДвижениеПС.Период = Дата;
ДвижениеПС.Организация = Организация;
- ДвижениеПС.Учреждение = СтрокаЗадолженности.Учреждение;
+ ДвижениеПС.Учреждение = Учреждение;
ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
@@ -104,6 +104,18 @@
КонецПроцедуры
+Процедура ПриЗаписи(Отказ)
+
+ Если ОбменДанными.Загрузка Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Изменение данных подписанного извещения обесценивает его электронный документ:
+ // расходящиеся электронные документы аннулируются.
+ ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
+
+КонецПроцедуры
+
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
@@ -114,16 +126,14 @@
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
КонецЕсли;
+ Если НЕ ЗначениеЗаполнено(Учреждение) Тогда
+ ОбщегоНазначения.СообщитьПользователю("Не заполнено учреждение (получатель)", , "Учреждение", "Объект", Отказ);
+ КонецЕсли;
+
Если Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
- Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
- ОбщегоНазначения.СообщитьПользователю(
- "Не заполнено учреждение в строке табличной части ""Задолженность"".",
- , "Задолженность", "Объект", Отказ);
- Прервать;
- КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен КПС строки табличной части ""Задолженность""."
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ПС_ПередачаПоступившихПлатежейВУчреждения.mdo
index 5995bb3..850ce83 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
@@ -178,6 +178,21 @@
Use
Use
+
+ Учреждение
+
+ ru
+ Получатель (учреждение)
+
+
+ CatalogRef.Организации
+
+
+
+
+ Use
+ Use
+
ФормаДокумента
@@ -282,20 +297,6 @@
Use
Use
-
- Учреждение
-
- ru
- Получатель (учреждение)
-
-
- CatalogRef.Контрагенты
-
-
-
- Use
- Use
-
ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl
index 0fc5819..abee674 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/Forms/ФормаДокумента/Module.bsl
@@ -36,11 +36,14 @@
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
- Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
+ Объект.ЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли;
КонецЕсли;
+ // Состояние внутреннего ЭДО (подсистема БГУ): организация документа уже определена.
+ ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);
+
КонецПроцедуры
&НаСервере
@@ -48,6 +51,8 @@
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
+ ОбщегоНазначенияБГУ.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
+
КонецПроцедуры
&НаКлиенте
@@ -78,10 +83,25 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
+
+ // Обновляет гиперссылку состояния внутреннего ЭДО (подсистема БГУ).
+ ОбщегоНазначенияБГУКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
+
+КонецПроцедуры
+
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
+&НаКлиенте
+Процедура Подключаемый_ДекорацияБГУНажатие(Элемент, СтандартнаяОбработка)
+
+ ОбщегоНазначенияБГУКлиент.ДекорацияНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
+
+КонецПроцедуры
+
&НаКлиенте
Процедура ДокументПередачиПриИзменении(Элемент)
@@ -147,6 +167,13 @@
КонецПроцедуры
+&НаКлиенте
+Процедура Подключаемый_ВыполнитьКомандуБГУ(Команда)
+
+ ОбщегоНазначенияБГУКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl
index 774f7df..6b681ab 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ManagerModule.bsl
@@ -21,6 +21,46 @@
КонецФункции
+// Заполняет список команд печати документа.
+//
+// Параметры:
+// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
+//
+Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
+
+ КомандаПечати = КомандыПечати.Добавить();
+ КомандаПечати.МенеджерПечати = "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
+ КомандаПечати.Идентификатор = "Извещение0504805";
+ КомандаПечати.Представление = "Извещение (ф. 0504805)";
+ КомандаПечати.Порядок = 1;
+
+КонецПроцедуры
+
+// Формирует печатные формы документа для подсистемы БСП "Печать".
+//
+// Параметры:
+// МассивОбъектов - Массив из ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемые документы.
+// ПараметрыПечати - Структура - параметры печати.
+// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
+// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
+// ПараметрыВывода - Структура - параметры вывода.
+//
+Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
+
+ Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
+ Возврат;
+ КонецЕсли;
+
+ Для Каждого ДокументСсылка Из МассивОбъектов Цикл
+ УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
+ КоллекцияПечатныхФорм,
+ "Извещение0504805",
+ "Извещение (ф. 0504805)",
+ ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
+ КонецЦикла;
+
+КонецПроцедуры
+
#КонецОбласти
#КонецЕсли
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl
index 8cfe99a..e34a9ef 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl
@@ -35,9 +35,9 @@
ИФО = РеквизитыПередачи.ИФО;
КонецЕсли;
- // Отправитель (ЦБ) определяется по организации документа передачи: в документе передачи
- // ЦБ хранится организацией, а в документе сада - контрагентом, сопоставляем по ИНН.
- ЦБ = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(РеквизитыПередачи.Организация, "Отправитель (ЦБ)");
+ // Отправитель (ЦБ) определяется по организации документа передачи:
+ // в документе передачи и в документе сада ЦБ хранится организацией.
+ ЦБ = РеквизитыПередачи.Организация;
// Строки подбираются по саду документа: сад задаётся реквизитом "Организация".
// Если сад ещё не указан, строки заполняются командой формы после его выбора.
@@ -125,6 +125,18 @@
КонецПроцедуры
+Процедура ПриЗаписи(Отказ)
+
+ Если ОбменДанными.Загрузка Тогда
+ Возврат;
+ КонецЕсли;
+
+ // Изменение данных подписанного извещения обесценивает его электронный документ:
+ // расходящиеся электронные документы аннулируются.
+ ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
+
+КонецПроцедуры
+
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
@@ -198,13 +210,6 @@
Возврат;
КонецЕсли;
- // В документе передачи сад хранится контрагентом (как в регистре взаиморасчётов),
- // а в документе сада - организацией, поэтому сопоставляем по ИНН.
- КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Организация, "Учреждение");
- Если НЕ ЗначениеЗаполнено(КонтрагентСада) Тогда
- Возврат;
- КонецЕсли;
-
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
@@ -218,9 +223,9 @@
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи
|ГДЕ
| СтрокиПередачи.Ссылка = &ДокументПередачи
- | И СтрокиПередачи.Учреждение = &Учреждение";
+ | И СтрокиПередачи.Ссылка.Учреждение = &Учреждение";
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачиСсылка);
- Запрос.УстановитьПараметр("Учреждение", КонтрагентСада);
+ Запрос.УстановитьПараметр("Учреждение", Организация);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo
index ace4a31..96f1c1f 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ПС_ПринятиеПоступившихПлатежейИзЦБ.mdo
@@ -55,7 +55,7 @@
Отправитель (ЦБ)
- CatalogRef.Контрагенты
+ CatalogRef.Организации