2 Commits

Author SHA1 Message Date
tsvetkoff 26bc7c80a2 feat(родительская плата): реестр платежей, извещения 0504805, учёт поступлений по квитанциям
- Реестр платежей: макеты в обоих документах, общая печать по строкам ТЧ, 6 реквизитов реестра в Задолженности
- Передача: только расход регистра, без бухгалтерских проводок
- Принятие: Дт 303.05.831 Кт 205.31.660 по строкам, аналитика 303.05 реквизитом ВидПлатежаВБюджет
- Регистр взаиморасчётов: ИДСтроки переведён в измерение; приход формирует КассовоеПоступление
- Разбор назначения платежа: лицевой счёт, ФИО, группа, период оплаты, расчётный счёт
- Подбор строк передачи по ИДСтроки с заполнением реквизитов реестра из расшифровки платежа
- Извещения 0504805: приняты типовые документы, создание обёрток, связки, защита от дублей приёма платежей
- Предупреждения: снятый признак Родительская плата, подбор контрагента по ИНН
2026-10-26 20:06:21 +05:00
tsvetkoff 9deb24451f Внутренний ЭДО извещений 0504805: документы передачи/принятия и настройка ЭДО
- Документы ПС_ПередачаПоступившихПлатежейВУчреждения и ПС_ПринятиеПоступившихПлатежейИзЦБ: адресность (один сад на документ), реквизиты-организации, печатные формы, участие во внутреннем ЭДО.
- Общие модули расширения: ПС_ВнутреннийЭДОИзвещений, ВнутреннийЭДОПереопределяемый, ВнутренниеЭлектронныеДокументыБГУ, ПС_ИдентификаторыОбъектовЭДО.
- Автоматическое аннулирование электронного документа при изменении учетного документа.
- Определяемый тип ОснованиеВнутреннегоЭлектронногоДокумента расширен нашими документами.
- Эксперимент с инициализацией идентификаторов объектов метаданных результата не дал: БСП не поддерживает идентификаторы объектов расширений в неразделенной базе. Решено переходить на типовые извещения (ИзвещениеИсходящее / ИзвещениеВходящее).
- Удален неиспользуемый общий модуль ПС_РаботаСКонтрагентами.
2026-10-22 11:54:33 +05:00
33 changed files with 4307 additions and 720 deletions
@@ -46,22 +46,6 @@
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
</attributes> </attributes>
<attributes uuid="41aaa445-1ed9-4189-9d41-fdb0af01e3fe">
<name>ИДСтроки</name>
<synonym>
<key>ru</key>
<value>ИД строки (квитанции)</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="97856254-22f9-4198-9f0f-b7118e28d143"> <attributes uuid="97856254-22f9-4198-9f0f-b7118e28d143">
<name>ДокументПередачи</name> <name>ДокументПередачи</name>
<synonym> <synonym>
@@ -93,10 +77,10 @@
<name>Учреждение</name> <name>Учреждение</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Учреждение-отправитель</value> <value>Учреждение (сад)</value>
</synonym> </synonym>
<type> <type>
<types>CatalogRef.Контрагенты</types> <types>CatalogRef.Организации</types>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -187,4 +171,21 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<useInTotals>true</useInTotals> <useInTotals>true</useInTotals>
</dimensions> </dimensions>
<dimensions uuid="ce10ca5b-fdf7-42c7-990e-5a6106e131fd">
<name>ИДСтроки</name>
<synonym>
<key>ru</key>
<value>ИД строки (квитанции)</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<useInTotals>true</useInTotals>
</dimensions>
</mdclass:AccumulationRegister> </mdclass:AccumulationRegister>
@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Catalog 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="c34f8f71-7aa0-4a83-8098-e3fcd1cea2fd" extendedConfigurationObject="239fc03c-c64c-48f7-8f9e-714207fba857">
<producedTypes>
<objectType typeId="57fc7ee6-a01e-4e66-a820-fb70a4746821" valueTypeId="cb1cc8db-89c5-4e9c-ab87-670f92c538c1"/>
<refType typeId="2d9df19a-a15b-4414-a974-b55c429e619c" valueTypeId="6bc7767a-9186-46f9-a053-ffb1ebbeb8bd"/>
<selectionType typeId="a6829577-82b8-4833-88bb-a1d8602cdcab" valueTypeId="9ec95929-f312-4900-ac98-feba26311fc5"/>
<listType typeId="422b5e82-d2d9-4ae8-9242-8f2202f4db71" valueTypeId="0e53cb36-4ad1-4a13-bc49-ec45c26dd7e7"/>
<managerType typeId="18f0232d-c662-4495-81f0-92a3a68e614c" valueTypeId="d877ae2f-b130-4ece-b8d4-3bb2e06d2201"/>
</producedTypes>
<name>ВидыНалоговИПлатежей</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:CatalogExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<useStandardCommands>true</useStandardCommands>
<attributes uuid="5ec72a9d-0adc-4fa0-b04f-0f8bd5e44aeb" extendedConfigurationObject="1da500ec-ba9a-47bf-a3f4-19cd593fa9d3">
<name>СчетУчета</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:BasicFeatureExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
<typeExtension>
<types>
<state>Checked</state>
<type>String</type>
</types>
<stringQualifiers>
<length>6</length>
</stringQualifiers>
</typeExtension>
</extension>
</attributes>
</mdclass:Catalog>
@@ -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 @@
// ВнутреннийЭДОПереопределяемый: расширение.
// Адресация электронных извещений по учреждению (саду).
#Область СлужебныеПроцедурыИФункции
// Дополняет параметры нового электронного документа: электронное извещение по передаче
// платежей адресуется учреждению-получателю, а не ЦБ.
//
// Маршрут подписания выбирается по ключу настройки внутреннего ЭДО
// (организация + вид документа + команда печати), поэтому без адресации по саду
// для всех садов получался бы один общий маршрут, и подписать извещение
// руководителем конкретного сада было бы невозможно.
//
// Параметры:
// ПараметрыДокумента - Структура - параметры открытия электронного документа,
// см. ВнутреннийЭДОКлиентСервер.ПараметрыОткрытияЭлектронногоДокумента().
//
&После("ПриЗаполненииПараметровНовогоЭлектронногоДокумента")
Процедура ПС_ПриЗаполненииПараметровНовогоЭлектронногоДокумента(ПараметрыДокумента)
УчетныйДокумент = ПараметрыДокумента.УчетныйДокумент;
Если ТипЗнч(УчетныйДокумент) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
УчетныйДокумент = УчетныйДокумент.Ссылка;
КонецЕсли;
Если ТипЗнч(УчетныйДокумент) = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
Учреждение = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(УчетныйДокумент, "Учреждение").Учреждение;
Если ЗначениеЗаполнено(Учреждение) Тогда
ПараметрыДокумента.Организация = Учреждение;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
// Дополняет получение организации учётного документа для проверок внутреннего ЭДО,
// в том числе для запрета редактирования формы после завершения подписания:
// для документа передачи организацией считается учреждение-получатель.
//
// Параметры:
// Форма - ФормаКлиентскогоПриложения - форма учётного документа.
// Источник - ДокументОбъект - учётный документ.
// Организация - ОпределяемыйТип.Организация - организация учётного документа.
// СтандартнаяОбработка - Булево - Истина, если организация берётся как Источник.Организация.
//
&После("ПриПолученииОрганизацииПоОбъекту")
Процедура ПС_ПриПолученииОрганизацииПоОбъекту(Форма, Источник, Организация, СтандартнаяОбработка)
Если ТипЗнч(Источник) = Тип("ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения")
И ЗначениеЗаполнено(Источник.Учреждение) Тогда
СтандартнаяОбработка = Ложь;
Организация = Источник.Учреждение;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
@@ -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].ВидПодписи;
КонецЕсли;
Возврат ПредопределенноеЗначение("Перечисление.ВидыЭлектронныхПодписейБГУ.ПустаяСсылка");
КонецФункции
#КонецОбласти
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?> <?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"> <mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="df60b70c-4101-4771-b92e-bbd114678406">
<name>ПС_РаботаСКонтрагентами</name> <name>ПС_ВнутреннийЭДОИзвещений</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>ПС Работа с контрагентами</value> <value>ПС_Внутренний ЭДО извещений</value>
</synonym> </synonym>
<server>true</server> <server>true</server>
<externalConnection>true</externalConnection> <externalConnection>true</externalConnection>
@@ -0,0 +1,238 @@
#Область ПрограммныйИнтерфейс
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
//
// Настройки внутреннего ЭДО ключуются идентификатором объекта метаданных, который библиотека
// заполняет только по объектам основной конфигурации. Записи по документам расширения создаются
// этой процедурой, а если обновление данных справочника пометило их на удаление, восстанавливаются.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
//
Функция ПС_ОбеспечитьИдентификаторыДокументовЭДО() Экспорт
ПолныеИменаДокументов = Новый Массив;
ПолныеИменаДокументов.Добавить("Документ.ПС_ПередачаПоступившихПлатежейВУчреждения");
ПолныеИменаДокументов.Добавить("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ");
СуществующиеЗаписи = ПС_СуществующиеЗаписи(ПолныеИменаДокументов);
Результат = Новый Соответствие;
Для Каждого ПолноеИмя Из ПолныеИменаДокументов Цикл
СуществующаяЗапись = СуществующиеЗаписи.Получить(ПолноеИмя);
Результат.Вставить(ПолноеИмя, ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя,
СуществующаяЗапись.Ссылка, СуществующаяЗапись.ТребуетсяВосстановление));
КонецЦикла;
Возврат Результат;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Обеспечивает наличие записи справочника идентификаторов по полному имени объекта метаданных.
//
// Параметры:
// ПолноеИмя - Строка - полное имя объекта метаданных;
// Идентификатор - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись справочника;
// ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
//
// Возвращаемое значение:
// СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
//
Функция ПС_ОбеспечитьИдентификаторОбъекта(ПолноеИмя, Идентификатор, ТребуетсяВосстановление)
Если ЗначениеЗаполнено(Идентификатор) И НЕ ТребуетсяВосстановление Тогда
Возврат Идентификатор;
КонецЕсли;
Если ЗначениеЗаполнено(Идентификатор) Тогда
ЗаписьИдентификатора = Идентификатор.ПолучитьОбъект();
Иначе
ЗаписьИдентификатора = Справочники.ИдентификаторыОбъектовМетаданных.СоздатьЭлемент();
КонецЕсли;
ЗаполнитьЗначенияСвойств(ЗаписьИдентификатора, ПС_СвойстваЗаписиИдентификатора(ПолноеИмя));
// Создание записей справочника предусмотрено только механизмом обновления данных справочника,
// поэтому запись выполняется в режиме загрузки данных.
ЗаписьИдентификатора.ОбменДанными.Загрузка = Истина;
ЗаписьИдентификатора.Записать();
Возврат ЗаписьИдентификатора.Ссылка;
КонецФункции
// Возвращает записи справочника идентификаторов по полным именам объектов метаданных,
// включая записи, испорченные механизмом обновления данных справочника.
//
// Параметры:
// ПолныеИмена - Массив из Строка - полные имена объектов метаданных.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение - найденные записи по полным именам объектов метаданных:
// * Ключ - Строка - полное имя объекта метаданных;
// * Значение - Структура:
// ** Ссылка - СправочникСсылка.ИдентификаторыОбъектовМетаданных - найденная запись;
// ** ТребуетсяВосстановление - Булево - запись помечена на удаление или ее полное имя изменено.
//
Функция ПС_СуществующиеЗаписи(ПолныеИмена)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка,
| ИдентификаторыОбъектовМетаданных.ПолноеИмя КАК ПолноеИмя,
| ИдентификаторыОбъектовМетаданных.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
|ГДЕ
| ИдентификаторыОбъектовМетаданных.ПолноеИмя В (&ПолныеИмена)
| ИЛИ ИдентификаторыОбъектовМетаданных.ПолноеИмя ПОДОБНО &ШаблонИзмененногоИмени
|УПОРЯДОЧИТЬ ПО
| ИдентификаторыОбъектовМетаданных.ПометкаУдаления,
| ИдентификаторыОбъектовМетаданных.ПолноеИмя";
Запрос.УстановитьПараметр("ПолныеИмена", ПолныеИмена);
Запрос.УстановитьПараметр("ШаблонИзмененногоИмени", "?%");
Результат = Новый Соответствие;
Для Каждого ПолноеИмя Из ПолныеИмена Цикл
Запись = Новый Структура("Ссылка, ТребуетсяВосстановление",
Справочники.ИдентификаторыОбъектовМетаданных.ПустаяСсылка(), Ложь);
Результат.Вставить(ПолноеИмя, Запись);
КонецЦикла;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Запись = Результат.Получить(Выборка.ПолноеИмя);
Если Запись <> Неопределено И НЕ Выборка.ПометкаУдаления Тогда
Запись.Ссылка = Выборка.Ссылка;
Запись.ТребуетсяВосстановление = Ложь;
Продолжить;
КонецЕсли;
Если НЕ Выборка.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;
ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка);
КонецЦикла;
Возврат Результат;
КонецФункции
// Отмечает запись справочника идентификаторов как испорченную механизмом обновления данных справочника.
//
// Параметры:
// Результат - Соответствие из КлючИЗначение - см. ПС_СуществующиеЗаписи;
// Выборка - ВыборкаИзРезультатаЗапроса - запись справочника, помеченная на удаление.
//
Процедура ПС_ОтметитьИзмененнуюЗапись(Результат, Выборка)
Для Каждого КлючИЗначение Из Результат Цикл
Запись = КлючИЗначение.Значение;
Если ЗначениеЗаполнено(Запись.Ссылка)
ИЛИ СтрНайти(Выборка.ПолноеИмя, КлючИЗначение.Ключ) = 0 Тогда
Продолжить;
КонецЕсли;
Запись.Ссылка = Выборка.Ссылка;
Запись.ТребуетсяВосстановление = Истина;
Возврат;
КонецЦикла;
КонецПроцедуры
// Возвращает значения реквизитов записи справочника идентификаторов объектов метаданных.
//
// Параметры:
// ПолноеИмя - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ".
//
// Возвращаемое значение:
// Структура - значения реквизитов записи:
// * Наименование - Строка - представление идентификатора объекта метаданных;
// * Имя - Строка - имя объекта метаданных;
// * Синоним - Строка - синоним объекта метаданных;
// * ПолныйСиноним - Строка - полный синоним объекта метаданных;
// * ПолноеИмя - Строка - полное имя объекта метаданных;
// * Родитель - СправочникСсылка.ИдентификаторыОбъектовМетаданных - группа коллекции;
// * ПорядокКоллекции - Число - порядок коллекции объектов метаданных;
// * БезДанных - Булево - Ложь;
// * ЗначениеПустойСсылки - Произвольный - пустая ссылка объекта метаданных;
// * КлючОбъектаМетаданных - ХранилищеЗначения - ключ объекта метаданных;
// * ИмяПредопределенныхДанных - Строка - пустая строка;
// * ПометкаУдаления - Булево - Ложь.
//
Функция ПС_СвойстваЗаписиИдентификатора(ПолноеИмя)
ОбъектМетаданных = Метаданные.НайтиПоПолномуИмени(ПолноеИмя);
ПозицияТочки = СтрНайти(ПолноеИмя, ".");
ИмяБазовогоТипа = Лев(ПолноеИмя, ПозицияТочки - 1);
ИмяТипаСсылки = ИмяБазовогоТипа + "Ссылка." + ОбъектМетаданных.Имя;
ОписаниеТипаСсылки = Новый ОписаниеТипов(ИмяТипаСсылки);
Синоним = ?(ЗначениеЗаполнено(ОбъектМетаданных.Синоним), ОбъектМетаданных.Синоним, ОбъектМетаданных.Имя);
СвойстваКоллекции = ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа);
Свойства = Новый Структура;
Свойства.Вставить("Наименование", Синоним + " (" + СвойстваКоллекции.СинонимВЕдЧисле + ")");
Свойства.Вставить("Имя", ОбъектМетаданных.Имя);
Свойства.Вставить("Синоним", Синоним);
Свойства.Вставить("ПолныйСиноним", СвойстваКоллекции.СинонимВЕдЧисле + ". " + Синоним);
Свойства.Вставить("ПолноеИмя", ОбъектМетаданных.ПолноеИмя());
Свойства.Вставить("Родитель",
Справочники.ИдентификаторыОбъектовМетаданных.ПолучитьСсылку(СвойстваКоллекции.Идентификатор));
Свойства.Вставить("ПорядокКоллекции", Число(СвойстваКоллекции.ПорядокКоллекции));
Свойства.Вставить("БезДанных", Ложь);
Свойства.Вставить("ЗначениеПустойСсылки", ОписаниеТипаСсылки.ПривестиЗначение(Неопределено));
Свойства.Вставить("КлючОбъектаМетаданных", Новый ХранилищеЗначения(Тип(ИмяТипаСсылки)));
Свойства.Вставить("ИмяПредопределенныхДанных", "");
Свойства.Вставить("ПометкаУдаления", Ложь);
Возврат Свойства;
КонецФункции
// Возвращает свойства коллекции объектов метаданных по имени базового типа.
//
// Параметры:
// ИмяБазовогоТипа - Строка - имя базового типа объектов метаданных, например "Документ".
//
// Возвращаемое значение:
// СтрокаТаблицыЗначений - свойства коллекции объектов метаданных.
//
Функция ПС_СвойстваКоллекцииОбъектовМетаданных(ИмяБазовогоТипа)
СвойстваКоллекций = СтандартныеПодсистемыПовтИсп.СвойстваКоллекцийОбъектовМетаданных(Ложь);
Отбор = Новый Структура("ИмяВЕдЧисле", ИмяБазовогоТипа);
НайденныеСвойства = СвойстваКоллекций.НайтиСтроки(Отбор);
Если НайденныеСвойства.Количество() = 0 Тогда
ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru = 'Не найдены свойства коллекции объектов метаданных ""%1"".'"),
ИмяБазовогоТипа);
КонецЕсли;
Возврат НайденныеСвойства[0];
КонецФункции
#КонецОбласти
@@ -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.Организации - если найдена ровно одна организация с ИНН контрагента.
// Пустая ссылка - в остальных случаях (нет ИНН / нет организации / найдено несколько).
// Причина выводится пользователю.
//
Функция ОрганизацияПоКонтрагенту(Контрагент, ИмяПоляПодсказки = "") Экспорт
ПустаяОрганизация = Справочники.Организации.ПустаяСсылка();
Если НЕ ЗначениеЗаполнено(Контрагент) Тогда
Возврат ПустаяОрганизация;
КонецЕсли;
Подсказка = ?(ПустаяСтрока(ИмяПоляПодсказки), "Организация",
"Поле """ + ИмяПоляПодсказки + """");
// Сопоставление выполняем запросом по ИНН: прямое чтение реквизита заимствованного
// справочника Контрагенты в расширении не разбирается анализатором.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Организации.Ссылка КАК Ссылка
|ИЗ
| Справочник.Организации КАК Организации
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ПО Контрагенты.ИНН = Организации.ИНН
|ГДЕ
| Контрагенты.Ссылка = &Контрагент
| И НЕ Организации.ПометкаУдаления";
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Представление = Строка(Контрагент);
РезультатЗапроса = Запрос.Выполнить();
Если РезультатЗапроса.Пустой() Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не найдена организация с тем же ИНН, что у контрагента (" + Представление + ").|"
+ Подсказка + " не определена - отбор по учреждению не применён.");
Возврат ПустаяОрганизация;
КонецЕсли;
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
ПервыйНайденный = Выборка.Ссылка;
Если Выборка.Следующий() Тогда
ОбщегоНазначения.СообщитьПользователю(
"Найдено несколько организаций с тем же ИНН, что у контрагента (" + Представление + ").|"
+ Подсказка + " не определена - отбор по учреждению не применён.");
Возврат ПустаяОрганизация;
КонецЕсли;
Возврат ПервыйНайденный;
КонецФункции
#КонецОбласти
@@ -124,13 +124,20 @@
// Возвращаемое значение: // Возвращаемое значение:
// Структура - результат разбора: // Структура - результат разбора:
// * ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка; пустая строка, если не распознан; // * ЛицевойСчет - Строка - распознанный лицевой счёт ребёнка; пустая строка, если не распознан;
// * ФИО - Строка - ФИО ребёнка из назначения платежа; пустая строка, если не распознано. // * ФИО - Строка - ФИО ребёнка из назначения платежа; пустая строка, если не распознано;
// * Группа - Строка - группа детского сада (5-я часть назначения); пустая строка, если не распознана;
// * ПериодОплаты - Строка - период оплаты (6-я часть назначения, например "Июнь"); пустая строка, если не распознан;
// * РасчетныйСчет - Строка - лицевой счёт учреждения (2-я часть назначения, без префикса "л/с");
// пустая строка, если не распознан.
// //
Функция РазобратьНазначениеПлатежа(ТекстНазначения) Экспорт Функция РазобратьНазначениеПлатежа(ТекстНазначения) Экспорт
Результат = Новый Структура; Результат = Новый Структура;
Результат.Вставить("ЛицевойСчет", ""); Результат.Вставить("ЛицевойСчет", "");
Результат.Вставить("ФИО", ""); Результат.Вставить("ФИО", "");
Результат.Вставить("Группа", "");
Результат.Вставить("ПериодОплаты", "");
Результат.Вставить("РасчетныйСчет", "");
Если НЕ ЗначениеЗаполнено(ТекстНазначения) Тогда Если НЕ ЗначениеЗаполнено(ТекстНазначения) Тогда
Возврат Результат; Возврат Результат;
@@ -139,10 +146,55 @@
Результат.ЛицевойСчет = ОпределитьЛицевойСчетРебенка(ТекстНазначения); Результат.ЛицевойСчет = ОпределитьЛицевойСчетРебенка(ТекстНазначения);
Результат.ФИО = ОпределитьФИОИзНазначения(ТекстНазначения); Результат.ФИО = ОпределитьФИОИзНазначения(ТекстНазначения);
// Разбор по частям: "учреждение,л/с учреждения,л/с ребёнка,ФИО,группа,период".
ЧастиНазначения = СтрРазделить(ТекстНазначения, ",");
Если ЧастиНазначения.Количество() >= 2 Тогда
Результат.РасчетныйСчет = УбратьПрефиксЛицевогоСчета(ЧастиНазначения[1]);
КонецЕсли;
Если ЧастиНазначения.Количество() >= 6 Тогда
Результат.Группа = СокрЛП(ЧастиНазначения[4]);
Результат.ПериодОплаты = СокрЛП(ЧастиНазначения[5]);
КонецЕсли;
Возврат Результат; Возврат Результат;
КонецФункции КонецФункции
// Проверяет, есть ли в расшифровке платежа лицевые счета детей - признак платежа родительской платы.
// Применяется, когда признак "Родительская плата" не установлен: если лицевой счёт ребёнка распознан
// и найден в справочнике детей, платёж, скорее всего, относится к родительской плате.
//
// Параметры:
// ДокументОбъект - ДокументОбъект.КассовоеПоступление - проверяемый документ.
//
// Возвращаемое значение:
// Булево - Истина, если хотя бы один распознанный лицевой счёт найден в справочнике детей.
//
Функция ЕстьЛицевыеСчетаДетей(ДокументОбъект) Экспорт
КодыПоиска = Новый Массив;
Для Каждого СтрокаПлатежа Из ДокументОбъект.РасшифровкаПлатежа Цикл
ДанныеПлатежа = РазобратьНазначениеПлатежа(СтрокаПлатежа.Примечание);
Если НЕ ЗначениеЗаполнено(ДанныеПлатежа.ЛицевойСчет) Тогда
Продолжить;
КонецЕсли;
Для Каждого Код Из КодыПоискаРебенка(ДанныеПлатежа.ЛицевойСчет) Цикл
КодыПоиска.Добавить(Код);
КонецЦикла;
КонецЦикла;
Если КодыПоиска.Количество() = 0 Тогда
Возврат Ложь;
КонецЕсли;
Возврат ДетиПоЛицевымСчетам(КодыПоиска).Количество() > 0;
КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -412,6 +464,29 @@
КонецФункции КонецФункции
// Убирает префикс "л/с" (в любом регистре и написании) из значения части назначения платежа.
//
// Параметры:
// Значение - Строка - часть назначения платежа, например "л/с 03003001079".
//
// Возвращаемое значение:
// Строка - значение без префикса и лишних пробелов.
//
Функция УбратьПрефиксЛицевогоСчета(Значение)
Текст = СокрЛП(Значение);
ВерхнийРегистр = ВРЕГ(Текст);
Если Лев(ВерхнийРегистр, 3) = "Л/С" Тогда
Возврат СокрЛП(Сред(Текст, 4));
ИначеЕсли Лев(ВерхнийРегистр, 2) = "ЛС" Тогда
Возврат СокрЛП(Сред(Текст, 3));
КонецЕсли;
Возврат Текст;
КонецФункции
// Возвращает ФИО ребёнка из текста назначения платежа (4-я часть, разделитель - запятая). // Возвращает ФИО ребёнка из текста назначения платежа (4-я часть, разделитель - запятая).
// Для поиска используется пара "Фамилия Имя", как в реестрах. // Для поиска используется пара "Фамилия Имя", как в реестрах.
// //
@@ -43,10 +43,7 @@
// Вёрстка и набор областей повторяют типовую печатную форму документа ИзвещениеИсходящее. // Вёрстка и набор областей повторяют типовую печатную форму документа ИзвещениеИсходящее.
// Заполняется та сторона, от которой печатается извещение: для передачи поступивших платежей - // Заполняется та сторона, от которой печатается извещение: для передачи поступивших платежей -
// отправитель (централизованная бухгалтерия), для принятия платежей - получатель (учреждение). // отправитель (централизованная бухгалтерия), для принятия платежей - получатель (учреждение).
// Суммы и счета берутся из проводок документа, поэтому печатается только проведённый документ. // Данные берутся из табличной части "Задолженность", поэтому печатается и непроведённый документ.
//
// Документ передачи платежей ЦБ охватывает несколько учреждений, поэтому из него формируется
// отдельное извещение на каждое учреждение, присутствующее в табличной части "Задолженность".
// //
// Параметры: // Параметры:
// ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения, // ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения,
@@ -54,7 +51,7 @@
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан, // ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан,
// не проведён, нет проводок или не найден макет. // в нём нет строк или не найден макет.
// //
Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт
@@ -74,18 +71,10 @@
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
Если НЕ ДокументОбъект.Проведен Тогда Проводки = ДанныеИзвещенияПоРеестру(ДокументОбъект);
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения формируется по проводкам документа, поэтому печатается"
+ " только проведённый документ. Проведите документ и повторите печать.");
Возврат ТабличныйДокумент;
КонецЕсли;
Проводки = ПроводкиИзвещения(ДокументСсылка);
Если Проводки.Количество() = 0 Тогда Если Проводки.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"По документу не найдено проводок в регистре бухгалтерии - печатная форма" "Печатная форма извещения не сформирована: в документе нет строк с платежами.");
+ " извещения не сформирована.");
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
@@ -113,8 +102,8 @@
Иначе Иначе
// ЦБ передаёт поступившие платежи: печатается сторона отправителя, // ЦБ передаёт поступившие платежи: печатается сторона отправителя.
// отдельное извещение на каждое учреждение документа. // Документ адресный, поэтому извещение одно - по учреждению документа.
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаПоступившихПлатежейВУчреждения_Извещение0504805"; ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаПоступившихПлатежейВУчреждения_Извещение0504805";
Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель"); Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель");
Если Макет = Неопределено Тогда Если Макет = Неопределено Тогда
@@ -123,30 +112,19 @@
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
Учреждения = УчрежденияДокументаПередачи(ДокументОбъект); Если НЕ ЗначениеЗаполнено(ДокументОбъект.Учреждение) Тогда
Если Учреждения.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения не сформирована: в табличной части ""Задолженность""" "Печатная форма извещения не сформирована: не заполнено учреждение (получатель).");
+ " не заполнены учреждения.");
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
Для Каждого Учреждение Из Учреждения Цикл
ПроводкиУчреждения = ПроводкиПоУчреждению(Проводки, Учреждение);
Если ПроводкиУчреждения.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация, ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация,
Учреждение, ДокументОбъект.Учреждение,
"Передача поступивших платежей по родительской плате за " "Передача поступивших платежей по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy") + Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ ". Основание: " + Строка(ДокументСсылка) + "."); + ". Основание: " + Строка(ДокументСсылка) + ".");
ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, ПроводкиУчреждения); ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки);
КонецЦикла;
КонецЕсли; КонецЕсли;
@@ -156,10 +134,420 @@
КонецФункции КонецФункции
// Формирует печатную форму реестра поступивших платежей по документу подсистемы.
//
// Реестр строится по табличной части "Задолженность" и не зависит от проводок документа,
// поэтому печатается и непроведённый документ.
//
// Параметры:
// ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения,
// ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемый документ.
//
// Возвращаемое значение:
// ТабличныйДокумент - печатная форма реестра; пустой табличный документ, если документ
// не записан, не содержит строк или в документе нет макета.
//
Функция ПечатьРеестраПлатежей(ДокументСсылка) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМасштаб = Истина;
ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма реестра не сформирована: документ не записан в базу."
+ " Запишите документ и повторите печать.");
Возврат ТабличныйДокумент;
КонецЕсли;
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Если ДокументОбъект = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма реестра не сформирована: не удалось прочитать документ.");
Возврат ТабличныйДокумент;
КонецЕсли;
Если ДокументОбъект.Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма реестра не сформирована: в документе нет строк с платежами.");
Возврат ТабличныйДокумент;
КонецЕсли;
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ") Тогда
Макет = Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПолучитьМакет("РеестрПлатежей");
Учреждение = ДокументОбъект.Организация;
Иначе
Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("РеестрПлатежей");
Учреждение = ДокументОбъект.Учреждение;
КонецЕсли;
Если Макет = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма реестра не сформирована: в документе не найден макет печатной формы.");
Возврат ТабличныйДокумент;
КонецЕсли;
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.ЗаголовокРеестра =
"Реестр поступивших платежей по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ='MMMM yyyy'");
ОбластьЗаголовок.Параметры.РеквизитыДокумента =
"Документ № " + ДокументОбъект.Номер + " от " + Формат(ДокументОбъект.Дата, "ДЛФ=DD")
+ ", " + Строка(Учреждение);
ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("ОбластьШапкаТаблицы"));
ОбластьСтрока = Макет.ПолучитьОбласть("ОбластьСтрокаТаблицы");
ИтогоСумма = 0;
Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл
ОбластьСтрока.Параметры.Плательщик = СтрокаРеестра.Контрагент;
ОбластьСтрока.Параметры.Сумма = СтрокаРеестра.Сумма;
ОбластьСтрока.Параметры.ЛицевойСчет = СтрокаРеестра.ЛицевойСчет;
ОбластьСтрока.Параметры.Ребенок = СтрокаРеестра.Ребенок;
ОбластьСтрока.Параметры.НазначениеПлатежа = СтрокаРеестра.НазначениеПлатежа;
ОбластьСтрока.Параметры.Организация = Учреждение;
ОбластьСтрока.Параметры.РассчетныйСчет = СтрокаРеестра.РасчетныйСчет;
ОбластьСтрока.Параметры.Группа = СтрокаРеестра.Группа;
ОбластьСтрока.Параметры.Период = СтрокаРеестра.ПериодОплаты;
ОбластьСтрока.Параметры.ДатаПлатежа = СтрокаРеестра.ДатаПлатежа;
ТабличныйДокумент.Вывести(ОбластьСтрока);
ИтогоСумма = ИтогоСумма + СтрокаРеестра.Сумма;
КонецЦикла;
ОбластьПодвал = Макет.ПолучитьОбласть("ОбластьПодвалТаблицы");
ОбластьПодвал.Параметры.ОбщаяСумма = ИтогоСумма;
ТабличныйДокумент.Вывести(ОбластьПодвал);
Возврат ТабличныйДокумент;
КонецФункции
// Создаёт (или перезаполняет) исходящее извещение ф. 0504805 по документу передачи платежей.
//
// Извещение создаётся как обёртка: заполняются шапка и табличная часть "Передаваемые проводки"
// (она же данные печати), документ не проводится - бухгалтерские проводки остаются в документе
// передачи. Извещение служит носителем шапки, связей и данных для электронного документооборота.
//
// Параметры:
// ДокументПередачи - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ-основание.
//
// Возвращаемое значение:
// ДокументСсылка.ИзвещениеИсходящее - созданное или перезаполненное извещение;
// пустая ссылка, если извещение проведено.
//
Функция СоздатьИзвещениеПоПередаче(ДокументПередачи) Экспорт
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПередачи,
"Организация, Учреждение, ИФО, Период, Ответственный, ИзвещениеИсходящее");
ИзвещениеОбъект = Неопределено;
Если ЗначениеЗаполнено(Реквизиты.ИзвещениеИсходящее) Тогда
ИзвещениеОбъект = Реквизиты.ИзвещениеИсходящее.ПолучитьОбъект();
КонецЕсли;
Если ИзвещениеОбъект = Неопределено Тогда
ИзвещениеОбъект = Документы.ИзвещениеИсходящее.СоздатьДокумент();
ИначеЕсли ИзвещениеОбъект.Проведен Тогда
ОбщегоНазначения.СообщитьПользователю(
"Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся."
+ " Распроведите извещение или отвяжите его от документа передачи.");
Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка();
КонецЕсли;
ИзвещениеОбъект.Дата = ТекущаяДатаСеанса();
ИзвещениеОбъект.Организация = Реквизиты.Организация;
ИзвещениеОбъект.Получатель = КонтрагентПоОрганизации(Реквизиты.Учреждение);
ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийИсходящееИзвещение.ПолучениеДохода;
ИзвещениеОбъект.ИФО = Реквизиты.ИФО;
ИзвещениеОбъект.Ответственный = Реквизиты.Ответственный;
ИзвещениеОбъект.Комментарий =
"Передача поступивших платежей по родительской плате за "
+ Формат(Реквизиты.Период, "ДФ='MMMM yyyy'")
+ ". Основание: " + Строка(ДокументПередачи) + ".";
ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументПередачи);
ИзвещениеОбъект.Записать(РежимЗаписиДокумента.Запись);
Возврат ИзвещениеОбъект.Ссылка;
КонецФункции
// Создаёт (или перезаполняет) входящее извещение ф. 0504805 по документу принятия платежей.
//
// Извещение создаётся как обёртка: заполняются шапка и табличная часть "Передаваемые проводки",
// документ не проводится - проводки формирует документ принятия.
//
// Параметры:
// ДокументПринятия - ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - документ-основание.
//
// Возвращаемое значение:
// ДокументСсылка.ИзвещениеВходящее - созданное или перезаполненное извещение;
// пустая ссылка, если извещение проведено.
//
Функция СоздатьИзвещениеПоПринятию(ДокументПринятия) Экспорт
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПринятия,
"Организация, ЦБ, ИФО, Период, Ответственный, ИзвещениеВходящее, ДокументПередачи");
ИзвещениеОбъект = Неопределено;
Если ЗначениеЗаполнено(Реквизиты.ИзвещениеВходящее) Тогда
ИзвещениеОбъект = Реквизиты.ИзвещениеВходящее.ПолучитьОбъект();
КонецЕсли;
Если ИзвещениеОбъект = Неопределено Тогда
ИзвещениеОбъект = Документы.ИзвещениеВходящее.СоздатьДокумент();
ИначеЕсли ИзвещениеОбъект.Проведен Тогда
ОбщегоНазначения.СообщитьПользователю(
"Извещение " + Строка(ИзвещениеОбъект.Ссылка) + " проведено: изменения в него не вносятся."
+ " Распроведите извещение или отвяжите его от документа принятия.");
Возврат Документы.ИзвещениеВходящее.ПустаяСсылка();
КонецЕсли;
ИзвещениеОбъект.Дата = ТекущаяДатаСеанса();
ИзвещениеОбъект.Организация = Реквизиты.Организация;
ИзвещениеОбъект.Отправитель = КонтрагентПоОрганизации(Реквизиты.ЦБ);
ИзвещениеОбъект.ВидИзвещения = Перечисления.ВидыОперацийВходящееИзвещение.ПолучениеДохода;
ИзвещениеОбъект.ИФО = Реквизиты.ИФО;
ИзвещениеОбъект.Ответственный = Реквизиты.Ответственный;
ИзвещениеОбъект.Комментарий =
"Принятие поступивших платежей по родительской плате за "
+ Формат(Реквизиты.Период, "ДФ='MMMM yyyy'")
+ ". Основание: " + Строка(ДокументПринятия) + ".";
Если ЗначениеЗаполнено(Реквизиты.ДокументПередачи) Тогда
ИзвещениеОбъект.ДокументОснование = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(
Реквизиты.ДокументПередачи, "ИзвещениеИсходящее");
КонецЕсли;
ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументПринятия);
ИзвещениеОбъект.Записать(РежимЗаписиДокумента.Запись);
Возврат ИзвещениеОбъект.Ссылка;
КонецФункции
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
// Заполняет табличную часть "Передаваемые проводки" извещения по строкам реестра документа.
//
// Строки отражают операцию зачисления в доход бюджета: Дт 303.05 (КЭК 831) - Кт 205.31 (КЭК 660).
// КПС берётся из строки реестра, КФО - из шапки документа.
//
// Параметры:
// ИзвещениеОбъект - ДокументОбъект.ИзвещениеИсходящее, ДокументОбъект.ИзвещениеВходящее - заполняемое извещение.
// ДокументСсылка - ДокументСсылка - документ подсистемы, по строкам которого заполняется извещение.
//
Процедура ЗаполнитьПроводкиИзвещения(ИзвещениеОбъект, ДокументСсылка)
ИзвещениеОбъект.ПередаваемыеПроводки.Очистить();
ДокументОбъект = ДокументСсылка.ПолучитьОбъект();
Если ДокументОбъект = Неопределено Тогда
Возврат;
КонецЕсли;
СчетДт = БухгалтерскийУчет.СчетПоКоду("303.05", ДокументОбъект.Дата, ДокументОбъект.Организация);
СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", ДокументОбъект.Дата, ДокументОбъект.Организация);
КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831");
КЭККт = Справочники.КОСГУ.НайтиПоКоду("660");
Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл
Проводка = ИзвещениеОбъект.ПередаваемыеПроводки.Добавить();
Проводка.КФО = ДокументОбъект.КФО;
Проводка.СчетДт = СчетДт;
Проводка.КПСДт = СтрокаРеестра.КПС;
Проводка.КЭКДт = КЭКДт;
Проводка.СчетКт = СчетКт;
Проводка.КПСКт = СтрокаРеестра.КПС;
Проводка.КЭККт = КЭККт;
Проводка.Сумма = СтрокаРеестра.Сумма;
Проводка.Содержание = "Поступление родительской платы";
КонецЦикла;
КонецПроцедуры
// Возвращает контрагента, соответствующего организации, для подстановки в извещение.
//
// Параметры:
// Организация - СправочникСсылка.Организации - организация (сад или централизованная бухгалтерия).
//
// Возвращаемое значение:
// СправочникСсылка.Контрагенты - контрагент организации; пустая ссылка, если соответствие не найдено.
//
Функция КонтрагентПоОрганизации(Организация)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
Контрагент = БюджетнаяОтчетностьПолучениеНСИ.КонтрагентПоОрганизации(Организация);
Если ЗначениеЗаполнено(Контрагент) Тогда
Возврат Контрагент;
КонецЕсли;
// Штатный подбор сравнивает одновременно ИНН, КПП и бюджет организации с реквизитами
// юридического лица контрагента. Если КПП или бюджет расходятся, контрагент не находится -
// подбираем по ИНН и уточняем по КПП и бюджету.
Реквизиты = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Организация, "ИНН, КПП, Бюджет");
Если НЕ ЗначениеЗаполнено(Реквизиты.ИНН) Тогда
ОбщегоНазначения.СообщитьПользователю(
"У организации " + Строка(Организация) + " не заполнен ИНН:"
+ " контрагент для извещения не подобран, заполните его вручную.");
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
Кандидаты = КонтрагентыПоИНН(Реквизиты.ИНН);
Контрагент = ОтобратьКонтрагента(Кандидаты, Реквизиты);
Если ЗначениеЗаполнено(Контрагент) Тогда
Возврат Контрагент;
КонецЕсли;
ВсеПомеченные = Кандидаты.Количество() > 0;
Для Каждого Кандидат Из Кандидаты Цикл
Если НЕ Кандидат.ПометкаУдаления Тогда
ВсеПомеченные = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ВсеПомеченные Тогда
ОбщегоНазначения.СообщитьПользователю(
"Для организации " + Строка(Организация)
+ " найден только контрагент, помеченный на удаление: снимите пометку удаления"
+ " или заведите действующего контрагента.");
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
ОбщегоНазначения.СообщитьПользователю(СтрШаблон(
"Для организации %1 не найден контрагент: ИНН %2, КПП %3, кандидатов по ИНН - %4."
+ " Проверьте КПП и бюджет в юридическом лице контрагента или заполните контрагента вручную.",
Строка(Организация), Реквизиты.ИНН,
?(ЗначениеЗаполнено(Реквизиты.КПП), Реквизиты.КПП, "<не заполнен>"), Кандидаты.Количество()));
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецФункции
// Возвращает контрагентов-юрлиц с указанным ИНН (без помеченных на удаление).
//
// Параметры:
// ИНН - Строка - ИНН организации.
//
// Возвращаемое значение:
// Массив из Структура - кандидаты: Контрагент, КПП, Бюджет.
//
Функция КонтрагентыПоИНН(ИНН)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент,
| ЮридическиеЛица.КПП КАК КПП,
| ЮридическиеЛица.Бюджет КАК Бюджет,
| Контрагенты.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ЮридическиеЛица КАК ЮридическиеЛица
| ПО Контрагенты.ЮридическоеФизическоеЛицо = ЮридическиеЛица.Ссылка
|ГДЕ
| Контрагенты.ВидКонтрагента = &ВидКонтрагента
| И ЮридическиеЛица.ИНН = &ИНН";
Запрос.УстановитьПараметр("ВидКонтрагента", Перечисления.ЮрФизЛицо.ЮрЛицо);
Запрос.УстановитьПараметр("ИНН", ИНН);
Кандидаты = Новый Массив;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Кандидаты.Добавить(Новый Структура("Контрагент, КПП, Бюджет, ПометкаУдаления",
Выборка.Контрагент, Выборка.КПП, Выборка.Бюджет, Выборка.ПометкаУдаления));
КонецЦикла;
Возврат Кандидаты;
КонецФункции
// Выбирает контрагента из кандидатов по ИНН, уточняя по КПП и бюджету организации.
//
// Параметры:
// Кандидаты - Массив из Структура - кандидаты, найденные по ИНН.
// Реквизиты - Структура - реквизиты организации: ИНН, КПП, Бюджет.
//
// Возвращаемое значение:
// СправочникСсылка.Контрагенты - единственный подходящий контрагент;
// пустая ссылка, если однозначно выбрать нельзя.
//
Функция ОтобратьКонтрагента(Кандидаты, Реквизиты)
// Помеченные на удаление в работу не принимаются: из них можно только подсказать причину.
Рабочие = Новый Массив;
Для Каждого Кандидат Из Кандидаты Цикл
Если НЕ Кандидат.ПометкаУдаления Тогда
Рабочие.Добавить(Кандидат);
КонецЕсли;
КонецЦикла;
Если Рабочие.Количество() = 0 Тогда
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецЕсли;
// ИНН уникален для организации: единственный кандидат принимается без уточнений,
// даже если КПП в юридическом лице контрагента отличается.
Если Рабочие.Количество() = 1 Тогда
Возврат Рабочие[0].Контрагент;
КонецЕсли;
Кандидаты = Рабочие;
Если ЗначениеЗаполнено(Реквизиты.КПП) Тогда
Кандидаты = ОтобратьПоРеквизиту(Кандидаты, "КПП", Реквизиты.КПП);
Если Кандидаты.Количество() = 1 Тогда
Возврат Кандидаты[0].Контрагент;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Реквизиты.Бюджет) Тогда
Кандидаты = ОтобратьПоРеквизиту(Кандидаты, "Бюджет", Реквизиты.Бюджет);
Если Кандидаты.Количество() = 1 Тогда
Возврат Кандидаты[0].Контрагент;
КонецЕсли;
КонецЕсли;
Возврат Справочники.Контрагенты.ПустаяСсылка();
КонецФункции
// Оставляет кандидатов с указанным значением реквизита.
//
// Параметры:
// Кандидаты - Массив из Структура - кандидаты.
// ИмяРеквизита - Строка - имя реквизита структуры-кандидата.
// Значение - Произвольный - требуемое значение реквизита.
//
// Возвращаемое значение:
// Массив из Структура - отобранные кандидаты.
//
Функция ОтобратьПоРеквизиту(Кандидаты, ИмяРеквизита, Значение)
Отобрано = Новый Массив;
Для Каждого Кандидат Из Кандидаты Цикл
Если Кандидат[ИмяРеквизита] = Значение Тогда
Отобрано.Добавить(Кандидат);
КонецЕсли;
КонецЦикла;
Возврат Отобрано;
КонецФункции
// Формирует структуру параметров одного извещения для вывода. // Формирует структуру параметров одного извещения для вывода.
// //
// Параметры: // Параметры:
@@ -183,7 +571,7 @@
КонецФункции КонецФункции
// Выводит в табличный документ одно извещение по переданным проводкам. // Выводит в табличный документ одно извещение по переданным данным.
// //
// Параметры: // Параметры:
// ТабличныйДокумент - ТабличныйДокумент - печатная форма, в которую выводится извещение. // ТабличныйДокумент - ТабличныйДокумент - печатная форма, в которую выводится извещение.
@@ -191,7 +579,7 @@
// ДокументСсылка - ДокументСсылка - печатаемый документ. // ДокументСсылка - ДокументСсылка - печатаемый документ.
// ДокументОбъект - ДокументОбъект - печатаемый документ. // ДокументОбъект - ДокументОбъект - печатаемый документ.
// ПараметрыИзвещения - Структура - параметры извещения, см. НоваяСтруктураИзвещения. // ПараметрыИзвещения - Структура - параметры извещения, см. НоваяСтруктураИзвещения.
// Проводки - ТаблицаЗначений - проводки извещения, см. ПроводкиИзвещения. // Проводки - ТаблицаЗначений - данные извещения, см. ДанныеИзвещенияПоРеестру.
// //
Процедура ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки) Процедура ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки)
@@ -239,64 +627,6 @@
КонецПроцедуры КонецПроцедуры
// Возвращает список учреждений, присутствующих в табличной части "Задолженность" документа передачи.
//
// Параметры:
// ДокументОбъект - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения - документ передачи платежей.
//
// Возвращаемое значение:
// Массив из СправочникСсылка.Контрагенты - уникальные учреждения в порядке появления в табличной части.
//
Функция УчрежденияДокументаПередачи(ДокументОбъект)
Учреждения = Новый Массив;
Для Каждого СтрокаЗадолженности Из ДокументОбъект.Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
Продолжить;
КонецЕсли;
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
КонецЕсли;
КонецЦикла;
Возврат Учреждения;
КонецФункции
// Возвращает проводки документа, относящиеся к указанному учреждению.
//
// Учреждение определяется по субконто кредита счёта расчётов (304.04), поэтому проверяются
// все позиции субконто.
//
// Параметры:
// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения.
// Учреждение - СправочникСсылка.Контрагенты - учреждение, по которому отбираются проводки.
//
// Возвращаемое значение:
// ТаблицаЗначений - проводки указанного учреждения, колонки как у Проводки.
//
Функция ПроводкиПоУчреждению(Проводки, Учреждение)
Результат = Проводки.Скопировать();
СтрокиДляУдаления = Новый Массив;
Для Каждого Проводка Из Результат Цикл
Если Проводка.СубконтоКт1 = Учреждение
ИЛИ Проводка.СубконтоКт2 = Учреждение
ИЛИ Проводка.СубконтоКт3 = Учреждение Тогда
Продолжить;
КонецЕсли;
СтрокиДляУдаления.Добавить(Проводка);
КонецЦикла;
Для Каждого Проводка Из СтрокиДляУдаления Цикл
Результат.Удалить(Проводка);
КонецЦикла;
Возврат Результат;
КонецФункции
// Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок". // Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок".
// //
// Параметры: // Параметры:
@@ -471,47 +801,105 @@
КонецФункции КонецФункции
// Возвращает проводки документа по данным регистра бухгалтерии. // Возвращает идентификатор строки поступления для регистра взаиморасчётов.
//
// Идентификатор связывает строку табличной части "Задолженность" наших документов
// со строкой расшифровки платежа кассового поступления: "<UUID документа>:<номер строки>".
// Длина не должна превышать 50 символов (измерение регистра и реквизит табличных частей).
// //
// Параметры: // Параметры:
// ДокументСсылка - ДокументСсылка - печатаемый документ. // ДокументСсылка - ДокументСсылка.КассовоеПоступление - документ поступления.
// НомерСтроки - Число - номер строки табличной части "Расшифровка платежа".
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание, // Строка
// СубконтоКт1, СубконтоКт2, СубконтоКт3.
// //
Функция ПроводкиИзвещения(ДокументСсылка) Функция ИдентификаторСтрокиПоступления(ДокументСсылка, НомерСтроки) Экспорт
Запрос = Новый Запрос; Если НЕ ЗначениеЗаполнено(ДокументСсылка) Тогда
Запрос.Текст = Возврат "";
"ВЫБРАТЬ КонецЕсли;
| Проводки.СчетДт КАК СчетДт,
| Проводки.КПСДт КАК КПСДт,
| Проводки.КЭКДт КАК КЭКДт,
| Проводки.СчетКт КАК СчетКт,
| Проводки.КПСКт КАК КПСКт,
| Проводки.КЭККт КАК КЭККт,
| Проводки.КФО КАК КФО,
| Проводки.Сумма КАК Сумма,
| Проводки.Содержание КАК Содержание,
| Проводки.СубконтоКт1 КАК СубконтоКт1,
| Проводки.СубконтоКт2 КАК СубконтоКт2,
| Проводки.СубконтоКт3 КАК СубконтоКт3
|ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(, , Регистратор = &ДокументСсылка) КАК Проводки
|
|УПОРЯДОЧИТЬ ПО
| Проводки.НомерСтроки";
Запрос.УстановитьПараметр("ДокументСсылка", ДокументСсылка);
Возврат Запрос.Выполнить().Выгрузить(); Возврат Строка(ДокументСсылка.УникальныйИдентификатор()) + ":" + Формат(НомерСтроки, "ЧГ=0");
КонецФункции
// Возвращает данные извещения по строкам табличной части "Задолженность".
//
// Извещение не имеет собственных проводок: строки отражают операцию зачисления в доход
// бюджета (Дт 303.05, КЭК 831 - Кт 205.31, КЭК 660), которую выполняет документ подсистемы.
// КПС берётся из строки реестра, КФО - из шапки документа.
//
// Параметры:
// ДокументОбъект - ДокументОбъект - печатаемый документ.
//
// Возвращаемое значение:
// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание.
//
Функция ДанныеИзвещенияПоРеестру(ДокументОбъект)
Данные = Новый ТаблицаЗначений;
Данные.Колонки.Добавить("СчетДт");
Данные.Колонки.Добавить("КПСДт");
Данные.Колонки.Добавить("КЭКДт");
Данные.Колонки.Добавить("СчетКт");
Данные.Колонки.Добавить("КПСКт");
Данные.Колонки.Добавить("КЭККт");
Данные.Колонки.Добавить("КФО");
Данные.Колонки.Добавить("Сумма");
Данные.Колонки.Добавить("Содержание");
СчетДт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("303.05");
СчетКт = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831");
КЭККт = Справочники.КОСГУ.НайтиПоКоду("660");
Для Каждого СтрокаРеестра Из ДокументОбъект.Задолженность Цикл
СтрокаДанных = Данные.Добавить();
СтрокаДанных.СчетДт = СчетДт;
СтрокаДанных.КПСДт = СтрокаРеестра.КПС;
СтрокаДанных.КЭКДт = КЭКДт;
СтрокаДанных.СчетКт = СчетКт;
СтрокаДанных.КПСКт = СтрокаРеестра.КПС;
СтрокаДанных.КЭККт = КЭККт;
СтрокаДанных.КФО = ДокументОбъект.КФО;
СтрокаДанных.Сумма = СтрокаРеестра.Сумма;
СтрокаДанных.Содержание = СодержаниеСтрокиИзвещения(СтрокаРеестра);
КонецЦикла;
Возврат Данные;
КонецФункции
// Формирует текст содержания строки извещения.
//
// Параметры:
// СтрокаРеестра - СтрокаТаблицыЗначений - строка табличной части "Задолженность".
//
// Возвращаемое значение:
// Строка
//
Функция СодержаниеСтрокиИзвещения(СтрокаРеестра)
ЧастиСодержания = Новый Массив;
Если ЗначениеЗаполнено(СтрокаРеестра.Ребенок) Тогда
ЧастиСодержания.Добавить("Ребенок: " + Строка(СтрокаРеестра.Ребенок));
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаРеестра.Договор) Тогда
ЧастиСодержания.Добавить("Договор: " + Строка(СтрокаРеестра.Договор));
КонецЕсли;
Если ЗначениеЗаполнено(СтрокаРеестра.ПериодОплаты) Тогда
ЧастиСодержания.Добавить("Период: " + СтрокаРеестра.ПериодОплаты);
КонецЕсли;
Возврат СтрСоединить(ЧастиСодержания, "; ");
КонецФункции КонецФункции
// Сворачивает проводки по счетам для раздела "Обороты в журнал операций". // Сворачивает проводки по счетам для раздела "Обороты в журнал операций".
// //
// Параметры: // Параметры:
// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения. // Проводки - ТаблицаЗначений - данные извещения, см. ДанныеИзвещенияПоРеестру.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма. // ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма.
@@ -22,7 +22,7 @@
<containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="2a75145f-4786-484a-b6f5-49ea8d2e6064"/> <containedObjects classId="fb282519-d103-4dd3-bc12-cb271d631dfc" objectId="2a75145f-4786-484a-b6f5-49ea8d2e6064"/>
<keepMappingToExtendedConfigurationObjectsByIDs>true</keepMappingToExtendedConfigurationObjectsByIDs> <keepMappingToExtendedConfigurationObjectsByIDs>true</keepMappingToExtendedConfigurationObjectsByIDs>
<namePrefix>ПС_</namePrefix> <namePrefix>ПС_</namePrefix>
<configurationExtensionCompatibilityMode>8.3.14</configurationExtensionCompatibilityMode> <configurationExtensionCompatibilityMode>8.3.24</configurationExtensionCompatibilityMode>
<configurationExtensionPurpose>Customization</configurationExtensionPurpose> <configurationExtensionPurpose>Customization</configurationExtensionPurpose>
<defaultRunMode>ManagedApplication</defaultRunMode> <defaultRunMode>ManagedApplication</defaultRunMode>
<usePurposes>PersonalComputer</usePurposes> <usePurposes>PersonalComputer</usePurposes>
@@ -53,11 +53,15 @@
<commonPictures>CommonPicture.Сумма</commonPictures> <commonPictures>CommonPicture.Сумма</commonPictures>
<roles>Role.ПС_ОсновнаяРоль</roles> <roles>Role.ПС_ОсновнаяРоль</roles>
<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>
<commonModules>CommonModule.ВнутреннийЭДОПереопределяемый</commonModules>
<commonModules>CommonModule.ПС_ВнутреннийЭДОИзвещений</commonModules>
<commonModules>CommonModule.ПС_ИдентификаторыОбъектовЭДО</commonModules>
<settingsStorages>SettingsStorage.ХранилищеВариантовОтчетов</settingsStorages> <settingsStorages>SettingsStorage.ХранилищеВариантовОтчетов</settingsStorages>
<definedTypes>DefinedType.ОснованиеВнутреннегоЭлектронногоДокумента</definedTypes>
<commonForms>CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента</commonForms> <commonForms>CommonForm.УстановкаСтатусаПлатежноРасчетногоДокумента</commonForms>
<catalogs>Catalog.Контрагенты</catalogs> <catalogs>Catalog.Контрагенты</catalogs>
<catalogs>Catalog.Договоры</catalogs> <catalogs>Catalog.Договоры</catalogs>
@@ -71,10 +75,13 @@
<catalogs>Catalog.ИсточникиФинансовогоОбеспечения</catalogs> <catalogs>Catalog.ИсточникиФинансовогоОбеспечения</catalogs>
<catalogs>Catalog.Пользователи</catalogs> <catalogs>Catalog.Пользователи</catalogs>
<catalogs>Catalog.КОСГУ</catalogs> <catalogs>Catalog.КОСГУ</catalogs>
<catalogs>Catalog.ВидыНалоговИПлатежей</catalogs>
<documents>Document.НачислениеРодительскойПлаты</documents> <documents>Document.НачислениеРодительскойПлаты</documents>
<documents>Document.ПС_ПринятиеПоступившихПлатежейИзЦБ</documents> <documents>Document.ПС_ПринятиеПоступившихПлатежейИзЦБ</documents>
<documents>Document.ПС_ПередачаПоступившихПлатежейВУчреждения</documents> <documents>Document.ПС_ПередачаПоступившихПлатежейВУчреждения</documents>
<documents>Document.КассовоеПоступление</documents> <documents>Document.КассовоеПоступление</documents>
<documents>Document.ИзвещениеИсходящее</documents>
<documents>Document.ИзвещениеВходящее</documents>
<enums>Enum.КВД</enums> <enums>Enum.КВД</enums>
<enums>Enum.ПС_ВидыОперацийПоВзаиморасчетам</enums> <enums>Enum.ПС_ВидыОперацийПоВзаиморасчетам</enums>
<reports>Report.ПС_ВедомостьЦБПоРодительскойПлате</reports> <reports>Report.ПС_ВедомостьЦБПоРодительскойПлате</reports>
@@ -245,6 +245,37 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </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> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -473,6 +504,51 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormField">
<name>ТаблицаДокументыПередачиСуммаДокумента</name> <name>ТаблицаДокументыПередачиСуммаДокумента</name>
<id>379</id> <id>379</id>
@@ -1197,7 +1273,6 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
@@ -3735,6 +3810,23 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </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>
<attributes> <attributes>
<name>ДокументыПринятия</name> <name>ДокументыПринятия</name>
@@ -3826,23 +3918,6 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </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> <columns>
<name>ИФО</name> <name>ИФО</name>
<title> <title>
@@ -3935,23 +4010,6 @@
<common>true</common> <common>true</common>
</edit> </edit>
</columns> </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> <columns>
<name>ЦБ</name> <name>ЦБ</name>
<title> <title>
@@ -3960,7 +4018,7 @@
</title> </title>
<id>65</id> <id>65</id>
<valueType> <valueType>
<types>CatalogRef.Контрагенты</types> <types>CatalogRef.Организации</types>
</valueType> </valueType>
<view> <view>
<common>true</common> <common>true</common>
@@ -4225,7 +4283,7 @@
</title> </title>
<id>47</id> <id>47</id>
<valueType> <valueType>
<types>CatalogRef.Контрагенты</types> <types>CatalogRef.Организации</types>
</valueType> </valueType>
<view> <view>
<common>true</common> <common>true</common>
@@ -4548,6 +4606,22 @@
</handler> </handler>
</action> </action>
</formCommands> </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> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -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) КАК СуммаПринято,
| Передача.СуммаДокумента - ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК Расхождение, | Передача.СуммаДокумента - ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК Расхождение,
@@ -398,8 +399,6 @@
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Передача | Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Передача
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПринято КАК ВТПринято | ЛЕВОЕ СОЕДИНЕНИЕ ВТПринято КАК ВТПринято
| ПО Передача.Ссылка = ВТПринято.ДокументПередачи | ПО Передача.Ссылка = ВТПринято.ДокументПередачи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК Строки
| ПО Передача.Ссылка = Строки.Ссылка
|ГДЕ |ГДЕ
| НЕ Передача.ПометкаУдаления | НЕ Передача.ПометкаУдаления
| И Передача.Период >= &НачалоПериода | И Передача.Период >= &НачалоПериода
@@ -407,17 +406,17 @@
| И (&ЦБ = НЕОПРЕДЕЛЕНО | И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.Организация = &ЦБ) | ИЛИ Передача.Организация = &ЦБ)
| И (&Сад = НЕОПРЕДЕЛЕНО | И (&Сад = НЕОПРЕДЕЛЕНО
| ИЛИ Строки.Учреждение = &Сад) | ИЛИ Передача.Учреждение = &Сад)
| И (&ИФО = НЕОПРЕДЕЛЕНО | И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.ИФО = &ИФО) | ИЛИ Передача.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Передача.Период, | Передача.Период,
| Передача.Организация"; | Передача.Учреждение";
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала); Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания); Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация); Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация);
Запрос.УстановитьПараметр("Сад", СадКонтрагент); Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено)); Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -1,3 +1,24 @@
// Обработка ПС_УправлениеРасчетамиПоРодительскойПлате. // Обработка ПС_УправлениеРасчетамиПоРодительскойПлате.
// Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl). // Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl).
// Модуль объекта оставлен пустым намеренно.
#Область ПрограммныйИнтерфейс
#Если Сервер Или ВнешнееСоединение Или ТолстыйКлиентОбычноеПриложение Тогда
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
//
// Возвращаемое значение:
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
//
Функция ПС_ИнициализироватьИдентификаторыОбъектовЭДО() Экспорт
Возврат ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
КонецФункции
#КонецЕсли
#КонецОбласти
@@ -38,7 +38,7 @@
<value>Учреждение (сад)</value> <value>Учреждение (сад)</value>
</synonym> </synonym>
<type> <type>
<types>CatalogRef.Контрагенты</types> <types>CatalogRef.Организации</types>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -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>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document 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="7eed47cc-6019-4b3d-b825-4d7b97b70b36" extendedConfigurationObject="96af047b-7cc7-4d47-9267-1faf1018c6c2">
<producedTypes>
<objectType typeId="55afd80c-cdf6-4ed8-92b4-3e31193c8d83" valueTypeId="a872ebf4-b3a6-457c-b7fb-60f98d89b04a"/>
<refType typeId="549ee220-8152-4947-8c37-d57651460447" valueTypeId="27b5b814-ba0d-4c9e-ae95-9f5571ee9ca7"/>
<selectionType typeId="65fcb32e-4256-4c7b-9454-5781e200fd87" valueTypeId="eb76cc07-493f-45c5-9efe-b20254aa2683"/>
<listType typeId="44f445bb-4096-423a-9317-99751749b025" valueTypeId="4c10ef7b-caeb-4b6a-8bcf-83ed03dc6b34"/>
<managerType typeId="80881412-dd7b-47fb-811e-5bb2773702b4" valueTypeId="264e87d0-6516-4d55-adbb-6330d9527001"/>
</producedTypes>
<name>ИзвещениеВходящее</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:DocumentExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<useStandardCommands>true</useStandardCommands>
</mdclass:Document>
@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<mdclass:Document 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="41775506-5c5d-45c1-b92e-2436acf64680" extendedConfigurationObject="afa2d2ce-ab98-4f62-b4d2-072ff3a30c72">
<producedTypes>
<objectType typeId="6c3af4d3-ee94-4e95-83c4-91fcc59f3dce" valueTypeId="cc7f7a7e-a66c-49a5-98d3-e0f54bd52ced"/>
<refType typeId="d1d043ef-7ac1-457d-8cde-cf995da6fb89" valueTypeId="fab3c501-9604-4547-ba62-8ce71a0fafd0"/>
<selectionType typeId="f4cf0b07-83ad-4af9-b3ed-f00c47566866" valueTypeId="f3974034-5957-45e6-9de0-653465e08638"/>
<listType typeId="e83fdf40-7c45-4a8c-a871-ee4b7d0e71f2" valueTypeId="5edb65d0-6f93-4e2f-bd2c-13ec11d8fa77"/>
<managerType typeId="5ceeb5c6-84a4-4a68-82fb-54def1eed3cd" valueTypeId="33145c27-4d30-4272-8f0e-670df607a06c"/>
</producedTypes>
<name>ИзвещениеИсходящее</name>
<objectBelonging>Adopted</objectBelonging>
<extension xsi:type="mdclassExtension:DocumentExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension>
<useStandardCommands>true</useStandardCommands>
</mdclass:Document>
@@ -16,6 +16,16 @@
ПС_РазборПлатежейПоРодительскойПлате.ЗаполнитьКонтрагентовПоНазначениюПлатежа(ЭтотОбъект); ПС_РазборПлатежейПоРодительскойПлате.ЗаполнитьКонтрагентовПоНазначениюПлатежа(ЭтотОбъект);
// Признак "Родительская плата" сбрасывается, если в корреспондирующем счёте указан 303.00.
// Без признака приход по регистру взаиморасчётов не формируется, поэтому предупреждаем
// по факту распознанного и найденного лицевого счёта ребёнка.
Если НЕ РодительскаяПлата
И ПС_РазборПлатежейПоРодительскойПлате.ЕстьЛицевыеСчетаДетей(ЭтотОбъект) Тогда
ОбщегоНазначения.СообщитьПользователю(
"В расшифровке платежа распознан лицевой счёт ребёнка, но признак ""Родительская плата"""
+ " не установлен: приход по взаиморасчётам по родительской плате не будет сформирован.");
КонецЕсли;
КонецПроцедуры КонецПроцедуры
&После("ОбработкаПроведения") &После("ОбработкаПроведения")
@@ -51,31 +61,25 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Сады детей загружаем одним запросом, контрагента сада ищем по одному разу на сад: // Сады детей загружаем одним запросом: обращение к базе внутри цикла по строкам недопустимо.
// обращение к базе внутри цикла по строкам недопустимо.
ОрганизацииСадов = ПС_ОрганизацииСадовДетей(Дети); ОрганизацииСадов = ПС_ОрганизацииСадовДетей(Дети);
КонтрагентыСадов = Новый Соответствие;
Для Каждого СтрокаРасшифровки Из СтрокиОплаты Цикл Для Каждого СтрокаРасшифровки Из СтрокиОплаты Цикл
ОрганизацияСада = ОрганизацииСадов[СтрокаРасшифровки.Ребенок]; ОрганизацияСада = ОрганизацииСадов[СтрокаРасшифровки.Ребенок];
КонтрагентСада = КонтрагентыСадов[ОрганизацияСада];
Если КонтрагентСада = Неопределено Тогда
КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияСада, "Учреждение");
КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада);
КонецЕсли;
Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход(); Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
Движение.Период = Дата; Движение.Период = Дата;
Движение.Организация = Организация; Движение.Организация = Организация;
Движение.Учреждение = КонтрагентСада; Движение.Учреждение = ОрганизацияСада;
Движение.Плательщик = СтрокаРасшифровки.Контрагент; Движение.Плательщик = СтрокаРасшифровки.Контрагент;
Движение.Ребенок = СтрокаРасшифровки.Ребенок; Движение.Ребенок = СтрокаРасшифровки.Ребенок;
Движение.Договор = СтрокаРасшифровки.Договор; Движение.Договор = СтрокаРасшифровки.Договор;
Движение.ИФО = ИФО; Движение.ИФО = ИФО;
Движение.КФО = СтрокаРасшифровки.КФО; Движение.КФО = СтрокаРасшифровки.КФО;
Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа; Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа;
Движение.ИДСтроки = ПС_УчетРодительскойПлаты.ИдентификаторСтрокиПоступления(
Ссылка, СтрокаРасшифровки.НомерСтроки);
Движение.Сумма = СтрокаРасшифровки.Сумма; Движение.Сумма = СтрокаРасшифровки.Сумма;
Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПоступлениеПлатежа; Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПоступлениеПлатежа;
@@ -51,6 +51,47 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormField">
<name>Период</name> <name>Период</name>
<id>16</id> <id>16</id>
@@ -364,47 +405,6 @@
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
</extInfo> </extInfo>
</items> </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"> <items xsi:type="form:FormGroup">
<name>ЗадолженностьГруппаКонтрагента</name> <name>ЗадолженностьГруппаКонтрагента</name>
<id>92</id> <id>92</id>
@@ -685,6 +685,276 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ЗадолженностьЛицевойСчет</name>
<id>113</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>115</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьЛицевойСчетКонтекстноеМеню</name>
<id>114</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>116</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>118</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьНазначениеПлатежаКонтекстноеМеню</name>
<id>117</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>119</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>121</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьРасчетныйСчетКонтекстноеМеню</name>
<id>120</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>122</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>124</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьГруппаКонтекстноеМеню</name>
<id>123</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>125</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>127</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьПериодОплатыКонтекстноеМеню</name>
<id>126</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>128</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>130</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьДатаПлатежаКонтекстноеМеню</name>
<id>129</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>
<autoCommandBar> <autoCommandBar>
<name>ЗадолженностьКоманднаяПанель</name> <name>ЗадолженностьКоманднаяПанель</name>
<id>30</id> <id>30</id>
@@ -835,6 +1105,50 @@
<items xsi:type="form:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаСтраницыОбщихДанных</name> <name>ГруппаСтраницыОбщихДанных</name>
<id>88</id> <id>88</id>
<items xsi:type="form:FormField">
<name>ПринятиеПлатежей</name>
<id>138</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>140</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПринятиеПлатежейКонтекстноеМеню</name>
<id>139</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<hyperlink>true</hyperlink>
<border xsi:type="core:BorderDef">
<width>1</width>
</border>
</extInfo>
</items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ИФО</name> <name>ИФО</name>
<id>10</id> <id>10</id>
@@ -922,6 +1236,46 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ИзвещениеИсходящее</name>
<id>135</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ИзвещениеИсходящее</segments>
</dataPath>
<extendedTooltip>
<name>ИзвещениеИсходящееРасширеннаяПодсказка</name>
<id>137</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИзвещениеИсходящееКонтекстноеМеню</name>
<id>136</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<hyperlink>true</hyperlink>
<border xsi:type="core:BorderDef">
<width>1</width>
</border>
</extInfo>
</items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>Комментарий</name> <name>Комментарий</name>
<id>81</id> <id>81</id>
@@ -1291,6 +1645,58 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button">
<name>ПечатьРеестраПлатежей</name>
<id>131</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПечатьРеестраПлатежейРасширеннаяПодсказка</name>
<id>132</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПечатьРеестраПлатежей</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьИзвещение</name>
<id>133</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСоздатьИзвещениеРасширеннаяПодсказка</name>
<id>134</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СоздатьИзвещение</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
@@ -1298,6 +1704,10 @@
<event>OnCreateAtServer</event> <event>OnCreateAtServer</event>
<name>ПриСозданииНаСервере</name> <name>ПриСозданииНаСервере</name>
</handlers> </handlers>
<handlers>
<event>NotificationProcessing</event>
<name>ОбработкаОповещения</name>
</handlers>
<saveWindowSettings>true</saveWindowSettings> <saveWindowSettings>true</saveWindowSettings>
<autoTitle>true</autoTitle> <autoTitle>true</autoTitle>
<autoUrl>true</autoUrl> <autoUrl>true</autoUrl>
@@ -1392,6 +1802,38 @@
</handler> </handler>
</action> </action>
</formCommands> </formCommands>
<formCommands>
<name>ПечатьРеестраПлатежей</name>
<title>
<key>ru</key>
<value>Реестр платежей</value>
</title>
<id>5</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ПечатьРеестраПлатежей</name>
</handler>
</action>
</formCommands>
<formCommands>
<name>СоздатьИзвещение</name>
<title>
<key>ru</key>
<value>Создать извещение 0504805</value>
</title>
<id>6</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>СоздатьИзвещение</name>
</handler>
</action>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -20,6 +20,9 @@
Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить(); Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли; КонецЕсли;
// Состояние внутреннего ЭДО (подсистема БГУ): организация документа уже определена.
ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -27,6 +30,8 @@
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация); БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
ОбщегоНазначенияБГУ.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -57,6 +62,25 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Обновляет гиперссылку состояния внутреннего ЭДО.
ОбщегоНазначенияБГУКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура Подключаемый_ДекорацияБГУНажатие(Элемент, СтандартнаяОбработка)
ОбщегоНазначенияБГУКлиент.ДекорацияНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗадолженность #Область ОбработчикиСобытийЭлементовТаблицыФормыЗадолженность
@@ -80,6 +104,25 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПечатьРеестраПлатежей(Команда)
ТабличныйДокумент = ПечатьРеестраПлатежейНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Реестр платежей");
КонецПроцедуры
&НаКлиенте
Процедура СоздатьИзвещение(Команда)
Извещение = СоздатьИзвещениеНаСервере();
Если ЗначениеЗаполнено(Извещение) Тогда
ПараметрыФормы = Новый Структура("Ключ", Извещение);
ОткрытьФорму("Документ.ИзвещениеИсходящее.Форма.ФормаДокумента", ПараметрыФормы, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда) Процедура ПросмотрБухгалтерскихЗаписей(Команда)
@@ -97,42 +140,21 @@
&НаКлиенте &НаКлиенте
Процедура СоздатьПринятиеПлатежей(Команда) Процедура СоздатьПринятиеПлатежей(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда Принятие = СоздатьПринятиеПлатежейНаСервере();
СообщениеПользователю = Новый СообщениеПользователю; Если ЗначениеЗаполнено(Принятие) Тогда
СообщениеПользователю.Текст = "Сначала запишите документ передачи платежей."; ПараметрыФормы = Новый Структура("Ключ", Принятие);
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Если НЕ Объект.Проведен Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Перед созданием приёма платежей документ передачи должен быть проведён.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
// По каждому учреждению табличной части открывается форма нового документа принятия:
// строки подбираются по саду документа, записывает документы пользователь.
ОрганизацииСадов = ОрганизацииСадовНаСервере();
Если ОрганизацииСадов.Количество() = 0 Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "В табличной части ""Задолженность"" не заполнены учреждения (получатели).";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Для Каждого ОрганизацияСада Из ОрганизацииСадов Цикл
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ДокументПередачи", Объект.Ссылка);
ПараметрыФормы.Вставить("ОрганизацияСада", ОрганизацияСада);
ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента", ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента",
ПараметрыФормы, ПараметрыФормы,
ЭтотОбъект, ЭтотОбъект,
Строка(Объект.Ссылка) + ":" + Строка(ОрганизацияСада)); Строка(Принятие));
КонецЕсли;
КонецЦикла; КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуБГУ(Команда)
ОбщегоНазначенияБГУКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецПроцедуры КонецПроцедуры
@@ -147,6 +169,72 @@
КонецФункции КонецФункции
&НаСервере
Функция ПечатьРеестраПлатежейНаСервере(ДокументСсылка)
Возврат ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка);
КонецФункции
&НаСервере
Функция СоздатьПринятиеПлатежейНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ передачи платежей.");
Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка();
КонецЕсли;
Если НЕ Объект.Проведен Тогда
ОбщегоНазначения.СообщитьПользователю(
"Перед созданием приёма платежей документ передачи должен быть проведён.");
Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнено учреждение (получатель) документа передачи.");
Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПустаяСсылка();
КонецЕсли;
// Документ передачи адресный: приём платежей по нему один. Если он уже создан,
// открывается существующий - повторное нажатие не плодит документы.
Если ЗначениеЗаполнено(Объект.ПринятиеПлатежей) Тогда
Существующий = Объект.ПринятиеПлатежей.ПолучитьОбъект();
Если Существующий <> Неопределено И НЕ Существующий.ПометкаУдаления Тогда
Возврат Объект.ПринятиеПлатежей;
КонецЕсли;
КонецЕсли;
Принятие = Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.СоздатьДокумент();
Принятие.Организация = Объект.Учреждение;
Принятие.Заполнить(Объект.Ссылка);
Принятие.Записать(РежимЗаписиДокумента.Запись);
Объект.ПринятиеПлатежей = Принятие.Ссылка;
Записать();
Возврат Принятие.Ссылка;
КонецФункции
&НаСервере
Функция СоздатьИзвещениеНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ передачи платежей.");
Возврат Документы.ИзвещениеИсходящее.ПустаяСсылка();
КонецЕсли;
Извещение = ПС_УчетРодительскойПлаты.СоздатьИзвещениеПоПередаче(Объект.Ссылка);
Если ЗначениеЗаполнено(Извещение) Тогда
Объект.ИзвещениеИсходящее = Извещение;
Записать();
КонецЕсли;
Возврат Извещение;
КонецФункции
&НаСервере &НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию() Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
@@ -161,8 +249,10 @@
КонецПроцедуры КонецПроцедуры
// Подбирает в табличную часть "Задолженность" поступившие платежи, ещё не переданные // Подбирает в табличную часть "Задолженность" поступившие платежи, ещё не переданные
// в учреждения: остатки регистра накопления ПС_ВзаиморасчетыПоРодительскойПлате. // в учреждения: остатки регистра накопления ПС_ВзаиморасчетыПоРодительскойПлате в разрезе
// Предыдущая передача выбирает остатки, поэтому следующая их уже не видит. // квитанций (измерение "ИДСтроки"). Предыдущая передача выбирает остатки, поэтому следующая
// их уже не видит. Реквизиты реестра (лицевой счёт, расчётный счёт, группа, период оплаты,
// назначение платежа) разбираются из назначения платежа строки расшифровки кассового поступления.
// //
&НаСервере &НаСервере
Процедура ЗаполнитьПоПоступившимПлатежамНаСервере() Процедура ЗаполнитьПоПоступившимПлатежамНаСервере()
@@ -173,10 +263,16 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение невозможно: не заполнено учреждение (получатель).");
Возврат;
КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
| Остатки.Учреждение КАК Учреждение, | Остатки.ИДСтроки КАК ИДСтроки,
| Остатки.Плательщик КАК Контрагент, | Остатки.Плательщик КАК Контрагент,
| Остатки.Договор КАК Договор, | Остатки.Договор КАК Договор,
| Остатки.Ребенок КАК Ребенок, | Остатки.Ребенок КАК Ребенок,
@@ -187,12 +283,12 @@
|ИЗ |ИЗ
| РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.Остатки( | РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.Остатки(
| &МоментВремени, | &МоментВремени,
| Организация = &Организация) КАК Остатки | Организация = &Организация
| И Учреждение = &Учреждение) КАК Остатки
|ГДЕ |ГДЕ
| Остатки.СуммаОстаток <> 0 | Остатки.СуммаОстаток <> 0
|
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Остатки.Учреждение,
| Остатки.Плательщик, | Остатки.Плательщик,
| Остатки.Договор"; | Остатки.Договор";
// Поступившие платежи собираются на границу конца дня документа: кассовые поступления // Поступившие платежи собираются на границу конца дня документа: кассовые поступления
@@ -200,6 +296,7 @@
// в остатки не попадали. // в остатки не попадали.
Запрос.УстановитьПараметр("МоментВремени", КонецДня(Объект.Дата) + 1); Запрос.УстановитьПараметр("МоментВремени", КонецДня(Объект.Дата) + 1);
Запрос.УстановитьПараметр("Организация", Объект.Организация); Запрос.УстановитьПараметр("Организация", Объект.Организация);
Запрос.УстановитьПараметр("Учреждение", Объект.Учреждение);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -208,30 +305,87 @@
ЗначенияИФО = Новый Соответствие; ЗначенияИФО = Новый Соответствие;
ЗначенияКФО = Новый Соответствие; ЗначенияКФО = Новый Соответствие;
СтрокиОстатков = Новый Массив;
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
СтрокаОстатка = Новый Структура;
СтрокаОстатка.Вставить("ИДСтроки", Выборка.ИДСтроки);
СтрокаОстатка.Вставить("Контрагент", Выборка.Контрагент);
СтрокаОстатка.Вставить("Договор", Выборка.Договор);
СтрокаОстатка.Вставить("Ребенок", Выборка.Ребенок);
СтрокаОстатка.Вставить("КПС", Выборка.КПС);
СтрокаОстатка.Вставить("Сумма", Выборка.Сумма);
СтрокиОстатков.Добавить(СтрокаОстатка);
ЗначенияИФО.Вставить(Выборка.ИФО, Истина); ЗначенияИФО.Вставить(Выборка.ИФО, Истина);
ЗначенияКФО.Вставить(Выборка.КФО, Истина); ЗначенияКФО.Вставить(Выборка.КФО, Истина);
НоваяСтрока = Объект.Задолженность.Добавить();
НоваяСтрока.Учреждение = Выборка.Учреждение;
НоваяСтрока.Контрагент = Выборка.Контрагент;
НоваяСтрока.Договор = Выборка.Договор;
НоваяСтрока.Ребенок = Выборка.Ребенок;
НоваяСтрока.КПС = Выборка.КПС;
НоваяСтрока.Сумма = Выборка.Сумма;
КонецЦикла; КонецЦикла;
Если Объект.Задолженность.Количество() = 0 Тогда Если СтрокиОстатков.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"Поступивших платежей, ещё не переданных в учреждения, не найдено."); "Поступивших платежей, ещё не переданных в учреждения, не найдено.");
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Расшифровки платежей читаются одним запросом на весь документ.
Расшифровки = РасшифровкиПлатежейПоИД(СтрокиОстатков);
СтрокБезИдентификатора = 0;
СтрокБезРасшифровки = 0;
Для Каждого СтрокаОстатка Из СтрокиОстатков Цикл
НоваяСтрока = Объект.Задолженность.Добавить();
НоваяСтрока.Контрагент = СтрокаОстатка.Контрагент;
НоваяСтрока.Договор = СтрокаОстатка.Договор;
НоваяСтрока.Ребенок = СтрокаОстатка.Ребенок;
НоваяСтрока.КПС = СтрокаОстатка.КПС;
НоваяСтрока.Сумма = СтрокаОстатка.Сумма;
НоваяСтрока.ИДСтроки = СтрокаОстатка.ИДСтроки;
ДанныеРасшифровки = Расшифровки[СтрокаОстатка.ИДСтроки];
Если ДанныеРасшифровки = Неопределено Тогда
// Идентификатор строки пишется в регистр при проведении кассового поступления:
// у документов, проведённых до появления измерения, он пуст.
Если СтрДлина(СокрЛП(СтрокаОстатка.ИДСтроки)) < 38 Тогда
СтрокБезИдентификатора = СтрокБезИдентификатора + 1;
Иначе
СтрокБезРасшифровки = СтрокБезРасшифровки + 1;
КонецЕсли;
Продолжить;
КонецЕсли;
ТекстНазначения = СокрЛП(ДанныеРасшифровки.Примечание);
ДанныеПлатежа = ПС_РазборПлатежейПоРодительскойПлате.РазобратьНазначениеПлатежа(ТекстНазначения);
НоваяСтрока.НазначениеПлатежа = Лев(ТекстНазначения, 200);
НоваяСтрока.ЛицевойСчет = ДанныеПлатежа.ЛицевойСчет;
НоваяСтрока.РасчетныйСчет = ДанныеПлатежа.РасчетныйСчет;
НоваяСтрока.Группа = ДанныеПлатежа.Группа;
НоваяСтрока.ПериодОплаты = ДанныеПлатежа.ПериодОплаты;
НоваяСтрока.ДатаПлатежа = ДанныеРасшифровки.Дата;
КонецЦикла;
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма"); Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
Если СтрокБезИдентификатора > 0 Тогда
ОбщегоНазначения.СообщитьПользователю(СтрШаблон(
"По %1 строкам в регистре нет идентификатора квитанции: кассовое поступление не перепроведено."
+ " Лицевой счёт, назначение платежа, расчётный счёт, группа, период оплаты и дата платежа"
+ " не заполнены. Перепроведите кассовые поступления и заполните документ заново.",
СтрокБезИдентификатора));
КонецЕсли;
Если СтрокБезРасшифровки > 0 Тогда
ОбщегоНазначения.СообщитьПользователю(СтрШаблон(
"По %1 строкам идентификатор квитанции есть, но строка расшифровки платежа не найдена:"
+ " кассовое поступление изменялось после проведения. Перепроведите кассовые поступления"
+ " и заполните документ заново.", СтрокБезРасшифровки));
КонецЕсли;
// Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ, // Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ,
// поэтому переносим их в шапку, если в остатках они единственные. // поэтому переносим их в шапку, если в остатках они единственные.
ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО); ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО);
@@ -244,6 +398,70 @@
КонецПроцедуры КонецПроцедуры
// Возвращает расшифровки платежей по идентификаторам строк поступлений.
//
// Параметры:
// СтрокиОстатков - Массив из Структура - строки остатков регистра взаиморасчётов
// с полем "ИДСтроки" вида "<UUID документа>:<номер строки>".
//
// Возвращаемое значение:
// Соответствие из Строка, Структура - расшифровки по идентификатору строки:
// * Примечание - Строка - текст назначения платежа;
// * Дата - Дата - дата кассового поступления.
//
&НаСервере
Функция РасшифровкиПлатежейПоИД(СтрокиОстатков)
Результат = Новый Соответствие;
Идентификаторы = Новый Соответствие;
ДокументыПоступления = Новый Массив;
Для Каждого СтрокаОстатка Из СтрокиОстатков Цикл
Идентификатор = СокрЛП(СтрокаОстатка.ИДСтроки);
Если СтрДлина(Идентификатор) < 38 Тогда
Продолжить;
КонецЕсли;
ИдентификаторДокумента = Лев(Идентификатор, 36);
Если Идентификаторы[ИдентификаторДокумента] <> Неопределено Тогда
Продолжить;
КонецЕсли;
Идентификаторы.Вставить(ИдентификаторДокумента, Истина);
ДокументыПоступления.Добавить(Документы.КассовоеПоступление.ПолучитьСсылку(
Новый УникальныйИдентификатор(ИдентификаторДокумента)));
КонецЦикла;
Если ДокументыПоступления.Количество() = 0 Тогда
Возврат Результат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Расшифровка.Ссылка КАК Ссылка,
| Расшифровка.НомерСтроки КАК НомерСтроки,
| Расшифровка.Примечание КАК Примечание,
| Расшифровка.Ссылка.Дата КАК Дата
|ИЗ
| Документ.КассовоеПоступление.РасшифровкаПлатежа КАК Расшифровка
|ГДЕ
| Расшифровка.Ссылка В (&ДокументыПоступления)";
Запрос.УстановитьПараметр("ДокументыПоступления", ДокументыПоступления);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Результат.Вставить(
ПС_УчетРодительскойПлаты.ИдентификаторСтрокиПоступления(Выборка.Ссылка, Выборка.НомерСтроки),
Новый Структура("Примечание, Дата", Выборка.Примечание, Выборка.Дата));
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере &НаСервере
Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО) Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО)
@@ -271,39 +489,8 @@
ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка", ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
ПараметрыФормы, ПараметрыФормы,
ЭтотОбъект, ЭтотОбъект,
УникальныйИдентификатор); "Проводки" + Строка(ДокументСсылка));
КонецПроцедуры КонецПроцедуры
// Возвращает организации садов (учреждений), представленных в табличной части "Задолженность".
// Учреждение хранится в документе контрагентом, поэтому организация ищется по ИНН.
//
// Возвращаемое значение:
// Массив из СправочникСсылка.Организации - организации получателей в порядке появления в табличной части.
//
&НаСервере
Функция ОрганизацииСадовНаСервере()
Учреждения = Новый Массив;
Для Каждого СтрокаЗадолженности Из Объект.Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
Продолжить;
КонецЕсли;
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
КонецЕсли;
КонецЦикла;
Организации = Новый Массив;
Для Каждого Учреждение Из Учреждения Цикл
Организация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Учреждение, "Получатель (учреждение)");
Если ЗначениеЗаполнено(Организация) Тогда
Организации.Добавить(Организация);
КонецЕсли;
КонецЦикла;
Возврат Организации;
КонецФункции
#КонецОбласти #КонецОбласти
@@ -21,6 +21,60 @@
КонецФункции КонецФункции
// Заполняет список команд печати документа.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.ПС_ПередачаПоступившихПлатежейВУчреждения";
КомандаПечати.Идентификатор = "Извещение0504805";
КомандаПечати.Представление = "Извещение (ф. 0504805)";
КомандаПечати.Порядок = 1;
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.ПС_ПередачаПоступившихПлатежейВУчреждения";
КомандаПечати.Идентификатор = "РеестрПлатежей";
КомандаПечати.Представление = "Реестр платежей";
КомандаПечати.Порядок = 2;
КонецПроцедуры
// Формирует печатные формы документа для подсистемы БСП "Печать".
//
// Параметры:
// МассивОбъектов - Массив из ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - печатаемые документы.
// ПараметрыПечати - Структура - параметры печати.
// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
// ПараметрыВывода - Структура - параметры вывода.
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Извещение0504805",
"Извещение (ф. 0504805)",
ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
КонецЦикла;
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РеестрПлатежей") Тогда
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"РеестрПлатежей",
"Реестр платежей",
ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка));
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -1,7 +1,7 @@
// ПС_ПередачаПоступившихПлатежейВУчреждения: модуль объекта. // ПС_ПередачаПоступившихПлатежейВУчреждения: модуль объекта.
// Сторона ЦБ: Дт 205.31.56X — Кт 304.04.130. // Сторона ЦБ — администратор кассовых поступлений. Бухгалтерских проводок документ не формирует:
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением // учёт ведётся в регистре накопления ПС_ВзаиморасчетыПоРодительскойПлате, а информация
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ. // передаётся учреждению реестром платежей и извещением (ф. 0504805).
// Документ собирает поступившие платежи (приход в регистре накопления // Документ собирает поступившие платежи (приход в регистре накопления
// ПС_ВзаиморасчетыПоРодительскойПлате, сделанный кассовыми поступлениями) // ПС_ВзаиморасчетыПоРодительскойПлате, сделанный кассовыми поступлениями)
// и передаёт их учреждениям — расход по тому же регистру. Пока передано не всё, // и передаёт их учреждениям — расход по тому же регистру. Пока передано не всё,
@@ -13,55 +13,16 @@
Процедура ОбработкаПроведения(Отказ, РежимПроведения) Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ЖурналПроводокЕПСБУ.Очистить();
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить(); Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина; Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
// Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются
// реквизитами документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем.
СчетКт = СчетКорреспондент;
Если НЕ ЗначениеЗаполнено(СчетКт) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
, "СчетКорреспондент", "Объект", Отказ);
Возврат;
КонецЕсли;
ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
// КПС строк заполняется при подборе поступивших платежей (см. модуль формы),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Движение = Движения.ЖурналПроводокЕПСБУ.Добавить();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.ИФО = ИФО;
Движение.КФО = КФО;
Движение.СчетДт = СчетДт;
Движение.СчетКт = СчетКт;
Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС;
Движение.КЭКДт = КЭКПроводки(СчетДт, "Дт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
Движение.КЭККт = КЭККорреспондент;
Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Передача поступивших платежей по родительской плате в учреждение";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = СтрокаЗадолженности.Учреждение;
// Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом. // Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом.
ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход(); ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход();
ДвижениеПС.Период = Дата; ДвижениеПС.Период = Дата;
ДвижениеПС.Организация = Организация; ДвижениеПС.Организация = Организация;
ДвижениеПС.Учреждение = СтрокаЗадолженности.Учреждение; ДвижениеПС.Учреждение = Учреждение;
ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент; ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок; ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
ДвижениеПС.Договор = СтрокаЗадолженности.Договор; ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
@@ -74,18 +35,10 @@
КонецЦикла; КонецЦикла;
// В конфигурации есть подписка на событие "ОбработкаПроведения" (ЗаписатьТаблицуПроводок),
// которая выполняется после модуля объекта и перезаписывает проводки документа: если таблица
// проводок не передана, набор записей регистра очищается. Поэтому передаём сформированную
// таблицу через ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок.
БухгалтерскиеОперацииСервер.ИнициализироватьБухгалтерскиеОперации(ЭтотОбъект);
ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок = Движения.ЖурналПроводокЕПСБУ.Выгрузить();
КонецПроцедуры КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ) Процедура ОбработкаУдаленияПроведения(Отказ)
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина; Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
КонецПроцедуры КонецПроцедуры
@@ -104,6 +57,18 @@
КонецПроцедуры КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Изменение данных подписанного извещения обесценивает его электронный документ:
// расходящиеся электронные документы аннулируются.
ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда Если НЕ ЗначениеЗаполнено(Организация) Тогда
@@ -114,16 +79,14 @@
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
КонецЕсли; КонецЕсли;
Если НЕ ЗначениеЗаполнено(Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнено учреждение (получатель)", , "Учреждение", "Объект", Отказ);
КонецЕсли;
Если Задолженность.Количество() = 0 Тогда Если Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
Иначе Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнено учреждение в строке табличной части ""Задолженность"".",
, "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"Не заполнен КПС строки табличной части ""Задолженность""." "Не заполнен КПС строки табличной части ""Задолженность""."
@@ -160,34 +123,6 @@
КонецПроцедуры КонецПроцедуры
// Возвращает КЭК проводки, определённый по настройкам счёта
// и типу контрагента (подстатья КОСГУ).
//
// Параметры:
// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки.
// ДтКт - Строка - сторона проводки: "Дт" или "Кт".
// Субконто1 - Произвольный - значение первого субконто проводки.
// Субконто2 - Произвольный - значение второго субконто проводки.
//
// Возвращаемое значение:
// СправочникСсылка.КОСГУ - КЭК проводки.
//
Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено)
ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки();
ПараметрыКЭК.Организация = Организация;
ПараметрыКЭК.ИФО = ИФО;
ПараметрыКЭК.КФО = КФО;
ПараметрыКЭК.Дата = Дата;
ПараметрыКЭК.Счет = Счет;
ПараметрыКЭК.ДтКт = ДтКт;
ПараметрыКЭК.Субконто1 = Субконто1;
ПараметрыКЭК.Субконто2 = Субконто2;
Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК);
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -0,0 +1,574 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>ru</currentLanguage>
<defaultLanguage>ru</defaultLanguage>
<languageInfo>
<id>ru</id>
<code>Русский</code>
<description>Русский</description>
</languageInfo>
</languageSettings>
<columns>
<size>10</size>
<columnsItem>
<index>0</index>
<column>
<formatIndex>1</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>1</index>
<column>
<formatIndex>2</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>2</index>
<column>
<formatIndex>3</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>3</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>4</index>
<column>
<formatIndex>5</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>5</index>
<column>
<formatIndex>6</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>6</index>
<column>
<formatIndex>7</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>7</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>8</index>
<column>
<formatIndex>8</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>9</index>
<column>
<formatIndex>9</formatIndex>
</column>
</columnsItem>
</columns>
<columns>
<id>c4c71b73-7783-4619-abbc-ece4486e4bdb</id>
<size>10</size>
<columnsItem>
<index>0</index>
<column>
<formatIndex>10</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>1</index>
<column>
<formatIndex>11</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>2</index>
<column>
<formatIndex>12</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>3</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>4</index>
<column>
<formatIndex>5</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>5</index>
<column>
<formatIndex>13</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>6</index>
<column>
<formatIndex>7</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>7</index>
<column>
<formatIndex>14</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>8</index>
<column>
<formatIndex>8</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>9</index>
<column>
<formatIndex>9</formatIndex>
</column>
</columnsItem>
</columns>
<rowsItem>
<index>0</index>
<row>
<c>
<c>
<f>15</f>
<parameter>ЗаголовокРеестра</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>1</index>
<row>
<c>
<c>
<f>15</f>
<parameter>РеквизитыДокумента</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>2</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФИО плательщика</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сумма</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Лицевой счет ребенка</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФИО ребенка</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Назначение платежа</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Организация</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Рассчетный счет</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Период оплаты</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дата приема платежа</v8:content>
</v8:item>
</tl>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>3</index>
<row>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>4</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>15</f>
<parameter>Плательщик</parameter>
</c>
</c>
<c>
<c>
<f>19</f>
<parameter>Сумма</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>ЛицевойСчет</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Ребенок</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>НазначениеПлатежа</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Организация</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>РассчетныйСчет</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Группа</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Период</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>ДатаПлатежа</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>5</index>
<row>
<empty>true</empty>
</row>
</rowsItem>
<rowsItem>
<index>6</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>20</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ИТОГО:</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>21</f>
<parameter>ОбщаяСумма</parameter>
</c>
</c>
</row>
</rowsItem>
<templateMode>true</templateMode>
<defaultFormatIndex>22</defaultFormatIndex>
<height>7</height>
<vgRows>7</vgRows>
<namedItem xsi:type="NamedItemCells">
<name>Заголовок</name>
<area>
<type>Rows</type>
<beginRow>0</beginRow>
<endRow>1</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьПодвалТаблицы</name>
<area>
<type>Rows</type>
<beginRow>6</beginRow>
<endRow>6</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьСтрокаТаблицы</name>
<area>
<type>Rows</type>
<beginRow>4</beginRow>
<endRow>4</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьШапкаТаблицы</name>
<area>
<type>Rows</type>
<beginRow>2</beginRow>
<endRow>2</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line>
<font faceName="Arial" height="8" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<font faceName="Arial" height="8" bold="true" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<font faceName="Arial" height="8" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<format>
<width>198</width>
</format>
<format>
<width>81</width>
</format>
<format>
<width>111</width>
</format>
<format>
<width>186</width>
</format>
<format>
<width>190</width>
</format>
<format>
<width>152</width>
</format>
<format>
<width>137</width>
</format>
<format>
<width>106</width>
</format>
<format>
<width>103</width>
</format>
<format>
<width>213</width>
</format>
<format>
<width>74</width>
</format>
<format>
<width>99</width>
</format>
<format>
<width>171</width>
</format>
<format>
<width>167</width>
</format>
<format>
<font>0</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Parameter</fillType>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
</format>
<format>
<font>2</font>
</format>
<format>
<font>0</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Parameter</fillType>
<format>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ЧДЦ=2</v8:content>
</v8:item>
</format>
</format>
<format>
<font>1</font>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Parameter</fillType>
<format>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ЧДЦ=2</v8:content>
</v8:item>
</format>
</format>
<format>
<width>72</width>
</format>
</document>
@@ -10,7 +10,7 @@
<name>ПС_ПередачаПоступившихПлатежейВУчреждения</name> <name>ПС_ПередачаПоступившихПлатежейВУчреждения</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Передача поступивших платежей в учреждения</value> <value>Передача поступивших платежей в учреждение</value>
</synonym> </synonym>
<useStandardCommands>true</useStandardCommands> <useStandardCommands>true</useStandardCommands>
<fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString> <fullTextSearchOnInputByString>DontUse</fullTextSearchOnInputByString>
@@ -22,7 +22,7 @@
</objectPresentation> </objectPresentation>
<listPresentation> <listPresentation>
<key>ru</key> <key>ru</key>
<value>Передачи поступивших платежей в учреждения</value> <value>Передачи поступивших платежей в учреждение</value>
</listPresentation> </listPresentation>
<numberType>String</numberType> <numberType>String</numberType>
<numberLength>9</numberLength> <numberLength>9</numberLength>
@@ -30,7 +30,6 @@
<checkUnique>true</checkUnique> <checkUnique>true</checkUnique>
<autonumbering>true</autonumbering> <autonumbering>true</autonumbering>
<defaultObjectForm>Document.ПС_ПередачаПоступившихПлатежейВУчреждения.Form.ФормаДокумента</defaultObjectForm> <defaultObjectForm>Document.ПС_ПередачаПоступившихПлатежейВУчреждения.Form.ФормаДокумента</defaultObjectForm>
<registerRecords>AccountingRegister.ЖурналПроводокЕПСБУ</registerRecords>
<registerRecords>AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате</registerRecords> <registerRecords>AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате</registerRecords>
<postInPrivilegedMode>true</postInPrivilegedMode> <postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode> <unpostInPrivilegedMode>true</unpostInPrivilegedMode>
@@ -178,6 +177,51 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </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>
<attributes uuid="e2f6cf62-73e1-4145-a2de-583eda594db4">
<name>ИзвещениеИсходящее</name>
<synonym>
<key>ru</key>
<value>Извещение исходящее</value>
</synonym>
<type>
<types>DocumentRef.ИзвещениеИсходящее</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<fillValue xsi:type="core:UndefinedValue"/>
<fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory>
</attributes>
<attributes uuid="3e5490df-7a55-4eeb-a4dd-198d4e35b635">
<name>ПринятиеПлатежей</name>
<synonym>
<key>ru</key>
<value>Документ принятия платежей</value>
</synonym>
<type>
<types>DocumentRef.ПС_ПринятиеПоступившихПлатежейИзЦБ</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"> <forms uuid="2f97f361-ee42-4267-905c-61db24e9229e">
<name>ФормаДокумента</name> <name>ФормаДокумента</name>
</forms> </forms>
@@ -242,7 +286,7 @@
<type> <type>
<types>String</types> <types>String</types>
<stringQualifiers> <stringQualifiers>
<length>25</length> <length>50</length>
</stringQualifiers> </stringQualifiers>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
@@ -282,14 +326,102 @@
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
</attributes> </attributes>
<attributes uuid="8cf37a05-a457-4693-bc91-d9c1d37fede5"> <attributes uuid="ad45f7d8-7e98-40e6-8d46-6f3cd5786e60">
<name>Учреждение</name> <name>ЛицевойСчет</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Получатель (учреждение)</value> <value>Лицевой счет</value>
</synonym> </synonym>
<type> <type>
<types>CatalogRef.Контрагенты</types> <types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="6b613858-2268-4691-8623-e52eb8d2da56">
<name>НазначениеПлатежа</name>
<synonym>
<key>ru</key>
<value>Назначение платежа</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="15e5e5da-492a-4ab3-b5bc-f230b72bddf2">
<name>РасчетныйСчет</name>
<synonym>
<key>ru</key>
<value>Расчетный счет</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="2d87d3d9-27e2-4b6e-ad0c-44009b026cd9">
<name>Группа</name>
<synonym>
<key>ru</key>
<value>Группа</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="32e51cf1-f93d-4608-95a1-ccc93891bf03">
<name>ПериодОплаты</name>
<synonym>
<key>ru</key>
<value>Период оплаты</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>30</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="d424563e-7239-4ca1-a9be-82211157c89f">
<name>ДатаПлатежа</name>
<synonym>
<key>ru</key>
<value>Дата платежа</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -304,4 +436,11 @@
<value>Извещение ф. 0504805 (103н) — получатель</value> <value>Извещение ф. 0504805 (103н) — получатель</value>
</synonym> </synonym>
</templates> </templates>
<templates uuid="b7cee754-65c6-4a53-91aa-84068f8790e7">
<name>РеестрПлатежей</name>
<synonym>
<key>ru</key>
<value>Реестр платежей</value>
</synonym>
</templates>
</mdclass:Document> </mdclass:Document>
@@ -722,6 +722,276 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ЗадолженностьЛицевойСчет</name>
<id>119</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>121</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьЛицевойСчетКонтекстноеМеню</name>
<id>120</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>122</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>124</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьНазначениеПлатежаКонтекстноеМеню</name>
<id>123</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>125</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>127</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьРасчетныйСчетКонтекстноеМеню</name>
<id>126</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>128</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>130</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьГруппаКонтекстноеМеню</name>
<id>129</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>131</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>133</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьПериодОплатыКонтекстноеМеню</name>
<id>132</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>134</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>136</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ЗадолженностьЗадолженностьДатаПлатежаКонтекстноеМеню</name>
<id>135</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>
<autoCommandBar> <autoCommandBar>
<name>ЗадолженностьКоманднаяПанель</name> <name>ЗадолженностьКоманднаяПанель</name>
<id>30</id> <id>30</id>
@@ -902,19 +1172,18 @@
<id>112</id> <id>112</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>LabelField</type>
<editMode>Enter</editMode> <editMode>Enter</editMode>
<showInHeader>true</showInHeader> <showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo"> <extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <hyperlink>true</hyperlink>
<chooseType>true</chooseType> <border xsi:type="core:BorderDef">
<typeDomainEnabled>true</typeDomainEnabled> <width>1</width>
<textEdit>true</textEdit> </border>
<textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
@@ -1004,6 +1273,51 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ВидПлатежаВБюджет</name>
<id>116</id>
<title>
<key>ru</key>
<value>Вид платежа в бюджет (аналитика 303.05)</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>118</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ВидПлатежаВБюджетКонтекстноеМеню</name>
<id>117</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:FormGroup"> <items xsi:type="form:FormGroup">
<name>ГруппаКорреспондентующегоСчёта</name> <name>ГруппаКорреспондентующегоСчёта</name>
<id>109</id> <id>109</id>
@@ -1128,6 +1442,46 @@
<currentRowUse>Auto</currentRowUse> <currentRowUse>Auto</currentRowUse>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ИзвещениеВходящее</name>
<id>141</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ИзвещениеВходящее</segments>
</dataPath>
<extendedTooltip>
<name>ИзвещениеВходящееРасширеннаяПодсказка</name>
<id>143</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ИзвещениеВходящееКонтекстноеМеню</name>
<id>142</id>
<autoFill>true</autoFill>
</contextMenu>
<type>LabelField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:LabelFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<hyperlink>true</hyperlink>
<border xsi:type="core:BorderDef">
<width>1</width>
</border>
</extInfo>
</items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>Комментарий</name> <name>Комментарий</name>
<id>87</id> <id>87</id>
@@ -1381,6 +1735,58 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button">
<name>ПечатьРеестраПлатежей</name>
<id>137</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаПечатьРеестраПлатежейРасширеннаяПодсказка</name>
<id>138</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ПечатьРеестраПлатежей</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<items xsi:type="form:Button">
<name>СоздатьИзвещение</name>
<id>139</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСоздатьИзвещениеРасширеннаяПодсказка</name>
<id>140</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.СоздатьИзвещение</commandName>
<buttonImportance>Normal</buttonImportance>
<representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu>
</items>
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</autoCommandBar> </autoCommandBar>
@@ -1466,6 +1872,38 @@
</handler> </handler>
</action> </action>
</formCommands> </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>
<formCommands>
<name>СоздатьИзвещение</name>
<title>
<key>ru</key>
<value>Создать извещение 0504805</value>
</title>
<id>5</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>СоздатьИзвещение</name>
</handler>
</action>
</formCommands>
<commandInterface> <commandInterface>
<navigationPanel/> <navigationPanel/>
<commandBar/> <commandBar/>
@@ -36,11 +36,14 @@
КонецЕсли; КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию(); Объект.ЦБ = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли; КонецЕсли;
КонецЕсли; КонецЕсли;
// Состояние внутреннего ЭДО (подсистема БГУ): организация документа уже определена.
ОбщегоНазначенияБГУ.ПриСозданииНаСервере(ЭтотОбъект, Объект);
КонецПроцедуры КонецПроцедуры
&НаСервере &НаСервере
@@ -48,6 +51,8 @@
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация); БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
ОбщегоНазначенияБГУ.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект);
КонецПроцедуры КонецПроцедуры
&НаКлиенте &НаКлиенте
@@ -78,10 +83,25 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Обновляет гиперссылку состояния внутреннего ЭДО (подсистема БГУ).
ОбщегоНазначенияБГУКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия, Параметр, Источник);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы #Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура Подключаемый_ДекорацияБГУНажатие(Элемент, СтандартнаяОбработка)
ОбщегоНазначенияБГУКлиент.ДекорацияНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ДокументПередачиПриИзменении(Элемент) Процедура ДокументПередачиПриИзменении(Элемент)
@@ -119,6 +139,25 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура ПечатьРеестраПлатежей(Команда)
ТабличныйДокумент = ПечатьРеестраПлатежейНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Реестр платежей");
КонецПроцедуры
&НаКлиенте
Процедура СоздатьИзвещение(Команда)
Извещение = СоздатьИзвещениеНаСервере();
Если ЗначениеЗаполнено(Извещение) Тогда
ПараметрыФормы = Новый Структура("Ключ", Извещение);
ОткрытьФорму("Документ.ИзвещениеВходящее.Форма.ФормаДокумента", ПараметрыФормы, ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте &НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда) Процедура ПросмотрБухгалтерскихЗаписей(Команда)
@@ -147,6 +186,13 @@
КонецПроцедуры КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьКомандуБГУ(Команда)
ОбщегоНазначенияБГУКлиент.ВыполнитьПодключаемуюКоманду(Команда, ЭтотОбъект, Объект);
КонецПроцедуры
#КонецОбласти #КонецОбласти
#Область СлужебныеПроцедурыИФункции #Область СлужебныеПроцедурыИФункции
@@ -158,6 +204,31 @@
КонецФункции КонецФункции
&НаСервере
Функция ПечатьРеестраПлатежейНаСервере(ДокументСсылка)
Возврат ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка);
КонецФункции
&НаСервере
Функция СоздатьИзвещениеНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
ОбщегоНазначения.СообщитьПользователю("Сначала запишите документ принятия платежей.");
Возврат Документы.ИзвещениеВходящее.ПустаяСсылка();
КонецЕсли;
Извещение = ПС_УчетРодительскойПлаты.СоздатьИзвещениеПоПринятию(Объект.Ссылка);
Если ЗначениеЗаполнено(Извещение) Тогда
Объект.ИзвещениеВходящее = Извещение;
Записать();
КонецЕсли;
Возврат Извещение;
КонецФункции
&НаСервере &НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию() Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
@@ -21,6 +21,60 @@
КонецФункции КонецФункции
// Заполняет список команд печати документа.
//
// Параметры:
// КомандыПечати - ТаблицаЗначений - состав полей см. в функции УправлениеПечатью.СоздатьКоллекциюКомандПечати.
//
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
КомандаПечати.Идентификатор = "Извещение0504805";
КомандаПечати.Представление = "Извещение (ф. 0504805)";
КомандаПечати.Порядок = 1;
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.МенеджерПечати = "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
КомандаПечати.Идентификатор = "РеестрПлатежей";
КомандаПечати.Представление = "Реестр платежей";
КомандаПечати.Порядок = 2;
КонецПроцедуры
// Формирует печатные формы документа для подсистемы БСП "Печать".
//
// Параметры:
// МассивОбъектов - Массив из ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемые документы.
// ПараметрыПечати - Структура - параметры печати.
// КоллекцияПечатныхФорм - ТаблицаЗначений - коллекция печатных форм.
// ОбъектыПечати - Соответствие из КлючИЗначение - соответствие объектов печати.
// ПараметрыВывода - Структура - параметры вывода.
//
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "Извещение0504805") Тогда
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"Извещение0504805",
"Извещение (ф. 0504805)",
ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805(ДокументСсылка));
КонецЦикла;
КонецЕсли;
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "РеестрПлатежей") Тогда
Для Каждого ДокументСсылка Из МассивОбъектов Цикл
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"РеестрПлатежей",
"Реестр платежей",
ПС_УчетРодительскойПлаты.ПечатьРеестраПлатежей(ДокументСсылка));
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -1,5 +1,7 @@
// ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль объекта. // ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль объекта.
// Сторона детского сада: Дт 304.04.130 — Кт 205.31.66X. // Сторона детского сада, методическая операция 1.3: Дт 303.05.831 — Кт 205.31.660
// (п. 104 Инструкции № 162н) — зачисление суммы в доход бюджета на основании извещения
// от администратора кассовых поступлений.
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением // Проводки формируются в процедуре ОбработкаПроведения прямым заполнением
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ. // набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ.
// Документ вводится на основании документа передачи платежей ЦБ и принимает // Документ вводится на основании документа передачи платежей ЦБ и принимает
@@ -35,9 +37,9 @@
ИФО = РеквизитыПередачи.ИФО; ИФО = РеквизитыПередачи.ИФО;
КонецЕсли; КонецЕсли;
// Отправитель (ЦБ) определяется по организации документа передачи: в документе передачи // Отправитель (ЦБ) определяется по организации документа передачи:
// ЦБ хранится организацией, а в документе сада - контрагентом, сопоставляем по ИНН. // в документе передачи и в документе сада ЦБ хранится организацией.
ЦБ = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(РеквизитыПередачи.Организация, "Отправитель (ЦБ)"); ЦБ = РеквизитыПередачи.Организация;
// Строки подбираются по саду документа: сад задаётся реквизитом "Организация". // Строки подбираются по саду документа: сад задаётся реквизитом "Организация".
// Если сад ещё не указан, строки заполняются командой формы после его выбора. // Если сад ещё не указан, строки заполняются командой формы после его выбора.
@@ -57,22 +59,15 @@
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина; Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок"); Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
// Методическая операция 1.3: Дт 303.05.831 — Кт 205.31.660 (п. 104 Инструкции № 162н).
СчетДт = БухгалтерскийУчет.СчетПоКоду("303.05", Дата, Организация);
СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация); СчетКт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
КЭКДт = Справочники.КОСГУ.НайтиПоКоду("831");
// Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются реквизитами КЭККт = Справочники.КОСГУ.НайтиПоКоду("660");
// документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем.
СчетДт = СчетКорреспондент;
Если НЕ ЗначениеЗаполнено(СчетДт) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
, "СчетКорреспондент", "Объект", Отказ);
Возврат;
КонецЕсли;
ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт); ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
// КПС строк наследуется из строк документа передачи (см. ЗаполнитьСтрокиПоДокументуПередачи), // КПС строк наследуется из строк документа передачи (см. ЗаполнитьСтрокиПоДокументуПередачи).
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Движение = Движения.ЖурналПроводокЕПСБУ.Добавить(); Движение = Движения.ЖурналПроводокЕПСБУ.Добавить();
@@ -84,13 +79,16 @@
Движение.СчетКт = СчетКт; Движение.СчетКт = СчетКт;
Движение.КПСДт = СтрокаЗадолженности.КПС; Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС; Движение.КПСКт = СтрокаЗадолженности.КПС;
Движение.КЭКДт = КЭККорреспондент; Движение.КЭКДт = КЭКДт;
Движение.КЭККт = КЭКПроводки(СчетКт, "Кт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор); Движение.КЭККт = КЭККт;
Движение.Сумма = СтрокаЗадолженности.Сумма; Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций; Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Принятие поступивших платежей по родительской плате из ЦБ"; Движение.Содержание = "Принятие поступивших платежей по родительской плате из ЦБ";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = ЦБ; // Аналитика по счёту 303.05 - вид платежа в бюджет ("Доходы от родительской платы"):
// обобщённая аналитика ожидаемых поступлений, задаётся пользователем в шапке документа.
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.ВидыНалоговИПлатежей] = ВидПлатежаВБюджет;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
@@ -125,6 +123,18 @@
КонецПроцедуры КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
// Изменение данных подписанного извещения обесценивает его электронный документ:
// расходящиеся электронные документы аннулируются.
ПС_ВнутреннийЭДОИзвещений.ПС_АннулироватьЭлектронныеДокументыПриИзменении(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда Если НЕ ЗначениеЗаполнено(Организация) Тогда
@@ -143,6 +153,12 @@
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
КонецЕсли; КонецЕсли;
Если НЕ ЗначениеЗаполнено(ВидПлатежаВБюджет) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен вид платежа в бюджет - аналитика по счёту 303.05",
, "ВидПлатежаВБюджет", "Объект", Отказ);
КонецЕсли;
Если Задолженность.Количество() = 0 Тогда Если Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
Иначе Иначе
@@ -198,13 +214,6 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// В документе передачи сад хранится контрагентом (как в регистре взаиморасчётов),
// а в документе сада - организацией, поэтому сопоставляем по ИНН.
КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Организация, "Учреждение");
Если НЕ ЗначениеЗаполнено(КонтрагентСада) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -213,14 +222,20 @@
| СтрокиПередачи.Ребенок КАК Ребенок, | СтрокиПередачи.Ребенок КАК Ребенок,
| СтрокиПередачи.ИДСтроки КАК ИДСтроки, | СтрокиПередачи.ИДСтроки КАК ИДСтроки,
| СтрокиПередачи.Сумма КАК Сумма, | СтрокиПередачи.Сумма КАК Сумма,
| СтрокиПередачи.КПС КАК КПС | СтрокиПередачи.КПС КАК КПС,
| СтрокиПередачи.ЛицевойСчет КАК ЛицевойСчет,
| СтрокиПередачи.НазначениеПлатежа КАК НазначениеПлатежа,
| СтрокиПередачи.РасчетныйСчет КАК РасчетныйСчет,
| СтрокиПередачи.Группа КАК Группа,
| СтрокиПередачи.ПериодОплаты КАК ПериодОплаты,
| СтрокиПередачи.ДатаПлатежа КАК ДатаПлатежа
|ИЗ |ИЗ
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи | Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи
|ГДЕ |ГДЕ
| СтрокиПередачи.Ссылка = &ДокументПередачи | СтрокиПередачи.Ссылка = &ДокументПередачи
| И СтрокиПередачи.Учреждение = &Учреждение"; | И СтрокиПередачи.Ссылка.Учреждение = &Учреждение";
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачиСсылка); Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачиСсылка);
Запрос.УстановитьПараметр("Учреждение", КонтрагентСада); Запрос.УстановитьПараметр("Учреждение", Организация);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
@@ -233,34 +248,6 @@
КонецПроцедуры КонецПроцедуры
// Возвращает КЭК проводки, определённый по настройкам счёта
// и типу контрагента (подстатья КОСГУ).
//
// Параметры:
// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки.
// ДтКт - Строка - сторона проводки: "Дт" или "Кт".
// Субконто1 - Произвольный - значение первого субконто проводки.
// Субконто2 - Произвольный - значение второго субконто проводки.
//
// Возвращаемое значение:
// СправочникСсылка.КОСГУ - КЭК проводки.
//
Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено)
ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки();
ПараметрыКЭК.Организация = Организация;
ПараметрыКЭК.ИФО = ИФО;
ПараметрыКЭК.КФО = КФО;
ПараметрыКЭК.Дата = Дата;
ПараметрыКЭК.Счет = Счет;
ПараметрыКЭК.ДтКт = ДтКт;
ПараметрыКЭК.Субконто1 = Субконто1;
ПараметрыКЭК.Субконто2 = Субконто2;
Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК);
КонецФункции
#КонецОбласти #КонецОбласти
#КонецЕсли #КонецЕсли
@@ -0,0 +1,574 @@
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://v8.1c.ru/8.2/data/spreadsheet" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<languageSettings>
<currentLanguage>ru</currentLanguage>
<defaultLanguage>ru</defaultLanguage>
<languageInfo>
<id>ru</id>
<code>Русский</code>
<description>Русский</description>
</languageInfo>
</languageSettings>
<columns>
<size>10</size>
<columnsItem>
<index>0</index>
<column>
<formatIndex>1</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>1</index>
<column>
<formatIndex>2</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>2</index>
<column>
<formatIndex>3</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>3</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>4</index>
<column>
<formatIndex>5</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>5</index>
<column>
<formatIndex>6</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>6</index>
<column>
<formatIndex>7</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>7</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>8</index>
<column>
<formatIndex>8</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>9</index>
<column>
<formatIndex>9</formatIndex>
</column>
</columnsItem>
</columns>
<columns>
<id>c4c71b73-7783-4619-abbc-ece4486e4bdb</id>
<size>10</size>
<columnsItem>
<index>0</index>
<column>
<formatIndex>10</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>1</index>
<column>
<formatIndex>11</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>2</index>
<column>
<formatIndex>12</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>3</index>
<column>
<formatIndex>4</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>4</index>
<column>
<formatIndex>5</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>5</index>
<column>
<formatIndex>13</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>6</index>
<column>
<formatIndex>7</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>7</index>
<column>
<formatIndex>14</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>8</index>
<column>
<formatIndex>8</formatIndex>
</column>
</columnsItem>
<columnsItem>
<index>9</index>
<column>
<formatIndex>9</formatIndex>
</column>
</columnsItem>
</columns>
<rowsItem>
<index>0</index>
<row>
<c>
<c>
<f>15</f>
<parameter>ЗаголовокРеестра</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>1</index>
<row>
<c>
<c>
<f>15</f>
<parameter>РеквизитыДокумента</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>2</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФИО плательщика</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Сумма</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Лицевой счет ребенка</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ФИО ребенка</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Назначение платежа</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Организация</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Рассчетный счет</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>16</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Период оплаты</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>17</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Дата приема платежа</v8:content>
</v8:item>
</tl>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>3</index>
<row>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
<c>
<c>
<f>18</f>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>4</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>15</f>
<parameter>Плательщик</parameter>
</c>
</c>
<c>
<c>
<f>19</f>
<parameter>Сумма</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>ЛицевойСчет</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Ребенок</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>НазначениеПлатежа</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Организация</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>РассчетныйСчет</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Группа</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>Период</parameter>
</c>
</c>
<c>
<c>
<f>15</f>
<parameter>ДатаПлатежа</parameter>
</c>
</c>
</row>
</rowsItem>
<rowsItem>
<index>5</index>
<row>
<empty>true</empty>
</row>
</rowsItem>
<rowsItem>
<index>6</index>
<row>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
<c>
<c>
<f>20</f>
<tl>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ИТОГО:</v8:content>
</v8:item>
</tl>
</c>
</c>
<c>
<c>
<f>21</f>
<parameter>ОбщаяСумма</parameter>
</c>
</c>
</row>
</rowsItem>
<templateMode>true</templateMode>
<defaultFormatIndex>22</defaultFormatIndex>
<height>7</height>
<vgRows>7</vgRows>
<namedItem xsi:type="NamedItemCells">
<name>Заголовок</name>
<area>
<type>Rows</type>
<beginRow>0</beginRow>
<endRow>1</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьПодвалТаблицы</name>
<area>
<type>Rows</type>
<beginRow>6</beginRow>
<endRow>6</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьСтрокаТаблицы</name>
<area>
<type>Rows</type>
<beginRow>4</beginRow>
<endRow>4</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<namedItem xsi:type="NamedItemCells">
<name>ОбластьШапкаТаблицы</name>
<area>
<type>Rows</type>
<beginRow>2</beginRow>
<endRow>2</endRow>
<beginColumn>-1</beginColumn>
<endColumn>-1</endColumn>
<columnsID>c4c71b73-7783-4619-abbc-ece4486e4bdb</columnsID>
</area>
</namedItem>
<line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line>
<font faceName="Arial" height="8" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<font faceName="Arial" height="8" bold="true" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<font faceName="Arial" height="8" bold="false" italic="false" underline="false" strikeout="false" kind="Absolute" scale="100"/>
<format>
<width>198</width>
</format>
<format>
<width>81</width>
</format>
<format>
<width>111</width>
</format>
<format>
<width>186</width>
</format>
<format>
<width>190</width>
</format>
<format>
<width>152</width>
</format>
<format>
<width>137</width>
</format>
<format>
<width>106</width>
</format>
<format>
<width>103</width>
</format>
<format>
<width>213</width>
</format>
<format>
<width>74</width>
</format>
<format>
<width>99</width>
</format>
<format>
<width>171</width>
</format>
<format>
<width>167</width>
</format>
<format>
<font>0</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Parameter</fillType>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
</format>
<format>
<font>2</font>
</format>
<format>
<font>0</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<textPlacement>Wrap</textPlacement>
<fillType>Parameter</fillType>
<format>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ЧДЦ=2</v8:content>
</v8:item>
</format>
</format>
<format>
<font>1</font>
</format>
<format>
<font>1</font>
<border>0</border>
<horizontalAlignment>Center</horizontalAlignment>
<fillType>Parameter</fillType>
<format>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>ЧДЦ=2</v8:content>
</v8:item>
</format>
</format>
<format>
<width>72</width>
</format>
</document>
@@ -55,7 +55,7 @@
<value>Отправитель (ЦБ)</value> <value>Отправитель (ЦБ)</value>
</synonym> </synonym>
<type> <type>
<types>CatalogRef.Контрагенты</types> <types>CatalogRef.Организации</types>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -207,6 +207,36 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="6eeef08e-4ea6-480c-a83a-c76dc5ce3daf">
<name>ВидПлатежаВБюджет</name>
<synonym>
<key>ru</key>
<value>Вид платежа в бюджет (аналитика 303.05)</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>
<attributes uuid="eb39103c-0300-42f0-9014-2c115fc25b43">
<name>ИзвещениеВходящее</name>
<synonym>
<key>ru</key>
<value>Извещение входящее</value>
</synonym>
<type>
<types>DocumentRef.ИзвещениеВходящее</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="86b865a3-c942-4075-8741-0e6ab1beae1c"> <forms uuid="86b865a3-c942-4075-8741-0e6ab1beae1c">
<name>ФормаДокумента</name> <name>ФормаДокумента</name>
</forms> </forms>
@@ -271,7 +301,7 @@
<type> <type>
<types>String</types> <types>String</types>
<stringQualifiers> <stringQualifiers>
<length>25</length> <length>50</length>
</stringQualifiers> </stringQualifiers>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
@@ -311,6 +341,108 @@
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
</attributes> </attributes>
<attributes uuid="ee7c7018-ba8a-490e-b8e9-d108fdf7dc2b">
<name>ЛицевойСчет</name>
<synonym>
<key>ru</key>
<value>Лицевой счет</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="a6b27916-1714-43e9-9087-403039a110f7">
<name>НазначениеПлатежа</name>
<synonym>
<key>ru</key>
<value>Назначение платежа</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>200</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="c38ada5a-c764-4598-9ce7-51ee3f159798">
<name>РасчетныйСчет</name>
<synonym>
<key>ru</key>
<value>Расчетный счет</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>25</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="e80a55cc-afbf-4740-9578-92fe3f81a616">
<name>Группа</name>
<synonym>
<key>ru</key>
<value>Группа</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>50</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="a489e87f-0799-4276-b1b8-73570272a448">
<name>ПериодОплаты</name>
<synonym>
<key>ru</key>
<value>Период оплаты</value>
</synonym>
<type>
<types>String</types>
<stringQualifiers>
<length>30</length>
</stringQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
<attributes uuid="3e5d5ede-13ea-4171-9dac-b4944f728954">
<name>ДатаПлатежа</name>
<synonym>
<key>ru</key>
<value>Дата платежа</value>
</synonym>
<type>
<types>Date</types>
<dateQualifiers>
<dateFractions>Date</dateFractions>
</dateQualifiers>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections> </tabularSections>
<templates uuid="6084d9e2-f455-4db2-8547-01bad3077e82"> <templates uuid="6084d9e2-f455-4db2-8547-01bad3077e82">
<name>ПФ_MXL_Извещение0504805_103н_ПС_РП</name> <name>ПФ_MXL_Извещение0504805_103н_ПС_РП</name>
@@ -319,4 +451,11 @@
<value>Извещение ф. 0504805 (103н) — родительская плата</value> <value>Извещение ф. 0504805 (103н) — родительская плата</value>
</synonym> </synonym>
</templates> </templates>
<templates uuid="ac2fe0db-bb91-49ea-811e-1accc9b784dd">
<name>РеестрПлатежей</name>
<synonym>
<key>ru</key>
<value>Реестр платежей</value>
</synonym>
</templates>
</mdclass:Document> </mdclass:Document>