feat(пульт): остатки по регистру взаиморасчётов вместо счетов 205.31/304.04, версия 1.0.0
This commit is contained in:
@@ -28,6 +28,7 @@
|
|||||||
<usePurposes>PersonalComputer</usePurposes>
|
<usePurposes>PersonalComputer</usePurposes>
|
||||||
<scriptVariant>Russian</scriptVariant>
|
<scriptVariant>Russian</scriptVariant>
|
||||||
<defaultRoles>Role.ПС_ОсновнаяРоль</defaultRoles>
|
<defaultRoles>Role.ПС_ОсновнаяРоль</defaultRoles>
|
||||||
|
<version>1.0.0</version>
|
||||||
<defaultLanguage>Language.Русский</defaultLanguage>
|
<defaultLanguage>Language.Русский</defaultLanguage>
|
||||||
<interfaceCompatibilityMode>TaxiEnableVersion8_2</interfaceCompatibilityMode>
|
<interfaceCompatibilityMode>TaxiEnableVersion8_2</interfaceCompatibilityMode>
|
||||||
<languages uuid="2f74bb63-c643-4692-af13-1f99a56719fb" extendedConfigurationObject="4b1b900f-9c8f-4b2b-8292-3a9a6db40715">
|
<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).
|
// Логика дашборда реализована в модуле управляемой формы (Forms/Форма/Module.bsl).
|
||||||
|
|
||||||
#Область ПрограммныйИнтерфейс
|
|
||||||
|
|
||||||
#Если Сервер Или ВнешнееСоединение Или ТолстыйКлиентОбычноеПриложение Тогда
|
|
||||||
|
|
||||||
// Обеспечивает наличие в справочнике идентификаторов объектов метаданных записей
|
|
||||||
// по документам внутреннего ЭДО, созданным в расширении конфигурации.
|
|
||||||
//
|
|
||||||
// Возвращаемое значение:
|
|
||||||
// Соответствие из КлючИЗначение - идентификаторы объектов метаданных по их полным именам:
|
|
||||||
// * Ключ - Строка - полное имя объекта метаданных, например "Документ.ПС_ПринятиеПоступившихПлатежейИзЦБ";
|
|
||||||
// * Значение - СправочникСсылка.ИдентификаторыОбъектовМетаданных - идентификатор объекта метаданных.
|
|
||||||
//
|
|
||||||
Функция ПС_ИнициализироватьИдентификаторыОбъектовЭДО() Экспорт
|
|
||||||
|
|
||||||
Возврат ПС_ИдентификаторыОбъектовЭДО.ПС_ОбеспечитьИдентификаторыДокументовЭДО();
|
|
||||||
|
|
||||||
КонецФункции
|
|
||||||
|
|
||||||
#КонецЕсли
|
|
||||||
|
|
||||||
#КонецОбласти
|
|
||||||
Reference in New Issue
Block a user