From d21b4cc635c58885fcfa27da8ee3d2e5b625f80b Mon Sep 17 00:00:00 2001 From: tsvetkoff Date: Fri, 11 Sep 2026 12:19:46 +0500 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=A1=5F=D0=A0=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=A1=D0=9A=D0=BE=D0=BD=D1=82=D1=80=D0=B0=D0=B3=D0=B5?= =?UTF-8?q?=D0=BD=D1=82=D0=B0=D0=BC=D0=B8:=20=D1=83=D0=BD=D0=B8=D0=B2?= =?UTF-8?q?=D0=B5=D1=80=D1=81=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B8=D1=81=D0=BA=20=D0=BA=D0=BE=D0=BD=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=B3=D0=B5=D0=BD=D1=82=D0=B0=20=D0=BF=D0=BE=20=D0=98=D0=9D?= =?UTF-8?q?=D0=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Добавлен общий модуль ПС_РаботаСКонтрагентами (сервер). - КонтрагентПоОрганизации(Организация, ИмяПоляПодсказки): поиск элемента справочника Контрагенты с тем же ИНН; если 0 или >1 — сообщение пользователю и пустая ссылка. - КонтрагентЦБПоУмолчанию(ИмяПоляПодсказки): обёртка, читает Константы.ОрганизацияЦентрализованнаяБухгалтерия и делегирует поиск. - ПС_ПередачаЗадолженностиВЦБ: * ManagerModule: удалена локальная КонтрагентЦБПоУмолчанию. * ObjectModule и форма: ЦБ подставляется через общий модуль. - ПС_ПринятиеЗадолженностиОтУчреждения: * ObjectModule и форма: Организация (ЦБ) и Учреждение (ПБС-отправитель) подставляются через КонтрагентПоОрганизации по ИНН из Передачи. * Это устраняет проблему несоответствия типов: в Передаче Организация/Учреждение имеют тип CatalogRef.Организации, а в Принятии соответствующие реквизиты — CatalogRef.Контрагенты. Этап MVP. --- .../src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl | 102 ++++ .../ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo | 9 + .../src/Configuration/Configuration.mdo | 1 + .../ПС_ПередачаЗадолженностиВЦБ/Forms/ФормаДокумента/Form.form | 96 +++- .../Forms/ФормаДокумента/Module.bsl | 165 ++++++ .../Documents/ПС_ПередачаЗадолженностиВЦБ/ManagerModule.bsl | 19 - .../src/Documents/ПС_ПередачаЗадолженностиВЦБ/ObjectModule.bsl | 86 +-- .../Forms/ФормаДокумента/Form.form | 528 +++++++++++------- .../Forms/ФормаДокумента/Module.bsl | 130 +++++ .../ПС_ПринятиеЗадолженностиОтУчреждения/ManagerModule.bsl | 19 - .../ПС_ПринятиеЗадолженностиОтУчреждения/ObjectModule.bsl | 76 ++- 11 files changed, 925 insertions(+), 306 deletions(-) create mode 100644 153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/Module.bsl create mode 100644 153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_РаботаСКонтрагентами/ПС_РаботаСКонтрагентами.mdo 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 @@ + + ПросмотрБухгалтерскихЗаписей + + <key>ru</key> + <value>Просмотр бухгалтерских записей</value> + + 2 + + true + + + + ПросмотрБухгалтерскихЗаписей + + + + + СоздатьПринятиеЗадолженностиНаОсновании + + <key>ru</key> + <value>Создать принятие на основании</value> + + 3 + + true + + + + ПС_СоздатьПринятиеЗадолженностиНаОсновании + + + 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 + + + <key>ru</key> + <value>Группа номер дата</value> + + + ГруппаНомерДатаРасширеннаяПодсказка + 70 + Label + true + true + + Left + + + UsualGroup + + Vertical + Auto + true + true + Auto + Auto + + true true true - - Объект.Number - + + <key>ru</key> + <value>Группа организации</value> + - НомерРасширеннаяПодсказка - 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 @@ + + ПросмотрБухгалтерскихЗаписей + + <key>ru</key> + <value>Просмотр бухгалтерских записей</value> + + 2 + + true + + + + ПросмотрБухгалтерскихЗаписей + + + 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; - - Для Каждого СтрокаПередачи Из ДокументПередачи.Задолженность Цикл - - НоваяСтрока = Задолженность.Добавить(); - ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаПередачи); - - СуммаДокумента = СуммаДокумента + СтрокаПередачи.Сумма; - - КонецЦикла; - КонецПроцедуры Процедура ОбработкаПроведения(Отказ, РежимПроведения)