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 + + <key>ru</key> + <value>Инициализировать идентификаторы ЭДО</value> + + 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 + + <key>ru</key> + <value>Учреждение (сад)</value> + + 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 + + Учреждение + + <key>ru</key> + <value>Учреждение (сад)</value> + + 67 + + CatalogRef.Организации + + + true + + + true + + ДокументыПринятия @@ -3826,23 +3918,6 @@ true - - Учреждение - - <key>ru</key> - <value>Учреждение</value> - - 28 - - CatalogRef.Контрагенты - - - true - - - true - - ИФО @@ -3935,23 +4010,6 @@ <common>true</common> </edit> </columns> - <columns> - <name>ПередачаСальдо</name> - <title> - <key>ru</key> - <value>Начальное сальдо</value> - - 54 - - Boolean - - - true - - - true - - ЦБ @@ -3960,7 +4018,7 @@ 65 - CatalogRef.Контрагенты + CatalogRef.Организации true @@ -4225,7 +4283,7 @@ 47 - CatalogRef.Контрагенты + CatalogRef.Организации true @@ -4548,6 +4606,22 @@ + + ИнициализироватьИдентификаторыЭДО + + <key>ru</key> + <value>Инициализировать идентификаторы ЭДО</value> + + 4 + + true + + + + ИнициализироватьИдентификаторыЭДО + + + 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.Организации