Внутренний ЭДО извещений 0504805: документы передачи/принятия и настройка ЭДО
- Документы ПС_ПередачаПоступившихПлатежейВУчреждения и ПС_ПринятиеПоступившихПлатежейИзЦБ: адресность (один сад на документ), реквизиты-организации, печатные формы, участие во внутреннем ЭДО. - Общие модули расширения: ПС_ВнутреннийЭДОИзвещений, ВнутреннийЭДОПереопределяемый, ВнутренниеЭлектронныеДокументыБГУ, ПС_ИдентификаторыОбъектовЭДО. - Автоматическое аннулирование электронного документа при изменении учетного документа. - Определяемый тип ОснованиеВнутреннегоЭлектронногоДокумента расширен нашими документами. - Эксперимент с инициализацией идентификаторов объектов метаданных результата не дал: БСП не поддерживает идентификаторы объектов расширений в неразделенной базе. Решено переходить на типовые извещения (ИзвещениеИсходящее / ИзвещениеВходящее). - Удален неиспользуемый общий модуль ПС_РаботаСКонтрагентами.
This commit is contained in:
+2
-2
@@ -93,10 +93,10 @@
|
||||
<name>Учреждение</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Учреждение-отправитель</value>
|
||||
<value>Учреждение (сад)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
|
||||
+33
@@ -0,0 +1,33 @@
|
||||
// ВнутренниеЭлектронныеДокументыБГУ: расширение.
|
||||
// Дополняет состав документов, обрабатываемых внутренним ЭДО БГУ, документами
|
||||
// учёта родительской платы: передачей поступивших платежей в учреждение и
|
||||
// принятием поступивших платежей из ЦБ.
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Определяет, обрабатывается ли учётный документ механизмом внутреннего ЭДО БГУ.
|
||||
// В типовой список типов БГУ документы расширения не входят, поэтому дополняем результат.
|
||||
//
|
||||
// Параметры:
|
||||
// ТипИсточника - Тип - тип ссылки или объекта учётного документа.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина, если документ обрабатывается внутренним ЭДО БГУ.
|
||||
//
|
||||
&Вместо("ЭтоВнутреннийДокументЭДО")
|
||||
Функция ПС_ЭтоВнутреннийДокументЭДО(ТипИсточника) Экспорт
|
||||
|
||||
Результат = ПродолжитьВызов(ТипИсточника);
|
||||
|
||||
Если НЕ Результат Тогда
|
||||
Результат = ТипИсточника = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения")
|
||||
ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения")
|
||||
ИЛИ ТипИсточника = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ")
|
||||
ИЛИ ТипИсточника = Тип("ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="8c6973cc-f6be-42d6-99cf-46917097ac04" extendedConfigurationObject="54ef65f2-2f6b-4ae4-8604-cce57de8a53e">
|
||||
<name>ВнутренниеЭлектронныеДокументыБГУ</name>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:CommonModuleExtension">
|
||||
<extendedConfigurationObject>Checked</extendedConfigurationObject>
|
||||
<global>Checked</global>
|
||||
<clientManagedApplication>Checked</clientManagedApplication>
|
||||
<server>Checked</server>
|
||||
<externalConnection>Checked</externalConnection>
|
||||
<serverCall>Checked</serverCall>
|
||||
<clientOrdinaryApplication>Checked</clientOrdinaryApplication>
|
||||
</extension>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
@@ -0,0 +1,57 @@
|
||||
// ВнутреннийЭДОПереопределяемый: расширение.
|
||||
// Адресация электронных извещений по учреждению (саду).
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Дополняет параметры нового электронного документа: электронное извещение по передаче
|
||||
// платежей адресуется учреждению-получателю, а не ЦБ.
|
||||
//
|
||||
// Маршрут подписания выбирается по ключу настройки внутреннего ЭДО
|
||||
// (организация + вид документа + команда печати), поэтому без адресации по саду
|
||||
// для всех садов получался бы один общий маршрут, и подписать извещение
|
||||
// руководителем конкретного сада было бы невозможно.
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыДокумента - Структура - параметры открытия электронного документа,
|
||||
// см. ВнутреннийЭДОКлиентСервер.ПараметрыОткрытияЭлектронногоДокумента().
|
||||
//
|
||||
&После("ПриЗаполненииПараметровНовогоЭлектронногоДокумента")
|
||||
Процедура ПС_ПриЗаполненииПараметровНовогоЭлектронногоДокумента(ПараметрыДокумента)
|
||||
|
||||
УчетныйДокумент = ПараметрыДокумента.УчетныйДокумент;
|
||||
|
||||
Если ТипЗнч(УчетныйДокумент) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
|
||||
УчетныйДокумент = УчетныйДокумент.Ссылка;
|
||||
КонецЕсли;
|
||||
|
||||
Если ТипЗнч(УчетныйДокумент) = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
|
||||
Учреждение = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетныйДокумент, "Учреждение").Учреждение;
|
||||
Если ЗначениеЗаполнено(Учреждение) Тогда
|
||||
ПараметрыДокумента.Организация = Учреждение;
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Дополняет получение организации учётного документа для проверок внутреннего ЭДО,
|
||||
// в том числе для запрета редактирования формы после завершения подписания:
|
||||
// для документа передачи организацией считается учреждение-получатель.
|
||||
//
|
||||
// Параметры:
|
||||
// Форма - ФормаКлиентскогоПриложения - форма учётного документа.
|
||||
// Источник - ДокументОбъект - учётный документ.
|
||||
// Организация - ОпределяемыйТип.Организация - организация учётного документа.
|
||||
// СтандартнаяОбработка - Булево - Истина, если организация берётся как Источник.Организация.
|
||||
//
|
||||
&После("ПриПолученииОрганизацииПоОбъекту")
|
||||
Процедура ПС_ПриПолученииОрганизацииПоОбъекту(Форма, Источник, Организация, СтандартнаяОбработка)
|
||||
|
||||
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения")
|
||||
И ЗначениеЗаполнено(Источник.Учреждение) Тогда
|
||||
СтандартнаяОбработка = Ложь;
|
||||
Организация = Источник.Учреждение;
|
||||
КонецЕсли;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="dbe5704a-0b51-4982-9265-411c3291b4d5" extendedConfigurationObject="2e991d62-cba1-4107-a5bf-4a8cc0d01673">
|
||||
<name>ВнутреннийЭДОПереопределяемый</name>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:CommonModuleExtension">
|
||||
<extendedConfigurationObject>Checked</extendedConfigurationObject>
|
||||
<global>Checked</global>
|
||||
<clientManagedApplication>Checked</clientManagedApplication>
|
||||
<server>Checked</server>
|
||||
<externalConnection>Checked</externalConnection>
|
||||
<serverCall>Checked</serverCall>
|
||||
<clientOrdinaryApplication>Checked</clientOrdinaryApplication>
|
||||
</extension>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
@@ -0,0 +1,175 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Вызывается из обработчика "ПриЗаписи" модулей объектов извещений внутреннего ЭДО.
|
||||
// Аннулирует электронные документы, печатная форма которых перестала соответствовать
|
||||
// данным учётного документа. Штатный перевод подписанного электронного документа
|
||||
// в неактуальные возможен только из состояния "Аннулирован".
|
||||
//
|
||||
// Параметры:
|
||||
// Источник - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения,
|
||||
// ДокументОбъект.ПС_ПринятиеПоступившихПлатежейИзЦБ - записываемый документ.
|
||||
// Отказ - Булево - признак отказа от записи документа.
|
||||
//
|
||||
Процедура ПС_АннулироватьЭлектронныеДокументыПриИзменении(Источник, Отказ) Экспорт
|
||||
|
||||
Ссылка = Источник.Ссылка;
|
||||
|
||||
Если Ссылка.Пустая() Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Попытка
|
||||
ПС_АннулироватьНеактуальныеЭлектронныеДокументы(Ссылка);
|
||||
Исключение
|
||||
ЗаписьЖурналаРегистрации(
|
||||
НСтр("ru = 'Внутренний ЭДО извещений.Аннулирование при изменении документа'"),
|
||||
УровеньЖурналаРегистрации.Ошибка,
|
||||
Источник.Метаданные(),
|
||||
Ссылка,
|
||||
ОбработкаОшибок.ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
|
||||
КонецПопытки;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Аннулирует актуальные подписанные электронные документы, печатная форма которых
|
||||
// отличается от печатной формы учётного документа на текущий момент.
|
||||
//
|
||||
// Параметры:
|
||||
// УчетныйДокумент - ДокументСсылка - извещение, данные которого были изменены.
|
||||
//
|
||||
Процедура ПС_АннулироватьНеактуальныеЭлектронныеДокументы(УчетныйДокумент)
|
||||
|
||||
ЭлектронныеДокументы = ВнутреннийЭДО.ЭлектронныеДокументыАктуальные(УчетныйДокумент);
|
||||
|
||||
СостояниеЗавершен = ПредопределенноеЗначение("Перечисление.СостоянияДокументовВнутреннегоЭДО.Завершен");
|
||||
СостояниеТребуетсяУточнение = ПредопределенноеЗначение("Перечисление.СостоянияДокументовВнутреннегоЭДО.ТребуетсяУточнение");
|
||||
|
||||
Для Каждого СтрокаСписка Из ЭлектронныеДокументы Цикл
|
||||
|
||||
Если СтрокаСписка.Состояние <> СостояниеЗавершен
|
||||
И СтрокаСписка.Состояние <> СостояниеТребуетсяУточнение Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ЭлектронныйДокумент = СтрокаСписка.ЭлектронныйДокумент;
|
||||
|
||||
Если НЕ ПС_ПечатнаяФормаОтличаетсяОтПодписанной(
|
||||
УчетныйДокумент, ЭлектронныйДокумент, СтрокаСписка.ИдентификаторКомандыПечати) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыАннулирования = Новый Структура;
|
||||
ПараметрыАннулирования.Вставить("УчетныйДокумент", УчетныйДокумент);
|
||||
ПараметрыАннулирования.Вставить("ЭлектронныйДокумент", ЭлектронныйДокумент);
|
||||
ПараметрыАннулирования.Вставить("ВидПодписи", ПС_ВидПодписиТекущегоПользователя(ЭлектронныйДокумент));
|
||||
ПараметрыАннулирования.Вставить("Комментарий",
|
||||
НСтр("ru = 'Автоматически аннулирован: изменены данные учётного документа'"));
|
||||
|
||||
ВнутреннийЭДО.АннулироватьЭлектронныйДокумент(ПараметрыАннулирования);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Определяет, отличается ли сохранённая в электронном документе печатная форма
|
||||
// от печатной формы учётного документа на текущий момент.
|
||||
//
|
||||
// Параметры:
|
||||
// УчетныйДокумент - ДокументСсылка - извещение.
|
||||
// ЭлектронныйДокумент - ДокументСсылка.ВнутреннийЭлектронныйДокумент - электронный документ.
|
||||
// ИдентификаторКомандыПечати - Строка - идентификатор команды печати извещения.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Булево - Истина, если печатные формы различаются.
|
||||
//
|
||||
Функция ПС_ПечатнаяФормаОтличаетсяОтПодписанной(
|
||||
УчетныйДокумент, ЭлектронныйДокумент, ИдентификаторКомандыПечати)
|
||||
|
||||
ОсновнойФайл = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЭлектронныйДокумент, "ОсновнойФайл").ОсновнойФайл;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(ОсновнойФайл) Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ДвоичныеДанныеСохраненнойФормы = РаботаСФайлами.ДвоичныеДанныеФайла(ОсновнойФайл, Ложь);
|
||||
|
||||
Если ДвоичныеДанныеСохраненнойФормы = Неопределено Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыПечати = Новый Структура;
|
||||
ПараметрыПечати.Вставить("УчетныйДокумент", УчетныйДокумент);
|
||||
ПараметрыПечати.Вставить("ИдентификаторКомандыПечати", ИдентификаторКомандыПечати);
|
||||
|
||||
ВнутреннийЭДОПереопределяемый.ПриПолученииТабличногоДокументаАктуальногоДокумента(ПараметрыПечати);
|
||||
|
||||
ТабличныйДокументТекущий = ПС_ТабличныйДокументУчетногоДокумента(ПараметрыПечати);
|
||||
|
||||
Если ТабличныйДокументТекущий.ВысотаТаблицы = 0 Тогда
|
||||
Возврат Ложь;
|
||||
КонецЕсли;
|
||||
|
||||
ТабличныйДокументСохраненный = ВнутреннийЭДО.ТабличныйДокументИзДвоичныхДанныхАрхива(ДвоичныеДанныеСохраненнойФормы);
|
||||
|
||||
Возврат НЕ ВнутреннийЭДО.ТабличныеДокументыИдентичны(ТабличныйДокументСохраненный, ТабличныйДокументТекущий);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Формирует табличный документ печатной формы учётного документа в привилегированном режиме.
|
||||
//
|
||||
// Параметры:
|
||||
// ПараметрыПечати - Структура - параметры печати: УчетныйДокумент, ИдентификаторКомандыПечати.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТабличныйДокумент - печатная форма учётного документа.
|
||||
//
|
||||
Функция ПС_ТабличныйДокументУчетногоДокумента(ПараметрыПечати)
|
||||
|
||||
// Печать учётного документа может обращаться к данным, недоступным пользователю,
|
||||
// поэтому печатная форма формируется в привилегированном режиме
|
||||
// с восстановлением исходного значения режима.
|
||||
ТекущийПривилегированныйРежим = ПривилегированныйРежим();
|
||||
УстановитьПривилегированныйРежим(Истина);
|
||||
|
||||
Попытка
|
||||
ДвоичныеДанные = ВнутреннийЭДО.ДвоичныеДанныеУчетногоДокумента(ПараметрыПечати);
|
||||
Исключение
|
||||
УстановитьПривилегированныйРежим(ТекущийПривилегированныйРежим);
|
||||
ВызватьИсключение;
|
||||
КонецПопытки;
|
||||
|
||||
УстановитьПривилегированныйРежим(ТекущийПривилегированныйРежим);
|
||||
|
||||
Возврат ВнутреннийЭДО.ТабличныйДокументИзДвоичныхДанныхАрхива(ДвоичныеДанные);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает вид подписи текущего пользователя по маршруту электронного документа.
|
||||
// Если пользователь не является подписантом маршрута, возвращается пустая ссылка -
|
||||
// аннулирование в этом случае выполняется без отметки строки маршрута.
|
||||
//
|
||||
// Параметры:
|
||||
// ЭлектронныйДокумент - ДокументСсылка.ВнутреннийЭлектронныйДокумент - электронный документ.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ПеречислениеСсылка.ВидыЭлектронныхПодписейБГУ - вид подписи текущего пользователя.
|
||||
//
|
||||
Функция ПС_ВидПодписиТекущегоПользователя(ЭлектронныйДокумент)
|
||||
|
||||
СоставМаршрута = ВнутреннийЭДО.СоставМаршрутаПодписанияДокумента(ЭлектронныйДокумент);
|
||||
|
||||
СтрокиПодписанта = СоставМаршрута.НайтиСтроки(Новый Структура("Подписант", Пользователи.ТекущийПользователь()));
|
||||
|
||||
Если СтрокиПодписанта.Количество() > 0 Тогда
|
||||
Возврат СтрокиПодписанта[0].ВидПодписи;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПредопределенноеЗначение("Перечисление.ВидыЭлектронныхПодписейБГУ.ПустаяСсылка");
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+3
-3
@@ -1,9 +1,9 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="c575ba64-5d30-4a94-93ca-951ca20211ec">
|
||||
<name>ПС_РаботаСКонтрагентами</name>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="df60b70c-4101-4771-b92e-bbd114678406">
|
||||
<name>ПС_ВнутреннийЭДОИзвещений</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>ПС Работа с контрагентами</value>
|
||||
<value>ПС_Внутренний ЭДО извещений</value>
|
||||
</synonym>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
@@ -0,0 +1,238 @@
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
|
||||
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
|
||||
//
|
||||
// Настройки внутреннего ЭДО ключуются идентификатором объекта метаданных, который библиотека
|
||||
// заполняет только по объектам основной конфигурации. Записи по документам расширения создаются
|
||||
// этой процедурой, а если обновление данных справочника пометило их на удаление, восстанавливаются.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
|
||||
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
|
||||
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
|
||||
//
|
||||
Функция ПС_ОбеспечитьИдентификаторыДокументовЭДО() Экспорт
|
||||
|
||||
ПолныеИменаДокументов = Новый Массив;
|
||||
ПолныеИменаДокументов.Добавить("Документ.ПС_ПередачаПоступившихПлатежейВУчреждения");
|
||||
ПолныеИменаДокументов.Добавить("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ");
|
||||
|
||||
СуществующиеЗаписи = ПС_СуществующиеЗаписи(ПолныеИменаДокументов);
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
Для Каждого ПолноеИмя Из ПолныеИменаДокументов Цикл
|
||||
СуществующаяЗапись = СуществующиеЗаписи.Получить(ПолноеИмя);
|
||||
Результат.Вставить(ПолноеИмя, ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя,
|
||||
СуществующаяЗапись.Ссылка, СуществующаяЗапись.ТребуетсяВосстановление));
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
// Обеспечивает наличие записи справочника идентификаторов по полному имени объекта метаданных.
|
||||
//
|
||||
// Параметры:
|
||||
// ПолноеИмя - Строка - полное имя объекта метаданных;
|
||||
// Идентификатор - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись справочника;
|
||||
// ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
|
||||
//
|
||||
Функция ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя, Идентификатор, ТребуетсяВосстановление)
|
||||
|
||||
Если ЗначениеЗаполнено(Идентификатор) И НЕ ТребуетсяВосстановление Тогда
|
||||
Возврат Идентификатор;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Идентификатор) Тогда
|
||||
ЗаписьИдентификатора = Идентификатор.ПолучитьОбъект();
|
||||
Иначе
|
||||
ЗаписьИдентификатора = Справочники.ИдентификаторыОбъектовМетаданных.СоздатьЭлемент();
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьЗначенияСвойств(ЗаписьИдентификатора, ПС_СвойстваЗаписиИдентификатора(ПолноеИмя));
|
||||
// Создание записей справочника предусмотрено только механизмом обновления данных справочника,
|
||||
// поэтому запись выполняется в режиме загрузки данных.
|
||||
ЗаписьИдентификатора.ОбменДанными.Загрузка = Истина;
|
||||
ЗаписьИдентификатора.Записать();
|
||||
|
||||
Возврат ЗаписьИдентификатора.Ссылка;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает записи справочника идентификаторов по полным именам объектов метаданных,
|
||||
// включая записи, испорченные механизмом обновления данных справочника.
|
||||
//
|
||||
// Параметры:
|
||||
// ПолныеИмена - Массив из Строка - полные имена объектов метаданных.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение - найденные записи по полным именам объектов метаданных:
|
||||
// * Ключ - Строка - полное имя объекта метаданных;
|
||||
// * Значение - Структура:
|
||||
// ** Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись;
|
||||
// ** ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
|
||||
//
|
||||
Функция ПС_СуществующиеЗаписи(ПолныеИмена)
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка,
|
||||
| ИдентификаторыОбъектовМетаданных.ПолноеИмя КАК ПолноеИмя,
|
||||
| ИдентификаторыОбъектовМетаданных.ПометкаУдаления КАК ПометкаУдаления
|
||||
|ИЗ
|
||||
| Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
|
||||
|ГДЕ
|
||||
| ИдентификаторыОбъектовМетаданных.ПолноеИмя В (&ПолныеИмена)
|
||||
| ИЛИ ИдентификаторыОбъектовМетаданных.ПолноеИмя ПОДОБНО &ШаблонИзмененногоИмени
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| ИдентификаторыОбъектовМетаданных.ПометкаУдаления,
|
||||
| ИдентификаторыОбъектовМетаданных.ПолноеИмя";
|
||||
Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИмена);
|
||||
Запрос.УстановитьПараметр("ШаблонИзмененногоИмени", "?%");
|
||||
|
||||
Результат = Новый Соответствие;
|
||||
|
||||
Для Каждого ПолноеИмя Из ПолныеИмена Цикл
|
||||
Запись = Новый Структура("Ссылка, ТребуетсяВосстановление",
|
||||
Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), Ложь);
|
||||
Результат.Вставить(ПолноеИмя, Запись);
|
||||
КонецЦикла;
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
Запись = Результат.Получить(Выборка.ПолноеИмя);
|
||||
|
||||
Если Запись <> Неопределено И НЕ Выборка.ПометкаУдаления Тогда
|
||||
Запись.Ссылка = Выборка.Ссылка;
|
||||
Запись.ТребуетсяВосстановление = Ложь;
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ Выборка.ПометкаУдаления Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка);
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Отмечает запись справочника идентификаторов как испорченную механизмом обновления данных справочника.
|
||||
//
|
||||
// Параметры:
|
||||
// Результат - Соответствие из КлючИЗначение - см. ПС_СуществующиеЗаписи;
|
||||
// Выборка - ВыборкаИзРезультатаЗапроса - запись справочника, помеченная на удаление.
|
||||
//
|
||||
Процедура ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка)
|
||||
|
||||
Для Каждого КлючИЗначение Из Результат Цикл
|
||||
|
||||
Запись = КлючИЗначение.Значение;
|
||||
|
||||
Если ЗначениеЗаполнено(Запись.Ссылка)
|
||||
ИЛИ СтрНайти(Выборка.ПолноеИмя, КлючИЗначение.Ключ) = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
Запись.Ссылка = Выборка.Ссылка;
|
||||
Запись.ТребуетсяВосстановление = Истина;
|
||||
|
||||
Возврат;
|
||||
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает значения реквизитов записи справочника идентификаторов объектов метаданных.
|
||||
//
|
||||
// Параметры:
|
||||
// ПолноеИмя - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Структура - значения реквизитов записи:
|
||||
// * Наименование - Строка - представление идентификатора объекта метаданных;
|
||||
// * Имя - Строка - имя объекта метаданных;
|
||||
// * Синоним - Строка - синоним объекта метаданных;
|
||||
// * ПолныйСиноним - Строка - полный синоним объекта метаданных;
|
||||
// * ПолноеИмя - Строка - полное имя объекта метаданных;
|
||||
// * Родитель - СправочникСсылка.ИдентификаторыОбъектовМетаданных - группа коллекции;
|
||||
// * ПорядокКоллекции - Число - порядок коллекции объектов метаданных;
|
||||
// * БезДанных - Булево - Ложь;
|
||||
// * ЗначениеПустойСсылки - Произвольный - пустая ссылка объекта метаданных;
|
||||
// * КлючОбъектаМетаданных - ХранилищеЗначения - ключ объекта метаданных;
|
||||
// * ИмяПредопределенныхДанных - Строка - пустая строка;
|
||||
// * ПометкаУдаления - Булево - Ложь.
|
||||
//
|
||||
Функция ПС_СвойстваЗаписиИдентификатора(ПолноеИмя)
|
||||
|
||||
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
|
||||
|
||||
ПозицияТочки = СтрНайти(ПолноеИмя, ".");
|
||||
ИмяБазовогоТипа = Лев(ПолноеИмя, ПозицияТочки - 1);
|
||||
ИмяТипаСсылки = ИмяБазовогоТипа + "Ссылка." + ОбъектМетаданных.Имя;
|
||||
|
||||
ОписаниеТипаСсылки = Новый ОписаниеТипов(ИмяТипаСсылки);
|
||||
|
||||
Синоним = ?(ЗначениеЗаполнено(ОбъектМетаданных.Синоним), ОбъектМетаданных.Синоним, ОбъектМетаданных.Имя);
|
||||
СвойстваКоллекции = ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа);
|
||||
|
||||
Свойства = Новый Структура;
|
||||
Свойства.Вставить("Наименование", Синоним + " (" + СвойстваКоллекции.СинонимВЕдЧисле + ")");
|
||||
Свойства.Вставить("Имя", ОбъектМетаданных.Имя);
|
||||
Свойства.Вставить("Синоним", Синоним);
|
||||
Свойства.Вставить("ПолныйСиноним", СвойстваКоллекции.СинонимВЕдЧисле + ". " + Синоним);
|
||||
Свойства.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
|
||||
Свойства.Вставить("Родитель",
|
||||
Справочники.ИдентификаторыОбъектовМетаданных.ПолучитьСсылку(СвойстваКоллекции.Идентификатор));
|
||||
Свойства.Вставить("ПорядокКоллекции", Число(СвойстваКоллекции.ПорядокКоллекции));
|
||||
Свойства.Вставить("БезДанных", Ложь);
|
||||
Свойства.Вставить("ЗначениеПустойСсылки", ОписаниеТипаСсылки.ПривестиЗначение(Неопределено));
|
||||
Свойства.Вставить("КлючОбъектаМетаданных", Новый ХранилищеЗначения(Тип(ИмяТипаСсылки)));
|
||||
Свойства.Вставить("ИмяПредопределенныхДанных", "");
|
||||
Свойства.Вставить("ПометкаУдаления", Ложь);
|
||||
|
||||
Возврат Свойства;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает свойства коллекции объектов метаданных по имени базового типа.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяБазовогоТипа - Строка - имя базового типа объектов метаданных, например "Документ".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// СтрокаТаблицыЗначений - свойства коллекции объектов метаданных.
|
||||
//
|
||||
Функция ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа)
|
||||
|
||||
СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(Ложь);
|
||||
|
||||
Отбор = Новый Структура("ИмяВЕдЧисле", ИмяБазовогоТипа);
|
||||
НайденныеСвойства = СвойстваКоллекций.НайтиСтроки(Отбор);
|
||||
|
||||
Если НайденныеСвойства.Количество() = 0 Тогда
|
||||
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
|
||||
НСтр("ru = 'Не найдены свойства коллекции объектов метаданных ""%1"".'"),
|
||||
ИмяБазовогоТипа);
|
||||
КонецЕсли;
|
||||
|
||||
Возврат НайденныеСвойства[0];
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+7
@@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="de71a510-c5c2-4312-ad87-8b2cc47a4c2c">
|
||||
<name>ПС_ИдентификаторыОбъектовЭДО</name>
|
||||
<server>true</server>
|
||||
<externalConnection>true</externalConnection>
|
||||
<clientOrdinaryApplication>true</clientOrdinaryApplication>
|
||||
</mdclass:CommonModule>
|
||||
@@ -1,172 +0,0 @@
|
||||
// Поиск контрагента, соответствующего организации, по ИНН.
|
||||
//
|
||||
// Универсальная функция для обоих документов (Передача задолженности в ЦБ
|
||||
// и Принятие задолженности от учреждения). Реквизиты ЦБ и УчреждениеОтправитель
|
||||
// имеют тип CatalogRef.Контрагенты, а в связанных документах-основаниях
|
||||
// соответствующие организации имеют тип CatalogRef.Организации. Чтобы
|
||||
// обеспечить соответствие, ищем элемент справочника Контрагенты с тем же ИНН.
|
||||
//
|
||||
// Параметры:
|
||||
// Организация - CatalogRef.Организации - организация, для которой ищем контрагента.
|
||||
// ИмяПоляПодсказки - Строка - имя реквизита формы/документа, которое остаётся
|
||||
// незаполненным (для сообщения пользователю). Например,
|
||||
// "ЦБ (получатель)" или "Учреждение-отправитель".
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CatalogRef.Контрагенты - если найден ровно один контрагент с ИНН организации.
|
||||
// Пустая ссылка - в остальных случаях (организация не заполнена / нет ИНН / нет
|
||||
// контрагента / найдено несколько). При этом пользователю
|
||||
// выводится сообщение с описанием причины.
|
||||
//
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
Функция КонтрагентПоОрганизации(Организация, ИмяПоляПодсказки = "") Экспорт
|
||||
|
||||
ПустойКонтрагент = Справочники.Контрагенты.ПустаяСсылка();
|
||||
Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Контрагент",
|
||||
"Поле """ + ИмяПоляПодсказки + """");
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Организация) Тогда
|
||||
ТекстСообщения = "Не указана организация для поиска контрагента.|"
|
||||
+ Подсказка + " не заполнен - выберите контрагента вручную.";
|
||||
СообщениеПользователю = Новый СообщениеПользователю;
|
||||
СообщениеПользователю.Текст = ТекстСообщения;
|
||||
СообщениеПользователю.Сообщить();
|
||||
Возврат ПустойКонтрагент;
|
||||
КонецЕсли;
|
||||
|
||||
ИНН = Организация.ИНН;
|
||||
Если НЕ ЗначениеЗаполнено(ИНН) Тогда
|
||||
Представление = Строка(Организация);
|
||||
ТекстСообщения = "У организации (" + Представление + ") не заполнен ИНН.|"
|
||||
+ Подсказка + " не заполнен - выберите контрагента вручную.";
|
||||
СообщениеПользователю = Новый СообщениеПользователю;
|
||||
СообщениеПользователю.Текст = ТекстСообщения;
|
||||
СообщениеПользователю.Сообщить();
|
||||
Возврат ПустойКонтрагент;
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Контрагенты.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Контрагенты КАК Контрагенты
|
||||
|ГДЕ
|
||||
| Контрагенты.ИНН = &ИНН
|
||||
| И НЕ Контрагенты.ПометкаУдаления";
|
||||
Запрос.УстановитьПараметр("ИНН", ИНН);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
Представление = Строка(Организация);
|
||||
ТекстСообщения = "Контрагент с ИНН " + ИНН + " (организация: " + Представление + ") не найден.|"
|
||||
+ Подсказка + " не заполнен - выберите контрагента вручную.";
|
||||
СообщениеПользователю = Новый СообщениеПользователю;
|
||||
СообщениеПользователю.Текст = ТекстСообщения;
|
||||
СообщениеПользователю.Сообщить();
|
||||
Возврат ПустойКонтрагент;
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Выборка.Следующий();
|
||||
ПервыйНайденный = Выборка.Ссылка;
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
Представление = Строка(Организация);
|
||||
ТекстСообщения = "Найдено несколько контрагентов с ИНН " + ИНН + " (организация: " + Представление + ").|"
|
||||
+ Подсказка + " не заполнен - выберите контрагента вручную.";
|
||||
СообщениеПользователю = Новый СообщениеПользователю;
|
||||
СообщениеПользователю.Текст = ТекстСообщения;
|
||||
СообщениеПользователю.Сообщить();
|
||||
Возврат ПустойКонтрагент;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПервыйНайденный;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Обёртка для документов учёта родительской платы: возвращает контрагента ЦБ
|
||||
// по константе ОрганизацияЦентрализованнаяБухгалтерия.
|
||||
//
|
||||
// Параметры:
|
||||
// ИмяПоляПодсказки - Строка - имя реквизита формы/документа для сообщения.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CatalogRef.Контрагенты - контрагент, соответствующий организации ЦБ,
|
||||
// либо пустая ссылка (с сообщением пользователю).
|
||||
//
|
||||
Функция КонтрагентЦБПоУмолчанию(ИмяПоляПодсказки = "ЦБ (получатель)") Экспорт
|
||||
|
||||
ОрганизацияЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
|
||||
Возврат КонтрагентПоОрганизации(ОрганизацияЦБ, ИмяПоляПодсказки);
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Поиск организации, соответствующей контрагенту, по ИНН.
|
||||
//
|
||||
// Операция, обратная КонтрагентПоОрганизации. В документах начисления и передачи
|
||||
// учреждение (сад) представлено ссылкой на справочник Организации, а в документах
|
||||
// принятия, в регистре взаиморасчётов и в отборах пульта управления - ссылкой на
|
||||
// справочник Контрагенты. Сопоставление выполняется по ИНН.
|
||||
//
|
||||
// Параметры:
|
||||
// Контрагент - CatalogRef.Контрагенты - контрагент, для которого ищем организацию.
|
||||
// ИмяПоляПодсказки - Строка - имя реквизита для сообщения пользователю.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// CatalogRef.Организации - если найдена ровно одна организация с ИНН контрагента.
|
||||
// Пустая ссылка - в остальных случаях (нет ИНН / нет организации / найдено несколько).
|
||||
// Причина выводится пользователю.
|
||||
//
|
||||
Функция ОрганизацияПоКонтрагенту(Контрагент, ИмяПоляПодсказки = "") Экспорт
|
||||
|
||||
ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();
|
||||
Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
|
||||
Возврат ПустаяОрганизация;
|
||||
КонецЕсли;
|
||||
|
||||
Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Организация",
|
||||
"Поле """ + ИмяПоляПодсказки + """");
|
||||
|
||||
// Сопоставление выполняем запросом по ИНН: прямое чтение реквизита заимствованного
|
||||
// справочника Контрагенты в расширении не разбирается анализатором.
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Организации.Ссылка КАК Ссылка
|
||||
|ИЗ
|
||||
| Справочник.Организации КАК Организации
|
||||
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
|
||||
| ПО Контрагенты.ИНН = Организации.ИНН
|
||||
|ГДЕ
|
||||
| Контрагенты.Ссылка = &Контрагент
|
||||
| И НЕ Организации.ПометкаУдаления";
|
||||
Запрос.УстановитьПараметр("Контрагент", Контрагент);
|
||||
|
||||
Представление = Строка(Контрагент);
|
||||
|
||||
РезультатЗапроса = Запрос.Выполнить();
|
||||
Если РезультатЗапроса.Пустой() Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Не найдена организация с тем же ИНН, что у контрагента (" + Представление + ").|"
|
||||
+ Подсказка + " не определена - отбор по учреждению не применён.");
|
||||
Возврат ПустаяОрганизация;
|
||||
КонецЕсли;
|
||||
|
||||
Выборка = РезультатЗапроса.Выбрать();
|
||||
Выборка.Следующий();
|
||||
ПервыйНайденный = Выборка.Ссылка;
|
||||
|
||||
Если Выборка.Следующий() Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Найдено несколько организаций с тем же ИНН, что у контрагента (" + Представление + ").|"
|
||||
+ Подсказка + " не определена - отбор по учреждению не применён.");
|
||||
Возврат ПустаяОрганизация;
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ПервыйНайденный;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
+1
@@ -1,3 +1,4 @@
|
||||
ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
|
||||
// ПС_РазборПлатежейПоРодительскойПлате: идентификация ребёнка и его контрагента по назначению платежа
|
||||
// в строках табличной части "Расшифровка платежа" документа КассовоеПоступление (БГУ 2.0).
|
||||
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
|
||||
|
||||
@@ -113,8 +113,8 @@
|
||||
|
||||
Иначе
|
||||
|
||||
// ЦБ передаёт поступившие платежи: печатается сторона отправителя,
|
||||
// отдельное извещение на каждое учреждение документа.
|
||||
// ЦБ передаёт поступившие платежи: печатается сторона отправителя.
|
||||
// Документ адресный, поэтому извещение одно - по учреждению документа.
|
||||
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаПоступившихПлатежейВУчреждения_Извещение0504805";
|
||||
Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель");
|
||||
Если Макет = Неопределено Тогда
|
||||
@@ -123,30 +123,19 @@
|
||||
Возврат ТабличныйДокумент;
|
||||
КонецЕсли;
|
||||
|
||||
Учреждения = УчрежденияДокументаПередачи(ДокументОбъект);
|
||||
Если Учреждения.Количество() = 0 Тогда
|
||||
Если НЕ ЗначениеЗаполнено(ДокументОбъект.Учреждение) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Печатная форма извещения не сформирована: в табличной части ""Задолженность"""
|
||||
+ " не заполнены учреждения.");
|
||||
"Печатная форма извещения не сформирована: не заполнено учреждение (получатель).");
|
||||
Возврат ТабличныйДокумент;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого Учреждение Из Учреждения Цикл
|
||||
|
||||
ПроводкиУчреждения = ПроводкиПоУчреждению(Проводки, Учреждение);
|
||||
Если ПроводкиУчреждения.Количество() = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
|
||||
ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация,
|
||||
Учреждение,
|
||||
ДокументОбъект.Учреждение,
|
||||
"Передача поступивших платежей по родительской плате за "
|
||||
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
|
||||
+ ". Основание: " + Строка(ДокументСсылка) + ".");
|
||||
|
||||
ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, ПроводкиУчреждения);
|
||||
|
||||
КонецЦикла;
|
||||
ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки);
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
@@ -239,64 +228,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает список учреждений, присутствующих в табличной части "Задолженность" документа передачи.
|
||||
//
|
||||
// Параметры:
|
||||
// ДокументОбъект - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения - документ передачи платежей.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из СправочникСсылка.Контрагенты - уникальные учреждения в порядке появления в табличной части.
|
||||
//
|
||||
Функция УчрежденияДокументаПередачи(ДокументОбъект)
|
||||
|
||||
Учреждения = Новый Массив;
|
||||
Для Каждого СтрокаЗадолженности Из ДокументОбъект.Задолженность Цикл
|
||||
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
|
||||
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Учреждения;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Возвращает проводки документа, относящиеся к указанному учреждению.
|
||||
//
|
||||
// Учреждение определяется по субконто кредита счёта расчётов (304.04), поэтому проверяются
|
||||
// все позиции субконто.
|
||||
//
|
||||
// Параметры:
|
||||
// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения.
|
||||
// Учреждение - СправочникСсылка.Контрагенты - учреждение, по которому отбираются проводки.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// ТаблицаЗначений - проводки указанного учреждения, колонки как у Проводки.
|
||||
//
|
||||
Функция ПроводкиПоУчреждению(Проводки, Учреждение)
|
||||
|
||||
Результат = Проводки.Скопировать();
|
||||
СтрокиДляУдаления = Новый Массив;
|
||||
|
||||
Для Каждого Проводка Из Результат Цикл
|
||||
Если Проводка.СубконтоКт1 = Учреждение
|
||||
ИЛИ Проводка.СубконтоКт2 = Учреждение
|
||||
ИЛИ Проводка.СубконтоКт3 = Учреждение Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
СтрокиДляУдаления.Добавить(Проводка);
|
||||
КонецЦикла;
|
||||
|
||||
Для Каждого Проводка Из СтрокиДляУдаления Цикл
|
||||
Результат.Удалить(Проводка);
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Результат;
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок".
|
||||
//
|
||||
// Параметры:
|
||||
|
||||
@@ -22,7 +22,7 @@
|
||||
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="2a75145f-4786-484a-b6f5-49ea8d2e6064"/>
|
||||
<keepMappingToExtendedConfigurationObjectsByIDs>true</keepMappingToExtendedConfigurationObjectsByIDs>
|
||||
<namePrefix>ПС_</namePrefix>
|
||||
<configurationExtensionCompatibilityMode>8.3.14</configurationExtensionCompatibilityMode>
|
||||
<configurationExtensionCompatibilityMode>8.3.24</configurationExtensionCompatibilityMode>
|
||||
<configurationExtensionPurpose>Customization</configurationExtensionPurpose>
|
||||
<defaultRunMode>ManagedApplication</defaultRunMode>
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
@@ -53,11 +53,15 @@
|
||||
<commonPictures>CommonPicture.Сумма</commonPictures>
|
||||
<roles>Role.ПС_ОсновнаяРоль</roles>
|
||||
<roles>Role.БазовыеПраваБГУ</roles>
|
||||
<commonModules>CommonModule.ПС_РаботаСКонтрагентами</commonModules>
|
||||
<commonModules>CommonModule.ПС_УчетРодительскойПлаты</commonModules>
|
||||
<commonModules>CommonModule.ПС_РазборПлатежейПоРодительскойПлате</commonModules>
|
||||
<commonModules>CommonModule.ВариантыОтчетовПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.ВнутренниеЭлектронныеДокументыБГУ</commonModules>
|
||||
<commonModules>CommonModule.ВнутреннийЭДОПереопределяемый</commonModules>
|
||||
<commonModules>CommonModule.ПС_ВнутреннийЭДОИзвещений</commonModules>
|
||||
<commonModules>CommonModule.ПС_ИдентификаторыОбъектовЭДО</commonModules>
|
||||
<settingsStorages>SettingsStorage.ХранилищеВариантовОтчетов</settingsStorages>
|
||||
<definedTypes>DefinedType.ОснованиеВнутреннегоЭлектронногоДокумента</definedTypes>
|
||||
<commonForms>CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента</commonForms>
|
||||
<catalogs>Catalog.Контрагенты</catalogs>
|
||||
<catalogs>Catalog.Договоры</catalogs>
|
||||
|
||||
+111
-37
@@ -245,6 +245,37 @@
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<items xsi:type="form:Button">
|
||||
<name>КнопкаИнициализироватьИдентификаторыЭДО</name>
|
||||
<id>529</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Инициализировать идентификаторы ЭДО</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<extendedTooltip>
|
||||
<name>ИнициализироватьИдентификаторыЭДОРасширеннаяПодсказка</name>
|
||||
<id>530</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<type>UsualButton</type>
|
||||
<commandName>Form.Command.ИнициализироватьИдентификаторыЭДО</commandName>
|
||||
<buttonImportance>Normal</buttonImportance>
|
||||
<representation>Auto</representation>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<placementArea>UserCmds</placementArea>
|
||||
<representationInContextMenu>Auto</representationInContextMenu>
|
||||
</items>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
@@ -473,6 +504,51 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаДокументыПередачиУчреждение</name>
|
||||
<id>526</id>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Учреждение (сад)</value>
|
||||
</title>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>ДокументыПередачи.Учреждение</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ТаблицаДокументыПередачиТаблицаДокументыПередачиУчреждениеРасширеннаяПодсказка</name>
|
||||
<id>528</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ТаблицаДокументыПередачиТаблицаДокументыПередачиУчреждениеКонтекстноеМеню</name>
|
||||
<id>527</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ТаблицаДокументыПередачиСуммаДокумента</name>
|
||||
<id>379</id>
|
||||
@@ -1197,7 +1273,6 @@
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
@@ -3735,6 +3810,23 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Учреждение</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Учреждение (сад)</value>
|
||||
</title>
|
||||
<id>67</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
</attributes>
|
||||
<attributes>
|
||||
<name>ДокументыПринятия</name>
|
||||
@@ -3826,23 +3918,6 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>Учреждение</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Учреждение</value>
|
||||
</title>
|
||||
<id>28</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ИФО</name>
|
||||
<title>
|
||||
@@ -3935,23 +4010,6 @@
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ПередачаСальдо</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Начальное сальдо</value>
|
||||
</title>
|
||||
<id>54</id>
|
||||
<valueType>
|
||||
<types>Boolean</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
</view>
|
||||
<edit>
|
||||
<common>true</common>
|
||||
</edit>
|
||||
</columns>
|
||||
<columns>
|
||||
<name>ЦБ</name>
|
||||
<title>
|
||||
@@ -3960,7 +4018,7 @@
|
||||
</title>
|
||||
<id>65</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
@@ -4225,7 +4283,7 @@
|
||||
</title>
|
||||
<id>47</id>
|
||||
<valueType>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</valueType>
|
||||
<view>
|
||||
<common>true</common>
|
||||
@@ -4548,6 +4606,22 @@
|
||||
</handler>
|
||||
</action>
|
||||
</formCommands>
|
||||
<formCommands>
|
||||
<name>ИнициализироватьИдентификаторыЭДО</name>
|
||||
<title>
|
||||
<key>ru</key>
|
||||
<value>Инициализировать идентификаторы ЭДО</value>
|
||||
</title>
|
||||
<id>4</id>
|
||||
<use>
|
||||
<common>true</common>
|
||||
</use>
|
||||
<action xsi:type="form:FormCommandHandlerContainer">
|
||||
<handler>
|
||||
<name>ИнициализироватьИдентификаторыЭДО</name>
|
||||
</handler>
|
||||
</action>
|
||||
</formCommands>
|
||||
<commandInterface>
|
||||
<navigationPanel/>
|
||||
<commandBar/>
|
||||
|
||||
+69
-70
@@ -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 @@
|
||||
| И (&ЦБ = НЕОПРЕДЕЛЕНО
|
||||
| ИЛИ Передача.Организация = &ЦБ)
|
||||
| И (&Сад = НЕОПРЕДЕЛЕНО
|
||||
| ИЛИ Строки.Учреждение = &Сад)
|
||||
| ИЛИ Передача.Учреждение = &Сад)
|
||||
| И (&ИФО = НЕОПРЕДЕЛЕНО
|
||||
| ИЛИ Передача.ИФО = &ИФО)
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Передача.Период,
|
||||
| Передача.Организация";
|
||||
| Передача.Учреждение";
|
||||
|
||||
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
|
||||
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
|
||||
Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация);
|
||||
Запрос.УстановитьПараметр("Сад", СадКонтрагент);
|
||||
Запрос.УстановитьПараметр("Сад", СадОрганизация);
|
||||
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
|
||||
+22
-1
@@ -1,3 +1,24 @@
|
||||
// Обработка ПС_УправлениеРасчетамиПоРодительскойПлате.
|
||||
// Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl).
|
||||
// Модуль объекта оставлен пустым намеренно.
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Если Сервер Или ВнешнееСоединение Или ТолстыйКлиентОбычноеПриложение Тогда
|
||||
|
||||
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
|
||||
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
|
||||
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
|
||||
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
|
||||
//
|
||||
Функция ПС_ИнициализироватьИдентификаторыОбъектовЭДО() Экспорт
|
||||
|
||||
Возврат ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
+1
-1
@@ -38,7 +38,7 @@
|
||||
<value>Учреждение (сад)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
|
||||
+21
@@ -0,0 +1,21 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<mdclass:DefinedType xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" xmlns:mdclassExtension="http://g5.1c.ru/v8/dt/metadata/mdclass/extension" uuid="86adad5d-0084-4ac3-8b7b-67dbe8efde02" extendedConfigurationObject="5182ca77-f944-46c4-925a-8bcd42a8ca04">
|
||||
<producedTypes>
|
||||
<containerType typeId="76a8d07b-bff3-4dc7-b3f3-e329e96d825a" valueTypeId="cd44bd23-4db6-43e3-87b8-df9f511da56c"/>
|
||||
</producedTypes>
|
||||
<name>ОснованиеВнутреннегоЭлектронногоДокумента</name>
|
||||
<objectBelonging>Adopted</objectBelonging>
|
||||
<extension xsi:type="mdclassExtension:DefinedTypeExtension">
|
||||
<extendedConfigurationObject>Checked</extendedConfigurationObject>
|
||||
<typeExtension>
|
||||
<types>
|
||||
<state>Extended</state>
|
||||
<type>DocumentRef.ПС_ПередачаПоступившихПлатежейВУчреждения</type>
|
||||
</types>
|
||||
<types>
|
||||
<state>Extended</state>
|
||||
<type>DocumentRef.ПС_ПринятиеПоступившихПлатежейИзЦБ</type>
|
||||
</types>
|
||||
</typeExtension>
|
||||
</extension>
|
||||
</mdclass:DefinedType>
|
||||
@@ -51,25 +51,17 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Сады детей загружаем одним запросом, контрагента сада ищем по одному разу на сад:
|
||||
// обращение к базе внутри цикла по строкам недопустимо.
|
||||
// Сады детей загружаем одним запросом: обращение к базе внутри цикла по строкам недопустимо.
|
||||
ОрганизацииСадов = ПС_ОрганизацииСадовДетей(Дети);
|
||||
КонтрагентыСадов = Новый Соответствие;
|
||||
|
||||
Для Каждого СтрокаРасшифровки Из СтрокиОплаты Цикл
|
||||
|
||||
ОрганизацияСада = ОрганизацииСадов[СтрокаРасшифровки.Ребенок];
|
||||
|
||||
КонтрагентСада = КонтрагентыСадов[ОрганизацияСада];
|
||||
Если КонтрагентСада = Неопределено Тогда
|
||||
КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияСада, "Учреждение");
|
||||
КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада);
|
||||
КонецЕсли;
|
||||
|
||||
Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
|
||||
Движение.Период = Дата;
|
||||
Движение.Организация = Организация;
|
||||
Движение.Учреждение = КонтрагентСада;
|
||||
Движение.Учреждение = ОрганизацияСада;
|
||||
Движение.Плательщик = СтрокаРасшифровки.Контрагент;
|
||||
Движение.Ребенок = СтрокаРасшифровки.Ребенок;
|
||||
Движение.Договор = СтрокаРасшифровки.Договор;
|
||||
|
||||
+45
-41
@@ -51,6 +51,47 @@
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Учреждение</name>
|
||||
<id>110</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.Учреждение</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>УчреждениеРасширеннаяПодсказка</name>
|
||||
<id>112</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>УчреждениеКонтекстноеМеню</name>
|
||||
<id>111</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Enter</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>Период</name>
|
||||
<id>16</id>
|
||||
@@ -364,47 +405,6 @@
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormField">
|
||||
<name>ЗадолженностьУчреждение</name>
|
||||
<id>103</id>
|
||||
<visible>true</visible>
|
||||
<enabled>true</enabled>
|
||||
<userVisible>
|
||||
<common>true</common>
|
||||
</userVisible>
|
||||
<dataPath xsi:type="form:DataPath">
|
||||
<segments>Объект.Задолженность.Учреждение</segments>
|
||||
</dataPath>
|
||||
<extendedTooltip>
|
||||
<name>ЗадолженностьЗадолженностьУчреждениеРасширеннаяПодсказка</name>
|
||||
<id>105</id>
|
||||
<type>Label</type>
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<extInfo xsi:type="form:LabelDecorationExtInfo">
|
||||
<horizontalAlign>Left</horizontalAlign>
|
||||
</extInfo>
|
||||
</extendedTooltip>
|
||||
<contextMenu>
|
||||
<name>ЗадолженностьЗадолженностьУчреждениеКонтекстноеМеню</name>
|
||||
<id>104</id>
|
||||
<autoFill>true</autoFill>
|
||||
</contextMenu>
|
||||
<type>InputField</type>
|
||||
<editMode>Auto</editMode>
|
||||
<showInHeader>true</showInHeader>
|
||||
<headerHorizontalAlign>Left</headerHorizontalAlign>
|
||||
<showInFooter>true</showInFooter>
|
||||
<extInfo xsi:type="form:InputFieldExtInfo">
|
||||
<autoMaxWidth>true</autoMaxWidth>
|
||||
<autoMaxHeight>true</autoMaxHeight>
|
||||
<wrap>true</wrap>
|
||||
<chooseType>true</chooseType>
|
||||
<typeDomainEnabled>true</typeDomainEnabled>
|
||||
<textEdit>true</textEdit>
|
||||
<textSize>Normal</textSize>
|
||||
</extInfo>
|
||||
</items>
|
||||
<items xsi:type="form:FormGroup">
|
||||
<name>ЗадолженностьГруппаКонтрагента</name>
|
||||
<id>92</id>
|
||||
@@ -1298,6 +1298,10 @@
|
||||
<event>OnCreateAtServer</event>
|
||||
<name>ПриСозданииНаСервере</name>
|
||||
</handlers>
|
||||
<handlers>
|
||||
<event>NotificationProcessing</event>
|
||||
<name>ОбработкаОповещения</name>
|
||||
</handlers>
|
||||
<saveWindowSettings>true</saveWindowSettings>
|
||||
<autoTitle>true</autoTitle>
|
||||
<autoUrl>true</autoUrl>
|
||||
|
||||
+46
-46
@@ -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 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает организации садов (учреждений), представленных в табличной части "Задолженность".
|
||||
// Учреждение хранится в документе контрагентом, поэтому организация ищется по ИНН.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Массив из СправочникСсылка.Организации - организации получателей в порядке появления в табличной части.
|
||||
//
|
||||
&НаСервере
|
||||
Функция ОрганизацииСадовНаСервере()
|
||||
|
||||
Учреждения = Новый Массив;
|
||||
Для Каждого СтрокаЗадолженности Из Объект.Задолженность Цикл
|
||||
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
|
||||
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Организации = Новый Массив;
|
||||
Для Каждого Учреждение Из Учреждения Цикл
|
||||
Организация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Учреждение, "Получатель (учреждение)");
|
||||
Если ЗначениеЗаполнено(Организация) Тогда
|
||||
Организации.Добавить(Организация);
|
||||
КонецЕсли;
|
||||
КонецЦикла;
|
||||
|
||||
Возврат Организации;
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
+40
@@ -21,6 +21,46 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет список команд печати документа.
|
||||
//
|
||||
// Параметры:
|
||||
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
|
||||
//
|
||||
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
|
||||
|
||||
КомандаПечати = КомандыПечати.Добавить();
|
||||
КомандаПечати.МенеджерПечати = "Документ.ПС_ПередачаПоступившихПлатежейВУчреждения";
|
||||
КомандаПечати.Идентификатор = "Извещение0504805";
|
||||
КомандаПечати.Представление = "Извещение (ф. 0504805)";
|
||||
КомандаПечати.Порядок = 1;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Формирует печатные формы документа для подсистемы БСП "Печать".
|
||||
//
|
||||
// Параметры:
|
||||
// МассивОбъектов - Массив из ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - печатаемые документы.
|
||||
// ПараметрыПечати - Структура - параметры печати.
|
||||
// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
|
||||
// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
|
||||
// ПараметрыВывода - Структура - параметры вывода.
|
||||
//
|
||||
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
|
||||
|
||||
Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
|
||||
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
|
||||
КоллекцияПечатныхФорм,
|
||||
"Извещение0504805",
|
||||
"Извещение (ф. 0504805)",
|
||||
ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
+18
-8
@@ -55,13 +55,13 @@
|
||||
|
||||
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
|
||||
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
|
||||
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = СтрокаЗадолженности.Учреждение;
|
||||
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = Учреждение;
|
||||
|
||||
// Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом.
|
||||
ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход();
|
||||
ДвижениеПС.Период = Дата;
|
||||
ДвижениеПС.Организация = Организация;
|
||||
ДвижениеПС.Учреждение = СтрокаЗадолженности.Учреждение;
|
||||
ДвижениеПС.Учреждение = Учреждение;
|
||||
ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
|
||||
ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
|
||||
ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
|
||||
@@ -104,6 +104,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Изменение данных подписанного извещения обесценивает его электронный документ:
|
||||
// расходящиеся электронные документы аннулируются.
|
||||
ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Организация) Тогда
|
||||
@@ -114,16 +126,14 @@
|
||||
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Учреждение) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю("Не заполнено учреждение (получатель)", , "Учреждение", "Объект", Отказ);
|
||||
КонецЕсли;
|
||||
|
||||
Если Задолженность.Количество() = 0 Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
|
||||
Иначе
|
||||
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
|
||||
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Не заполнено учреждение в строке табличной части ""Задолженность"".",
|
||||
, "Задолженность", "Объект", Отказ);
|
||||
Прервать;
|
||||
КонецЕсли;
|
||||
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Не заполнен КПС строки табличной части ""Задолженность""."
|
||||
|
||||
+17
-16
@@ -10,7 +10,7 @@
|
||||
<name>ПС_ПередачаПоступившихПлатежейВУчреждения</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Передача поступивших платежей в учреждения</value>
|
||||
<value>Передача поступивших платежей в учреждение</value>
|
||||
</synonym>
|
||||
<useStandardCommands>true</useStandardCommands>
|
||||
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
|
||||
@@ -22,7 +22,7 @@
|
||||
</objectPresentation>
|
||||
<listPresentation>
|
||||
<key>ru</key>
|
||||
<value>Передачи поступивших платежей в учреждения</value>
|
||||
<value>Передачи поступивших платежей в учреждение</value>
|
||||
</listPresentation>
|
||||
<numberType>String</numberType>
|
||||
<numberLength>9</numberLength>
|
||||
@@ -178,6 +178,21 @@
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<attributes uuid="641b191c-1a0f-4f71-a567-4e874eb470aa">
|
||||
<name>Учреждение</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Получатель (учреждение)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<fillValue xsi:type="core:UndefinedValue"/>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
<dataHistory>Use</dataHistory>
|
||||
</attributes>
|
||||
<forms uuid="2f97f361-ee42-4267-905c-61db24e9229e">
|
||||
<name>ФормаДокумента</name>
|
||||
</forms>
|
||||
@@ -282,20 +297,6 @@
|
||||
<dataHistory>Use</dataHistory>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</attributes>
|
||||
<attributes uuid="8cf37a05-a457-4693-bc91-d9c1d37fede5">
|
||||
<name>Учреждение</name>
|
||||
<synonym>
|
||||
<key>ru</key>
|
||||
<value>Получатель (учреждение)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
<dataHistory>Use</dataHistory>
|
||||
<fullTextSearch>Use</fullTextSearch>
|
||||
</attributes>
|
||||
</tabularSections>
|
||||
<templates uuid="1f448676-6b65-401e-b0a1-8ee291792b49">
|
||||
<name>ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель</name>
|
||||
|
||||
+28
-1
@@ -36,11 +36,14 @@
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
|
||||
Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
|
||||
Объект.ЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
|
||||
КонецЕсли;
|
||||
|
||||
КонецЕсли;
|
||||
|
||||
// Состояние внутреннего ЭДО (подсистема БГУ): организация документа уже определена.
|
||||
ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаСервере
|
||||
@@ -48,6 +51,8 @@
|
||||
|
||||
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
|
||||
|
||||
ОбщегоНазначенияБГУ.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
@@ -78,10 +83,25 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
|
||||
|
||||
// Обновляет гиперссылку состояния внутреннего ЭДО (подсистема БГУ).
|
||||
ОбщегоНазначенияБГУКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовШапкиФормы
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ДекорацияБГУНажатие(Элемент, СтандартнаяОбработка)
|
||||
|
||||
ОбщегоНазначенияБГУКлиент.ДекорацияНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура ДокументПередачиПриИзменении(Элемент)
|
||||
|
||||
@@ -147,6 +167,13 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
&НаКлиенте
|
||||
Процедура Подключаемый_ВыполнитьКомандуБГУ(Команда)
|
||||
|
||||
ОбщегоНазначенияБГУКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
|
||||
+40
@@ -21,6 +21,46 @@
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет список команд печати документа.
|
||||
//
|
||||
// Параметры:
|
||||
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
|
||||
//
|
||||
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
|
||||
|
||||
КомандаПечати = КомандыПечати.Добавить();
|
||||
КомандаПечати.МенеджерПечати = "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
|
||||
КомандаПечати.Идентификатор = "Извещение0504805";
|
||||
КомандаПечати.Представление = "Извещение (ф. 0504805)";
|
||||
КомандаПечати.Порядок = 1;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Формирует печатные формы документа для подсистемы БСП "Печать".
|
||||
//
|
||||
// Параметры:
|
||||
// МассивОбъектов - Массив из ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемые документы.
|
||||
// ПараметрыПечати - Структура - параметры печати.
|
||||
// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
|
||||
// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
|
||||
// ПараметрыВывода - Структура - параметры вывода.
|
||||
//
|
||||
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
|
||||
|
||||
Если НЕ УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
|
||||
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
|
||||
КоллекцияПечатныхФорм,
|
||||
"Извещение0504805",
|
||||
"Извещение (ф. 0504805)",
|
||||
ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
+17
-12
@@ -35,9 +35,9 @@
|
||||
ИФО = РеквизитыПередачи.ИФО;
|
||||
КонецЕсли;
|
||||
|
||||
// Отправитель (ЦБ) определяется по организации документа передачи: в документе передачи
|
||||
// ЦБ хранится организацией, а в документе сада - контрагентом, сопоставляем по ИНН.
|
||||
ЦБ = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(РеквизитыПередачи.Организация, "Отправитель (ЦБ)");
|
||||
// Отправитель (ЦБ) определяется по организации документа передачи:
|
||||
// в документе передачи и в документе сада ЦБ хранится организацией.
|
||||
ЦБ = РеквизитыПередачи.Организация;
|
||||
|
||||
// Строки подбираются по саду документа: сад задаётся реквизитом "Организация".
|
||||
// Если сад ещё не указан, строки заполняются командой формы после его выбора.
|
||||
@@ -125,6 +125,18 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ПриЗаписи(Отказ)
|
||||
|
||||
Если ОбменДанными.Загрузка Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// Изменение данных подписанного извещения обесценивает его электронный документ:
|
||||
// расходящиеся электронные документы аннулируются.
|
||||
ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Организация) Тогда
|
||||
@@ -198,13 +210,6 @@
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
// В документе передачи сад хранится контрагентом (как в регистре взаиморасчётов),
|
||||
// а в документе сада - организацией, поэтому сопоставляем по ИНН.
|
||||
КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Организация, "Учреждение");
|
||||
Если НЕ ЗначениеЗаполнено(КонтрагентСада) Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
@@ -218,9 +223,9 @@
|
||||
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи
|
||||
|ГДЕ
|
||||
| СтрокиПередачи.Ссылка = &ДокументПередачи
|
||||
| И СтрокиПередачи.Учреждение = &Учреждение";
|
||||
| И СтрокиПередачи.Ссылка.Учреждение = &Учреждение";
|
||||
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачиСсылка);
|
||||
Запрос.УстановитьПараметр("Учреждение", КонтрагентСада);
|
||||
Запрос.УстановитьПараметр("Учреждение", Организация);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
|
||||
+1
-1
@@ -55,7 +55,7 @@
|
||||
<value>Отправитель (ЦБ)</value>
|
||||
</synonym>
|
||||
<type>
|
||||
<types>CatalogRef.Контрагенты</types>
|
||||
<types>CatalogRef.Организации</types>
|
||||
</type>
|
||||
<minValue xsi:type="core:UndefinedValue"/>
|
||||
<maxValue xsi:type="core:UndefinedValue"/>
|
||||
|
||||
Reference in New Issue
Block a user