diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl index cbef21b..52c1fac 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/CommonModules/ПС_УчетРодительскойПлаты/Module.bsl @@ -242,12 +242,19 @@ "Организация, Учреждение, ИФО, Период, Ответственный, ИзвещениеИсходящее"); ИзвещениеОбъект = Неопределено; + ЭтоНовоеИзвещение = Истина; Если ЗначениеЗаполнено(Реквизиты.ИзвещениеИсходящее) Тогда ИзвещениеОбъект = Реквизиты.ИзвещениеИсходящее.ПолучитьОбъект(); + ЭтоНовоеИзвещение = ИзвещениеОбъект = Неопределено; КонецЕсли; - Если ИзвещениеОбъект = Неопределено Тогда + Если ЭтоНовоеИзвещение Тогда ИзвещениеОбъект = Документы.ИзвещениеИсходящее.СоздатьДокумент(); + ИначеЕсли ИзвещениеОбъект.ПомеченНаУдаление Тогда + ОбщегоНазначения.СообщитьПользователю( + "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " помечено на удаление: изменения в него не вносятся." + + " Снимите пометку удаления или отвяжите извещение от документа передачи."); + Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка(); ИначеЕсли ИзвещениеОбъект.Проведен Тогда ОбщегоНазначения.СообщитьПользователю( "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся." @@ -255,7 +262,9 @@ Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка(); КонецЕсли; - ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + Если ЭтоНовоеИзвещение Тогда + ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + КонецЕсли; ИзвещениеОбъект.Организация = Реквизиты.Организация; ИзвещениеОбъект.Получатель = КонтрагентПоОрганизации(Реквизиты.Учреждение); ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийИсходящееИзвещение.ПолучениеДохода; @@ -292,12 +301,19 @@ "Организация, ЦБ, ИФО, Период, Ответственный, ИзвещениеВходящее, ДокументПередачи"); ИзвещениеОбъект = Неопределено; + ЭтоНовоеИзвещение = Истина; Если ЗначениеЗаполнено(Реквизиты.ИзвещениеВходящее) Тогда ИзвещениеОбъект = Реквизиты.ИзвещениеВходящее.ПолучитьОбъект(); + ЭтоНовоеИзвещение = ИзвещениеОбъект = Неопределено; КонецЕсли; - Если ИзвещениеОбъект = Неопределено Тогда + Если ЭтоНовоеИзвещение Тогда ИзвещениеОбъект = Документы.ИзвещениеВходящее.СоздатьДокумент(); + ИначеЕсли ИзвещениеОбъект.ПомеченНаУдаление Тогда + ОбщегоНазначения.СообщитьПользователю( + "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " помечено на удаление: изменения в него не вносятся." + + " Снимите пометку удаления или отвяжите извещение от документа принятия."); + Возврат Документы.ИзвещениеВходящее.ПустаяСсылка(); ИначеЕсли ИзвещениеОбъект.Проведен Тогда ОбщегоНазначения.СообщитьПользователю( "Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся." @@ -305,7 +321,9 @@ Возврат Документы.ИзвещениеВходящее.ПустаяСсылка(); КонецЕсли; - ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + Если ЭтоНовоеИзвещение Тогда + ИзвещениеОбъект.Дата = ТекущаяДатаСеанса(); + КонецЕсли; ИзвещениеОбъект.Организация = Реквизиты.Организация; ИзвещениеОбъект.Отправитель = КонтрагентПоОрганизации(Реквизиты.ЦБ); ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийВходящееИзвещение.ПолучениеДохода; @@ -329,6 +347,44 @@ КонецФункции +// Синхронизирует связанное извещение с изменившимся документом подсистемы. +// +// Вызывается из обработчика записи документов передачи и принятия платежей: извещение +// перезаполняется по актуальным строкам реестра, чтобы его печатная форма не разошлась +// с учётным документом. Проведённое извещение и извещение, помеченное на удаление, +// не изменяются - такие документы пользователь приводит в порядок сам. +// +// Параметры: +// ДокументОбъект - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения, +// ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ - записываемый документ. +// +Процедура ОбновитьИзвещениеПриИзмененииДокумента(ДокументОбъект) Экспорт + + Если ДокументОбъект.ЭтоНовый() Тогда + Возврат; + КонецЕсли; + + ЭтоПередача = ТипЗнч(ДокументОбъект) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения"); + + Извещение = ?(ЭтоПередача, ДокументОбъект.ИзвещениеИсходящее, ДокументОбъект.ИзвещениеВходящее); + Если НЕ ЗначениеЗаполнено(Извещение) Тогда + Возврат; + КонецЕсли; + + СостояниеИзвещения = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Извещение, + "Проведен, ПометкаУдаления"); + Если СостояниеИзвещения.Проведен ИЛИ СостояниеИзвещения.ПометкаУдаления Тогда + Возврат; + КонецЕсли; + + Если ЭтоПередача Тогда + СоздатьИзвещениеПоПередаче(ДокументОбъект.Ссылка); + Иначе + СоздатьИзвещениеПоПринятию(ДокументОбъект.Ссылка); + КонецЕсли; + +КонецПроцедуры + #КонецОбласти #Область СлужебныеПроцедурыИФункции diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo index e843894..c3633b0 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Configuration/Configuration.mdo @@ -28,7 +28,7 @@ PersonalComputer Russian Role.ПС_ОсновнаяРоль - 1.0.0 + 1.0.1 Language.Русский TaxiEnableVersion8_2 diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl index 6974651..94f4a9b 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПередачаПоступившихПлатежейВУчреждения/ObjectModule.bsl @@ -67,6 +67,10 @@ // расходящиеся электронные документы аннулируются. ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ); + // Связанное извещение перезаполняется по актуальным строкам реестра, + // чтобы его печатная форма не разошлась с документом. + ПС_УчетРодительскойПлаты.ОбновитьИзвещениеПриИзмененииДокумента(ЭтотОбъект); + КонецПроцедуры Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) diff --git a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl index 8a9673c..220905e 100644 --- a/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl +++ b/153_ЦБ_ОУО_БГУ.ПрофиСофт/src/Documents/ПС_ПринятиеПоступившихПлатежейИзЦБ/ObjectModule.bsl @@ -133,6 +133,10 @@ // расходящиеся электронные документы аннулируются. ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ); + // Связанное извещение перезаполняется по актуальным строкам реестра, + // чтобы его печатная форма не разошлась с документом. + ПС_УчетРодительскойПлаты.ОбновитьИзвещениеПриИзмененииДокумента(ЭтотОбъект); + КонецПроцедуры Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)