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