diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
new file mode 100644
index 0000000..8bd2655
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl
@@ -0,0 +1,102 @@
+// Поиск контрагента, соответствующего организации, по ИНН.
+//
+// Универсальная функция для обоих документов (Передача задолженности в ЦБ
+// и Принятие задолженности от учреждения). Реквизиты ЦБ и УчреждениеОтправитель
+// имеют тип CatalogRef.Контрагенты, а в связанных документах-основаниях
+// соответствующие организации имеют тип CatalogRef.Организации. Чтобы
+// обеспечить соответствие, ищем элемент справочника Контрагенты с тем же ИНН.
+//
+// Параметры:
+// Организация - CatalogRef.Организации - организация, для которой ищем контрагента.
+// ИмяПоляПодсказки - Строка - имя реквизита формы/документа, которое остаётся
+// незаполненным (для сообщения пользователю). Например,
+// "ЦБ (получатель)" или "Учреждение-отправитель".
+//
+// Возвращаемое значение:
+// CatalogRef.Контрагенты - если найден ровно один контрагент с ИНН организации.
+// Пустая ссылка - в остальных случаях (организация не заполнена / нет ИНН / нет
+// контрагента / найдено несколько). При этом пользователю
+// выводится сообщение с описанием причины.
+//
+Функция КонтрагентПоОрганизации(Организация, ИмяПоляПодсказки = "") Экспорт
+
+ ПустойКонтрагент = Справочники.Контрагенты.ПустаяСсылка();
+ Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Контрагент",
+ "Поле """ + ИмяПоляПодсказки + """");
+
+ Если НЕ ЗначениеЗаполнено(Организация) Тогда
+ ТекстСообщения = "Не указана организация для поиска контрагента.|"
+ + Подсказка + " не заполнен - выберите контрагента вручную.";
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = ТекстСообщения;
+ СообщениеПользователю.Сообщить();
+ Возврат ПустойКонтрагент;
+ КонецЕсли;
+
+ ИНН = Организация.ИНН;
+ Если НЕ ЗначениеЗаполнено(ИНН) Тогда
+ Представление = Строка(Организация);
+ ТекстСообщения = "У организации (" + Представление + ") не заполнен ИНН.|"
+ + Подсказка + " не заполнен - выберите контрагента вручную.";
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = ТекстСообщения;
+ СообщениеПользователю.Сообщить();
+ Возврат ПустойКонтрагент;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | Контрагенты.Ссылка КАК Ссылка
+ |ИЗ
+ | Справочник.Контрагенты КАК Контрагенты
+ |ГДЕ
+ | Контрагенты.ИНН = &ИНН
+ | И НЕ Контрагенты.ПометкаУдаления";
+ Запрос.УстановитьПараметр("ИНН", ИНН);
+
+ РезультатЗапроса = Запрос.Выполнить();
+ Если РезультатЗапроса.Пустой() Тогда
+ Представление = Строка(Организация);
+ ТекстСообщения = "Контрагент с ИНН " + ИНН + " (организация: " + Представление + ") не найден.|"
+ + Подсказка + " не заполнен - выберите контрагента вручную.";
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = ТекстСообщения;
+ СообщениеПользователю.Сообщить();
+ Возврат ПустойКонтрагент;
+ КонецЕсли;
+
+ Выборка = РезультатЗапроса.Выбрать();
+ Выборка.Следующий();
+ ПервыйНайденный = Выборка.Ссылка;
+
+ Если Выборка.Следующий() Тогда
+ Представление = Строка(Организация);
+ ТекстСообщения = "Найдено несколько контрагентов с ИНН " + ИНН + " (организация: " + Представление + ").|"
+ + Подсказка + " не заполнен - выберите контрагента вручную.";
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = ТекстСообщения;
+ СообщениеПользователю.Сообщить();
+ Возврат ПустойКонтрагент;
+ КонецЕсли;
+
+ Возврат ПервыйНайденный;
+
+КонецФункции
+
+// Обёртка для документов учёта родительской платы: возвращает контрагента ЦБ
+// по константе ОрганизацияЦентрализованнаяБухгалтерия.
+//
+// Параметры:
+// ИмяПоляПодсказки - Строка - имя реквизита формы/документа для сообщения.
+//
+// Возвращаемое значение:
+// CatalogRef.Контрагенты - контрагент, соответствующий организации ЦБ,
+// либо пустая ссылка (с сообщением пользователю).
+//
+Функция КонтрагентЦБПоУмолчанию(ИмяПоляПодсказки = "ЦБ (получатель)") Экспорт
+
+ ОрганизацияЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
+ Возврат КонтрагентПоОрганизации(ОрганизацияЦБ, ИмяПоляПодсказки);
+
+КонецФункции
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo
new file mode 100644
index 0000000..aa3bc5e
--- /dev/null
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo
@@ -0,0 +1,9 @@
+
+
+ ПС_РаботаСКонтрагентами
+
+ ru
+ ПС Работа с контрагентами
+
+ true
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
index 07f25d7..6d2f638 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo
@@ -46,6 +46,7 @@
CommonPicture.УдалитьИнформация
Role.ПС_ОсновнаяРоль
Role.БазовыеПраваБГУ
+ CommonModule.ПС_РаботаСКонтрагентами
CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента
Catalog.Контрагенты
Catalog.Договоры
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
index 779fc98..242e339 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form
@@ -263,7 +263,7 @@
UsualGroup
- Auto
+ AlwaysHorizontal
Auto
true
true
@@ -317,7 +317,7 @@
СуммаДокумента
16
true
- true
+ false
true
@@ -366,6 +366,10 @@
Объект.ДокументНачисления
+
+ OnChange
+ ДокументНачисленияПриИзменении
+
ДокументНачисленияРасширеннаяПодсказка
21
@@ -816,6 +820,10 @@
Left
true
+
+ OnChange
+ ЗадолженностьПриИзменении
+
ЗадолженностьСтрокаПоиска
32
@@ -1000,6 +1008,58 @@
UserCmds
Auto
+
+ ПросмотрБухгалтерскихЗаписей
+ 75
+ true
+ true
+
+ true
+
+
+ ФормаПросмотрБухгалтерскихЗаписейРасширеннаяПодсказка
+ 76
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ПросмотрБухгалтерскихЗаписей
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
+
+ СоздатьПринятиеЗадолженностиНаОсновании
+ 77
+ true
+ true
+
+ true
+
+
+ ФормаСоздатьПринятиеЗадолженностиНаОснованииРасширеннаяПодсказка
+ 78
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.СоздатьПринятиеЗадолженностиНаОсновании
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
Left
true
@@ -1050,6 +1110,38 @@
+
+ ПросмотрБухгалтерскихЗаписей
+
+ ru
+ Просмотр бухгалтерских записей
+
+ 2
+
+
+
+ ПросмотрБухгалтерскихЗаписей
+
+
+
+
+ СоздатьПринятиеЗадолженностиНаОсновании
+
+ ru
+ Создать принятие на основании
+
+ 3
+
+
+
+ ПС_СоздатьПринятиеЗадолженностиНаОсновании
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
index 9232801..9bd8bdf 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Module.bsl
@@ -1,5 +1,28 @@
// ПС_ПередачаЗадолженностиВЦБ: модуль формы документа.
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ Основание = Неопределено;
+ Если Параметры.Свойство("Основание", Основание)
+ И ТипЗнч(Основание) = Тип("ДокументСсылка.НачислениеРодительскойПлаты") Тогда
+ Объект.ДокументНачисления = Основание;
+ ЗаполнитьПоДокументуНачисленияНаСервере(Основание);
+ КонецЕсли;
+
+ // Дефолт ЦБ получателя из константы БГУ 2.0 (поиск контрагента по ИНН организации ЦБ).
+ Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
+ Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбработчикиКомандФормы
&НаКлиенте
@@ -10,6 +33,60 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ПросмотрБухгалтерскихЗаписей(Команда)
+
+ ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ПС_СоздатьПринятиеЗадолженностиНаОсновании(Команда)
+
+ Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = "Сначала запишите и проведите документ передачи.";
+ СообщениеПользователю.Сообщить();
+ Возврат;
+ КонецЕсли;
+
+ Если НЕ Объект.Проведен Тогда
+ СообщениеПользователю = Новый СообщениеПользователю;
+ СообщениеПользователю.Текст = "Перед созданием принятия документ передачи должен быть проведён.";
+ СообщениеПользователю.Сообщить();
+ Возврат;
+ КонецЕсли;
+
+ ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка);
+ ОткрытьФорму("Документ.ПС_ПринятиеЗадолженностиОтУчреждения.Форма.ФормаДокумента",
+ ПараметрыФормы,
+ ЭтотОбъект);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовФормы
+
+&НаКлиенте
+Процедура ДокументНачисленияПриИзменении(Элемент)
+
+ Если ЗначениеЗаполнено(Объект.ДокументНачисления) Тогда
+ ЗаполнитьПоДокументуНачисленияНаСервере(Объект.ДокументНачисления);
+ Иначе
+ Объект.Задолженность.Очистить();
+ Объект.СуммаДокумента = 0;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗадолженностьПриИзменении(Элемент)
+
+ Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -21,4 +98,92 @@
КонецФункции
+&НаСервере
+Процедура ЗаполнитьПоДокументуНачисленияНаСервере(ДокументНачисленияСсылка)
+
+ Если НЕ ЗначениеЗаполнено(ДокументНачисленияСсылка) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | НачислениеРодительскойПлаты.Организация КАК Организация,
+ | НачислениеРодительскойПлаты.ИФО КАК ИФО,
+ | НачислениеРодительскойПлаты.Ответственный КАК Ответственный,
+ | НачислениеРодительскойПлаты.НачалоПериода КАК НачалоПериода,
+ | НачислениеРодительскойПлаты.Дата КАК ДатаДокумента
+ |ИЗ
+ | Документ.НачислениеРодительскойПлаты КАК НачислениеРодительскойПлаты
+ |ГДЕ
+ | НачислениеРодительскойПлаты.Ссылка = &Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | НачислениеРодительскойПлатыНачисления.Контрагент КАК Контрагент,
+ | НачислениеРодительскойПлатыНачисления.ДоговорКонтрагента КАК Договор,
+ | НачислениеРодительскойПлатыНачисления.Ребенок КАК Ребенок,
+ | НачислениеРодительскойПлатыНачисления.ИДСтроки КАК ИДСтроки,
+ | НачислениеРодительскойПлатыНачисления.Сумма КАК Сумма
+ |ИЗ
+ | Документ.НачислениеРодительскойПлаты.Начисления КАК НачислениеРодительскойПлатыНачисления
+ |ГДЕ
+ | НачислениеРодительскойПлатыНачисления.Ссылка = &Ссылка";
+ Запрос.УстановитьПараметр("Ссылка", ДокументНачисленияСсылка);
+
+ Результаты = Запрос.ВыполнитьПакет();
+
+ ВыборкаШапка = Результаты[0].Выбрать();
+ Если НЕ ВыборкаШапка.Следующий() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Объект.Организация = ВыборкаШапка.Организация;
+ Объект.ИФО = ВыборкаШапка.ИФО;
+ Объект.Ответственный = ВыборкаШапка.Ответственный;
+ Объект.ДокументНачисления = ДокументНачисленияСсылка;
+
+ Если ЗначениеЗаполнено(ВыборкаШапка.НачалоПериода) Тогда
+ Объект.Период = ВыборкаШапка.НачалоПериода;
+ Иначе
+ Объект.Период = НачалоМесяца(ВыборкаШапка.ДатаДокумента);
+ КонецЕсли;
+
+ Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
+
+ Объект.Задолженность.Очистить();
+ Объект.СуммаДокумента = 0;
+
+ ВыборкаСтроки = Результаты[1].Выбрать();
+ Пока ВыборкаСтроки.Следующий() Цикл
+
+ НоваяСтрока = Объект.Задолженность.Добавить();
+ НоваяСтрока.Контрагент = ВыборкаСтроки.Контрагент;
+ НоваяСтрока.Договор = ВыборкаСтроки.Договор;
+ НоваяСтрока.Ребенок = ВыборкаСтроки.Ребенок;
+ НоваяСтрока.ИДСтроки = ВыборкаСтроки.ИДСтроки;
+ НоваяСтрока.Сумма = ВыборкаСтроки.Сумма;
+
+ Объект.СуммаДокумента = Объект.СуммаДокумента + ВыборкаСтроки.Сумма;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
+
+ ПараметрыФормы = Новый Структура;
+ Отбор = Новый Структура("Регистратор", ДокументСсылка);
+ ПараметрыФормы.Вставить("Отбор", Отбор);
+
+ ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
+ ПараметрыФормы,
+ ЭтотОбъект,
+ УникальныйИдентификатор);
+
+КонецПроцедуры
+
#КонецОбласти
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ManagerModule.bsl
index 82ba04d..772089a 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ManagerModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ManagerModule.bsl
@@ -6,25 +6,6 @@
#Область ПрограммныйИнтерфейс
-// Регистрирует команды создания на основании в подменю форм документов-оснований.
-//
-// Параметры:
-// КомандыСоздатьНаОсновании - ТаблицаЗначений - состав колонок см. в документации БСП.
-// Параметры - Структура - параметры формы.
-//
-Процедура ДобавитьКомандыСоздатьНаОсновании(КомандыСоздатьНаОсновании, Параметры) Экспорт
-
- Если ПравоДоступа("Добавление", Метаданные.Документы.ПС_ПередачаЗадолженностиВЦБ) Тогда
-
- КомандаСоздатьНаОсновании = КомандыСоздатьНаОсновании.Добавить();
- КомандаСоздатьНаОсновании.Идентификатор = Метаданные.Документы.ПС_ПередачаЗадолженностиВЦБ.ПолноеИмя();
- КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Передача задолженности в ЦБ'");
- КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
-
- КонецЕсли;
-
-КонецПроцедуры
-
// Формирует табличный документ извещения (ф. 0504805, ред. 103н).
// Вызывается из модуля формы документа кнопкой "Печать".
//
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
index da9db67..74bc181 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl
@@ -5,47 +5,59 @@
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.НачислениеРодительскойПлаты") Тогда
- ЗаполнитьНаОснованииНачисления(ДанныеЗаполнения);
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | НачислениеРодительскойПлаты.Организация КАК Организация,
+ | НачислениеРодительскойПлаты.ИФО КАК ИФО,
+ | НачислениеРодительскойПлаты.Ответственный КАК Ответственный,
+ | НачислениеРодительскойПлаты.НачалоПериода КАК НачалоПериода,
+ | НачислениеРодительскойПлаты.Дата КАК ДатаДокумента
+ |ИЗ
+ | Документ.НачислениеРодительскойПлаты КАК НачислениеРодительскойПлаты
+ |ГДЕ
+ | НачислениеРодительскойПлаты.Ссылка = &Ссылка";
+ Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
+ ВыборкаШапка = Запрос.Выполнить().Выбрать();
+ Если ВыборкаШапка.Следующий() Тогда
+ Организация = ВыборкаШапка.Организация;
+ ИФО = ВыборкаШапка.ИФО;
+ Ответственный = ВыборкаШапка.Ответственный;
+ ДокументНачисления = ДанныеЗаполнения;
+ Если ЗначениеЗаполнено(ВыборкаШапка.НачалоПериода) Тогда
+ Период = ВыборкаШапка.НачалоПериода;
+ Иначе
+ Период = НачалоМесяца(ВыборкаШапка.ДатаДокумента);
+ КонецЕсли;
+ КонецЕсли;
+
+ ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
+
+ ЗапросСтроки = Новый Запрос;
+ ЗапросСтроки.Текст =
+ "ВЫБРАТЬ
+ | НачислениеРодительскойПлатыНачисления.Контрагент КАК Контрагент,
+ | НачислениеРодительскойПлатыНачисления.ДоговорКонтрагента КАК Договор,
+ | НачислениеРодительскойПлатыНачисления.Ребенок КАК Ребенок,
+ | НачислениеРодительскойПлатыНачисления.ИДСтроки КАК ИДСтроки,
+ | НачислениеРодительскойПлатыНачисления.Сумма КАК Сумма
+ |ИЗ
+ | Документ.НачислениеРодительскойПлаты.Начисления КАК НачислениеРодительскойПлатыНачисления
+ |ГДЕ
+ | НачислениеРодительскойПлатыНачисления.Ссылка = &Ссылка";
+ ЗапросСтроки.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
+ ВыборкаСтроки = ЗапросСтроки.Выполнить().Выбрать();
+ Пока ВыборкаСтроки.Следующий() Цикл
+ НоваяСтрока = Задолженность.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
+ СуммаДокумента = СуммаДокумента + ВыборкаСтроки.Сумма;
+ КонецЦикла;
+
КонецЕсли;
КонецПроцедуры
-Процедура ЗаполнитьНаОснованииНачисления(ДокументНачисленияСсылка)
-
- ДокументНачисления = ДокументНачисленияСсылка.ПолучитьОбъект();
- Если ДокументНачисления = Неопределено Тогда
- Возврат;
- КонецЕсли;
-
- Организация = ДокументНачисления.Организация;
- ИФО = ДокументНачисления.ИФО;
- Ответственный = ДокументНачисления.Ответственный;
- ДокументНачисления = ДокументНачисленияСсылка;
-
- Если ДокументНачисления.НачалоПериода <> '00010101' Тогда
- Период = ДокументНачисления.НачалоПериода;
- Иначе
- Период = НачалоМесяца(ДокументНачисления.Дата);
- КонецЕсли;
-
- Задолженность.Очистить();
- СуммаДокумента = 0;
-
- Для Каждого СтрокаНачисления Из ДокументНачисления.Начисления Цикл
-
- НоваяСтрока = Задолженность.Добавить();
- НоваяСтрока.Контрагент = СтрокаНачисления.Контрагент;
- НоваяСтрока.Договор = СтрокаНачисления.ДоговорКонтрагента;
- НоваяСтрока.Ребенок = СтрокаНачисления.Ребенок;
- НоваяСтрока.ИДСтроки = СтрокаНачисления.ИДСтроки;
- НоваяСтрока.Сумма = СтрокаНачисления.Сумма;
-
- СуммаДокумента = СуммаДокумента + СтрокаНачисления.Сумма;
-
- КонецЦикла;
-
-КонецПроцедуры
-
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Если Отказ Тогда
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
index d488428..c07e80c 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Form.form
@@ -1,19 +1,223 @@
-
- Номер
- 1
+
+ ГруппаОрганизации
+ 71
+
+ Организация
+ 7
+ true
+ true
+
+ true
+
+
+ Объект.Организация
+
+
+ ОрганизацияРасширеннаяПодсказка
+ 9
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ОрганизацияКонтекстноеМеню
+ 8
+ true
+
+ InputField
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+
+ Style.ReportHeaderBackColor
+
+ Normal
+
+
+
+ ГруппаНомерДата
+ 69
+
+ Номер
+ 1
+ true
+ true
+
+ true
+
+
+ Объект.Number
+
+
+ НомерРасширеннаяПодсказка
+ 3
+ Label
+ true
+ true
+
+ Left
+
+
+
+ НомерКонтекстноеМеню
+ 2
+ true
+
+ InputField
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ Дата
+ 4
+ true
+ true
+
+ true
+
+
+ Объект.Date
+
+
+ ДатаРасширеннаяПодсказка
+ 6
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ДатаКонтекстноеМеню
+ 5
+ true
+
+ InputField
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+
+ Учреждение
+ 13
+ true
+ true
+
+ true
+
+
+ Объект.Учреждение
+
+
+ УчреждениеРасширеннаяПодсказка
+ 15
+ Label
+ true
+ true
+
+ Left
+
+
+
+ УчреждениеКонтекстноеМеню
+ 14
+ true
+
+ InputField
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
+ true
+ true
+
+ true
+
+
+ ru
+ Группа номер дата
+
+
+ ГруппаНомерДатаРасширеннаяПодсказка
+ 70
+ Label
+ true
+ true
+
+ Left
+
+
+ UsualGroup
+
+ Vertical
+ Auto
+ true
+ true
+ Auto
+ Auto
+
+
true
true
true
-
- Объект.Number
-
+
+ ru
+ Группа организации
+
- НомерРасширеннаяПодсказка
- 3
+ ГруппаОрганизацииРасширеннаяПодсказка
+ 72
Label
true
true
@@ -21,193 +225,14 @@
Left
-
- НомерКонтекстноеМеню
- 2
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- Дата
- 4
- true
- true
-
- true
-
-
- Объект.Date
-
-
- ДатаРасширеннаяПодсказка
- 6
- Label
- true
- true
-
- Left
-
-
-
- ДатаКонтекстноеМеню
- 5
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- Организация
- 7
- true
- true
-
- true
-
-
- Объект.Организация
-
-
- ОрганизацияРасширеннаяПодсказка
- 9
- Label
- true
- true
-
- Left
-
-
-
- ОрганизацияКонтекстноеМеню
- 8
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- ИФО
- 10
- true
- true
-
- true
-
-
- Объект.ИФО
-
-
- ИФОРасширеннаяПодсказка
- 12
- Label
- true
- true
-
- Left
-
-
-
- ИФОКонтекстноеМеню
- 11
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
-
-
-
- Учреждение
- 13
- true
- true
-
- true
-
-
- Объект.Учреждение
-
-
- УчреждениеРасширеннаяПодсказка
- 15
- Label
- true
- true
-
- Left
-
-
-
- УчреждениеКонтекстноеМеню
- 14
- true
-
- InputField
- EnterOnInput
- true
- Left
- true
-
- true
- true
- true
- true
- true
- true
- true
- Normal
+ UsualGroup
+
+ AlwaysHorizontal
+ Auto
+ true
+ true
+ Auto
+ Auto
@@ -256,7 +281,7 @@
СуммаДокумента
19
true
- true
+ false
true
@@ -305,6 +330,10 @@
Объект.ДокументПередачи
+
+ OnChange
+ ДокументПередачиПриИзменении
+
ДокументПередачиРасширеннаяПодсказка
24
@@ -337,19 +366,19 @@
- Ответственный
- 25
+ ИФО
+ 10
true
true
true
- Объект.Ответственный
+ Объект.ИФО
- ОтветственныйРасширеннаяПодсказка
- 27
+ ИФОРасширеннаяПодсказка
+ 12
Label
true
true
@@ -358,8 +387,8 @@
- ОтветственныйКонтекстноеМеню
- 26
+ ИФОКонтекстноеМеню
+ 11
true
InputField
@@ -726,6 +755,10 @@
Left
true
+
+ OnChange
+ ЗадолженностьПриИзменении
+
ЗадолженностьСтрокаПоиска
32
@@ -838,6 +871,49 @@
true
+
+ Ответственный
+ 25
+ true
+ true
+
+ true
+
+
+ Объект.Ответственный
+
+
+ ОтветственныйРасширеннаяПодсказка
+ 27
+ Label
+ true
+ true
+
+ Left
+
+
+
+ ОтветственныйКонтекстноеМеню
+ 26
+ true
+
+ InputField
+ Right
+ EnterOnInput
+ true
+ Left
+ true
+
+ true
+ true
+ true
+ true
+ true
+ true
+ true
+ Normal
+
+
ФормаКоманднаяПанель
-1
@@ -867,9 +943,39 @@
UserCmds
Auto
+
+ ПросмотрБухгалтерскихЗаписей
+ 67
+ true
+ true
+
+ true
+
+
+ ФормаПросмотрБухгалтерскихЗаписейРасширеннаяПодсказка
+ 68
+ Label
+ true
+ true
+
+ Left
+
+
+ Form.Command.ПросмотрБухгалтерскихЗаписей
+ Normal
+ Auto
+ true
+ true
+ UserCmds
+ Auto
+
Left
true
+
+ OnCreateAtServer
+ ПриСозданииНаСервере
+
true
true
true
@@ -913,6 +1019,22 @@
+
+ ПросмотрБухгалтерскихЗаписей
+
+ ru
+ Просмотр бухгалтерских записей
+
+ 2
+
+
+
+ ПросмотрБухгалтерскихЗаписей
+
+
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
index 82e1637..0d63df6 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/Forms/ФормаДокумента/Module.bsl
@@ -1,5 +1,28 @@
// ПС_ПринятиеЗадолженностиОтУчреждения: модуль формы документа.
+#Область ОбработчикиСобытийФормы
+
+&НаСервере
+Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
+
+ Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
+ Основание = Неопределено;
+ Если Параметры.Свойство("Основание", Основание)
+ И ТипЗнч(Основание) = Тип("ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ") Тогда
+ Объект.ДокументПередачи = Основание;
+ ЗаполнитьПоДокументуПередачиНаСервере(Основание);
+ КонецЕсли;
+
+ // Дефолт ЦБ получателя (на стороне ЦБ это Организация) из константы БГУ 2.0.
+ Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
+ Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
+ КонецЕсли;
+ КонецЕсли;
+
+КонецПроцедуры
+
+#КонецОбласти
+
#Область ОбработчикиКомандФормы
&НаКлиенте
@@ -10,6 +33,36 @@
КонецПроцедуры
+&НаКлиенте
+Процедура ПросмотрБухгалтерскихЗаписей(Команда)
+
+ ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
+
+КонецПроцедуры
+
+#КонецОбласти
+
+#Область ОбработчикиСобытийЭлементовФормы
+
+&НаКлиенте
+Процедура ДокументПередачиПриИзменении(Элемент)
+
+ Если ЗначениеЗаполнено(Объект.ДокументПередачи) Тогда
+ ЗаполнитьПоДокументуПередачиНаСервере(Объект.ДокументПередачи);
+ Иначе
+ Объект.Задолженность.Очистить();
+ Объект.СуммаДокумента = 0;
+ КонецЕсли;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ЗадолженностьПриИзменении(Элемент)
+
+ Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
+
+КонецПроцедуры
+
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
@@ -21,4 +74,81 @@
КонецФункции
+&НаСервере
+Процедура ЗаполнитьПоДокументуПередачиНаСервере(ДокументПередачиСсылка)
+
+ Если НЕ ЗначениеЗаполнено(ДокументПередачиСсылка) Тогда
+ Возврат;
+ КонецЕсли;
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ПередачаЗадолженности.ЦБ КАК Организация,
+ | ПередачаЗадолженности.Организация КАК Учреждение,
+ | ПередачаЗадолженности.ИФО КАК ИФО,
+ | ПередачаЗадолженности.Ответственный КАК Ответственный,
+ | ПередачаЗадолженности.Период КАК Период
+ |ИЗ
+ | Документ.ПС_ПередачаЗадолженностиВЦБ КАК ПередачаЗадолженности
+ |ГДЕ
+ | ПередачаЗадолженности.Ссылка = &Ссылка
+ |;
+ |
+ |////////////////////////////////////////////////////////////////////////////////
+ |ВЫБРАТЬ
+ | ПередачаЗадолженностиЗадолженность.Контрагент КАК Контрагент,
+ | ПередачаЗадолженностиЗадолженность.Договор КАК Договор,
+ | ПередачаЗадолженностиЗадолженность.Ребенок КАК Ребенок,
+ | ПередачаЗадолженностиЗадолженность.ИДСтроки КАК ИДСтроки,
+ | ПередачаЗадолженностиЗадолженность.Сумма КАК Сумма
+ |ИЗ
+ | Документ.ПС_ПередачаЗадолженностиВЦБ.Задолженность КАК ПередачаЗадолженностиЗадолженность
+ |ГДЕ
+ | ПередачаЗадолженностиЗадолженность.Ссылка = &Ссылка";
+ Запрос.УстановитьПараметр("Ссылка", ДокументПередачиСсылка);
+
+ Результаты = Запрос.ВыполнитьПакет();
+
+ ВыборкаШапка = Результаты[0].Выбрать();
+ Если НЕ ВыборкаШапка.Следующий() Тогда
+ Возврат;
+ КонецЕсли;
+
+ Объект.Организация = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ВыборкаШапка.Организация, "Организация (ЦБ)");
+ Объект.Учреждение = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ВыборкаШапка.Учреждение, "Учреждение-отправитель");
+ Объект.ИФО = ВыборкаШапка.ИФО;
+ Объект.Ответственный = ВыборкаШапка.Ответственный;
+ Объект.Период = ВыборкаШапка.Период;
+ Объект.ДокументПередачи = ДокументПередачиСсылка;
+
+ Объект.Задолженность.Очистить();
+ Объект.СуммаДокумента = 0;
+
+ ВыборкаСтроки = Результаты[1].Выбрать();
+ Пока ВыборкаСтроки.Следующий() Цикл
+
+ НоваяСтрока = Объект.Задолженность.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
+ Объект.СуммаДокумента = Объект.СуммаДокумента + ВыборкаСтроки.Сумма;
+
+ КонецЦикла;
+
+КонецПроцедуры
+
+&НаКлиенте
+Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
+
+ ПараметрыФормы = Новый Структура;
+ Отбор = Новый Структура("Регистратор", ДокументСсылка);
+ ПараметрыФормы.Вставить("Отбор", Отбор);
+
+ ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
+ ПараметрыФормы,
+ ЭтотОбъект,
+ УникальныйИдентификатор);
+
+КонецПроцедуры
+
#КонецОбласти
+
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ManagerModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ManagerModule.bsl
index feedb80..626b3be 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ManagerModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ManagerModule.bsl
@@ -5,25 +5,6 @@
#Область ПрограммныйИнтерфейс
-// Регистрирует команды создания на основании в подменю форм документов-оснований.
-//
-// Параметры:
-// КомандыСоздатьНаОсновании - ТаблицаЗначений - состав колонок см. в документации БСП.
-// Параметры - Структура - параметры формы.
-//
-Процедура ДобавитьКомандыСоздатьНаОсновании(КомандыСоздатьНаОсновании, Параметры) Экспорт
-
- Если ПравоДоступа("Добавление", Метаданные.Документы.ПС_ПринятиеЗадолженностиОтУчреждения) Тогда
-
- КомандаСоздатьНаОсновании = КомандыСоздатьНаОсновании.Добавить();
- КомандаСоздатьНаОсновании.Идентификатор = Метаданные.Документы.ПС_ПринятиеЗадолженностиОтУчреждения.ПолноеИмя();
- КомандаСоздатьНаОсновании.Представление = НСтр("ru = 'Принятие задолженности от учреждения'");
- КомандаСоздатьНаОсновании.РежимЗаписи = "Проводить";
-
- КонецЕсли;
-
-КонецПроцедуры
-
// Формирует табличный документ извещения (ф. 0504805, ред. 103н).
// Вызывается из модуля формы документа кнопкой "Печать".
//
diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
index 6956fdf..62d9ffe 100644
--- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
+++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl
@@ -5,37 +5,61 @@
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ") Тогда
- ЗаполнитьНаОснованииПередачи(ДанныеЗаполнения);
+
+ Запрос = Новый Запрос;
+ Запрос.Текст =
+ "ВЫБРАТЬ
+ | ПередачаЗадолженности.ЦБ КАК Организация,
+ | ПередачаЗадолженности.Организация КАК Учреждение,
+ | ПередачаЗадолженности.ИФО КАК ИФО,
+ | ПередачаЗадолженности.Ответственный КАК Ответственный,
+ | ПередачаЗадолженности.Период КАК Период
+ |ИЗ
+ | Документ.ПС_ПередачаЗадолженностиВЦБ КАК ПередачаЗадолженности
+ |ГДЕ
+ | ПередачаЗадолженности.Ссылка = &Ссылка";
+ Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
+ ВыборкаШапка = Запрос.Выполнить().Выбрать();
+ Если ВыборкаШапка.Следующий() Тогда
+ // Организация на стороне ЦБ — берём организацию-получатель из передачи (это и есть ЦБ).
+ ОрганизацияЦБ = ВыборкаШапка.Организация;
+ Если ЗначениеЗаполнено(ОрганизацияЦБ) Тогда
+ Организация = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияЦБ, "Организация (ЦБ)");
+ КонецЕсли;
+ // Учреждение-отправитель (ПБС) — берём организацию-отправитель из передачи
+ // (там тип CatalogRef.Организации), а в нашем документе нужен CatalogRef.Контрагенты.
+ УчреждениеОрганизация = ВыборкаШапка.Учреждение;
+ Если ЗначениеЗаполнено(УчреждениеОрганизация) Тогда
+ Учреждение = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(УчреждениеОрганизация, "Учреждение-отправитель");
+ КонецЕсли;
+ ИФО = ВыборкаШапка.ИФО;
+ Ответственный = ВыборкаШапка.Ответственный;
+ Период = ВыборкаШапка.Период;
+ ДокументПередачи = ДанныеЗаполнения;
КонецЕсли;
-КонецПроцедуры
+ ЗапросСтроки = Новый Запрос;
+ ЗапросСтроки.Текст =
+ "ВЫБРАТЬ
+ | ПередачаЗадолженностиЗадолженность.Контрагент КАК Контрагент,
+ | ПередачаЗадолженностиЗадолженность.Договор КАК Договор,
+ | ПередачаЗадолженностиЗадолженность.Ребенок КАК Ребенок,
+ | ПередачаЗадолженностиЗадолженность.ИДСтроки КАК ИДСтроки,
+ | ПередачаЗадолженностиЗадолженность.Сумма КАК Сумма
+ |ИЗ
+ | Документ.ПС_ПередачаЗадолженностиВЦБ.Задолженность КАК ПередачаЗадолженностиЗадолженность
+ |ГДЕ
+ | ПередачаЗадолженностиЗадолженность.Ссылка = &Ссылка";
+ ЗапросСтроки.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
+ ВыборкаСтроки = ЗапросСтроки.Выполнить().Выбрать();
+ Пока ВыборкаСтроки.Следующий() Цикл
+ НоваяСтрока = Задолженность.Добавить();
+ ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
+ СуммаДокумента = СуммаДокумента + ВыборкаСтроки.Сумма;
+ КонецЦикла;
-Процедура ЗаполнитьНаОснованииПередачи(ДокументПередачиСсылка)
-
- ДокументПередачи = ДокументПередачиСсылка.ПолучитьОбъект();
- Если ДокументПередачи = Неопределено Тогда
- Возврат;
КонецЕсли;
- Организация = ДокументПередачи.ЦБ;
- Учреждение = ДокументПередачи.Организация;
- ИФО = ДокументПередачи.ИФО;
- Ответственный = ДокументПередачи.Ответственный;
- Период = ДокументПередачи.Период;
- ДокументПередачи = ДокументПередачиСсылка;
-
- Задолженность.Очистить();
- СуммаДокумента = 0;
-
- Для Каждого СтрокаПередачи Из ДокументПередачи.Задолженность Цикл
-
- НоваяСтрока = Задолженность.Добавить();
- ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаПередачи);
-
- СуммаДокумента = СуммаДокумента + СтрокаПередачи.Сумма;
-
- КонецЦикла;
-
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)