Остатки взаиморасчётов с детьми в садах: переименование документов и разворот схемы

Переименование документов расширения:
- ПС_ПринятиеЗадолженностиОтУчреждения -> ПС_ПередачаПоступившихПлатежейВУчреждения (ЦБ передаёт поступившие платежи в сады)
- ПС_ПередачаЗадолженностиВЦБ -> ПС_ПринятиеПоступившихПлатежейИзЦБ (сад принимает поступившие платежи из ЦБ)

Схема и логика:
- ЦБ-документ заполняется из остатков регистра ПС_ВзаиморасчетыПоРодительскойПлате (поступившие, но ещё не переданные платежи)
- сад-документы вводятся на основании ЦБ-документа, по одному на учреждение
- развёрнуто направление движений регистра: «Кассовое поступление» — приход, «Передача платежей» — расход
- в проводке по 304.04 ЦБ определяется по организации документа передачи
- убран режим «Начальное сальдо»: реквизиты, команды, значение перечисления ПС_ВидыОперацийПоВзаиморасчетам
- снят basedOn у документа «Начисление родительской платы»

Рабочее место ПС_УправлениеРасчетамиПоРодительскойПлате:
- типы колонок таблиц приведены в соответствие с запросами
- элементам колонок таблиц присвоены осмысленные имена
- сбор поступивших платежей выполняется на конец дня

Обновлены роль ПС_ОсновнаяРоль, состав подсистемы РодительскаяПлата, Configuration.mdo
This commit is contained in:
26 changed files with 2363 additions and 2611 deletions
@@ -69,7 +69,7 @@
<value>Документ передачи</value> <value>Документ передачи</value>
</synonym> </synonym>
<type> <type>
<types>DocumentRef.ПС_ПередачаЗадолженностиВЦБ</types> <types>DocumentRef.ПС_ПринятиеПоступившихПлатежейИзЦБ</types>
</type> </type>
<minValue xsi:type="core:UndefinedValue"/> <minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/> <maxValue xsi:type="core:UndefinedValue"/>
@@ -1,62 +1,9 @@
// ПС_УчетРодительскойПлаты: общая логика учёта родительской платы // ПС_УчетРодительскойПлаты: общая логика учёта родительской платы
// для документов ПС_ПередачаЗадолженностиВЦБ и ПС_ПринятиеЗадолженностиОтУчреждения. // для документов ПС_ПередачаПоступившихПлатежейВУчреждения (ЦБ) и ПС_ПринятиеПоступившихПлатежейИзЦБ (учреждение).
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс #Область ПрограммныйИнтерфейс
// Заполняет КФО документа и КПС строк табличной части "Задолженность" реквизитами учёта,
// определёнными по проводкам документа-источника.
//
// КПС берётся со стороны счёта расчётов по доходам (205.31) - он переносится вместе
// с задолженностью, поэтому одинаков для дебета и кредита проводки передачи.
//
// Параметры:
// ДокументОбъект - ДокументОбъект.ПС_ПередачаЗадолженностиВЦБ, ДокументОбъект.ПС_ПринятиеЗадолженностиОтУчреждения - документ, реквизиты учёта которого заполняются.
// ДокументИсточник - ДокументСсылка.НачислениеРодительскойПлаты, ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ - проведённый документ, проводки которого используются как источник данных.
//
// Возвращаемое значение:
// Булево - Истина, если реквизиты заполнены; Ложь, если у документа-источника нет проводок по счёту расчётов по доходам.
//
Функция ЗаполнитьРеквизитыУчетаПоПроводкам(ДокументОбъект, ДокументИсточник) Экспорт
Если НЕ ЗначениеЗаполнено(ДокументИсточник) Тогда
Возврат Ложь;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| Проводки.КФО КАК КФО,
| ВЫБОР
| КОГДА Проводки.СчетДт.Код = ""205.31""
| ТОГДА Проводки.КПСДт
| ИНАЧЕ Проводки.КПСКт
| КОНЕЦ КАК КПС
|ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто КАК Проводки
|ГДЕ
| Проводки.Регистратор = &ДокументИсточник
| И (Проводки.СчетДт.Код = ""205.31""
| ИЛИ Проводки.СчетКт.Код = ""205.31"")
|
|УПОРЯДОЧИТЬ ПО
| Проводки.НомерСтроки";
Запрос.УстановитьПараметр("ДокументИсточник", ДокументИсточник);
Выборка = Запрос.Выполнить().Выбрать();
Если НЕ Выборка.Следующий() Тогда
Возврат Ложь;
КонецЕсли;
ДокументОбъект.КФО = Выборка.КФО;
Для Каждого СтрокаЗадолженности Из ДокументОбъект.Задолженность Цикл
СтрокаЗадолженности.КПС = Выборка.КПС;
КонецЦикла;
Возврат Истина;
КонецФункции
// Возвращает счёт, корреспондирующий со счётом расчётов по доходам (205.31), // Возвращает счёт, корреспондирующий со счётом расчётов по доходам (205.31),
// по умолчанию: 304.04 (внутриведомственные расчёты). // по умолчанию: 304.04 (внутриведомственные расчёты).
// //
@@ -94,15 +41,20 @@
// Формирует печатную форму извещения (ф. 0504805, ред. 103н) по документу подсистемы. // Формирует печатную форму извещения (ф. 0504805, ред. 103н) по документу подсистемы.
// //
// Вёрстка и набор областей повторяют типовую печатную форму документа ИзвещениеИсходящее. // Вёрстка и набор областей повторяют типовую печатную форму документа ИзвещениеИсходящее.
// Заполняется та сторона, от которой печатается извещение: для передачи задолженности - // Заполняется та сторона, от которой печатается извещение: для передачи поступивших платежей -
// отправитель (учреждение), для принятия - получатель (централизованная бухгалтерия). // отправитель (централизованная бухгалтерия), для принятия платежей - получатель (учреждение).
// Суммы и счета берутся из проводок документа, поэтому печатается только проведённый документ. // Суммы и счета берутся из проводок документа, поэтому печатается только проведённый документ.
// //
// Документ передачи платежей ЦБ охватывает несколько учреждений, поэтому из него формируется
// отдельное извещение на каждое учреждение, присутствующее в табличной части "Задолженность".
//
// Параметры: // Параметры:
// ДокументСсылка - ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ, ДокументСсылка.ПС_ПринятиеЗадолженностиОтУчреждения - печатаемый документ. // ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения,
// ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемый документ.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан, не проведён, нет проводок или не найден макет. // ТабличныйДокумент - печатная форма; пустой табличный документ, если документ не записан,
// не проведён, нет проводок или не найден макет.
// //
Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт Функция ПечатьИзвещения0504805(ДокументСсылка) Экспорт
@@ -122,32 +74,6 @@
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ") Тогда
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаЗадолженностиВЦБ_Извещение0504805";
Макет = Документы.ПС_ПередачаЗадолженностиВЦБ.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП");
СторонаПечати = "Отправитель";
Отправитель = ДокументОбъект.Организация;
Получатель = ДокументОбъект.ЦБ;
Пояснение = "Передача задолженности по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ ". Основание: " + Строка(ДокументОбъект.ДокументНачисления) + ".";
Иначе
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПринятиеЗадолженности_Извещение0504805";
Макет = Документы.ПС_ПринятиеЗадолженностиОтУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель");
СторонаПечати = "Получатель";
Отправитель = ДокументОбъект.Учреждение;
Получатель = ДокументОбъект.Организация;
Пояснение = "Принятие задолженности по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ ". Основание: " + Строка(ДокументОбъект.ДокументПередачи) + ".";
КонецЕсли;
Если Макет = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения не сформирована: в документе не найден макет печатной формы.");
Возврат ТабличныйДокумент;
КонецЕсли;
Если НЕ ДокументОбъект.Проведен Тогда Если НЕ ДокументОбъект.Проведен Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения формируется по проводкам документа, поэтому печатается" "Печатная форма извещения формируется по проводкам документа, поэтому печатается"
@@ -163,16 +89,124 @@
Возврат ТабличныйДокумент; Возврат ТабличныйДокумент;
КонецЕсли; КонецЕсли;
Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ") Тогда
// Учреждение принимает поступившие платежи из ЦБ: печатается сторона получателя.
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПринятиеПоступившихПлатежейИзЦБ_Извещение0504805";
Макет = Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП");
Если Макет = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения не сформирована: в документе не найден макет печатной формы.");
Возврат ТабличныйДокумент;
КонецЕсли;
ДокументПередачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументСсылка, "ДокументПередачи").ДокументПередачи;
Отправитель = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПередачи, "Организация").Организация;
ПараметрыИзвещения = НоваяСтруктураИзвещения("Получатель", Отправитель,
ДокументОбъект.Организация,
"Принятие поступивших платежей по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ ". Основание: " + Строка(ДокументПередачи) + ".");
ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки);
Иначе
// ЦБ передаёт поступившие платежи: печатается сторона отправителя,
// отдельное извещение на каждое учреждение документа.
ТабличныйДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПС_ПередачаПоступившихПлатежейВУчреждения_Извещение0504805";
Макет = Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.ПолучитьМакет("ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель");
Если Макет = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения не сформирована: в документе не найден макет печатной формы.");
Возврат ТабличныйДокумент;
КонецЕсли;
Учреждения = УчрежденияДокументаПередачи(ДокументОбъект);
Если Учреждения.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Печатная форма извещения не сформирована: в табличной части ""Задолженность"""
+ " не заполнены учреждения.");
Возврат ТабличныйДокумент;
КонецЕсли;
Для Каждого Учреждение Из Учреждения Цикл
ПроводкиУчреждения = ПроводкиПоУчреждению(Проводки, Учреждение);
Если ПроводкиУчреждения.Количество() = 0 Тогда
Продолжить;
КонецЕсли;
ПараметрыИзвещения = НоваяСтруктураИзвещения("Отправитель", ДокументОбъект.Организация,
Учреждение,
"Передача поступивших платежей по родительской плате за "
+ Формат(ДокументОбъект.Период, "ДФ=MMMM yyyy")
+ ". Основание: " + Строка(ДокументСсылка) + ".");
ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, ПроводкиУчреждения);
КонецЦикла;
КонецЕсли;
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, Новый СписокЗначений, ДокументСсылка);
Возврат ТабличныйДокумент;
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Формирует структуру параметров одного извещения для вывода.
//
// Параметры:
// СторонаПечати - Строка - "Отправитель" или "Получатель".
// Отправитель - СправочникСсылка.Организации, СправочникСсылка.Контрагенты - отправитель извещения.
// Получатель - СправочникСсылка.Организации, СправочникСсылка.Контрагенты - получатель извещения.
// Пояснение - Строка - пояснение к извещению.
//
// Возвращаемое значение:
// Структура - параметры извещения.
//
Функция НоваяСтруктураИзвещения(СторонаПечати, Отправитель, Получатель, Пояснение)
ПараметрыИзвещения = Новый Структура;
ПараметрыИзвещения.Вставить("СторонаПечати", СторонаПечати);
ПараметрыИзвещения.Вставить("Отправитель", Отправитель);
ПараметрыИзвещения.Вставить("Получатель", Получатель);
ПараметрыИзвещения.Вставить("Пояснение", Пояснение);
Возврат ПараметрыИзвещения;
КонецФункции
// Выводит в табличный документ одно извещение по переданным проводкам.
//
// Параметры:
// ТабличныйДокумент - ТабличныйДокумент - печатная форма, в которую выводится извещение.
// Макет - ТабличныйДокумент - макет печатной формы извещения.
// ДокументСсылка - ДокументСсылка - печатаемый документ.
// ДокументОбъект - ДокументОбъект - печатаемый документ.
// ПараметрыИзвещения - Структура - параметры извещения, см. НоваяСтруктураИзвещения.
// Проводки - ТаблицаЗначений - проводки извещения, см. ПроводкиИзвещения.
//
Процедура ВывестиИзвещение(ТабличныйДокумент, Макет, ДокументСсылка, ДокументОбъект, ПараметрыИзвещения, Проводки)
СторонаПечати = ПараметрыИзвещения.СторонаПечати;
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.Номер = РегистрыСведений.НастройкиПечатиПрефиксаНомера ОбластьЗаголовок.Параметры.Номер = РегистрыСведений.НастройкиПечатиПрефиксаНомера
.ПолучитьНомерДляПечатиПоСсылкеИдентификаторуДокумента(ДокументСсылка, ДокументОбъект.Номер); .ПолучитьНомерДляПечатиПоСсылкеИдентификаторуДокумента(ДокументСсылка, ДокументОбъект.Номер);
ОбластьЗаголовок.Параметры.Дата = ДокументОбъект.Дата; ОбластьЗаголовок.Параметры.Дата = ДокументОбъект.Дата;
ЗаполнитьРеквизитыСтороны(ОбластьЗаголовок.Параметры, "Отправитель", Отправитель); ЗаполнитьРеквизитыСтороны(ОбластьЗаголовок.Параметры, "Отправитель", ПараметрыИзвещения.Отправитель);
ЗаполнитьРеквизитыСтороны(ОбластьЗаголовок.Параметры, "Получатель", Получатель); ЗаполнитьРеквизитыСтороны(ОбластьЗаголовок.Параметры, "Получатель", ПараметрыИзвещения.Получатель);
ТабличныйДокумент.Вывести(ОбластьЗаголовок); ТабличныйДокумент.Вывести(ОбластьЗаголовок);
ОбластьПояснение = Макет.ПолучитьОбласть("ПояснениеМБТ"); ОбластьПояснение = Макет.ПолучитьОбласть("ПояснениеМБТ");
ОбластьПояснение.Параметры.ПояснениеМБТ = Пояснение; ОбластьПояснение.Параметры.ПояснениеМБТ = ПараметрыИзвещения.Пояснение;
ТабличныйДокумент.Вывести(ОбластьПояснение); ТабличныйДокумент.Вывести(ОбластьПояснение);
ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("Шапка")); ТабличныйДокумент.Вывести(Макет.ПолучитьОбласть("Шапка"));
@@ -203,15 +237,65 @@
ЗаполнитьПодписиСтороны(ОбластьПодвал.Параметры, СторонаПечати, ДокументОбъект); ЗаполнитьПодписиСтороны(ОбластьПодвал.Параметры, СторонаПечати, ДокументОбъект);
ТабличныйДокумент.Вывести(ОбластьПодвал); ТабличныйДокумент.Вывести(ОбластьПодвал);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, 1, Новый СписокЗначений, ДокументСсылка); КонецПроцедуры
Возврат ТабличныйДокумент; // Возвращает список учреждений, присутствующих в табличной части "Задолженность" документа передачи.
//
// Параметры:
// ДокументОбъект - ДокументОбъект.ПС_ПередачаПоступившихПлатежейВУчреждения - документ передачи платежей.
//
// Возвращаемое значение:
// Массив из СправочникСсылка.Контрагенты - уникальные учреждения в порядке появления в табличной части.
//
Функция УчрежденияДокументаПередачи(ДокументОбъект)
Учреждения = Новый Массив;
Для Каждого СтрокаЗадолженности Из ДокументОбъект.Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
Продолжить;
КонецЕсли;
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
КонецЕсли;
КонецЦикла;
Возврат Учреждения;
КонецФункции КонецФункции
#КонецОбласти // Возвращает проводки документа, относящиеся к указанному учреждению.
//
// Учреждение определяется по субконто кредита счёта расчётов (304.04), поэтому проверяются
// все позиции субконто.
//
// Параметры:
// Проводки - ТаблицаЗначений - проводки документа, см. ПроводкиИзвещения.
// Учреждение - СправочникСсылка.Контрагенты - учреждение, по которому отбираются проводки.
//
// Возвращаемое значение:
// ТаблицаЗначений - проводки указанного учреждения, колонки как у Проводки.
//
Функция ПроводкиПоУчреждению(Проводки, Учреждение)
#Область СлужебныеПроцедурыИФункции Результат = Проводки.Скопировать();
СтрокиДляУдаления = Новый Массив;
Для Каждого Проводка Из Результат Цикл
Если Проводка.СубконтоКт1 = Учреждение
ИЛИ Проводка.СубконтоКт2 = Учреждение
ИЛИ Проводка.СубконтоКт3 = Учреждение Тогда
Продолжить;
КонецЕсли;
СтрокиДляУдаления.Добавить(Проводка);
КонецЦикла;
Для Каждого Проводка Из СтрокиДляУдаления Цикл
Результат.Удалить(Проводка);
КонецЦикла;
Возврат Результат;
КонецФункции
// Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок". // Заполняет реквизиты стороны извещения (отправителя или получателя) для области "Заголовок".
// //
@@ -393,7 +477,8 @@
// ДокументСсылка - ДокументСсылка - печатаемый документ. // ДокументСсылка - ДокументСсылка - печатаемый документ.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание. // ТаблицаЗначений - колонки: СчетДт, КПСДт, КЭКДт, СчетКт, КПСКт, КЭККт, КФО, Сумма, Содержание,
// СубконтоКт1, СубконтоКт2, СубконтоКт3.
// //
Функция ПроводкиИзвещения(ДокументСсылка) Функция ПроводкиИзвещения(ДокументСсылка)
@@ -408,7 +493,10 @@
| Проводки.КЭККт КАК КЭККт, | Проводки.КЭККт КАК КЭККт,
| Проводки.КФО КАК КФО, | Проводки.КФО КАК КФО,
| Проводки.Сумма КАК Сумма, | Проводки.Сумма КАК Сумма,
| Проводки.Содержание КАК Содержание | Проводки.Содержание КАК Содержание,
| Проводки.СубконтоКт1 КАК СубконтоКт1,
| Проводки.СубконтоКт2 КАК СубконтоКт2,
| Проводки.СубконтоКт3 КАК СубконтоКт3
|ИЗ |ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(, , Регистратор = &ДокументСсылка) КАК Проводки | РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ДвиженияССубконто(, , Регистратор = &ДокументСсылка) КАК Проводки
| |
@@ -72,8 +72,8 @@
<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>
<enums>Enum.КВД</enums> <enums>Enum.КВД</enums>
<enums>Enum.ПС_ВидыОперацийПоВзаиморасчетам</enums> <enums>Enum.ПС_ВидыОперацийПоВзаиморасчетам</enums>
@@ -22,6 +22,26 @@
#КонецОбласти #КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаДокументыПередачи
// Сужает таблицу принятий до принятий по выбранному документу передачи.
// Документ передачи берётся из текущей строки таблицы "Документы передачи":
// у одного документа передачи может быть несколько документов принятия (по одному на сад).
//
&НаКлиенте
Процедура ТаблицаДокументыПередачиПриАктивизацииСтроки(Элемент)
ТекущиеДанные = Элемент.ТекущиеДанные;
Если ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
ЗаполнитьПринятияПоПередачеНаСервере(ТекущиеДанные.Ссылка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы #Область ОбработчикиКомандФормы
// Обновляет данные таблиц формы по установленным фильтрам. // Обновляет данные таблиц формы по установленным фильтрам.
@@ -80,37 +100,64 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Отборы формы заданы в терминах ЦБ: Организация - это ЦБ (справочник Организации), Отборы = ОтборыДокументовНаСервере();
// Учреждение - сад (справочник Контрагенты). Документы начисления и передачи хранят Если Отборы = Неопределено Тогда
// сад как Организацию, а ЦБ в документе передачи - как Контрагента. Приводим значения
// отбора к типам, которые есть в документах, сопоставлением по ИНН.
ЦБКонтрагент = Неопределено;
Если ЗначениеЗаполнено(Объект.Организация) Тогда
ЦБКонтрагент = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Объект.Организация, "Организация (ЦБ)");
Если НЕ ЗначениеЗаполнено(ЦБКонтрагент) Тогда
ОчиститьТаблицы(); ОчиститьТаблицы();
Возврат; Возврат;
КонецЕсли; КонецЕсли;
КонецЕсли;
СадОрганизация = Неопределено; ЗаполнитьНачисления(Отборы.СадОрганизация);
Если ЗначениеЗаполнено(Объект.Учреждение) Тогда ЗаполнитьДокументыПередачи(Отборы.ЦБОрганизация, Отборы.СадКонтрагент);
СадОрганизация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Объект.Учреждение, "Учреждение (сад)"); ЗаполнитьДокументыПринятия(Отборы.ЦБКонтрагент, Отборы.СадОрганизация);
Если НЕ ЗначениеЗаполнено(СадОрганизация) Тогда ЗаполнитьСверку(Отборы.ЦБОрганизация, Отборы.СадКонтрагент);
ОчиститьТаблицы();
Возврат;
КонецЕсли;
КонецЕсли;
ЗаполнитьНачисления(СадОрганизация);
ЗаполнитьДокументыПередачи(ЦБКонтрагент, СадОрганизация);
ЗаполнитьДокументыПринятия();
ЗаполнитьСверку(ЦБКонтрагент, СадОрганизация);
ЗаполнитьТаблицуОстатков(); ЗаполнитьТаблицуОстатков();
ЗаполнитьКассовыеПоступления(); ЗаполнитьКассовыеПоступления();
КонецПроцедуры КонецПроцедуры
// Приводит отборы формы (ЦБ и учреждение) к значениям, в терминах которых они хранятся
// в документах.
//
// Отборы формы заданы в терминах ЦБ: Организация - это ЦБ (справочник Организации),
// Учреждение - сад (справочник Контрагенты). В документах те же стороны хранятся
// по-разному: документ передачи платежей хранит ЦБ как Организацию, а сад - как
// Контрагента в табличной части "Задолженность"; документ принятия - наоборот.
// Приводим значения отбора к типам, которые есть в документах, сопоставлением по ИНН.
//
// Возвращаемое значение:
// Структура - отборы документов: ЦБОрганизация, ЦБКонтрагент, СадОрганизация,
// СадКонтрагент. Неопределено - отбор не удалось сопоставить с данными
// документов (причина уже выведена пользователю).
//
&НаСервере
Функция ОтборыДокументовНаСервере()
Отборы = Новый Структура;
Отборы.Вставить("ЦБОрганизация");
Отборы.Вставить("ЦБКонтрагент");
Отборы.Вставить("СадОрганизация");
Отборы.Вставить("СадКонтрагент");
Если ЗначениеЗаполнено(Объект.Организация) Тогда
Отборы.ЦБОрганизация = Объект.Организация;
Отборы.ЦБКонтрагент = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Объект.Организация, "Организация (ЦБ)");
Если НЕ ЗначениеЗаполнено(Отборы.ЦБКонтрагент) Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
Отборы.СадКонтрагент = Объект.Учреждение;
Отборы.СадОрганизация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Объект.Учреждение, "Учреждение (сад)");
Если НЕ ЗначениеЗаполнено(Отборы.СадОрганизация) Тогда
Возврат Неопределено;
КонецЕсли;
КонецЕсли;
Возврат Отборы;
КонецФункции
// Очищает таблицы формы. Вызывается, когда значения отборов не удалось сопоставить // Очищает таблицы формы. Вызывается, когда значения отборов не удалось сопоставить
// с данными документов; причина уже выведена пользователю. // с данными документов; причина уже выведена пользователю.
// //
@@ -174,18 +221,77 @@
КонецПроцедуры КонецПроцедуры
// Заполняет таблицу формы ДокументыПередачи по установленным фильтрам. // Заполняет таблицу формы ДокументыПередачи по установленным фильтрам.
// Таблица показывает документы передачи поступивших платежей в учреждения (документ ЦБ).
// //
// Параметры: // Параметры:
// ЦБКонтрагент - CatalogRef.Контрагенты, Неопределено - ЦБ в виде контрагента // ЦБОрганизация - CatalogRef.Организации - ЦБ в виде организации (документ передачи
// (документ передачи хранит ЦБ именно так); Неопределено - отбор не задан. // хранит ЦБ в реквизите "Организация"); Неопределено - отбор не задан.
// СадОрганизация - CatalogRef.Организации, Неопределено - учреждение (сад) в виде // СадКонтрагент - CatalogRef.Контрагенты - учреждение (сад) в табличной части
// организации; Неопределено - отбор по учреждению не задан. // "Задолженность"; Неопределено - отбор по учреждению не задан.
// //
&НаСервере &НаСервере
Процедура ЗаполнитьДокументыПередачи(ЦБКонтрагент, СадОрганизация) Процедура ЗаполнитьДокументыПередачи(ЦБОрганизация, СадКонтрагент)
ДокументыПередачи.Очистить(); ДокументыПередачи.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗЛИЧНЫЕ
| Документы.Ссылка КАК Ссылка,
| Документы.Дата КАК Дата,
| Документы.Номер КАК Номер,
| Документы.Организация КАК Организация,
| Документы.ИФО КАК ИФО,
| Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Документы
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК Строки
| ПО Документы.Ссылка = Строки.Ссылка
|ГДЕ
| Документы.Период >= &НачалоПериода
| И Документы.Период <= &КонецПериода
| И (&ЦБОрганизация = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.Организация = &ЦБОрганизация)
| И (&СадКонтрагент = НЕОПРЕДЕЛЕНО
| ИЛИ Строки.Учреждение = &СадКонтрагент)
| И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ";
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБОрганизация", ЦБОрганизация);
Запрос.УстановитьПараметр("СадКонтрагент", СадКонтрагент);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ДокументыПередачи.Добавить(), Выборка);
КонецЦикла;
КонецПроцедуры
// Заполняет таблицу формы ДокументыПринятия по установленным фильтрам.
// Таблица показывает документы принятия поступивших платежей из ЦБ (документ учреждения).
//
// Параметры:
// ЦБКонтрагент - CatalogRef.Контрагенты - ЦБ в виде контрагента (документ принятия
// хранит ЦБ в реквизите "ЦБ"); Неопределено - отбор не задан.
// СадОрганизация - CatalogRef.Организации - учреждение (сад) в виде организации
// (документ принятия хранит сад в реквизите "Организация");
// Неопределено - отбор по учреждению не задан.
// ДокументПередачи - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ
// передачи, по которому отбираются принятия; Неопределено - отбор не задан.
//
&НаСервере
Процедура ЗаполнитьДокументыПринятия(ЦБКонтрагент, СадОрганизация, ДокументПередачи = Неопределено)
ДокументыПринятия.Очистить();
Запрос = Новый Запрос; Запрос = Новый Запрос;
Запрос.Текст = Запрос.Текст =
"ВЫБРАТЬ "ВЫБРАТЬ
@@ -197,76 +303,31 @@
| Документы.ИФО КАК ИФО, | Документы.ИФО КАК ИФО,
| Документы.Период КАК Период, | Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента, | Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.ПередачаСальдо КАК ПередачаСальдо, | Документы.ДокументПередачи КАК ДокументПередачи,
| Документы.Проведен КАК Проведен, | Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления | Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ |ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК Документы | Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ КАК Документы
|ГДЕ
| Документы.Период >= &НачалоПериода
| И Документы.Период <= &КонецПериода
| И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ЦБ = &ЦБ)
| И (&Сад = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.Организация = &Сад)
| И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ";
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент);
Запрос.УстановитьПараметр("Сад", СадОрганизация);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ДокументыПередачи.Добавить(), Выборка);
КонецЦикла;
КонецПроцедуры
// Заполняет таблицу формы ДокументыПринятия по установленным фильтрам.
//
&НаСервере
Процедура ЗаполнитьДокументыПринятия()
ДокументыПринятия.Очистить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Документы.Ссылка КАК Ссылка,
| Документы.Дата КАК Дата,
| Документы.Номер КАК Номер,
| Документы.Организация КАК Организация,
| Документы.Учреждение КАК Учреждение,
| Документы.ИФО КАК ИФО,
| Документы.Период КАК Период,
| Документы.СуммаДокумента КАК СуммаДокумента,
| Документы.ПередачаСальдо КАК ПередачаСальдо,
| Документы.Проведен КАК Проведен,
| Документы.ПометкаУдаления КАК ПометкаУдаления
|ИЗ
| Документ.ПС_ПринятиеЗадолженностиОтУчреждения КАК Документы
|ГДЕ |ГДЕ
| Документы.Период >= &НачалоПериода | Документы.Период >= &НачалоПериода
| И Документы.Период <= &КонецПериода | И Документы.Период <= &КонецПериода
| И (&Организация = НЕОПРЕДЕЛЕНО | И (&Организация = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.Организация = &Организация) | ИЛИ Документы.Организация = &Организация)
| И (&Учреждение = НЕОПРЕДЕЛЕНО | И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.Учреждение = &Учреждение) | ИЛИ Документы.ЦБ = &ЦБ)
| И (&ИФО = НЕОПРЕДЕЛЕНО | И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ИФО = &ИФО) | ИЛИ Документы.ИФО = &ИФО)
| И (&ДокументПередачи = НЕОПРЕДЕЛЕНО
| ИЛИ Документы.ДокументПередачи = &ДокументПередачи)
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
| Документы.Дата УБЫВ"; | Документы.Дата УБЫВ";
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала); Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания); Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("Организация", ?(ЗначениеЗаполнено(Объект.Организация), Объект.Организация, Неопределено)); Запрос.УстановитьПараметр("Организация", СадОрганизация);
Запрос.УстановитьПараметр("Учреждение", ?(ЗначениеЗаполнено(Объект.Учреждение), Объект.Учреждение, Неопределено)); Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено)); Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачи);
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл Пока Выборка.Следующий() Цикл
@@ -275,17 +336,37 @@
КонецПроцедуры КонецПроцедуры
// Заполняет таблицу формы Сверка: сопоставляет суммы наших документов передачи // Заполняет таблицу принятий по документу передачи, выбранному в таблице "Документы передачи".
// и принятия. Приёмка связана с передачей через реквизит ДокументПередачи.
// //
// Параметры: // Параметры:
// ЦБКонтрагент - CatalogRef.Контрагенты, Неопределено - ЦБ в виде контрагента // ДокументПередачи - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ
// (документ передачи хранит ЦБ именно так); Неопределено - отбор не задан. // передачи, по которому отбираются принятия.
// СадОрганизация - CatalogRef.Организации, Неопределено - учреждение (сад) в виде
// организации; Неопределено - отбор по учреждению не задан.
// //
&НаСервере &НаСервере
Процедура ЗаполнитьСверку(ЦБКонтрагент, СадОрганизация) Процедура ЗаполнитьПринятияПоПередачеНаСервере(ДокументПередачи)
Отборы = ОтборыДокументовНаСервере();
Если Отборы = Неопределено Тогда
ДокументыПринятия.Очистить();
Возврат;
КонецЕсли;
ЗаполнитьДокументыПринятия(Отборы.ЦБКонтрагент, Отборы.СадОрганизация, ДокументПередачи);
КонецПроцедуры
// Заполняет таблицу формы Сверка: сопоставляет суммы переданных платежей (документ ЦБ)
// и принятых учреждениями (документы принятия). Приёмка связана с передачей через
// реквизит ДокументПередачи документа принятия.
//
// Параметры:
// ЦБОрганизация - CatalogRef.Организации - ЦБ в виде организации (документ передачи
// хранит ЦБ в реквизите "Организация"); Неопределено - отбор не задан.
// СадКонтрагент - CatalogRef.Контрагенты - учреждение (сад) в табличной части
// "Задолженность"; Неопределено - отбор по учреждению не задан.
//
&НаСервере
Процедура ЗаполнитьСверку(ЦБОрганизация, СадКонтрагент)
Сверка.Очистить(); Сверка.Очистить();
@@ -296,7 +377,7 @@
| СУММА(Принятие.СуммаДокумента) КАК СуммаПринято | СУММА(Принятие.СуммаДокумента) КАК СуммаПринято
|ПОМЕСТИТЬ ВТПринято |ПОМЕСТИТЬ ВТПринято
|ИЗ |ИЗ
| Документ.ПС_ПринятиеЗадолженностиОтУчреждения КАК Принятие | Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ КАК Принятие
|ГДЕ |ГДЕ
| НЕ Принятие.ПометкаУдаления | НЕ Принятие.ПометкаУдаления
|СГРУППИРОВАТЬ ПО |СГРУППИРОВАТЬ ПО
@@ -305,27 +386,28 @@
| ДокументПередачи | ДокументПередачи
|; |;
| |
|ВЫБРАТЬ |ВЫБРАТЬ РАЗЛИЧНЫЕ
| Передача.Ссылка КАК ДокументПередачи, | Передача.Ссылка КАК ДокументПередачи,
| Передача.Период КАК Период, | Передача.Период КАК Период,
| Передача.Организация КАК Сад, | Передача.Организация КАК ЦБ,
| Передача.ЦБ КАК ЦБ,
| Передача.СуммаДокумента КАК СуммаПередано, | Передача.СуммаДокумента КАК СуммаПередано,
| ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК СуммаПринято, | ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК СуммаПринято,
| Передача.СуммаДокумента - ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК Расхождение, | Передача.СуммаДокумента - ЕСТЬNULL(ВТПринято.СуммаПринято, 0) КАК Расхождение,
| Передача.Проведен КАК ПередачаПроведена | Передача.Проведен КАК ПередачаПроведена
|ИЗ |ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК Передача | Документ.ПС_ПередачаПоступившихПлатежейВУчреждения КАК Передача
| ЛЕВОЕ СОЕДИНЕНИЕ ВТПринято КАК ВТПринято | ЛЕВОЕ СОЕДИНЕНИЕ ВТПринято КАК ВТПринято
| ПО Передача.Ссылка = ВТПринято.ДокументПередачи | ПО Передача.Ссылка = ВТПринято.ДокументПередачи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК Строки
| ПО Передача.Ссылка = Строки.Ссылка
|ГДЕ |ГДЕ
| НЕ Передача.ПометкаУдаления | НЕ Передача.ПометкаУдаления
| И Передача.Период >= &НачалоПериода | И Передача.Период >= &НачалоПериода
| И Передача.Период <= &КонецПериода | И Передача.Период <= &КонецПериода
| И (&ЦБ = НЕОПРЕДЕЛЕНО | И (&ЦБ = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.ЦБ = &ЦБ) | ИЛИ Передача.Организация = &ЦБ)
| И (&Сад = НЕОПРЕДЕЛЕНО | И (&Сад = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.Организация = &Сад) | ИЛИ Строки.Учреждение = &Сад)
| И (&ИФО = НЕОПРЕДЕЛЕНО | И (&ИФО = НЕОПРЕДЕЛЕНО
| ИЛИ Передача.ИФО = &ИФО) | ИЛИ Передача.ИФО = &ИФО)
|УПОРЯДОЧИТЬ ПО |УПОРЯДОЧИТЬ ПО
@@ -334,8 +416,8 @@
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала); Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания); Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
Запрос.УстановитьПараметр("ЦБ", ЦБКонтрагент); Запрос.УстановитьПараметр("ЦБ", ЦБОрганизация);
Запрос.УстановитьПараметр("Сад", СадОрганизация); Запрос.УстановитьПараметр("Сад", СадКонтрагент);
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено)); Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
Выборка = Запрос.Выполнить().Выбрать(); Выборка = Запрос.Выполнить().Выбрать();
@@ -25,9 +25,10 @@
Возврат; Возврат;
КонецЕсли; КонецЕсли;
// Оплата закрывает задолженность, принятую от учреждения. Переплата допускается - // Поступившие платежи копятся у ЦБ: приход по регистру взаиморасчётов.
// она даёт отрицательный (кредитовый) остаток по ребёнку. Строки без определённого // Передача платежей в сады списывает их расходом, поэтому остаток регистра
// ребёнка или договора пропускаются: это не оплата родительской платы. // показывает, сколько поступило и ещё не передано в учреждения. Строки без
// определённого ребёнка или договора пропускаются: это не плата за детский сад.
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить(); Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина; Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
@@ -65,7 +66,7 @@
КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада); КонтрагентыСадов.Вставить(ОрганизацияСада, КонтрагентСада);
КонецЕсли; КонецЕсли;
Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход(); Движение = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
Движение.Период = Дата; Движение.Период = Дата;
Движение.Организация = Организация; Движение.Организация = Организация;
Движение.Учреждение = КонтрагентСада; Движение.Учреждение = КонтрагентСада;
@@ -76,7 +77,7 @@
Движение.КФО = СтрокаРасшифровки.КФО; Движение.КФО = СтрокаРасшифровки.КФО;
Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа; Движение.КПС = СтрокаРасшифровки.КБКНазначениеПлатежа;
Движение.Сумма = СтрокаРасшифровки.Сумма; Движение.Сумма = СтрокаРасшифровки.Сумма;
Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.Оплата; Движение.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПоступлениеПлатежа;
КонецЦикла; КонецЦикла;
@@ -112,7 +112,7 @@
КонецЕсли; КонецЕсли;
ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка); ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка);
ОткрытьФорму("Документ.ПС_ПередачаЗадолженностиВЦБ.Форма.ФормаДокумента", ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента",
ПараметрыФормы, ПараметрыФормы,
ЭтотОбъект); ЭтотОбъект);
@@ -12,7 +12,6 @@
<extension xsi:type="mdclassExtension:DocumentExtension"> <extension xsi:type="mdclassExtension:DocumentExtension">
<extendedConfigurationObject>Checked</extendedConfigurationObject> <extendedConfigurationObject>Checked</extendedConfigurationObject>
</extension> </extension>
<basedOn>Document.ПС_ПередачаЗадолженностиВЦБ</basedOn>
<forms uuid="afd5a88e-f86c-4f20-8edb-b69efb4623e0" extendedConfigurationObject="1a84838c-25fc-4c1b-8b26-74c31f1d8f67"> <forms uuid="afd5a88e-f86c-4f20-8edb-b69efb4623e0" extendedConfigurationObject="1a84838c-25fc-4c1b-8b26-74c31f1d8f67">
<name>ФормаДокумента</name> <name>ФормаДокумента</name>
<objectBelonging>Adopted</objectBelonging> <objectBelonging>Adopted</objectBelonging>
@@ -1,438 +0,0 @@
// ПС_ПередачаЗадолженностиВЦБ: модуль формы документа.
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
БухгалтерскиеОперацииСервер.ПриСозданииНаСервере(Отказ, СтандартнаяОбработка, Элементы.БухгалтерскаяОперация);
// ИФО показывается только при включённом учёте по ИФО (как в типовых документах).
Элементы.ИФО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО");
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
// Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию.
// В режиме передачи начального сальдо скрывается документ начисления и появляется
// команда заполнения по остаткам счёта 205.31.
ЗаполнитьКорреспондирующийСчетПоУмолчанию();
ОбновитьВидимостьРеквизитовРежимаСальдо();
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Основание = Неопределено;
Если Параметры.Свойство("Основание", Основание)
И ТипЗнч(Основание) = Тип("ДокументСсылка.НачислениеРодительскойПлаты") Тогда
Объект.ДокументНачисления = Основание;
ЗаполнитьПоДокументуНачисленияНаСервере(Основание);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПередЗаписью(Отказ, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПослеЗаписи(ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПечатьИзвещения(Команда)
ТабличныйДокумент = ПечатьИзвещенияНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Извещение (ф. 0504805, ред. 103н)");
КонецПроцедуры
&НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда)
ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ПС_СоздатьПринятиеЗадолженностиНаОсновании(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Сначала запишите и проведите документ передачи.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Если НЕ Объект.Проведен Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Перед созданием принятия документ передачи должен быть проведён.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
ПараметрыФормы = Новый Структура("Основание", Объект.Ссылка);
ОткрытьФорму("Документ.ПС_ПринятиеЗадолженностиОтУчреждения.Форма.ФормаДокумента",
ПараметрыФормы,
ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоОстаткам20531(Команда)
ЗаполнитьПоОстаткам20531НаСервере();
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура ПередачаСальдоПриИзменении(Элемент)
// В режиме сальдо поле документа начисления скрывается, команда заполнения по остаткам - показывается.
РежимСальдо = (Объект.ПередачаСальдо = Истина);
Элементы.ЗаполнитьПоОстаткам20531.Видимость = РежимСальдо;
Элементы.ДокументНачисления.Видимость = НЕ РежимСальдо;
КонецПроцедуры
&НаКлиенте
Процедура ДокументНачисленияПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.ДокументНачисления) Тогда
ЗаполнитьПоДокументуНачисленияНаСервере(Объект.ДокументНачисления);
Иначе
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗадолженностьПриИзменении(Элемент)
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПечатьИзвещенияНаСервере(ДокументСсылка)
Возврат Документы.ПС_ПередачаЗадолженностиВЦБ.СформироватьПечатныеФормыИзвещений(ДокументСсылка);
КонецФункции
&НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОбновитьВидимостьРеквизитовРежимаСальдо()
// В режиме начального сальдо документ начисления не используется: его поле скрывается,
// а вместо него доступна команда заполнения по остаткам счёта 205.31.
РежимСальдо = (Объект.ПередачаСальдо = Истина);
Элементы.ЗаполнитьПоОстаткам20531.Видимость = РежимСальдо;
Элементы.ДокументНачисления.Видимость = НЕ РежимСальдо;
КонецПроцедуры
// Заполняет табличную часть "Задолженность" остатками счёта 205.31 на дату документа
// по организации (учреждению-саду). Строки доступны для ручной правки.
//
&НаСервере
Процедура ЗаполнитьПоОстаткам20531НаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение по остаткам невозможно: не заполнена организация (учреждение-сад).");
Возврат;
КонецЕсли;
Счет20531 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
Если Счет20531 = Неопределено Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение по остаткам невозможно: в плане счетов ЕПСБУ не найден счет 205.31.");
Возврат;
КонецЕсли;
// Порядок субконто берём из настройки самого счёта: субконто1 - первое субконто счёта.
ВидыСубконто = Новый Массив;
Для Каждого СтрокаСубконто Из Счет20531.ВидыСубконто Цикл
ВидыСубконто.Добавить(СтрокаСубконто.ВидСубконто);
КонецЦикла;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Субконто1 КАК Контрагент,
| Остатки.Субконто2 КАК Договор,
| Дети.Ссылка КАК Ребенок,
| Остатки.КПС КАК КПС,
| Остатки.ИФО КАК ИФО,
| Остатки.КФО КАК КФО,
| Остатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
| &Дата,
| Счет В ИЕРАРХИИ (&Счет20531),
| &ВидыСубконто,
| Организация = &Организация) КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Дети КАК Дети
| ПО Дети.Контрагент = Остатки.Субконто1
|ГДЕ
| Остатки.СуммаОстаток <> 0
|
|УПОРЯДОЧИТЬ ПО
| Остатки.Субконто1,
| Остатки.Субконто2";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Счет20531", Счет20531);
Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Выборка = Запрос.Выполнить().Выбрать();
Объект.Задолженность.Очистить();
ЗначенияИФО = Новый Соответствие;
ЗначенияКФО = Новый Соответствие;
Пока Выборка.Следующий() Цикл
ЗначенияИФО.Вставить(Выборка.ИФО, Истина);
ЗначенияКФО.Вставить(Выборка.КФО, Истина);
НоваяСтрока = Объект.Задолженность.Добавить();
НоваяСтрока.Контрагент = Выборка.Контрагент;
НоваяСтрока.Договор = Выборка.Договор;
НоваяСтрока.Ребенок = Выборка.Ребенок;
НоваяСтрока.КПС = Выборка.КПС;
НоваяСтрока.Сумма = Выборка.Сумма;
КонецЦикла;
Если Объект.Задолженность.Количество() = 0 Тогда
ВывестиДиагностикуЗаполненияПоОстаткам(Счет20531);
Возврат;
КонецЕсли;
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
// Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ,
// поэтому переносим их в шапку, если в остатках они единственные.
ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО);
Если ЗначенияИФО.Количество() > 1 ИЛИ ЗначенияКФО.Количество() > 1 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Остатки найдены в разрезе нескольких ИФО и/или КФО, а в документе ИФО и КФО задаются"
+ " на весь документ. Проверьте их заполнение и при необходимости перенесите"
+ " сальдо отдельными документами.");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО)
Если ЗначенияКФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.КФО) Тогда
Для Каждого КлючИЗначение Из ЗначенияКФО Цикл
Объект.КФО = КлючИЗначение.Ключ;
КонецЦикла;
КонецЕсли;
Если ЗначенияИФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.ИФО) Тогда
Для Каждого КлючИЗначение Из ЗначенияИФО Цикл
Объект.ИФО = КлючИЗначение.Ключ;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВывестиДиагностикуЗаполненияПоОстаткам(Счет20531)
// Проверяем, есть ли вообще остатки по счёту на дату документа - без отборов
// по организации и субконто. Это позволяет понять, что именно не совпало.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КОЛИЧЕСТВО(*) КАК ВсегоСтрок
|ИЗ
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.Остатки(
| &Дата,
| Счет В ИЕРАРХИИ (&Счет20531), , ) КАК Остатки";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
Запрос.УстановитьПараметр("Счет20531", Счет20531);
Выборка = Запрос.Выполнить().Выбрать();
ВсегоСтрок = 0;
Если Выборка.Следующий() Тогда
ВсегоСтрок = Выборка.ВсегоСтрок;
КонецЕсли;
ДатаДокумента = Формат(Объект.Дата, "ДЛФ=DD");
Если ВсегоСтрок = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Остатков по счёту " + Счет20531.Код + " на " + ДатаДокумента
+ " нет ни по одной организации. Проверьте дату документа.");
Иначе
ОбщегоНазначения.СообщитьПользователю(
"Остатки по счёту " + Счет20531.Код + " на " + ДатаДокумента + " есть ("
+ ВсегоСтрок + " стр.), но не отобраны по организации " + Строка(Объект.Организация)
+ " и/или по субконто счёта. Проверьте организацию в документе.");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДокументуНачисленияНаСервере(ДокументНачисленияСсылка)
Если НЕ ЗначениеЗаполнено(ДокументНачисленияСсылка) Тогда
Возврат;
КонецЕсли;
// Заполнение возможно только на основании проведённого документа начисления.
Если НЕ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументНачисленияСсылка, "Проведен") Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение документа возможно только на основании проведённого документа начисления родительской платы.");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| НачислениеРодительскойПлаты.Организация КАК Организация,
| НачислениеРодительскойПлаты.ИФО КАК ИФО,
| НачислениеРодительскойПлаты.Ответственный КАК Ответственный,
| НачислениеРодительскойПлаты.НачалоПериода КАК НачалоПериода,
| НачислениеРодительскойПлаты.Дата КАК ДатаДокумента
|ИЗ
| Документ.НачислениеРодительскойПлаты КАК НачислениеРодительскойПлаты
|ГДЕ
| НачислениеРодительскойПлаты.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| НачислениеРодительскойПлатыНачисления.Контрагент КАК Контрагент,
| НачислениеРодительскойПлатыНачисления.ДоговорКонтрагента КАК Договор,
| НачислениеРодительскойПлатыНачисления.Ребенок КАК Ребенок,
| НачислениеРодительскойПлатыНачисления.ИДСтроки КАК ИДСтроки,
| НачислениеРодительскойПлатыНачисления.Сумма КАК Сумма
|ИЗ
| Документ.НачислениеРодительскойПлаты.Начисления КАК НачислениеРодительскойПлатыНачисления
|ГДЕ
| НачислениеРодительскойПлатыНачисления.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ДокументНачисленияСсылка);
Результаты = Запрос.ВыполнитьПакет();
ВыборкаШапка = Результаты[0].Выбрать();
Если НЕ ВыборкаШапка.Следующий() Тогда
Возврат;
КонецЕсли;
Объект.Организация = ВыборкаШапка.Организация;
Объект.Ответственный = ВыборкаШапка.Ответственный;
Объект.ДокументНачисления = ДокументНачисленияСсылка;
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
Объект.ИФО = ВыборкаШапка.ИФО;
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаШапка.НачалоПериода) Тогда
Объект.Период = ВыборкаШапка.НачалоПериода;
Иначе
Объект.Период = НачалоМесяца(ВыборкаШапка.ДатаДокумента);
КонецЕсли;
Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
ВыборкаСтроки = Результаты[1].Выбрать();
Пока ВыборкаСтроки.Следующий() Цикл
НоваяСтрока = Объект.Задолженность.Добавить();
НоваяСтрока.Контрагент = ВыборкаСтроки.Контрагент;
НоваяСтрока.Договор = ВыборкаСтроки.Договор;
НоваяСтрока.Ребенок = ВыборкаСтроки.Ребенок;
НоваяСтрока.ИДСтроки = ВыборкаСтроки.ИДСтроки;
НоваяСтрока.Сумма = ВыборкаСтроки.Сумма;
Объект.СуммаДокумента = Объект.СуммаДокумента + ВыборкаСтроки.Сумма;
КонецЦикла;
// КФО документа и КПС строк - из проводок документа начисления.
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(Объект, ДокументНачисленияСсылка);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
ПараметрыФормы = Новый Структура;
Отбор = Новый Структура("Регистратор", ДокументСсылка);
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
@@ -51,52 +51,6 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ДокументПередачи</name>
<id>22</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ДокументПередачи</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ДокументПередачиПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДокументПередачиРасширеннаяПодсказка</name>
<id>24</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДокументПередачиКонтекстноеМеню</name>
<id>23</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<extendedEditMultipleValues>true</extendedEditMultipleValues>
<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>
@@ -255,48 +209,6 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>Учреждение</name>
<id>13</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.Учреждение</segments>
</dataPath>
<extendedTooltip>
<name>УчреждениеРасширеннаяПодсказка</name>
<id>15</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>УчреждениеКонтекстноеМеню</name>
<id>14</id>
<autoFill>true</autoFill>
</contextMenu>
<type>InputField</type>
<editMode>EnterOnInput</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:InputFieldExtInfo">
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap>
<extendedEditMultipleValues>true</extendedEditMultipleValues>
<chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit>
<textSize>Normal</textSize>
</extInfo>
</items>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
@@ -452,6 +364,47 @@
<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>
@@ -1014,43 +967,6 @@
<textSize>Normal</textSize> <textSize>Normal</textSize>
</extInfo> </extInfo>
</items> </items>
<items xsi:type="form:FormField">
<name>ПередачаСальдо</name>
<id>94</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>96</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ПередачаСальдоКонтекстноеМеню</name>
<id>95</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>СчетКорреспондент</name> <name>СчетКорреспондент</name>
<id>97</id> <id>97</id>
@@ -1323,6 +1239,58 @@
<placementArea>UserCmds</placementArea> <placementArea>UserCmds</placementArea>
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button">
<name>ЗаполнитьПоПоступившимПлатежам</name>
<id>106</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаполнитьПоПоступившимПлатежамРасширеннаяПодсказка</name>
<id>107</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>108</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаСоздатьПринятиеПлатежейРасширеннаяПодсказка</name>
<id>109</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>
@@ -1343,7 +1311,7 @@
<name>Объект</name> <name>Объект</name>
<id>1</id> <id>1</id>
<valueType> <valueType>
<types>DocumentObject.ПС_ПринятиеЗадолженностиОтУчреждения</types> <types>DocumentObject.ПС_ПередачаПоступившихПлатежейВУчреждения</types>
</valueType> </valueType>
<view> <view>
<common>true</common> <common>true</common>
@@ -1392,11 +1360,63 @@
</handler> </handler>
</action> </action>
</formCommands> </formCommands>
<formCommands>
<name>ЗаполнитьПоПоступившимПлатежам</name>
<title>
<key>ru</key>
<value>Заполнить по поступившим платежам</value>
</title>
<id>3</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>Создать приём платежей</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/>
</commandInterface> </commandInterface>
<extInfo xsi:type="form:DocumentFormExtInfo"> <extInfo xsi:type="form:DocumentFormExtInfo">
<handlers>
<event>BeforeWrite</event>
<name>ПередЗаписью</name>
</handlers>
<handlers>
<event>BeforeWriteAtServer</event>
<name>ПередЗаписьюНаСервере</name>
</handlers>
<handlers>
<event>AfterWriteAtServer</event>
<name>ПослеЗаписиНаСервере</name>
</handlers>
<handlers>
<event>OnReadAtServer</event>
<name>ПриЧтенииНаСервере</name>
</handlers>
<handlers>
<event>AfterWrite</event>
<name>ПослеЗаписи</name>
</handlers>
<repostOnWrite>true</repostOnWrite> <repostOnWrite>true</repostOnWrite>
</extInfo> </extInfo>
</form:Form> </form:Form>
@@ -0,0 +1,309 @@
// ПС_ПередачаПоступившихПлатежейВУчреждения: модуль формы документа.
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
БухгалтерскиеОперацииСервер.ПриСозданииНаСервере(Отказ, СтандартнаяОбработка, Элементы.БухгалтерскаяОперация);
// ИФО показывается только при включённом учёте по ИФО (как в типовых документах).
Элементы.ИФО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО");
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
// Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию.
ЗаполнитьКорреспондирующийСчетПоУмолчанию();
Если НЕ ЗначениеЗаполнено(Объект.Ссылка)
И НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПередЗаписью(Отказ, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПослеЗаписи(ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗадолженность
&НаКлиенте
Процедура ЗадолженностьПриИзменении(Элемент)
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПечатьИзвещения(Команда)
ТабличныйДокумент = ПечатьИзвещенияНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Извещение (ф. 0504805, ред. 103н) - отправитель");
КонецПроцедуры
&НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда)
ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоПоступившимПлатежам(Команда)
ЗаполнитьПоПоступившимПлатежамНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура СоздатьПринятиеПлатежей(Команда)
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Сначала запишите документ передачи платежей.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Если НЕ Объект.Проведен Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Перед созданием приёма платежей документ передачи должен быть проведён.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
// По каждому учреждению табличной части открывается форма нового документа принятия:
// строки подбираются по саду документа, записывает документы пользователь.
ОрганизацииСадов = ОрганизацииСадовНаСервере();
Если ОрганизацииСадов.Количество() = 0 Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "В табличной части ""Задолженность"" не заполнены учреждения (получатели).";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Для Каждого ОрганизацияСада Из ОрганизацииСадов Цикл
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ДокументПередачи", Объект.Ссылка);
ПараметрыФормы.Вставить("ОрганизацияСада", ОрганизацияСада);
ОткрытьФорму("Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ.Форма.ФормаДокумента",
ПараметрыФормы,
ЭтотОбъект,
Строка(Объект.Ссылка) + ":" + Строка(ОрганизацияСада));
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПечатьИзвещенияНаСервере(ДокументСсылка)
Возврат Документы.ПС_ПередачаПоступившихПлатежейВУчреждения.СформироватьПечатныеФормыИзвещений(ДокументСсылка);
КонецФункции
&НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
// Подбирает в табличную часть "Задолженность" поступившие платежи, ещё не переданные
// в учреждения: остатки регистра накопления ПС_ВзаиморасчетыПоРодительскойПлате.
// Предыдущая передача выбирает остатки, поэтому следующая их уже не видит.
//
&НаСервере
Процедура ЗаполнитьПоПоступившимПлатежамНаСервере()
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение невозможно: не заполнена организация (ЦБ).");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Остатки.Учреждение КАК Учреждение,
| Остатки.Плательщик КАК Контрагент,
| Остатки.Договор КАК Договор,
| Остатки.Ребенок КАК Ребенок,
| Остатки.КПС КАК КПС,
| Остатки.ИФО КАК ИФО,
| Остатки.КФО КАК КФО,
| Остатки.СуммаОстаток КАК Сумма
|ИЗ
| РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.Остатки(
| &МоментВремени,
| Организация = &Организация) КАК Остатки
|ГДЕ
| Остатки.СуммаОстаток <> 0
|
|УПОРЯДОЧИТЬ ПО
| Остатки.Учреждение,
| Остатки.Плательщик,
| Остатки.Договор";
// Поступившие платежи собираются на границу конца дня документа: кассовые поступления
// по умолчанию датируются 23:59:59 и при моменте времени, равном началу дня документа,
// в остатки не попадали.
Запрос.УстановитьПараметр("МоментВремени", КонецДня(Объект.Дата) + 1);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
Выборка = Запрос.Выполнить().Выбрать();
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
ЗначенияИФО = Новый Соответствие;
ЗначенияКФО = Новый Соответствие;
Пока Выборка.Следующий() Цикл
ЗначенияИФО.Вставить(Выборка.ИФО, Истина);
ЗначенияКФО.Вставить(Выборка.КФО, Истина);
НоваяСтрока = Объект.Задолженность.Добавить();
НоваяСтрока.Учреждение = Выборка.Учреждение;
НоваяСтрока.Контрагент = Выборка.Контрагент;
НоваяСтрока.Договор = Выборка.Договор;
НоваяСтрока.Ребенок = Выборка.Ребенок;
НоваяСтрока.КПС = Выборка.КПС;
НоваяСтрока.Сумма = Выборка.Сумма;
КонецЦикла;
Если Объект.Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Поступивших платежей, ещё не переданных в учреждения, не найдено.");
Возврат;
КонецЕсли;
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
// Разрезов ИФО и КФО в табличной части нет - они задаются на весь документ,
// поэтому переносим их в шапку, если в остатках они единственные.
ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО);
Если ЗначенияИФО.Количество() > 1 ИЛИ ЗначенияКФО.Количество() > 1 Тогда
ОбщегоНазначения.СообщитьПользователю(
"Поступившие платежи найдены в разрезе нескольких ИФО и/или КФО, а в документе ИФО и КФО"
+ " задаются на весь документ. Передайте их отдельными документами.");
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИФОиКФОПоОстаткам(ЗначенияИФО, ЗначенияКФО)
Если ЗначенияКФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.КФО) Тогда
Для Каждого КлючИЗначение Из ЗначенияКФО Цикл
Объект.КФО = КлючИЗначение.Ключ;
КонецЦикла;
КонецЕсли;
Если ЗначенияИФО.Количество() = 1 И НЕ ЗначениеЗаполнено(Объект.ИФО) Тогда
Для Каждого КлючИЗначение Из ЗначенияИФО Цикл
Объект.ИФО = КлючИЗначение.Ключ;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
ПараметрыФормы = Новый Структура;
Отбор = Новый Структура("Регистратор", ДокументСсылка);
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
// Возвращает организации садов (учреждений), представленных в табличной части "Задолженность".
// Учреждение хранится в документе контрагентом, поэтому организация ищется по ИНН.
//
// Возвращаемое значение:
// Массив из СправочникСсылка.Организации - организации получателей в порядке появления в табличной части.
//
&НаСервере
Функция ОрганизацииСадовНаСервере()
Учреждения = Новый Массив;
Для Каждого СтрокаЗадолженности Из Объект.Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
Продолжить;
КонецЕсли;
Если Учреждения.Найти(СтрокаЗадолженности.Учреждение) = Неопределено Тогда
Учреждения.Добавить(СтрокаЗадолженности.Учреждение);
КонецЕсли;
КонецЦикла;
Организации = Новый Массив;
Для Каждого Учреждение Из Учреждения Цикл
Организация = ПС_РаботаСКонтрагентами.ОрганизацияПоКонтрагенту(Учреждение, "Получатель (учреждение)");
Если ЗначениеЗаполнено(Организация) Тогда
Организации.Добавить(Организация);
КонецЕсли;
КонецЦикла;
Возврат Организации;
КонецФункции
#КонецОбласти
@@ -1,4 +1,4 @@
// ПС_ПринятиеЗадолженностиОтУчреждения: модуль менеджера. // ПС_ПередачаПоступившихПлатежейВУчреждения: модуль менеджера.
// Печатная форма извещения (ф. 0504805, ред. 103н) - сторона получателя (централизованная бухгалтерия). // Печатная форма извещения (ф. 0504805, ред. 103н) - сторона получателя (централизованная бухгалтерия).
// Заполнение макета выполняет общая логика подсистемы: ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805. // Заполнение макета выполняет общая логика подсистемы: ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805.
@@ -10,7 +10,7 @@
// Вызывается из модуля формы документа кнопкой "Печать". // Вызывается из модуля формы документа кнопкой "Печать".
// //
// Параметры: // Параметры:
// ДокументСсылка - ДокументСсылка.ПС_ПринятиеЗадолженностиОтУчреждения - печатаемый документ. // ДокументСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - печатаемый документ.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТабличныйДокумент // ТабличныйДокумент
@@ -0,0 +1,193 @@
// ПС_ПередачаПоступившихПлатежейВУчреждения: модуль объекта.
// Сторона ЦБ: Дт 205.31.56X — Кт 304.04.130.
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ.
// Документ собирает поступившие платежи (приход в регистре накопления
// ПС_ВзаиморасчетыПоРодительскойПлате, сделанный кассовыми поступлениями)
// и передаёт их учреждениям — расход по тому же регистру. Пока передано не всё,
// остаток регистра ненулевой; он и служит контролем полноты передачи.
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ЖурналПроводокЕПСБУ.Очистить();
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
// Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК задаются
// реквизитами документа (по умолчанию 304.04 и 131) и могут быть изменены пользователем.
СчетКт = СчетКорреспондент;
Если НЕ ЗначениеЗаполнено(СчетКт) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
, "СчетКорреспондент", "Объект", Отказ);
Возврат;
КонецЕсли;
ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
// КПС строк заполняется при подборе поступивших платежей (см. модуль формы),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Движение = Движения.ЖурналПроводокЕПСБУ.Добавить();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.ИФО = ИФО;
Движение.КФО = КФО;
Движение.СчетДт = СчетДт;
Движение.СчетКт = СчетКт;
Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС;
Движение.КЭКДт = КЭКПроводки(СчетДт, "Дт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
Движение.КЭККт = КЭККорреспондент;
Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Передача поступивших платежей по родительской плате в учреждение";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = СтрокаЗадолженности.Учреждение;
// Взаиморасчёты: переданные в учреждение поступившие платежи списываются расходом.
ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьРасход();
ДвижениеПС.Период = Дата;
ДвижениеПС.Организация = Организация;
ДвижениеПС.Учреждение = СтрокаЗадолженности.Учреждение;
ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
ДвижениеПС.ИФО = ИФО;
ДвижениеПС.КФО = КФО;
ДвижениеПС.КПС = СтрокаЗадолженности.КПС;
ДвижениеПС.Сумма = СтрокаЗадолженности.Сумма;
ДвижениеПС.ВидОперации = Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПередачаВУчреждение;
ДвижениеПС.ИДСтроки = СтрокаЗадолженности.ИДСтроки;
КонецЦикла;
// В конфигурации есть подписка на событие "ОбработкаПроведения" (ЗаписатьТаблицуПроводок),
// которая выполняется после модуля объекта и перезаписывает проводки документа: если таблица
// проводок не передана, набор записей регистра очищается. Поэтому передаём сформированную
// таблицу через ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок.
БухгалтерскиеОперацииСервер.ИнициализироватьБухгалтерскиеОперации(ЭтотОбъект);
ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок = Движения.ЖурналПроводокЕПСБУ.Выгрузить();
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ЗаполнитьРеквизитыПоУмолчанию();
СуммаДокумента = Задолженность.Итог("Сумма");
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена организация (ЦБ)", , "Организация", "Объект", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(КФО) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
КонецЕсли;
Если Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнено учреждение в строке табличной части ""Задолженность"".",
, "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен КПС строки табличной части ""Задолженность""."
+ " Заполните строки по поступившим платежам.",
, "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
СуммаПоТаблице = Задолженность.Итог("Сумма");
Если СуммаДокумента <> СуммаПоТаблице Тогда
ОбщегоНазначения.СообщитьПользователю("Сумма документа не совпадает с итогом по табличной части", , "СуммаДокумента", "Объект", Отказ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Заполняет счёт, корреспондирующий со счётом расчётов по доходам (205.31), и его КЭК
// значениями по умолчанию, если они не заданы пользователем.
//
Процедура ЗаполнитьРеквизитыПоУмолчанию()
Если НЕ ЗначениеЗаполнено(СчетКорреспондент) Тогда
СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(КЭККорреспондент) Тогда
КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
// Возвращает КЭК проводки, определённый по настройкам счёта
// и типу контрагента (подстатья КОСГУ).
//
// Параметры:
// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки.
// ДтКт - Строка - сторона проводки: "Дт" или "Кт".
// Субконто1 - Произвольный - значение первого субконто проводки.
// Субконто2 - Произвольный - значение второго субконто проводки.
//
// Возвращаемое значение:
// СправочникСсылка.КОСГУ - КЭК проводки.
//
Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено)
ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки();
ПараметрыКЭК.Организация = Организация;
ПараметрыКЭК.ИФО = ИФО;
ПараметрыКЭК.КФО = КФО;
ПараметрыКЭК.Дата = Дата;
ПараметрыКЭК.Счет = Счет;
ПараметрыКЭК.ДтКт = ДтКт;
ПараметрыКЭК.Субконто1 = Субконто1;
ПараметрыКЭК.Субконто2 = Субконто2;
Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК);
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -1186,12 +1186,7 @@
<i>2</i> <i>2</i>
<c> <c>
<f>59</f> <f>59</f>
<tl> <tl/>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content/>
</v8:item>
</tl>
</c> </c>
</c> </c>
<c> <c>
@@ -2360,12 +2355,7 @@
<i>2</i> <i>2</i>
<c> <c>
<f>59</f> <f>59</f>
<tl> <tl/>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content/>
</v8:item>
</tl>
</c> </c>
</c> </c>
<c> <c>
@@ -3992,6 +3982,8 @@
<endColumn>-1</endColumn> <endColumn>-1</endColumn>
</area> </area>
</namedItem> </namedItem>
<groupsBackColor>#000080</groupsBackColor>
<groupsColor>#000080</groupsColor>
<line width="1" gap="false"> <line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style> <v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line> </line>
@@ -7,10 +7,10 @@
<listType typeId="313f7384-f4d5-4613-a51a-5ba01bce361e" valueTypeId="6870f642-36c3-4418-8491-b1329f821de2"/> <listType typeId="313f7384-f4d5-4613-a51a-5ba01bce361e" valueTypeId="6870f642-36c3-4418-8491-b1329f821de2"/>
<managerType typeId="0b470f70-79e2-4602-8c62-a6bab7efc1b6" valueTypeId="15323120-9f9d-41ed-874b-079c02729ce9"/> <managerType typeId="0b470f70-79e2-4602-8c62-a6bab7efc1b6" valueTypeId="15323120-9f9d-41ed-874b-079c02729ce9"/>
</producedTypes> </producedTypes>
<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>
@@ -18,18 +18,18 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<objectPresentation> <objectPresentation>
<key>ru</key> <key>ru</key>
<value>Принятие задолженности от учреждения</value> <value>Передача поступивших платежей в учреждение</value>
</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>
<numberAllowedLength>Variable</numberAllowedLength> <numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique> <checkUnique>true</checkUnique>
<autonumbering>true</autonumbering> <autonumbering>true</autonumbering>
<defaultObjectForm>Document.ПС_ПринятиеЗадолженностиОтУчреждения.Form.ФормаДокумента</defaultObjectForm> <defaultObjectForm>Document.ПС_ПередачаПоступившихПлатежейВУчреждения.Form.ФормаДокумента</defaultObjectForm>
<registerRecords>AccountingRegister.ЖурналПроводокЕПСБУ</registerRecords> <registerRecords>AccountingRegister.ЖурналПроводокЕПСБУ</registerRecords>
<registerRecords>AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате</registerRecords> <registerRecords>AccumulationRegister.ПС_ВзаиморасчетыПоРодительскойПлате</registerRecords>
<postInPrivilegedMode>true</postInPrivilegedMode> <postInPrivilegedMode>true</postInPrivilegedMode>
@@ -38,7 +38,7 @@
<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>
@@ -64,21 +64,6 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="0da47ff5-1bc8-48ab-93e3-46eb88ab0eef">
<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="cc277c8f-ac17-4e35-9132-3157c0d8b63d"> <attributes uuid="cc277c8f-ac17-4e35-9132-3157c0d8b63d">
<name>Период</name> <name>Период</name>
<synonym> <synonym>
@@ -116,21 +101,6 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="3ffcb80d-9272-4058-8abf-05d4892eb965">
<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="fd87cd30-1ae1-4f94-bebd-51a89384700a"> <attributes uuid="fd87cd30-1ae1-4f94-bebd-51a89384700a">
<name>Ответственный</name> <name>Ответственный</name>
<synonym> <synonym>
@@ -178,21 +148,6 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="2ffd2e40-2b63-453d-95e2-48e12fc5e742">
<name>ПередачаСальдо</name>
<synonym>
<key>ru</key>
<value>Передача начального сальдо</value>
</synonym>
<type>
<types>Boolean</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="bb593e79-8cba-4f74-a6ea-ab74ae09577f"> <attributes uuid="bb593e79-8cba-4f74-a6ea-ab74ae09577f">
<name>КЭККорреспондент</name> <name>КЭККорреспондент</name>
<synonym> <synonym>
@@ -327,6 +282,20 @@
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
</attributes> </attributes>
<attributes uuid="8cf37a05-a457-4693-bc91-d9c1d37fede5">
<name>Учреждение</name>
<synonym>
<key>ru</key>
<value>Получатель (учреждение)</value>
</synonym>
<type>
<types>CatalogRef.Контрагенты</types>
</type>
<minValue xsi:type="core:UndefinedValue"/>
<maxValue xsi:type="core:UndefinedValue"/>
<dataHistory>Use</dataHistory>
<fullTextSearch>Use</fullTextSearch>
</attributes>
</tabularSections> </tabularSections>
<templates uuid="1f448676-6b65-401e-b0a1-8ee291792b49"> <templates uuid="1f448676-6b65-401e-b0a1-8ee291792b49">
<name>ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель</name> <name>ПФ_MXL_Извещение0504805_103н_ПС_РП_Получатель</name>
@@ -1,232 +0,0 @@
// ПС_ПринятиеЗадолженностиОтУчреждения: модуль формы документа.
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
БухгалтерскиеОперацииСервер.ПриСозданииНаСервере(Отказ, СтандартнаяОбработка, Элементы.БухгалтерскаяОперация);
// ИФО показывается только при включённом учёте по ИФО (как в типовых документах).
Элементы.ИФО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО");
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
// Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию
// (в режиме начального сальдо наследуются из документа передачи).
ЗаполнитьКорреспондирующийСчетПоУмолчанию();
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
Основание = Неопределено;
Если Параметры.Свойство("Основание", Основание)
И ТипЗнч(Основание) = Тип("ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ") Тогда
Объект.ДокументПередачи = Основание;
ЗаполнитьПоДокументуПередачиНаСервере(Основание);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
Объект.Организация = Константы.ОрганизацияЦентрализованнаяБухгалтерия.Получить();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПередЗаписью(Отказ, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПослеЗаписи(ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПечатьИзвещения(Команда)
ТабличныйДокумент = ПечатьИзвещенияНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Извещение (ф. 0504805, ред. 103н) - получатель");
КонецПроцедуры
&НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда)
ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовФормы
&НаКлиенте
Процедура ДокументПередачиПриИзменении(Элемент)
Если ЗначениеЗаполнено(Объект.ДокументПередачи) Тогда
ЗаполнитьПоДокументуПередачиНаСервере(Объект.ДокументПередачи);
Иначе
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗадолженностьПриИзменении(Элемент)
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПечатьИзвещенияНаСервере(ДокументСсылка)
Возврат Документы.ПС_ПринятиеЗадолженностиОтУчреждения.СформироватьПечатныеФормыИзвещений(ДокументСсылка);
КонецФункции
&НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоДокументуПередачиНаСервере(ДокументПередачиСсылка)
Если НЕ ЗначениеЗаполнено(ДокументПередачиСсылка) Тогда
Возврат;
КонецЕсли;
// Заполнение возможно только на основании проведённого документа передачи.
Если НЕ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДокументПередачиСсылка, "Проведен") Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение документа возможно только на основании проведённого документа передачи задолженности.");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПередачаЗадолженности.ЦБ КАК Организация,
| ПередачаЗадолженности.Организация КАК Учреждение,
| ПередачаЗадолженности.ИФО КАК ИФО,
| ПередачаЗадолженности.Ответственный КАК Ответственный,
| ПередачаЗадолженности.Период КАК Период
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК ПередачаЗадолженности
|ГДЕ
| ПередачаЗадолженности.Ссылка = &Ссылка
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ПередачаЗадолженностиЗадолженность.Контрагент КАК Контрагент,
| ПередачаЗадолженностиЗадолженность.Договор КАК Договор,
| ПередачаЗадолженностиЗадолженность.Ребенок КАК Ребенок,
| ПередачаЗадолженностиЗадолженность.ИДСтроки КАК ИДСтроки,
| ПередачаЗадолженностиЗадолженность.Сумма КАК Сумма
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ.Задолженность КАК ПередачаЗадолженностиЗадолженность
|ГДЕ
| ПередачаЗадолженностиЗадолженность.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ДокументПередачиСсылка);
Результаты = Запрос.ВыполнитьПакет();
ВыборкаШапка = Результаты[0].Выбрать();
Если НЕ ВыборкаШапка.Следующий() Тогда
Возврат;
КонецЕсли;
Объект.Организация = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ВыборкаШапка.Организация, "Организация (ЦБ)");
Объект.Учреждение = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ВыборкаШапка.Учреждение, "Учреждение-отправитель");
Объект.Ответственный = ВыборкаШапка.Ответственный;
Объект.Период = ВыборкаШапка.Период;
Объект.ДокументПередачи = ДокументПередачиСсылка;
// Режим начального сальдо и корреспондирующий счёт с КЭК наследуются от документа передачи.
РеквизитыПередачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДокументПередачиСсылка,
"ПередачаСальдо, СчетКорреспондент, КЭККорреспондент");
Объект.ПередачаСальдо = РеквизитыПередачи.ПередачаСальдо;
Объект.СчетКорреспондент = РеквизитыПередачи.СчетКорреспондент;
Объект.КЭККорреспондент = РеквизитыПередачи.КЭККорреспондент;
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
Объект.ИФО = ВыборкаШапка.ИФО;
КонецЕсли;
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
ВыборкаСтроки = Результаты[1].Выбрать();
Пока ВыборкаСтроки.Следующий() Цикл
НоваяСтрока = Объект.Задолженность.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
Объект.СуммаДокумента = Объект.СуммаДокумента + ВыборкаСтроки.Сумма;
КонецЦикла;
// КФО документа и КПС строк - из проводок документа передачи.
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(Объект, ДокументПередачиСсылка);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
ПараметрыФормы = Новый Структура;
Отбор = Новый Структура("Регистратор", ДокументСсылка);
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
@@ -1,290 +0,0 @@
// ПС_ПринятиеЗадолженностиОтУчреждения: модуль объекта.
// Сторона ЦБ: Дт 205.31.56X — Кт 304.04.130.
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ.
// Кроме проводок документ формирует приход в регистре накопления
// ПС_ВзаиморасчетыПоРодительскойПлате (принятая от учреждения задолженность).
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ОбработчикиСобытий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ") Тогда
// Заполнение возможно только на основании проведённого документа передачи.
Если НЕ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗаполнения, "Проведен") Тогда
ОбщегоНазначения.СообщитьПользователю(
"Заполнение документа возможно только на основании проведённого документа передачи задолженности.");
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПередачаЗадолженности.ЦБ КАК Организация,
| ПередачаЗадолженности.Организация КАК Учреждение,
| ПередачаЗадолженности.ИФО КАК ИФО,
| ПередачаЗадолженности.Ответственный КАК Ответственный,
| ПередачаЗадолженности.Период КАК Период,
| ПередачаЗадолженности.КФО КАК КФО,
| ПередачаЗадолженности.ПередачаСальдо КАК ПередачаСальдо,
| ПередачаЗадолженности.СчетКорреспондент КАК СчетКорреспондент,
| ПередачаЗадолженности.КЭККорреспондент КАК КЭККорреспондент
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ КАК ПередачаЗадолженности
|ГДЕ
| ПередачаЗадолженности.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
ВыборкаШапка = Запрос.Выполнить().Выбрать();
Если ВыборкаШапка.Следующий() Тогда
// Организация на стороне ЦБ — берём организацию-получатель из передачи (это и есть ЦБ).
ОрганизацияЦБ = ВыборкаШапка.Организация;
Если ЗначениеЗаполнено(ОрганизацияЦБ) Тогда
Организация = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(ОрганизацияЦБ, "Организация (ЦБ)");
КонецЕсли;
// Учреждение-отправитель (ПБС) — берём организацию-отправитель из передачи
// (там тип CatalogRef.Организации), а в нашем документе нужен CatalogRef.Контрагенты.
УчреждениеОрганизация = ВыборкаШапка.Учреждение;
Если ЗначениеЗаполнено(УчреждениеОрганизация) Тогда
Учреждение = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(УчреждениеОрганизация, "Учреждение-отправитель");
КонецЕсли;
Ответственный = ВыборкаШапка.Ответственный;
Период = ВыборкаШапка.Период;
КФО = ВыборкаШапка.КФО;
ДокументПередачи = ДанныеЗаполнения;
// Режим начального сальдо и корреспондирующий счёт с КЭК наследуются от передачи.
ПередачаСальдо = ВыборкаШапка.ПередачаСальдо;
СчетКорреспондент = ВыборкаШапка.СчетКорреспондент;
КЭККорреспондент = ВыборкаШапка.КЭККорреспондент;
// Учёт по ИФО ведётся только при включённой функциональной опции.
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
ИФО = ВыборкаШапка.ИФО;
КонецЕсли;
КонецЕсли;
ЗапросСтроки = Новый Запрос;
ЗапросСтроки.Текст =
"ВЫБРАТЬ
| ПередачаЗадолженностиЗадолженность.Контрагент КАК Контрагент,
| ПередачаЗадолженностиЗадолженность.Договор КАК Договор,
| ПередачаЗадолженностиЗадолженность.Ребенок КАК Ребенок,
| ПередачаЗадолженностиЗадолженность.ИДСтроки КАК ИДСтроки,
| ПередачаЗадолженностиЗадолженность.Сумма КАК Сумма
|ИЗ
| Документ.ПС_ПередачаЗадолженностиВЦБ.Задолженность КАК ПередачаЗадолженностиЗадолженность
|ГДЕ
| ПередачаЗадолженностиЗадолженность.Ссылка = &Ссылка";
ЗапросСтроки.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
ВыборкаСтроки = ЗапросСтроки.Выполнить().Выбрать();
Пока ВыборкаСтроки.Следующий() Цикл
НоваяСтрока = Задолженность.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
СуммаДокумента = СуммаДокумента + ВыборкаСтроки.Сумма;
КонецЦикла;
// КФО документа и КПС строк - из проводок документа передачи.
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(ЭтотОбъект, ДанныеЗаполнения);
КонецЕсли;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
Движения.ЖурналПроводокЕПСБУ.Очистить();
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ЖурналПроводокЕПСБУ.ДополнительныеСвойства.Вставить("НеФормироватьУчетныеДанныеИзПроводок");
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Очистить();
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
СчетДт = БухгалтерскийУчет.СчетПоКоду("205.31", Дата, Организация);
// Счёт, корреспондирующий со счётом расчётов по доходам, и его КЭК наследуются
// из документа передачи (заполняются при вводе на основании).
СчетКт = СчетКорреспондент;
Если НЕ ЗначениеЗаполнено(СчетКт) Тогда
ОбщегоНазначения.СообщитьПользователю(
"Не заполнен счёт, корреспондирующий со счётом 205.31. Проведение невозможно.",
, "СчетКорреспондент", "Объект", Отказ);
Возврат;
КонецЕсли;
ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
// КПС строк наследуется из проводок документа передачи (см. ЗаполнитьКПССтрок),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Движение = Движения.ЖурналПроводокЕПСБУ.Добавить();
Движение.Период = Дата;
Движение.Организация = Организация;
Движение.ИФО = ИФО;
Движение.КФО = КФО;
Движение.СчетДт = СчетДт;
Движение.СчетКт = СчетКт;
Движение.КПСДт = СтрокаЗадолженности.КПС;
Движение.КПСКт = СтрокаЗадолженности.КПС;
Движение.КЭКДт = КЭКПроводки(СчетДт, "Дт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
Движение.КЭККт = КЭККорреспондент;
Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Принятие задолженности по родительской плате от учреждения";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Договоры] = СтрокаЗадолженности.Договор;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = Учреждение;
// Взаиморасчеты по родительской плате: принятая от учреждения задолженность.
ДвижениеПС = Движения.ПС_ВзаиморасчетыПоРодительскойПлате.ДобавитьПриход();
ДвижениеПС.Период = Дата;
ДвижениеПС.Организация = Организация;
ДвижениеПС.Учреждение = Учреждение;
ДвижениеПС.Плательщик = СтрокаЗадолженности.Контрагент;
ДвижениеПС.Ребенок = СтрокаЗадолженности.Ребенок;
ДвижениеПС.Договор = СтрокаЗадолженности.Договор;
ДвижениеПС.ИФО = ИФО;
ДвижениеПС.КФО = КФО;
ДвижениеПС.КПС = СтрокаЗадолженности.КПС;
ДвижениеПС.Сумма = СтрокаЗадолженности.Сумма;
ДвижениеПС.ВидОперации = ?(ПередачаСальдо,
Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.НачальноеСальдо,
Перечисления.ПС_ВидыОперацийПоВзаиморасчетам.ПринятоОтУчреждения);
ДвижениеПС.ИДСтроки = СтрокаЗадолженности.ИДСтроки;
ДвижениеПС.ДокументПередачи = ДокументПередачи;
КонецЦикла;
// В конфигурации есть подписка на событие "ОбработкаПроведения" (ЗаписатьТаблицуПроводок),
// которая выполняется после модуля объекта и перезаписывает проводки документа: если таблица
// проводок не передана, набор записей регистра очищается. Поэтому передаём сформированную
// таблицу через ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок.
БухгалтерскиеОперацииСервер.ИнициализироватьБухгалтерскиеОперации(ЭтотОбъект);
ДополнительныеСвойства.ДанныеАвтоПроведения.ТаблицаПроводок = Движения.ЖурналПроводокЕПСБУ.Выгрузить();
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
Движения.ЖурналПроводокЕПСБУ.Записывать = Истина;
Движения.ПС_ВзаиморасчетыПоРодительскойПлате.Записывать = Истина;
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ЗаполнитьРеквизитыПоУмолчанию();
СуммаДокумента = Задолженность.Итог("Сумма");
ЗаполнитьКПССтрок();
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
Если НЕ ЗначениеЗаполнено(Организация) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена организация (ЦБ)", , "Организация", "Объект", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Учреждение) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнено учреждение (сад-отправитель)", , "Учреждение", "Объект", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ДокументПередачи) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнен документ передачи задолженности", , "ДокументПередачи", "Объект", Отказ);
КонецЕсли;
Если НЕ ЗначениеЗаполнено(КФО) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнен КФО", , "КФО", "Объект", Отказ);
КонецЕсли;
Если Задолженность.Количество() = 0 Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнена табличная часть ""Задолженность""", , "Задолженность", "Объект", Отказ);
Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
ТекстСообщения = "Не заполнен КПС строки табличной части ""Задолженность"".";
Если НЕ ПередачаСальдо Тогда
ТекстСообщения = ТекстСообщения
+ " Заполнение возможно только на основании проведённого документа передачи задолженности.";
КонецЕсли;
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Задолженность", "Объект", Отказ);
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
СуммаПоТаблице = Задолженность.Итог("Сумма");
Если СуммаДокумента <> СуммаПоТаблице Тогда
ОбщегоНазначения.СообщитьПользователю("Сумма документа не совпадает с итогом по табличной части", , "СуммаДокумента", "Объект", Отказ);
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
// Заполняет счёт, корреспондирующий со счётом расчётов по доходам (205.31), и его КЭК
// значениями по умолчанию, если они не заданы пользователем.
//
Процедура ЗаполнитьРеквизитыПоУмолчанию()
Если НЕ ЗначениеЗаполнено(СчетКорреспондент) Тогда
СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(КЭККорреспондент) Тогда
КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
// Заполняет строки табличной части "Задолженность" КПС, унаследованным
// из проводок документа передачи задолженности.
//
Процедура ЗаполнитьКПССтрок()
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(ЭтотОбъект, ДокументПередачи);
КонецПроцедуры
// Возвращает КЭК проводки, определённый по настройкам счёта
// и типу контрагента (подстатья КОСГУ).
//
// Параметры:
// Счет - ПланСчетовСсылка.ЕПСБУ - счёт проводки.
// ДтКт - Строка - сторона проводки: "Дт" или "Кт".
// Субконто1 - Произвольный - значение первого субконто проводки.
// Субконто2 - Произвольный - значение второго субконто проводки.
//
// Возвращаемое значение:
// СправочникСсылка.КОСГУ - КЭК проводки.
//
Функция КЭКПроводки(Счет, ДтКт, Субконто1 = Неопределено, Субконто2 = Неопределено)
ПараметрыКЭК = БухгалтерскийУчетКлиентСервер.ПараметрыРасчетаКЭКПроводки();
ПараметрыКЭК.Организация = Организация;
ПараметрыКЭК.ИФО = ИФО;
ПараметрыКЭК.КФО = КФО;
ПараметрыКЭК.Дата = Дата;
ПараметрыКЭК.Счет = Счет;
ПараметрыКЭК.ДтКт = ДтКт;
ПараметрыКЭК.Субконто1 = Субконто1;
ПараметрыКЭК.Субконто2 = Субконто2;
Возврат БухгалтерскийУчет.КЭКПроводки(ПараметрыКЭК);
КонецФункции
#КонецОбласти
#КонецЕсли
@@ -873,27 +873,23 @@
<name>ГруппаСтраницыОперации</name> <name>ГруппаСтраницыОперации</name>
<id>94</id> <id>94</id>
<items xsi:type="form:FormField"> <items xsi:type="form:FormField">
<name>ПередачаСальдо</name> <name>ДокументПередачи</name>
<id>98</id> <id>111</id>
<title>
<key>ru</key>
<value>Передача начального сальдо</value>
</title>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<dataPath xsi:type="form:DataPath"> <dataPath xsi:type="form:DataPath">
<segments>Объект.ПередачаСальдо</segments> <segments>Объект.ДокументПередачи</segments>
</dataPath> </dataPath>
<handlers> <handlers>
<event>OnChange</event> <event>OnChange</event>
<name>ПередачаСальдоПриИзменении</name> <name>ДокументПередачиПриИзменении</name>
</handlers> </handlers>
<extendedTooltip> <extendedTooltip>
<name>ПередачаСальдоРасширеннаяПодсказка</name> <name>ДокументПередачиРасширеннаяПодсказка</name>
<id>100</id> <id>113</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -902,49 +898,12 @@
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<contextMenu> <contextMenu>
<name>ПередачаСальдоКонтекстноеМеню</name> <name>ДокументПередачиКонтекстноеМеню</name>
<id>99</id> <id>112</id>
<autoFill>true</autoFill>
</contextMenu>
<type>CheckBoxField</type>
<editMode>Enter</editMode>
<showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter>
<extInfo xsi:type="form:CheckBoxFieldExtInfo"/>
</items>
<items xsi:type="form:FormField">
<name>ДокументНачисления</name>
<id>19</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<dataPath xsi:type="form:DataPath">
<segments>Объект.ДокументНачисления</segments>
</dataPath>
<handlers>
<event>OnChange</event>
<name>ДокументНачисленияПриИзменении</name>
</handlers>
<extendedTooltip>
<name>ДокументНачисленияРасширеннаяПодсказка</name>
<id>21</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<contextMenu>
<name>ДокументНачисленияКонтекстноеМеню</name>
<id>20</id>
<autoFill>true</autoFill> <autoFill>true</autoFill>
</contextMenu> </contextMenu>
<type>InputField</type> <type>InputField</type>
<editMode>EnterOnInput</editMode> <editMode>Enter</editMode>
<showInHeader>true</showInHeader> <showInHeader>true</showInHeader>
<headerHorizontalAlign>Left</headerHorizontalAlign> <headerHorizontalAlign>Left</headerHorizontalAlign>
<showInFooter>true</showInFooter> <showInFooter>true</showInFooter>
@@ -952,7 +911,6 @@
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
<wrap>true</wrap> <wrap>true</wrap>
<extendedEditMultipleValues>true</extendedEditMultipleValues>
<chooseType>true</chooseType> <chooseType>true</chooseType>
<typeDomainEnabled>true</typeDomainEnabled> <typeDomainEnabled>true</typeDomainEnabled>
<textEdit>true</textEdit> <textEdit>true</textEdit>
@@ -1398,16 +1356,16 @@
<representationInContextMenu>Auto</representationInContextMenu> <representationInContextMenu>Auto</representationInContextMenu>
</items> </items>
<items xsi:type="form:Button"> <items xsi:type="form:Button">
<name>СоздатьПринятиеЗадолженностиНаОсновании</name> <name>ЗаполнитьПоДокументуПередачи</name>
<id>77</id> <id>114</id>
<visible>true</visible> <visible>true</visible>
<enabled>true</enabled> <enabled>true</enabled>
<userVisible> <userVisible>
<common>true</common> <common>true</common>
</userVisible> </userVisible>
<extendedTooltip> <extendedTooltip>
<name>ФормаСоздатьПринятиеЗадолженностиНаОснованииРасширеннаяПодсказка</name> <name>ФормаЗаполнитьПоДокументуПередачиРасширеннаяПодсказка</name>
<id>78</id> <id>115</id>
<type>Label</type> <type>Label</type>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight> <autoMaxHeight>true</autoMaxHeight>
@@ -1415,33 +1373,7 @@
<horizontalAlign>Left</horizontalAlign> <horizontalAlign>Left</horizontalAlign>
</extInfo> </extInfo>
</extendedTooltip> </extendedTooltip>
<commandName>Form.Command.СоздатьПринятиеЗадолженностиНаОсновании</commandName> <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>ЗаполнитьПоОстаткам20531</name>
<id>107</id>
<visible>true</visible>
<enabled>true</enabled>
<userVisible>
<common>true</common>
</userVisible>
<extendedTooltip>
<name>ФормаЗаполнитьПоОстаткам20531РасширеннаяПодсказка</name>
<id>108</id>
<type>Label</type>
<autoMaxWidth>true</autoMaxWidth>
<autoMaxHeight>true</autoMaxHeight>
<extInfo xsi:type="form:LabelDecorationExtInfo">
<horizontalAlign>Left</horizontalAlign>
</extInfo>
</extendedTooltip>
<commandName>Form.Command.ЗаполнитьПоОстаткам20531</commandName>
<buttonImportance>Normal</buttonImportance> <buttonImportance>Normal</buttonImportance>
<representation>Auto</representation> <representation>Auto</representation>
<autoMaxWidth>true</autoMaxWidth> <autoMaxWidth>true</autoMaxWidth>
@@ -1469,7 +1401,7 @@
<name>Объект</name> <name>Объект</name>
<id>1</id> <id>1</id>
<valueType> <valueType>
<types>DocumentObject.ПС_ПередачаЗадолженностиВЦБ</types> <types>DocumentObject.ПС_ПринятиеПоступившихПлатежейИзЦБ</types>
</valueType> </valueType>
<view> <view>
<common>true</common> <common>true</common>
@@ -1519,10 +1451,10 @@
</action> </action>
</formCommands> </formCommands>
<formCommands> <formCommands>
<name>СоздатьПринятиеЗадолженностиНаОсновании</name> <name>ЗаполнитьПоДокументуПередачи</name>
<title> <title>
<key>ru</key> <key>ru</key>
<value>Создать принятие на основании</value> <value>Заполнить по документу передачи</value>
</title> </title>
<id>3</id> <id>3</id>
<use> <use>
@@ -1530,23 +1462,7 @@
</use> </use>
<action xsi:type="form:FormCommandHandlerContainer"> <action xsi:type="form:FormCommandHandlerContainer">
<handler> <handler>
<name>ПС_СоздатьПринятиеЗадолженностиНаОсновании</name> <name>ЗаполнитьПоДокументуПередачи</name>
</handler>
</action>
</formCommands>
<formCommands>
<name>ЗаполнитьПоОстаткам20531</name>
<title>
<key>ru</key>
<value>Заполнить по остаткам счета 205.31</value>
</title>
<id>4</id>
<use>
<common>true</common>
</use>
<action xsi:type="form:FormCommandHandlerContainer">
<handler>
<name>ЗаполнитьПоОстаткам20531</name>
</handler> </handler>
</action> </action>
</formCommands> </formCommands>
@@ -0,0 +1,200 @@
// ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль формы документа.
#Область ОбработчикиСобытийФормы
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
БухгалтерскиеОперацииСервер.ПриСозданииНаСервере(Отказ, СтандартнаяОбработка, Элементы.БухгалтерскаяОперация);
// ИФО показывается только при включённом учёте по ИФО (как в типовых документах).
Элементы.ИФО.Видимость = ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО");
// КПС определяется автоматически по настройкам учётной политики.
Элементы.ЗадолженностьКПС.ТолькоПросмотр = Истина;
// Счёт, корреспондирующий со счётом 205.31, и его КЭК: значения по умолчанию.
ЗаполнитьКорреспондирующийСчетПоУмолчанию();
Если НЕ ЗначениеЗаполнено(Объект.Ссылка) Тогда
// Сад (получатель) задаётся при открытии формы из документа передачи платежей:
// до заполнения он должен быть известен, иначе строки не подберутся.
ОрганизацияСада = Неопределено;
Если Параметры.Свойство("ОрганизацияСада", ОрганизацияСада)
И ЗначениеЗаполнено(ОрганизацияСада) Тогда
Объект.Организация = ОрганизацияСада;
КонецЕсли;
// Форма открывается командой "Создать приём платежей" документа передачи:
// из него переносятся реквизиты учёта, а строки подбираются по саду документа.
ДокументПередачи = Неопределено;
Если Параметры.Свойство("ДокументПередачи", ДокументПередачи)
И ТипЗнч(ДокументПередачи) = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(ДокументПередачи);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.ЦБ) Тогда
Объект.ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
БухгалтерскиеОперацииСервер.ПриЧтенииНаСервере(ЭтотОбъект, ТекущийОбъект, Элементы.БухгалтерскаяОперация);
КонецПроцедуры
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПередЗаписью(Отказ, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПередЗаписью(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
БухгалтерскиеОперацииКлиент.ПослеЗаписи(ПараметрыЗаписи, ЭтотОбъект);
КонецПроцедуры
&НаСервере
Процедура ПослеЗаписиНаСервере(ТекущийОбъект, ПараметрыЗаписи)
БухгалтерскиеОперацииСервер.ПослеЗаписиНаСервере(ЭтотОбъект, ТекущийОбъект, ПараметрыЗаписи);
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовШапкиФормы
&НаКлиенте
Процедура ДокументПередачиПриИзменении(Элемент)
// При смене документа передачи строки подбираются заново по саду документа.
Если ЗначениеЗаполнено(Объект.ДокументПередачи)
И ЗначениеЗаполнено(Объект.Организация) Тогда
ЗаполнитьПоДокументуПередачиНаСервере();
Иначе
Объект.Задолженность.Очистить();
Объект.СуммаДокумента = 0;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиСобытийЭлементовТаблицыФормыЗадолженность
&НаКлиенте
Процедура ЗадолженностьПриИзменении(Элемент)
Объект.СуммаДокумента = Объект.Задолженность.Итог("Сумма");
КонецПроцедуры
#КонецОбласти
#Область ОбработчикиКомандФормы
&НаКлиенте
Процедура ПечатьИзвещения(Команда)
ТабличныйДокумент = ПечатьИзвещенияНаСервере(Объект.Ссылка);
ТабличныйДокумент.Показать("Извещение (ф. 0504805, ред. 103н) - получатель");
КонецПроцедуры
&НаКлиенте
Процедура ПросмотрБухгалтерскихЗаписей(Команда)
ОткрытьБухгалтерскиеЗаписиДокумента(Объект.Ссылка);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьПоДокументуПередачи(Команда)
Если НЕ ЗначениеЗаполнено(Объект.ДокументПередачи) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Не заполнен документ передачи платежей.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.Организация) Тогда
СообщениеПользователю = Новый СообщениеПользователю;
СообщениеПользователю.Текст = "Укажите организацию (учреждение-сад), чтобы подобрать строки.";
СообщениеПользователю.Сообщить();
Возврат;
КонецЕсли;
ЗаполнитьПоДокументуПередачиНаСервере();
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Функция ПечатьИзвещенияНаСервере(ДокументСсылка)
Возврат Документы.ПС_ПринятиеПоступившихПлатежейИзЦБ.СформироватьПечатныеФормыИзвещений(ДокументСсылка);
КонецФункции
&НаСервере
Процедура ЗаполнитьКорреспондирующийСчетПоУмолчанию()
Если НЕ ЗначениеЗаполнено(Объект.СчетКорреспондент) Тогда
Объект.СчетКорреспондент = ПС_УчетРодительскойПлаты.СчетКорреспондентПоУмолчанию();
КонецЕсли;
Если НЕ ЗначениеЗаполнено(Объект.КЭККорреспондент) Тогда
Объект.КЭККорреспондент = ПС_УчетРодительскойПлаты.КЭККорреспондентПоУмолчанию();
КонецЕсли;
КонецПроцедуры
// Подбирает строки табличной части "Задолженность" из документа передачи по саду
// документа (реквизит "Организация").
//
&НаСервере
Процедура ЗаполнитьПоДокументуПередачиНаСервере()
ДокументОбъект = РеквизитФормыВЗначение("Объект");
ДокументОбъект.Заполнить(Объект.ДокументПередачи);
ЗначениеВРеквизитФормы(ДокументОбъект, "Объект");
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьБухгалтерскиеЗаписиДокумента(ДокументСсылка)
ПараметрыФормы = Новый Структура;
Отбор = Новый Структура("Регистратор", ДокументСсылка);
ПараметрыФормы.Вставить("Отбор", Отбор);
ОткрытьФорму("РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ФормаСписка",
ПараметрыФормы,
ЭтотОбъект,
УникальныйИдентификатор);
КонецПроцедуры
#КонецОбласти
@@ -1,4 +1,4 @@
// ПС_ПередачаЗадолженностиВЦБ: модуль менеджера. // ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль менеджера.
// Печатная форма извещения (ф. 0504805, ред. 103н) - сторона отправителя (учреждение). // Печатная форма извещения (ф. 0504805, ред. 103н) - сторона отправителя (учреждение).
// Заполнение макета выполняет общая логика подсистемы: ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805. // Заполнение макета выполняет общая логика подсистемы: ПС_УчетРодительскойПлаты.ПечатьИзвещения0504805.
@@ -10,7 +10,7 @@
// Вызывается из модуля формы документа кнопкой "Печать". // Вызывается из модуля формы документа кнопкой "Печать".
// //
// Параметры: // Параметры:
// ДокументСсылка - ДокументСсылка.ПС_ПередачаЗадолженностиВЦБ - печатаемый документ. // ДокументСсылка - ДокументСсылка.ПС_ПринятиеПоступившихПлатежейИзЦБ - печатаемый документ.
// //
// Возвращаемое значение: // Возвращаемое значение:
// ТабличныйДокумент // ТабличныйДокумент
@@ -1,7 +1,10 @@
// ПС_ПередачаЗадолженностиВЦБ: модуль объекта. // ПС_ПринятиеПоступившихПлатежейИзЦБ: модуль объекта.
// Сторона детского сада: Дт 304.04.130 — Кт 205.31.66X. // Сторона детского сада: Дт 304.04.130 — Кт 205.31.66X.
// Проводки формируются в процедуре ОбработкаПроведения прямым заполнением // Проводки формируются в процедуре ОбработкаПроведения прямым заполнением
// набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ. // набора записей регистра бухгалтерии ЖурналПроводокЕПСБУ.
// Документ вводится на основании документа передачи платежей ЦБ и принимает
// в саду поступившие платежи этого сада. В регистр взаиморасчётов не пишет:
// его ведёт только ЦБ.
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда #Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
@@ -9,68 +12,40 @@
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)
Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.НачислениеРодительскойПлаты") Тогда Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения") Тогда
// Заполнение возможно только на основании проведённого документа начисления. // Заполнение возможно только на основании проведённого документа передачи.
Если НЕ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗаполнения, "Проведен") Тогда Если НЕ ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ДанныеЗаполнения, "Проведен") Тогда
ОбщегоНазначения.СообщитьПользователю( ОбщегоНазначения.СообщитьПользователю(
"Заполнение документа возможно только на основании проведённого документа начисления родительской платы."); "Заполнение документа возможно только на основании проведённого документа передачи платежей.");
Возврат; Возврат;
КонецЕсли; КонецЕсли;
Запрос = Новый Запрос; РеквизитыПередачи = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ДанныеЗаполнения,
Запрос.Текст = "Дата, Период, ИФО, КФО, Ответственный, СчетКорреспондент, КЭККорреспондент, Организация");
"ВЫБРАТЬ
| НачислениеРодительскойПлаты.Организация КАК Организация, ДокументПередачи = ДанныеЗаполнения;
| НачислениеРодительскойПлаты.ИФО КАК ИФО, Дата = РеквизитыПередачи.Дата;
| НачислениеРодительскойПлаты.Ответственный КАК Ответственный, Период = РеквизитыПередачи.Период;
| НачислениеРодительскойПлаты.НачалоПериода КАК НачалоПериода, КФО = РеквизитыПередачи.КФО;
| НачислениеРодительскойПлаты.Дата КАК ДатаДокумента Ответственный = РеквизитыПередачи.Ответственный;
|ИЗ СчетКорреспондент = РеквизитыПередачи.СчетКорреспондент;
| Документ.НачислениеРодительскойПлаты КАК НачислениеРодительскойПлаты КЭККорреспондент = РеквизитыПередачи.КЭККорреспондент;
|ГДЕ
| НачислениеРодительскойПлаты.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
ВыборкаШапка = Запрос.Выполнить().Выбрать();
Если ВыборкаШапка.Следующий() Тогда
Организация = ВыборкаШапка.Организация;
Ответственный = ВыборкаШапка.Ответственный;
ДокументНачисления = ДанныеЗаполнения;
// Учёт по ИФО ведётся только при включённой функциональной опции.
Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда Если ПолучитьФункциональнуюОпцию("ИспользоватьУчетПоИФО") Тогда
ИФО = ВыборкаШапка.ИФО; ИФО = РеквизитыПередачи.ИФО;
КонецЕсли;
Если ЗначениеЗаполнено(ВыборкаШапка.НачалоПериода) Тогда
Период = ВыборкаШапка.НачалоПериода;
Иначе
Период = НачалоМесяца(ВыборкаШапка.ДатаДокумента);
КонецЕсли;
КонецЕсли; КонецЕсли;
ЦБ = ПС_РаботаСКонтрагентами.КонтрагентЦБПоУмолчанию(); // Отправитель (ЦБ) определяется по организации документа передачи: в документе передачи
// ЦБ хранится организацией, а в документе сада - контрагентом, сопоставляем по ИНН.
ЦБ = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(РеквизитыПередачи.Организация, "Отправитель (ЦБ)");
ЗапросСтроки = Новый Запрос; // Строки подбираются по саду документа: сад задаётся реквизитом "Организация".
ЗапросСтроки.Текст = // Если сад ещё не указан, строки заполняются командой формы после его выбора.
"ВЫБРАТЬ ЗаполнитьСтрокиПоДокументуПередачи(ДанныеЗаполнения);
| НачислениеРодительскойПлатыНачисления.Контрагент КАК Контрагент,
| НачислениеРодительскойПлатыНачисления.ДоговорКонтрагента КАК Договор,
| НачислениеРодительскойПлатыНачисления.Ребенок КАК Ребенок,
| НачислениеРодительскойПлатыНачисления.ИДСтроки КАК ИДСтроки,
| НачислениеРодительскойПлатыНачисления.Сумма КАК Сумма
|ИЗ
| Документ.НачислениеРодительскойПлаты.Начисления КАК НачислениеРодительскойПлатыНачисления
|ГДЕ
| НачислениеРодительскойПлатыНачисления.Ссылка = &Ссылка";
ЗапросСтроки.УстановитьПараметр("Ссылка", ДанныеЗаполнения);
ВыборкаСтроки = ЗапросСтроки.Выполнить().Выбрать();
Пока ВыборкаСтроки.Следующий() Цикл
НоваяСтрока = Задолженность.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, ВыборкаСтроки);
СуммаДокумента = СуммаДокумента + ВыборкаСтроки.Сумма;
КонецЦикла;
// КФО документа и КПС строк - из проводок документа начисления. // Реквизиты и табличная часть заполнены вручную, стандартное заполнение не требуется:
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(ЭтотОбъект, ДанныеЗаполнения); // оно скопировало бы строки всех садов и организацию централизованной бухгалтерии.
СтандартнаяОбработка = Ложь;
КонецЕсли; КонецЕсли;
@@ -96,7 +71,7 @@
ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт); ЖурналОпераций = БухгалтерскийУчетПовтИсп.НомерЖурнала(СчетДт, СчетКт);
// КПС строк наследуется из проводок документа начисления (см. ЗаполнитьКПССтрок), // КПС строк наследуется из строк документа передачи (см. ЗаполнитьСтрокиПоДокументуПередачи),
// КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ). // КЭК счёта 205.31 определяется по настройкам счёта и типу контрагента (подстатья КОСГУ).
Для Каждого СтрокаЗадолженности Из Задолженность Цикл Для Каждого СтрокаЗадолженности Из Задолженность Цикл
@@ -113,7 +88,7 @@
Движение.КЭККт = КЭКПроводки(СчетКт, "Кт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор); Движение.КЭККт = КЭКПроводки(СчетКт, "Кт", СтрокаЗадолженности.Контрагент, СтрокаЗадолженности.Договор);
Движение.Сумма = СтрокаЗадолженности.Сумма; Движение.Сумма = СтрокаЗадолженности.Сумма;
Движение.ЖурналОпераций = ЖурналОпераций; Движение.ЖурналОпераций = ЖурналОпераций;
Движение.Содержание = "Передача задолженности по родительской плате в ЦБ"; Движение.Содержание = "Принятие поступивших платежей по родительской плате из ЦБ";
Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = ЦБ; Движение.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.КорреспондентыПоВнутреннимРасчетам] = ЦБ;
Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент; Движение.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты] = СтрокаЗадолженности.Контрагент;
@@ -147,7 +122,6 @@
ЗаполнитьРеквизитыПоУмолчанию(); ЗаполнитьРеквизитыПоУмолчанию();
СуммаДокумента = Задолженность.Итог("Сумма"); СуммаДокумента = Задолженность.Итог("Сумма");
ЗаполнитьКПССтрок();
КонецПроцедуры КонецПроцедуры
@@ -161,8 +135,8 @@
ОбщегоНазначения.СообщитьПользователю("Не заполнен получатель - ЦБ (администратор доходов)", , "ЦБ", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнен получатель - ЦБ (администратор доходов)", , "ЦБ", "Объект", Отказ);
КонецЕсли; КонецЕсли;
Если НЕ ПередачаСальдо И НЕ ЗначениеЗаполнено(ДокументНачисления) Тогда Если НЕ ЗначениеЗаполнено(ДокументПередачи) Тогда
ОбщегоНазначения.СообщитьПользователю("Не заполнен документ начисления родительской платы", , "ДокументНачисления", "Объект", Отказ); ОбщегоНазначения.СообщитьПользователю("Не заполнен документ передачи платежей", , "ДокументПередачи", "Объект", Отказ);
КонецЕсли; КонецЕсли;
Если НЕ ЗначениеЗаполнено(КФО) Тогда Если НЕ ЗначениеЗаполнено(КФО) Тогда
@@ -174,12 +148,10 @@
Иначе Иначе
Для Каждого СтрокаЗадолженности Из Задолженность Цикл Для Каждого СтрокаЗадолженности Из Задолженность Цикл
Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда Если НЕ ЗначениеЗаполнено(СтрокаЗадолженности.КПС) Тогда
ТекстСообщения = "Не заполнен КПС строки табличной части ""Задолженность""."; ОбщегоНазначения.СообщитьПользователю(
Если НЕ ПередачаСальдо Тогда "Не заполнен КПС строки табличной части ""Задолженность""."
ТекстСообщения = ТекстСообщения + " Заполните строки по документу передачи.",
+ " Заполнение возможно только на основании проведённого документа начисления родительской платы."; , "Задолженность", "Объект", Отказ);
КонецЕсли;
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, , "Задолженность", "Объект", Отказ);
Прервать; Прервать;
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
@@ -211,18 +183,53 @@
КонецПроцедуры КонецПроцедуры
// Заполняет строки табличной части "Задолженность" КПС, унаследованным // Подбирает строки табличной части "Задолженность" из документа передачи по саду
// из проводок документа начисления родительской платы. // документа (реквизит "Организация"). Если сад не указан, табличная часть очищается.
// //
Процедура ЗаполнитьКПССтрок() // Параметры:
// ДокументПередачиСсылка - ДокументСсылка.ПС_ПередачаПоступившихПлатежейВУчреждения - документ-основание.
//
Процедура ЗаполнитьСтрокиПоДокументуПередачи(ДокументПередачиСсылка)
// В режиме передачи начального сальдо КПС строк заполняется по остаткам счёта 205.31, Задолженность.Очистить();
// а не по проводкам документа начисления. СуммаДокумента = 0;
Если ПередачаСальдо Тогда
Если НЕ ЗначениеЗаполнено(ДокументПередачиСсылка) ИЛИ НЕ ЗначениеЗаполнено(Организация) Тогда
Возврат; Возврат;
КонецЕсли; КонецЕсли;
ПС_УчетРодительскойПлаты.ЗаполнитьРеквизитыУчетаПоПроводкам(ЭтотОбъект, ДокументНачисления); // В документе передачи сад хранится контрагентом (как в регистре взаиморасчётов),
// а в документе сада - организацией, поэтому сопоставляем по ИНН.
КонтрагентСада = ПС_РаботаСКонтрагентами.КонтрагентПоОрганизации(Организация, "Учреждение");
Если НЕ ЗначениеЗаполнено(КонтрагентСада) Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СтрокиПередачи.Контрагент КАК Контрагент,
| СтрокиПередачи.Договор КАК Договор,
| СтрокиПередачи.Ребенок КАК Ребенок,
| СтрокиПередачи.ИДСтроки КАК ИДСтроки,
| СтрокиПередачи.Сумма КАК Сумма,
| СтрокиПередачи.КПС КАК КПС
|ИЗ
| Документ.ПС_ПередачаПоступившихПлатежейВУчреждения.Задолженность КАК СтрокиПередачи
|ГДЕ
| СтрокиПередачи.Ссылка = &ДокументПередачи
| И СтрокиПередачи.Учреждение = &Учреждение";
Запрос.УстановитьПараметр("ДокументПередачи", ДокументПередачиСсылка);
Запрос.УстановитьПараметр("Учреждение", КонтрагентСада);
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = Задолженность.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
СуммаДокумента = СуммаДокумента + Выборка.Сумма;
КонецЦикла;
КонецПроцедуры КонецПроцедуры
@@ -1186,12 +1186,7 @@
<i>2</i> <i>2</i>
<c> <c>
<f>59</f> <f>59</f>
<tl> <tl/>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content/>
</v8:item>
</tl>
</c> </c>
</c> </c>
<c> <c>
@@ -2360,12 +2355,7 @@
<i>2</i> <i>2</i>
<c> <c>
<f>59</f> <f>59</f>
<tl> <tl/>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content/>
</v8:item>
</tl>
</c> </c>
</c> </c>
<c> <c>
@@ -3992,8 +3982,6 @@
<endColumn>-1</endColumn> <endColumn>-1</endColumn>
</area> </area>
</namedItem> </namedItem>
<groupsBackColor>#000080</groupsBackColor>
<groupsColor>#000080</groupsColor>
<line width="1" gap="false"> <line width="1" gap="false">
<v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style> <v8ui:style xsi:type="v8ui:SpreadsheetDocumentCellLineType">Solid</v8ui:style>
</line> </line>
@@ -7,10 +7,10 @@
<listType typeId="b6d30a84-f05e-45db-9b7a-74d83b04e094" valueTypeId="3b6831ae-a9c9-4e03-8fae-e033e8b56bcf"/> <listType typeId="b6d30a84-f05e-45db-9b7a-74d83b04e094" valueTypeId="3b6831ae-a9c9-4e03-8fae-e033e8b56bcf"/>
<managerType typeId="d54b9abc-eabc-4baf-a305-964170119a69" valueTypeId="fba7fba5-fd39-4d09-add2-c0556074729f"/> <managerType typeId="d54b9abc-eabc-4baf-a305-964170119a69" valueTypeId="fba7fba5-fd39-4d09-add2-c0556074729f"/>
</producedTypes> </producedTypes>
<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>
@@ -18,18 +18,18 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<objectPresentation> <objectPresentation>
<key>ru</key> <key>ru</key>
<value>Передача задолженности в ЦБ</value> <value>Принятие поступивших платежей из ЦБ</value>
</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>
<numberAllowedLength>Variable</numberAllowedLength> <numberAllowedLength>Variable</numberAllowedLength>
<checkUnique>true</checkUnique> <checkUnique>true</checkUnique>
<autonumbering>true</autonumbering> <autonumbering>true</autonumbering>
<defaultObjectForm>Document.ПС_ПередачаЗадолженностиВЦБ.Form.ФормаДокумента</defaultObjectForm> <defaultObjectForm>Document.ПС_ПринятиеПоступившихПлатежейИзЦБ.Form.ФормаДокумента</defaultObjectForm>
<registerRecords>AccountingRegister.ЖурналПроводокЕПСБУ</registerRecords> <registerRecords>AccountingRegister.ЖурналПроводокЕПСБУ</registerRecords>
<postInPrivilegedMode>true</postInPrivilegedMode> <postInPrivilegedMode>true</postInPrivilegedMode>
<unpostInPrivilegedMode>true</unpostInPrivilegedMode> <unpostInPrivilegedMode>true</unpostInPrivilegedMode>
@@ -37,7 +37,7 @@
<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>
@@ -52,7 +52,7 @@
<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>
@@ -100,21 +100,6 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="31bce547-9930-40db-a918-ab7e30903aab">
<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="00e53b16-645f-4b9d-8fd9-31903396fbfb"> <attributes uuid="00e53b16-645f-4b9d-8fd9-31903396fbfb">
<name>ИФО</name> <name>ИФО</name>
<synonym> <synonym>
@@ -177,21 +162,6 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="49f8745e-ae19-4207-9bc1-47c92f6fd659">
<name>ПередачаСальдо</name>
<synonym>
<key>ru</key>
<value>Передача начального сальдо</value>
</synonym>
<type>
<types>Boolean</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="fa024c08-d4ea-4006-ab04-b9c110fc292d"> <attributes uuid="fa024c08-d4ea-4006-ab04-b9c110fc292d">
<name>КЭККорреспондент</name> <name>КЭККорреспондент</name>
<synonym> <synonym>
@@ -222,6 +192,21 @@
<fullTextSearch>Use</fullTextSearch> <fullTextSearch>Use</fullTextSearch>
<dataHistory>Use</dataHistory> <dataHistory>Use</dataHistory>
</attributes> </attributes>
<attributes uuid="258c40b5-b60e-4e39-b914-c45f32e186fb">
<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>
@@ -13,24 +13,17 @@
<quickChoice>true</quickChoice> <quickChoice>true</quickChoice>
<choiceMode>BothWays</choiceMode> <choiceMode>BothWays</choiceMode>
<enumValues uuid="9201ca1d-ff23-49b6-ab2c-61b873778c0c"> <enumValues uuid="9201ca1d-ff23-49b6-ab2c-61b873778c0c">
<name>ПринятоОтУчреждения</name> <name>ПередачаВУчреждение</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Принято от учреждения</value> <value>Передача в учреждение</value>
</synonym> </synonym>
</enumValues> </enumValues>
<enumValues uuid="b02c965c-6f81-40ef-b563-22c141f39ffd"> <enumValues uuid="b02c965c-6f81-40ef-b563-22c141f39ffd">
<name>Оплата</name> <name>ПоступлениеПлатежа</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Оплата родительской платы</value> <value>Поступление родительской платы</value>
</synonym>
</enumValues>
<enumValues uuid="34b0b2e1-c9a0-4783-867e-a8aa8bf3a0c4">
<name>НачальноеСальдо</name>
<synonym>
<key>ru</key>
<value>Начальное сальдо</value>
</synonym> </synonym>
</enumValues> </enumValues>
</mdclass:Enum> </mdclass:Enum>
@@ -4,7 +4,7 @@
<setForAttributesByDefault>false</setForAttributesByDefault> <setForAttributesByDefault>false</setForAttributesByDefault>
<independentRightsOfChildObjects>false</independentRightsOfChildObjects> <independentRightsOfChildObjects>false</independentRightsOfChildObjects>
<object> <object>
<name>Document.ПС_ПередачаЗадолженностиВЦБ</name> <name>Document.ПС_ПринятиеПоступившихПлатежейИзЦБ</name>
<right> <right>
<name>Read</name> <name>Read</name>
<value>true</value> <value>true</value>
@@ -27,7 +27,7 @@
</right> </right>
</object> </object>
<object> <object>
<name>Document.ПС_ПринятиеЗадолженностиОтУчреждения</name> <name>Document.ПС_ПередачаПоступившихПлатежейВУчреждения</name>
<right> <right>
<name>Read</name> <name>Read</name>
<value>true</value> <value>true</value>
@@ -8,8 +8,8 @@
<commandInterface>Extended</commandInterface> <commandInterface>Extended</commandInterface>
</extension> </extension>
<includeInCommandInterface>true</includeInCommandInterface> <includeInCommandInterface>true</includeInCommandInterface>
<content>Document.ПС_ПередачаЗадолженностиВЦБ</content> <content>Document.ПС_ПринятиеПоступившихПлатежейИзЦБ</content>
<content>Document.ПС_ПринятиеЗадолженностиОтУчреждения</content> <content>Document.ПС_ПередачаПоступившихПлатежейВУчреждения</content>
<content>DataProcessor.ПС_УправлениеРасчетамиПоРодительскойПлате</content> <content>DataProcessor.ПС_УправлениеРасчетамиПоРодительскойПлате</content>
<parentSubsystem>Subsystem.ТаксиПлатноеОбразование</parentSubsystem> <parentSubsystem>Subsystem.ТаксиПлатноеОбразование</parentSubsystem>
</mdclass:Subsystem> </mdclass:Subsystem>