feat(пульт): остатки по регистру взаиморасчётов вместо счетов 205.31/304.04, версия 1.0.0
This commit is contained in:
@@ -28,6 +28,7 @@
|
||||
<usePurposes>PersonalComputer</usePurposes>
|
||||
<scriptVariant>Russian</scriptVariant>
|
||||
<defaultRoles>Role.ПС_ОсновнаяРоль</defaultRoles>
|
||||
<version>1.0.0</version>
|
||||
<defaultLanguage>Language.Русский</defaultLanguage>
|
||||
<interfaceCompatibilityMode>TaxiEnableVersion8_2</interfaceCompatibilityMode>
|
||||
<languages uuid="2f74bb63-c643-4692-af13-1f99a56719fb" extendedConfigurationObject="4b1b900f-9c8f-4b2b-8292-3a9a6db40715">
|
||||
|
||||
+777
-383
File diff suppressed because it is too large
Load Diff
+136
-102
@@ -42,6 +42,26 @@
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиСобытийЭлементовТаблицыФормыТаблицаСадыОстатки
|
||||
|
||||
// Показывает остатки по детям выбранного сада.
|
||||
// Строка сада берётся из таблицы «Остатки по садам»; при пустой строке детализация
|
||||
// остаётся по всем садам из отбора формы.
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ТаблицаСадыОстаткиПриАктивизацииСтроки(Элемент)
|
||||
|
||||
ТекущиеДанные = Элемент.ТекущиеДанные;
|
||||
Если ТекущиеДанные = Неопределено Тогда
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
ЗаполнитьОстаткиПоДетям(ТекущиеДанные.Учреждение);
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область ОбработчикиКомандФормы
|
||||
|
||||
// Обновляет данные таблиц формы по установленным фильтрам.
|
||||
@@ -85,18 +105,6 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обеспечивает наличие идентификаторов объектов метаданных по документам внутреннего ЭДО.
|
||||
//
|
||||
// Команда нужна для разовой проверки механизма внутреннего ЭДО БГУ: без идентификаторов
|
||||
// документы расширения не попадают в настройки внутреннего ЭДО (см. ПС_ИдентификаторыОбъектовЭДО).
|
||||
//
|
||||
&НаКлиенте
|
||||
Процедура ИнициализироватьИдентификаторыЭДО(Команда)
|
||||
|
||||
ИнициализироватьИдентификаторыЭДОНаСервере();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
#КонецОбласти
|
||||
|
||||
#Область СлужебныеПроцедурыИФункции
|
||||
@@ -118,33 +126,12 @@
|
||||
ЗаполнитьДокументыПередачи(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
|
||||
ЗаполнитьДокументыПринятия(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
|
||||
ЗаполнитьСверку(Отборы.ЦБОрганизация, Отборы.СадОрганизация);
|
||||
ЗаполнитьТаблицуОстатков();
|
||||
ЗаполнитьОстаткиПоСадам();
|
||||
ЗаполнитьОстаткиПоДетям(Неопределено);
|
||||
ЗаполнитьКассовыеПоступления();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Обеспечивает наличие идентификаторов объектов метаданных по документам внутреннего ЭДО
|
||||
// и выводит пользователю результат проверки.
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ИнициализироватьИдентификаторыЭДОНаСервере()
|
||||
|
||||
ОбъектОбработки = РеквизитФормыВЗначение("Объект");
|
||||
Идентификаторы = ОбъектОбработки.ПС_ИнициализироватьИдентификаторыОбъектовЭДО();
|
||||
|
||||
ТекстыИдентификаторов = Новый Массив;
|
||||
|
||||
Для Каждого КлючИЗначение Из Идентификаторы Цикл
|
||||
ТекстыИдентификаторов.Добавить(КлючИЗначение.Ключ + " -> " + Строка(КлючИЗначение.Значение));
|
||||
КонецЦикла;
|
||||
|
||||
Сообщение = Новый СообщениеПользователю;
|
||||
Сообщение.Текст = "Идентификаторы объектов метаданных внутреннего ЭДО: "
|
||||
+ СтрСоединить(ТекстыИдентификаторов, "; ");
|
||||
Сообщение.Сообщить();
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает отборы формы в терминах, в которых они хранятся в документах.
|
||||
//
|
||||
// ЦБ и учреждение (сад) хранятся в документах передачи и принятия организациями,
|
||||
@@ -174,7 +161,8 @@
|
||||
ДокументыПередачи.Очистить();
|
||||
ДокументыПринятия.Очистить();
|
||||
Сверка.Очистить();
|
||||
ТаблицаОстатков.Очистить();
|
||||
ТаблицаОстатковСады.Очистить();
|
||||
ТаблицаОстатковДети.Очистить();
|
||||
КассовыеПоступления.Очистить();
|
||||
|
||||
КонецПроцедуры
|
||||
@@ -426,89 +414,135 @@
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Заполняет таблицу остатков и оборотов по счетам 205.31 и 304.04.
|
||||
// Использует виртуальную таблицу ОстаткиИОбороты регистра бухгалтерии.
|
||||
// Заполняет таблицу остатков по садам: поступило в ЦБ, передано в сад и остаток у ЦБ.
|
||||
//
|
||||
// Источник данных - регистр накопления взаиморасчётов по родительской плате: приход
|
||||
// формирует кассовое поступление, расход - документ передачи платежей в учреждение.
|
||||
// Остаток показывает, сколько поступило в ЦБ и ещё не передано в сад.
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьТаблицуОстатков()
|
||||
Процедура ЗаполнитьОстаткиПоСадам()
|
||||
|
||||
ТаблицаОстатков.Очистить();
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.Учреждение) Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Остатки и обороты по счетам ведутся без разреза по учреждению,"
|
||||
+ " поэтому отбор по учреждению на эту страницу не влияет.");
|
||||
КонецЕсли;
|
||||
|
||||
НачалоПериода = Объект.Период.ДатаНачала;
|
||||
КонецПериода = Объект.Период.ДатаОкончания;
|
||||
ТаблицаОстатковСады.Очистить();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
УсловиеОтбора = УсловиеОтбораОстатков(Запрос);
|
||||
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| ""205.31"" КАК Счет,
|
||||
| ОстаткиИОбороты.ИФО КАК ИФО,
|
||||
| СУММА(ОстаткиИОбороты.СуммаНачальныйОстаток) КАК СуммаНачальныйОстаток,
|
||||
| СУММА(ОстаткиИОбороты.СуммаОборотДт) КАК СуммаОборотДт,
|
||||
| СУММА(ОстаткиИОбороты.СуммаОборотКт) КАК СуммаОборотКт,
|
||||
| СУММА(ОстаткиИОбороты.СуммаКонечныйОстаток) КАК СуммаКонечныйОстаток
|
||||
| Остатки.Учреждение КАК Учреждение,
|
||||
| СУММА(Остатки.СуммаПриход) КАК Поступило,
|
||||
| СУММА(Остатки.СуммаРасход) КАК Передано,
|
||||
| СУММА(Остатки.СуммаКонечныйОстаток) КАК Остаток
|
||||
|ИЗ
|
||||
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ОстаткиИОбороты(
|
||||
| &НачалоПериода,
|
||||
| &КонецПериода,
|
||||
| Авто,
|
||||
| ,
|
||||
| Счет В ИЕРАРХИИ (&Счет205)) КАК ОстаткиИОбороты
|
||||
|ГДЕ
|
||||
| (&ИФО = НЕОПРЕДЕЛЕНО
|
||||
| ИЛИ ОстаткиИОбороты.ИФО = &ИФО)
|
||||
| РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.ОстаткиИОбороты(
|
||||
| &НачалоПериода, &КонецПериода, Авто, , " + УсловиеОтбора + ") КАК Остатки
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ОстаткиИОбороты.ИФО
|
||||
|
|
||||
|ОБЪЕДИНИТЬ ВСЕ
|
||||
|
|
||||
|ВЫБРАТЬ
|
||||
| ""304.04"",
|
||||
| ОстаткиИОбороты.ИФО,
|
||||
| СУММА(ОстаткиИОбороты.СуммаНачальныйОстаток),
|
||||
| СУММА(ОстаткиИОбороты.СуммаОборотДт),
|
||||
| СУММА(ОстаткиИОбороты.СуммаОборотКт),
|
||||
| СУММА(ОстаткиИОбороты.СуммаКонечныйОстаток)
|
||||
|ИЗ
|
||||
| РегистрБухгалтерии.ЖурналПроводокЕПСБУ.ОстаткиИОбороты(
|
||||
| &НачалоПериода,
|
||||
| &КонецПериода,
|
||||
| Авто,
|
||||
| ,
|
||||
| Счет В ИЕРАРХИИ (&Счет304)) КАК ОстаткиИОбороты
|
||||
|ГДЕ
|
||||
| (&ИФО = НЕОПРЕДЕЛЕНО
|
||||
| ИЛИ ОстаткиИОбороты.ИФО = &ИФО)
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| ОстаткиИОбороты.ИФО";
|
||||
| Остатки.Учреждение
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Остатки.Учреждение";
|
||||
|
||||
Счет205 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
|
||||
Счет304 = ПланыСчетов.ЕПСБУ.НайтиПоКоду("304.04");
|
||||
Если Счет205 = Неопределено ИЛИ Счет304 = Неопределено Тогда
|
||||
ОбщегоНазначения.СообщитьПользователю(
|
||||
"Остатки и обороты не рассчитаны: в плане счетов ЕПСБУ не найден счет"
|
||||
+ " 205.31 и/или 304.04.");
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Запрос.УстановитьПараметр("НачалоПериода", НачалоПериода);
|
||||
Запрос.УстановитьПараметр("КонецПериода", КонецПериода);
|
||||
Запрос.УстановитьПараметр("Счет205", Счет205);
|
||||
Запрос.УстановитьПараметр("Счет304", Счет304);
|
||||
Запрос.УстановитьПараметр("ИФО", ?(ЗначениеЗаполнено(Объект.ИФО), Объект.ИФО, Неопределено));
|
||||
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
|
||||
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
ЗаполнитьЗначенияСвойств(ТаблицаОстатков.Добавить(), Выборка);
|
||||
Если Выборка.Поступило = 0 И Выборка.Передано = 0 И Выборка.Остаток = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(ТаблицаОстатковСады.Добавить(), Выборка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Заполняет таблицу остатков по детям: поступило в ЦБ, передано в сад и остаток у ЦБ
|
||||
// по каждому ребёнку и договору.
|
||||
//
|
||||
// Параметры:
|
||||
// Учреждение - CatalogRef.Организации - сад, выбранный в таблице остатков по садам;
|
||||
// Неопределено - детализация строится по всем садам из отбора формы.
|
||||
//
|
||||
&НаСервере
|
||||
Процедура ЗаполнитьОстаткиПоДетям(Учреждение)
|
||||
|
||||
ТаблицаОстатковДети.Очистить();
|
||||
|
||||
Запрос = Новый Запрос;
|
||||
УсловиеОтбора = УсловиеОтбораОстатков(Запрос, Учреждение);
|
||||
|
||||
Запрос.Текст =
|
||||
"ВЫБРАТЬ
|
||||
| Остатки.Учреждение КАК Учреждение,
|
||||
| Остатки.ИФО КАК ИФО,
|
||||
| Остатки.Ребенок КАК Ребенок,
|
||||
| Остатки.Договор КАК Договор,
|
||||
| СУММА(Остатки.СуммаПриход) КАК Поступило,
|
||||
| СУММА(Остатки.СуммаРасход) КАК Передано,
|
||||
| СУММА(Остатки.СуммаКонечныйОстаток) КАК Остаток
|
||||
|ИЗ
|
||||
| РегистрНакопления.ПС_ВзаиморасчетыПоРодительскойПлате.ОстаткиИОбороты(
|
||||
| &НачалоПериода, &КонецПериода, Авто, , " + УсловиеОтбора + ") КАК Остатки
|
||||
|СГРУППИРОВАТЬ ПО
|
||||
| Остатки.Учреждение,
|
||||
| Остатки.ИФО,
|
||||
| Остатки.Ребенок,
|
||||
| Остатки.Договор
|
||||
|УПОРЯДОЧИТЬ ПО
|
||||
| Учреждение,
|
||||
| Ребенок";
|
||||
|
||||
Запрос.УстановитьПараметр("НачалоПериода", Объект.Период.ДатаНачала);
|
||||
Запрос.УстановитьПараметр("КонецПериода", Объект.Период.ДатаОкончания);
|
||||
|
||||
Выборка = Запрос.Выполнить().Выбрать();
|
||||
Пока Выборка.Следующий() Цикл
|
||||
Если Выборка.Поступило = 0 И Выборка.Передано = 0 И Выборка.Остаток = 0 Тогда
|
||||
Продолжить;
|
||||
КонецЕсли;
|
||||
ЗаполнитьЗначенияСвойств(ТаблицаОстатковДети.Добавить(), Выборка);
|
||||
КонецЦикла;
|
||||
|
||||
КонецПроцедуры
|
||||
|
||||
// Возвращает условие отбора для виртуальной таблицы остатков регистра взаиморасчётов
|
||||
// и устанавливает соответствующие параметры запроса.
|
||||
//
|
||||
// Параметры:
|
||||
// Запрос - Запрос - запрос, в который добавляются параметры отбора;
|
||||
// Учреждение - CatalogRef.Организации - сад, по которому строится детализация;
|
||||
// Неопределено - используется отбор по учреждению из формы.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Строка - условие отбора в терминах полей регистра; "ИСТИНА", если отборов нет.
|
||||
//
|
||||
&НаСервере
|
||||
Функция УсловиеОтбораОстатков(Запрос, Учреждение = Неопределено)
|
||||
|
||||
Условия = Новый Массив;
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.Организация) Тогда
|
||||
Запрос.УстановитьПараметр("ОрганизацияОтбор", Объект.Организация);
|
||||
Условия.Добавить("Организация = &ОрганизацияОтбор");
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Объект.ИФО) Тогда
|
||||
Запрос.УстановитьПараметр("ИФООтбор", Объект.ИФО);
|
||||
Условия.Добавить("ИФО = &ИФООтбор");
|
||||
КонецЕсли;
|
||||
|
||||
Если НЕ ЗначениеЗаполнено(Учреждение) Тогда
|
||||
Учреждение = Объект.Учреждение;
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(Учреждение) Тогда
|
||||
Запрос.УстановитьПараметр("УчреждениеОтбор", Учреждение);
|
||||
Условия.Добавить("Учреждение = &УчреждениеОтбор");
|
||||
КонецЕсли;
|
||||
|
||||
Возврат ?(Условия.Количество() = 0, "ИСТИНА", СтрСоединить(Условия, " И "));
|
||||
|
||||
КонецФункции
|
||||
|
||||
// Заполняет таблицу формы КассовыеПоступления: документы с признаком "Родительская плата" за период
|
||||
// по установленным отборам.
|
||||
// Колонка "Строк не распознано" показывает строки расшифровки платежа, в которых не определён ребёнок, -
|
||||
|
||||
-22
@@ -1,24 +1,2 @@
|
||||
// Обработка ПС_УправлениеРасчетамиПоРодительскойПлате.
|
||||
// Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl).
|
||||
|
||||
#Область ПрограммныйИнтерфейс
|
||||
|
||||
#Если Сервер Или ВнешнееСоединение Или ТолстыйКлиентОбычноеПриложение Тогда
|
||||
|
||||
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
|
||||
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
|
||||
//
|
||||
// Возвращаемое значение:
|
||||
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
|
||||
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
|
||||
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
|
||||
//
|
||||
Функция ПС_ИнициализироватьИдентификаторыОбъектовЭДО() Экспорт
|
||||
|
||||
Возврат ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
|
||||
|
||||
КонецФункции
|
||||
|
||||
#КонецЕсли
|
||||
|
||||
#КонецОбласти
|
||||
Reference in New Issue
Block a user