16.
Anthon
230
05.02.14 19:07
Сейчас в теме
спасибо, сэкономили мне время на написание обработки для ЗиКБУ, а всего лишь надо поправить одну функцию.
так что можете модифицировать обработку, чтобы она автоматом определяла наличие измерений в регистрах (я добавил СтатьяФинансирования и КОСГУ), и она будет более универсальна. желательно добавить автоматическое создание документа, если он не выбран.
Функция ПолучитьОстатки(ИмяРегистра)
Если ИмяРегистра = "ВзаиморасчетыСРаботникамиОрганизаций" Тогда
Запрос =
Новый Запрос("ВЫБРАТЬ
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.СтатьяФинансирования,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.КОСГУ,
| СУММА(ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток) КАК Сумма
|ИЗ
| РегистрНакопления.ВзаиморасчетыСРаботникамиОрганизаций.Остатки(&Период, ) КАК ВзаиморасчетыСРаботникамиОрганизацийОстатки
|ГДЕ
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.Организация = &Организация
|
|СГРУППИРОВАТЬ ПО
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.Физлицо,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.КОСГУ,
| ВзаиморасчетыСРаботникамиОрганизацийОстатки.СтатьяФинансирования
|
|ИМЕЮЩИЕ
| СУММА(ВзаиморасчетыСРаботникамиОрганизацийОстатки.СуммаВзаиморасчетовОстаток) <> 0");
ИначеЕсли ИмяРегистра = "ЗарплатаЗаМесяцОрганизаций" Тогда
Запрос =
Новый Запрос("ВЫБРАТЬ
| ЗарплатаЗаМесяцОрганизацийОстатки.Физлицо,
| ЗарплатаЗаМесяцОрганизацийОстатки.СтатьяФинансирования,
| ЗарплатаЗаМесяцОрганизацийОстатки.КОСГУ,
| СУММА(ЗарплатаЗаМесяцОрганизацийОстатки.СуммаВзаиморасчетовОстаток) КАК Сумма
|ИЗ
| РегистрНакопления.ЗарплатаЗаМесяцОрганизаций.Остатки(&Период, ) КАК ЗарплатаЗаМесяцОрганизацийОстатки
|ГДЕ
| ЗарплатаЗаМесяцОрганизацийОстатки.Организация = &Организация
|
|СГРУППИРОВАТЬ ПО
| ЗарплатаЗаМесяцОрганизацийОстатки.Физлицо,
| ЗарплатаЗаМесяцОрганизацийОстатки.СтатьяФинансирования,
| ЗарплатаЗаМесяцОрганизацийОстатки.КОСГУ,
| ЗарплатаЗаМесяцОрганизацийОстатки.ПериодВзаиморасчетов
|
|ИМЕЮЩИЕ
| СУММА(ЗарплатаЗаМесяцОрганизацийОстатки.СуммаВзаиморасчетовОстаток) <> 0");
ИначеЕсли ИмяРегистра = "НДФЛКЗачету" Тогда
Запрос =
Новый Запрос("ВЫБРАТЬ
| НДФЛКЗачетуОстатки.ФизЛицо,
| НДФЛКЗачетуОстатки.СтатьяФинансирования,
| НДФЛКЗачетуОстатки.КОСГУ,
| НДФЛКЗачетуОстатки.СтавкаНалогообложенияРезидента,
| СУММА(НДФЛКЗачетуОстатки.СуммаНДФЛКЗачетуОстаток) КАК Сумма
|ИЗ
| РегистрНакопления.НДФЛКЗачету.Остатки(&Период, ) КАК НДФЛКЗачетуОстатки
|ГДЕ
| НДФЛКЗачетуОстатки.Организация = &Организация
|
|СГРУППИРОВАТЬ ПО
| НДФЛКЗачетуОстатки.ФизЛицо,
| НДФЛКЗачетуОстатки.СтатьяФинансирования,
| НДФЛКЗачетуОстатки.КОСГУ,
| НДФЛКЗачетуОстатки.СтавкаНалогообложенияРезидента
|ИМЕЮЩИЕ
| СУММА(НДФЛКЗачетуОстатки.СуммаНДФЛКЗачетуОстаток) <> 0");
Иначе
Возврат Неопределено;
КонецЕсли;
Запрос.УстановитьПараметр("Период", НачалоМесяца(Период));
Запрос.УстановитьПараметр("Организация", Организация);
Возврат Запрос.Выполнить().Выбрать();
КонецФункции
и бонус
Процедура ПриОткрытии()
Если Период = '00010101' Тогда
Период = РабочаяДата;
МесяцСтрока = РаботаСДиалогами.ДатаКакМесяцПредставление(Период);
Выборка = Справочники.Организации.Выбрать();
Пока Выборка.Следующий() Цикл
Если Организация.Пустая() Тогда
Организация = Выборка.Ссылка;
Иначе
Организация = "";
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры