Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

Форум

Развернуть все [Прочее] РасчетноПлатежнаяВедомость
kible
Пост №1
kible
читатель
офлайн
Дата регистрации: 06.04.2010
Сообщений: 1
Пост №1
 
06.04.2010 11:15

"Нужна РасчетноПлатежнаяВедомость по видам деятельности
Добавил строку БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
Ошибка число фильтров субконто превысило допустимое значение


Перем Т;
Перем Обновить;
Перем Расшифровка;
Перем Закрыть;

Перем СписокСотрудников;

//-----------------------------------------------
Процедура УстановитьВладельца(РУ, Объект)
Назначить = 0;
Если ТипЗначенияСтр(Объект) = "Справочник" Тогда
Назначить = 1;                  
Если (ТипЗначенияСтр(РУ) = "Справочник") Тогда
МДСубконто = Метаданные.Справочник(Объект.Вид());
Если МДСубконто.Владелец.Выбран() = 1 Тогда
Если МДСубконто.Владелец.Идентификатор = РУ.Вид() Тогда
Назначить = 2;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Назначить = 1 Тогда
Объект.ИспользоватьВладельца("""");
ИначеЕсли Назначить = 2 Тогда
Объект.ИспользоватьВладельца(РУ);
КонецЕсли;
КонецПроцедуры

//-------------------------------------------------------------------
Процедура ПриВыбореВарианта()
Если ВариантФормирования = 1 Тогда      
       Форма.ДокументНачисления.Доступность(0);
       Форма.ПодписьС.Доступность(1);
       Форма.Дата1.Доступность(1);
       Форма.ПодписьПо.Доступность(1);
       Форма.Дата2.Доступность(1);
       Форма.КнПериода.Доступность(1);
Форма.ПодписьПодразделения.Доступность(1);
       Форма.Подразделение.Доступность(1);
       Форма.КнОчиститьПодразделение.Доступность(1);
Иначе
       Форма.ПодписьС.Доступность(0);
       Форма.Дата1.Доступность(0);
       Форма.ПодписьПо.Доступность(0);
       Форма.Дата2.Доступность(0);
       Форма.КнПериода.Доступность(0);
       Форма.ПодписьПодразделения.Доступность(0);
       Форма.Подразделение.Доступность(0);
Подразделение = 0;
       Форма.КнОчиститьПодразделение.Доступность(0);
       Форма.ДокументНачисления.Доступность(1);
КонецЕсли;
КонецПроцедуры //ПриВыбореВарианта

//-----------------------------------------------
Функция РасшифровкаОбновить(Обновить)
Расшифровка.Установить("Обновить", Обновить);
Возврат Расшифровка;
КонецФункции //Функция РасшифровкаОбновить(Обновить)

//-----------------------------------------------
Функция ПредставлениеУдержания(Сотрудник, Счет, Субконто1, Субконто2, Субконто3)
Представление = "Удержание";            
СписокСубконто = СоздатьОбъект("СписокЗначений");
СписокСубконто.ДобавитьЗначение(Субконто1);
СписокСубконто.ДобавитьЗначение(Субконто2);
СписокСубконто.ДобавитьЗначение(Субконто3);
Для СчетчикЦиклов = 1 по СписокСубконто.РазмерСписка() Цикл
ЗначениеСубконто = СписокСубконто.ПолучитьЗначение(СчетчикЦиклов);
Если глВидЗначения(ЗначениеСубконто) = "НалогиСборыОтчисления" Тогда
Представление = СокрЛП(ЗначениеСубконто);
Прервать;
КонецЕсли;
Если глВидЗначения(ЗначениеСубконто) = "Сотрудники" Тогда
Представление = Счет.Наименование;
Прервать;
КонецЕсли;
Если глВидЗначения(ЗначениеСубконто) = "Контрагенты" Тогда
Представление = """";
Если ПустоеЗначение(Субконто2) = 0 Тогда
Представление = СокрЛП(Субконто2)+": ";
КонецЕсли;
Представление = Представление + СокрЛП(Субконто1);
Если ПустоеЗначение(Субконто3) = 0 Тогда
Представление = Представление + ", " + СокрЛП(Субконто3);
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Представление;
КонецФункции
                              
//-----------------------------------------------
Функция ПолучитьИмяСекцииНачисления(Дни, Часы)
ИмяСекцииНачисления = "Начисление";

Если ОтображатьДниЧасыПоВидамНачислений = 0 Тогда
Возврат ИмяСекцииНачисления;
КонецЕсли;

Если Дни + Часы > 0 Тогда
ИмяСекцииНачисления = "НачисленияПоДням";
КонецЕсли;

Возврат ИмяСекцииНачисления;
КонецФункции

//-----------------------------------------------
Процедура Сформировать(ФлагЗакрытияФормы = 0)

// проверка периода бухгалтерских итогов
Если глПределыБухгалтерскихИтогов(, Дата2, 0) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

Если (ВариантФормирования = 1) Тогда
Если (ПустоеЗначение(Дата1) = 1) или (ПустоеЗначение(Дата2) = 1) Тогда
Предупреждение("Неверно указан период формирования отчета!",60);
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;

Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 0) Тогда
Предупреждение("Необходимо выбрать документ начисления!",60);
СтатусВозврата(0);
Возврат;
КонецЕсли;      

Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 1) Тогда
СписокСотрудников = СоздатьОбъект("СписокЗначений");
ДокументНачисления.ВыгрузитьТабличнуюЧасть(СписокСотрудников, "Сотрудник");
Иначе
СписокСотрудников = """";
КонецЕсли;

Если (ТипЗначенияСтр(Т) <> "Таблица")ИЛИ(Обновить=0) Тогда
Т = СоздатьОбъект("Таблица");
Иначе
Т.Очистить();
КонецЕсли;                  

Т.ИсходнаяТаблица("Таблица");

Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.Установить("Отчет", "РасчетноПлатежнаяВедомость");
Расшифровка.Установить("РазделительУчета", РазделительУчета);
Расшифровка.Установить("Дата1", Дата1);
Расшифровка.Установить("Дата2", Дата2);
Расшифровка.Установить("Подразделение", Подразделение);
Расшифровка.Установить("СписокСотрудников", СписокСотрудников);
Расшифровка.Установить("ПоТабельномуНомеру", ПоТабельномуНомеру);
Расшифровка.Установить("ДокументНачисления", ДокументНачисления);
Расшифровка.Установить("ВариантФормирования", ВариантФормирования);
Расшифровка.Установить("ОтображатьСоциальныйНалог", ОтображатьСоциальныйНалог);
Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений", ОтображатьДниЧасыПоВидамНачислений);
Расшифровка.Установить("ГруппироватьПоПодразделениям", ГруппироватьПоПодразделениям);

Т.ВывестиСекцию("Обновить|Сотрудник");

Если ВариантФормирования = 1 Тогда
Расшифровка.Установить("Отчет",);
Расшифровка.Установить("РазделительУчета",);
Расшифровка.Установить("Дата1",);
Расшифровка.Установить("Дата2",);
Расшифровка.Установить("Подразделение",);
Расшифровка.Установить("СписокСотрудников",);
Расшифровка.Установить("ПоТабельномуНомеру",);
Расшифровка.Установить("ОтображатьСоциальныйНалог",);
Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений");
Расшифровка.Установить("ГруппироватьПоПодразделениям",);
Иначе
Расшифровка.Установить("ДокументНачисления", ДокументНачисления);
КонецЕсли;
                        
Если ГруппироватьПоПодразделениям = 1 Тогда
// создаем вспомогательную таблицу для группировки по подразделениям
тзПодразделений = СоздатьОбъект("ТаблицаЗначений");
тзПодразделений.НоваяКолонка("Подразделение");
тзПодразделений.НоваяКолонка("Начисления", "ТаблицаЗначений");
тзПодразделений.НоваяКолонка("Удержания", "ТаблицаЗначений");
тзПодразделений.НоваяКолонка("СНК", "Число", 15, 2);
тзПодразделений.НоваяКолонка("СКК", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Выдано", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Возврат", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Дни", "Число", 15, 0);
тзПодразделений.НоваяКолонка("Часы", "Число", 15, 0);
тзПодразделений.НоваяКолонка("СоциальныйНалог", "Число", 15, 2);
тзПодразделений.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2);
КонецЕсли;

тзНачисленийУдержаний = СоздатьОбъект("ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("Сотрудник");
тзНачисленийУдержаний.НоваяКолонка("Подразделение");
тзНачисленийУдержаний.НоваяКолонка("Должность");
тзНачисленийУдержаний.НоваяКолонка("ТабельныйНомер");
тзНачисленийУдержаний.НоваяКолонка("Начисления", "ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("Удержания", "ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("СНК", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("СКК", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Выдано", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Возврат", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Дни", "Число", 10, 1);
тзНачисленийУдержаний.НоваяКолонка("Часы", "Число", 10, 0);
тзНачисленийУдержаний.НоваяКолонка("СоциальныйНалог", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2);


тзНачислений = СоздатьОбъект("ТаблицаЗначений");
тзНачислений.НоваяКолонка("Начисление");
тзНачислений.НоваяКолонка("Сумма", "Число", 15, 2);
тзНачислений.НоваяКолонка("Дни", "Число", 10, 1);
тзНачислений.НоваяКолонка("Часы", "Число", 10, 0);

тзУдержаний = СоздатьОбъект("ТаблицаЗначений");
тзУдержаний.НоваяКолонка("Счет", "Счет.Основной");      
тзУдержаний.НоваяКолонка("Сумма", "Число", 15, 2);

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтоги.ИспользоватьПланСчетов(ВыбранныйПланСчетов());


Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
Если ПустоеЗначение(РазделительУчета) = 0 Тогда
БухИтоги.ИспользоватьРазделительУчета(РазделительУчета);
КонецЕсли;
КонецЕсли;

НачДата = ?(ВариантФормирования = 1, Дата1, ДокументНачисления);
КонДата = ?(ВариантФормирования = 1, Дата2, ДокументНачисления);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "335");
БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл
Если Подразделение.Выбран() = 1 Тогда
Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
тзНачисленийУдержаний.НоваяСтрока();
тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто(1);
тзНачисленийУдержаний.Подразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
тзНачисленийУдержаний.Должность = БухИтоги.Субконто(1).Должность;
тзНачисленийУдержаний.ТабельныйНомер = БухИтоги.Субконто(1).Код;
// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
ТзПодразделений.НоваяСтрока();
ТзПодразделений.Подразделение = ТекПодразделение;
ТзПодразделений.Начисления = СоздатьОбъект("ТаблицаЗначений");

ТзПодразделений.Начисления.НоваяКолонка("Начисление");
ТзПодразделений.Начисления.НоваяКолонка("Сумма", "Число", 15, 2);
ТзПодразделений.Начисления.НоваяКолонка("Дни", "Число", 10, 1);
ТзПодразделений.Начисления.НоваяКолонка("Часы", "Число", 10, 0);


ТзПодразделений.Удержания = СоздатьОбъект("ТаблицаЗначений");
ТзПодразделений.Удержания.НоваяКолонка("Счет", "Счет.Основной");      
ТзПодразделений.Удержания.НоваяКолонка("Сумма", "Число", 15, 2);
ТзПодразделений.СНК = 0;
ТзПодразделений.СКК = 0;
ТзПодразделений.Выдано = 0;
ТзПодразделений.Возврат = 0;
ТзПодразделений.Дни = 0;
ТзПодразделений.Часы = 0;
ТзПодразделений.СоциальныйНалог = 0;
ТзПодразделений.СоциальноеСтрахование = 0;
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;
КонецЦикла;

НачислениеОклад = глПолучитьНачисление("Оклад", 1, "Заработная плата");
НачислениеТариф = глПолучитьНачисление("Тариф", 1, "Заработная плата");

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНачисленийИПрочихДоходов);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ЕдиницыУчетаРабочегоВремени);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "ПНС");
БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл

Стр = 0;
Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(1), Стр, "Сотрудник") = 0 Тогда
Продолжить;
Иначе
тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;

// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
Продолжить;      
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;

Начисления = СоздатьОбъект("ТаблицаЗначений");
Начисления.НоваяКолонка("Начисление");
Начисления.НоваяКолонка("Сумма", "Число", 15, 2);
Начисления.НоваяКолонка("Дни", "Число", 10, 1);
Начисления.НоваяКолонка("Часы", "Число", 10, 0);

БухИтоги.ВыбратьСубконто(2);
Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл
Если БухИтоги.ДО("С") = 0 Тогда            
Продолжить;
КонецЕсли;                                     
// по дням и часам
Дни = 0;
Часы = 0;            
БухИтоги.ВыбратьСубконто(3);
Пока БухИтоги.ПолучитьСубконто(3) = 1 Цикл
Если БухИтоги.Субконто(3) = Перечисление.ЕдиницыУчетаРабочегоВремени.Часы Тогда
Часы = Часы + БухИтоги.ДО("К");
Иначе
Дни = Дни + БухИтоги.ДО("К");
КонецЕсли;
КонецЦикла;

Начисления.НоваяСтрока();
Начисления.Начисление = БухИтоги.Субконто(2);
Начисления.Сумма = БухИтоги.ДО("С");            
Начисления.Дни = Дни;            
Начисления.Часы = Часы;
Стр = 0;
Если тзНачислений.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда
тзНачислений.НоваяСтрока();                        
тзНачислений.Начисление = БухИтоги.Субконто(2);
тзНачислений.Сумма = 0;
тзНачислений.Дни = 0;
тзНачислений.Часы = 0;
Иначе
тзНачислений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;            

тзНачислений.Сумма = тзНачислений.Сумма + БухИтоги.ДО("С");
тзНачислений.Дни = Дни;            
тзНачислений.Часы = Часы;
// Накапливаем итоги по подразделениям
Если ГруппироватьПоПодразделениям = 1 Тогда
Стр = """";
Если тзПодразделений.Начисления.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда
тзПодразделений.Начисления.НоваяСтрока();                        
тзПодразделений.Начисления.Начисление = БухИтоги.Субконто(2);
тзПодразделений.Начисления.Сумма = БухИтоги.ДО("С");
тзПодразделений.Начисления.Дни = Дни;            
тзПодразделений.Начисления.Часы = Часы;
Иначе
тзПодразделений.Начисления.ПолучитьСтрокуПоНомеру(Стр);
тзПодразделений.Начисления.Сумма = тзПодразделений.Начисления.Сумма + БухИтоги.ДО("С");
тзПодразделений.Начисления.Дни = тзПодразделений.Начисления.Дни + Дни;            
тзПодразделений.Начисления.Часы = тзПодразделений.Начисления.Часы + Часы;
КонецЕсли;                  

тзПодразделений.Дни = тзПодразделений.Дни + Дни;
             тзПодразделений.Часы = тзПодразделений.Часы + Часы;
КонецЕсли;
КонецЦикла; // По видам начислений
тзНачисленийУдержаний.Начисления = Начисления;
тзНачисленийУдержаний.Дни = Начисления.Итог("Дни");
тзНачисленийУдержаний.Часы = Начисления.Итог("Часы");
КонецЦикла;

БухИтоги.ВключатьСубсчета(1, -1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
СписокСчетовЗапроса = "335";

Если ОтображатьСоциальныйНалог = 1 Тогда
СписокСчетовЗапроса = СписокСчетовЗапроса + ",ПНЦ";
БухИтогиВсп = СоздатьОбъект("БухгалтерскиеИтоги");
Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
Если ПустоеЗначение(РазделительУчета) = 0 Тогда
БухИтогиВсп.ИспользоватьРазделительУчета(РазделительУчета);
КонецЕсли;
КонецЕсли;             
БухИтогиВсп.ВключатьСубсчета(-1, -1);
БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников,1);
БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.ВидыПлатежей, Перечисление.ВидыПлатежей.НалогВзнос,2);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтогиВсп.ВыполнитьЗапрос(НачДата, КонДата, "321",,,3);
БухИтогиВсп.ВыбратьСубконто();
КонецЕсли;

БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, СписокСчетовЗапроса,,,3);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
Если Подразделение.Выбран() = 1 Тогда
Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда
Продолжить;
КонецЕсли;
КонецЕсли;

Стр = 0;
Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(), Стр, "Сотрудник") = 1 Тогда
тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);
Иначе
тзНачисленийУдержаний.НоваяСтрока();
тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто();
КонецЕсли;

// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
Продолжить;      
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;

БухИтоги.ВыбратьСчета();
Если ОтображатьСоциальныйНалог = 1 Тогда
// сумма исчисленного социального налога
Если БухИтоги.ПолучитьСчет(,СчетПоКоду("ПНЦ.1")) = 1 Тогда
тзНачисленийУдержаний.СоциальныйНалог = БухИтоги.ДО();
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СоциальныйНалог = ТзПодразделений.СоциальныйНалог + БухИтоги.ДО();
КонецЕсли;                                                
КонецЕсли;                         
// сумма выплат в фонд обязательного социального страхования
СуммаСоцСтрах = 0;
Если БухИтогиВсп.ПолучитьСубконто(1,,БухИтоги.Субконто(1)) = 1 Тогда
СуммаСоцСтрах = БухИтогиВсп.КО();
БухИтогиВсп.ВыбратьКорСчета();
Если БухИтогиВсп.ПолучитьКорСчет(, СчетПоКоду("3398")) = 1 Тогда
СуммаСоцСтрах = СуммаСоцСтрах - БухИтогиВсп.КорКО();
КонецЕсли;
тзНачисленийУдержаний.СоциальноеСтрахование = СуммаСоцСтрах;
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СоциальноеСтрахование = ТзПодразделений.СоциальноеСтрахование + СуммаСоцСтрах;
КонецЕсли;                                                
КонецЕсли;
КонецЕсли;

Если БухИтоги.ПолучитьСчет(,СчетПоКоду("335")) = 1 Тогда
тзНачисленийУдержаний.СНК = БухИтоги.СНК("С");
тзНачисленийУдержаний.СКК = БухИтоги.СКК("С");
тзНачисленийУдержаний.Выдано = 0;
                                    
Удержания = СоздатьОбъект("ТаблицаЗначений");
Удержания.НоваяКолонка("Счет", "Счет.Основной");
Удержания.НоваяКолонка("Сумма", "Число", 15, 2);
БухИтоги.ВыбратьКорСчета(,1);
Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
Если БухИтоги.КорСчет.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда
тзНачисленийУдержаний.Выдано = тзНачисленийУдержаний.Выдано + БухИтоги.КорДО("С");
Продолжить;
КонецЕсли;
Удержания.НоваяСтрока();
Удержания.Счет = БухИтоги.КорСчет;
Удержания.Сумма = БухИтоги.КорДО("С");
Стр = 0;
Если тзУдержаний.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда
тзУдержаний.НоваяСтрока();                        
тзУдержаний.Счет = БухИтоги.КорСчет;
тзУдержаний.Сумма = БухИтоги.КорДО("С");
Иначе
тзУдержаний.ПолучитьСтрокуПоНомеру(Стр);
тзУдержаний.Сумма = тзУдержаний.Сумма + БухИтоги.КорДО("С");
КонецЕсли;            
// Накапливаем итоги по подразделениям
Если ГруппироватьПоПодразделениям = 1 Тогда
Стр = """";
Если тзПодразделений.Удержания.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда
тзПодразделений.Удержания.НоваяСтрока();                        
тзПодразделений.Удержания.Счет = БухИтоги.КорСчет;
тзПодразделений.Удержания.Сумма = БухИтоги.КорДО("С");
Иначе
тзПодразделений.Удержания.ПолучитьСтрокуПоНомеру(Стр);
тзПодразделений.Удержания.Сумма = тзПодразделений.Удержания.Сумма + БухИтоги.КорДО("С");
КонецЕсли;                        
КонецЕсли;
КонецЦикла;
тзНачисленийУдержаний.Удержания = Удержания;
БухИтоги.ВыбратьКорСчета(,2);
Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда
тзНачисленийУдержаний.Возврат = тзНачисленийУдержаний.Возврат + БухИтоги.КорКО("С");
Прервать;
КонецЕсли;
КонецЦикла;
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СНК = ТзПодразделений.СНК + БухИтоги.СНК("С");
ТзПодразделений.СКК = ТзПодразделений.СКК + БухИтоги.СКК("С");
ТзПодразделений.Выдано = ТзПодразделений.Выдано + тзНачисленийУдержаний.Выдано;
ТзПодразделений.Возврат = ТзПодразделений.Возврат + тзНачисленийУдержаний.Возврат ;
КонецЕсли;
КонецЕсли; // Если ПолучитьСчет(, СчетПоКоду("681")) =1 Тогда                   
КонецЦикла;            

тзНачислений.Сортировать("+Начисление");
тзУдержаний.Сортировать("+Счет");
СтрокаСортировки = """";
Если ГруппироватьПоПодразделениям = 1 Тогда      
СтрокаСортировки = "+Подразделение";
КонецЕсли;                                    
Если ПоТабельномуНомеру = 1 Тогда      
СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+ТабельныйНомер","+ТабельныйНомер");
Иначе
СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+Сотрудник","+Сотрудник");
КонецЕсли;

Если ПустоеЗначение(СтрокаСортировки) = 0 Тогда
тзНачисленийУдержаний.Сортировать(СтрокаСортировки);
КонецЕсли;


Т.ВывестиСекцию("Шапка|Сотрудник");

тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Представление = СокрЛП(тзНачислений.Начисление);
Т.ПрисоединитьСекцию("Шапка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;

Т.ПрисоединитьСекцию("Шапка|ВсегоНачислено");

тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Представление = тзУдержаний.Счет.Наименование;
Т.ПрисоединитьСекцию("Шапка|Удержание");
КонецЦикла;

Т.ПрисоединитьСекцию("Шапка|ВсегоУдержано");

Т.ПрисоединитьСекцию("Шапка|Выплачено");

Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Шапка|Возврат");
КонецЕсли;

Т.ПрисоединитьСекцию("Шапка|КВыплате");

Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Шапка|СоцНалог");
КонецЕсли;

Если ГруппироватьПоПодразделениям = 1 Тогда
ПредыдущееПодразделение = """";
КонецЕсли;
НомерСтроки = 0;
тзНачисленийУдержаний.ВыбратьСтроки();
Пока тзНачисленийУдержаний.ПолучитьСтроку() = 1 Цикл
Если ГруппироватьПоПодразделениям = 1 Тогда
// Проверим смену подразделения
Если тзНачисленийУдержаний.Подразделение <> ПредыдущееПодразделение Тогда
// Позициониируемся на итогах по подразделению
// в таблице подразделений                                    
ПредыдущееПодразделение = тзНачисленийУдержаний.Подразделение;
НомерСтроки = 0;
Стр = """";
Если тзПодразделений.НайтиЗначение(тзНачисленийУдержаний.Подразделение,Стр,"Подразделение") = 1 Тогда
тзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
ВсегоНачислено = 0;
ВсегоУдержано = 0;
Начисления = тзПодразделений.Начисления;
Удержания = тзПодразделений.Удержания;
Если ПустоеЗначение(Начисления) = 0 Тогда
ВсегоНачислено = Начисления.Итог("Сумма");
КонецЕсли;
Если ПустоеЗначение(Удержания) = 0 Тогда
ВсегоУдержано = Удержания.Итог("Сумма");
КонецЕсли;
Т.ВывестиСекцию("Подразделение|Сотрудник");
тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Стр = 0; Начислено = 0; Дни = 0; Часы = 0;
Если ПустоеЗначение(Начисления) = 0 Тогда
Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда
Начисления.ПолучитьСтрокуПоНомеру(Стр);
Начислено = Начисления.Сумма;
Дни = Начисления.Дни;
Часы = Начисления.Часы;
КонецЕсли;
КонецЕсли;       
Т.ПрисоединитьСекцию("Подразделение|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;
Т.ПрисоединитьСекцию("Подразделение|ВсегоНачислено");
тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Стр = 0; Удержано = 0;
Если ПустоеЗначение(Удержания) = 0 Тогда
Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда
Удержания.ПолучитьСтрокуПоНомеру(Стр);
Удержано = Удержания.Сумма;
КонецЕсли;
КонецЕсли;
Т.ПрисоединитьСекцию("Подразделение|Удержание");
КонецЦикла;
Т.ПрисоединитьСекцию("Подразделение|ВсегоУдержано");
Т.ПрисоединитьСекцию("Подразделение|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Подразделение|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Подразделение|КВыплате");
Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Подразделение|СоцНалог");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
ВсегоНачислено = 0;
ВсегоУдержано = 0;
Начисления = тзНачисленийУдержаний.Начисления;
Удержания = тзНачисленийУдержаний.Удержания;
Если ПустоеЗначение(Начисления) = 0 Тогда
ВсегоНачислено = Начисления.Итог("Сумма");
КонецЕсли;
Если ПустоеЗначение(Удержания) = 0 Тогда
ВсегоУдержано = Удержания.Итог("Сумма");
КонецЕсли;
Т.ВывестиСекцию("Строка|Сотрудник");
тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Стр = 0; Начислено = 0; Дни = 0; Часы = 0;
Если ПустоеЗначение(Начисления) = 0 Тогда
Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда
Начисления.ПолучитьСтрокуПоНомеру(Стр);
Начислено = Начисления.Сумма;
Дни = Начисления.Дни;
Часы = Начисления.Часы;
КонецЕсли;
КонецЕсли;      
Т.ПрисоединитьСекцию("Строка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;
Т.ПрисоединитьСекцию("Строка|ВсегоНачислено");
тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Стр = 0; Удержано = 0;
Если ПустоеЗначение(Удержания) = 0 Тогда
Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда
Удержания.ПолучитьСтрокуПоНомеру(Стр);
Удержано = Удержания.Сумма;
КонецЕсли;
КонецЕсли;
Т.ПрисоединитьСекцию("Строка|Удержание");
КонецЦикла;
Т.ПрисоединитьСекцию("Строка|ВсегоУдержано");
Т.ПрисоединитьСекцию("Строка|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Строка|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Строка|КВыплате");
Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Строка|СоцНалог");
КонецЕсли;
КонецЦикла;      

Т.ВывестиСекцию("Подвал|Сотрудник");

тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Дни = тзНачислений.Дни;
Часы = тзНачислений.Часы;                                                      
Т.ПрисоединитьСекцию("Подвал|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;

Т.ПрисоединитьСекцию("Подвал|ВсегоНачислено");

тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Т.ПрисоединитьСекцию("Подвал|Удержание");
КонецЦикла;

Т.ПрисоединитьСекцию("Подвал|ВсегоУдержано");

Т.ПрисоединитьСекцию("Подвал|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Подвал|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Подвал|КВыплате");

Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Подвал|СоцНалог");
КонецЕсли;
            
ВерхнийКолонтитул = "Расчетно-платежная ведомость "+?(ТипЗначения(РазделительУчета)=0, """", " "+РазделительУчета);
НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0," Пользователь: "+ИмяПользователя(),"""");

Т.ТолькоПросмотр(1);
Т.Опции(0, 0, 11, 4, "ОпцииПечатиРасчетноПлатежнаяВедомость", "РасчетноПлатежнаяВедомость");
Т.ОбластьПечати(2);
Т.ПараметрыСтраницы(1,,,,,,,,, 0);
Т.Показать(ВерхнийКолонтитул, """");

Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Тогда
       СтрокаДействийФормы = "#Закрыть";
КонецЕсли;

КонецПроцедуры

//-----------------------------------------------
Процедура УправлениеРУ(ТипУправления="""")
Если ТипУправления = """" Тогда
Если ПустоеЗначение(РазделительУчета) = 1 Тогда
Форма.РазделительУчета.Доступность(0);
ПоВсемРУ = 1;
Иначе
ПоВсемРУ = 0;
КонецЕсли;
ИначеЕсли ТипУправления = "ПоВсемРУ" Тогда
Если ПоВсемРУ = 1 Тогда
РазделительУчета = 0;
Форма.РазделительУчета.Доступность(0);
Иначе
Форма.РазделительУчета.Доступность(1);
КонецЕсли;
КонецЕсли;
УстановитьВладельца(РазделительУчета, Подразделение);
КонецПроцедуры

//-----------------------------------------------
Процедура ПриОткрытии()

глДоступностьОрганизацииВОтчете(Контекст);

ВидДеятельности=Константа.Бюджет;

Если глФлагРасшифровки = 1 Тогда
Закрыть = 1;
Обновить = глОбновить;

РазделительУчета = глРасшифровка.Получить("РазделительУчета");
ВариантФормирования = глРасшифровка.Получить("ВариантФормирования");
Дата1 = глРасшифровка.Получить("Дата1");
Дата2 = глРасшифровка.Получить("Дата2");
Подразделение = глРасшифровка.Получить("Подразделение");
ДокументНачисления = глРасшифровка.Получить("ДокументНачисления");
СписокСотрудников = глРасшифровка.Получить("СписокСотрудников");
ПоТабельномуНомеру = глРасшифровка.Получить("ПоТабельномуНомеру");
ОтображатьСоциальныйНалог = глРасшифровка.Получить("ОтображатьСоциальныйНалог");
ОтображатьДниЧасыПоВидамНачислений = глРасшифровка.Получить("ОтображатьДниЧасыПоВидамНачислений");
ГруппироватьПоПодразделениям = глРасшифровка.Получить("ГруппироватьПоПодразделениям");

Если Обновить <> 0 Тогда
Т = глТаблица;
КонецЕсли;

Если Обновить <> 2 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Иначе            
ВариантФормирования = 1;
ДокументНачисления = """";
Закрыть = 0;
Обновить = 0;
Дата1 = НачалоПериодаБИ();
Дата2 = КонецПериодаБИ();
КонецЕсли;

ПриВыбореВарианта();
УправлениеРУ();

КонецПроцедуры"

 
kible
Пост №1
06.04.2010 11:15
 

"Нужна РасчетноПлатежнаяВедомость по видам деятельности
Добавил строку БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
Ошибка число фильтров субконто превысило допустимое значение


Перем Т;
Перем Обновить;
Перем Расшифровка;
Перем Закрыть;

Перем СписокСотрудников;

//-----------------------------------------------
Процедура УстановитьВладельца(РУ, Объект)
Назначить = 0;
Если ТипЗначенияСтр(Объект) = "Справочник" Тогда
Назначить = 1;                  
Если (ТипЗначенияСтр(РУ) = "Справочник") Тогда
МДСубконто = Метаданные.Справочник(Объект.Вид());
Если МДСубконто.Владелец.Выбран() = 1 Тогда
Если МДСубконто.Владелец.Идентификатор = РУ.Вид() Тогда
Назначить = 2;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если Назначить = 1 Тогда
Объект.ИспользоватьВладельца("""");
ИначеЕсли Назначить = 2 Тогда
Объект.ИспользоватьВладельца(РУ);
КонецЕсли;
КонецПроцедуры

//-------------------------------------------------------------------
Процедура ПриВыбореВарианта()
Если ВариантФормирования = 1 Тогда      
       Форма.ДокументНачисления.Доступность(0);
       Форма.ПодписьС.Доступность(1);
       Форма.Дата1.Доступность(1);
       Форма.ПодписьПо.Доступность(1);
       Форма.Дата2.Доступность(1);
       Форма.КнПериода.Доступность(1);
Форма.ПодписьПодразделения.Доступность(1);
       Форма.Подразделение.Доступность(1);
       Форма.КнОчиститьПодразделение.Доступность(1);
Иначе
       Форма.ПодписьС.Доступность(0);
       Форма.Дата1.Доступность(0);
       Форма.ПодписьПо.Доступность(0);
       Форма.Дата2.Доступность(0);
       Форма.КнПериода.Доступность(0);
       Форма.ПодписьПодразделения.Доступность(0);
       Форма.Подразделение.Доступность(0);
Подразделение = 0;
       Форма.КнОчиститьПодразделение.Доступность(0);
       Форма.ДокументНачисления.Доступность(1);
КонецЕсли;
КонецПроцедуры //ПриВыбореВарианта

//-----------------------------------------------
Функция РасшифровкаОбновить(Обновить)
Расшифровка.Установить("Обновить", Обновить);
Возврат Расшифровка;
КонецФункции //Функция РасшифровкаОбновить(Обновить)

//-----------------------------------------------
Функция ПредставлениеУдержания(Сотрудник, Счет, Субконто1, Субконто2, Субконто3)
Представление = "Удержание";            
СписокСубконто = СоздатьОбъект("СписокЗначений");
СписокСубконто.ДобавитьЗначение(Субконто1);
СписокСубконто.ДобавитьЗначение(Субконто2);
СписокСубконто.ДобавитьЗначение(Субконто3);
Для СчетчикЦиклов = 1 по СписокСубконто.РазмерСписка() Цикл
ЗначениеСубконто = СписокСубконто.ПолучитьЗначение(СчетчикЦиклов);
Если глВидЗначения(ЗначениеСубконто) = "НалогиСборыОтчисления" Тогда
Представление = СокрЛП(ЗначениеСубконто);
Прервать;
КонецЕсли;
Если глВидЗначения(ЗначениеСубконто) = "Сотрудники" Тогда
Представление = Счет.Наименование;
Прервать;
КонецЕсли;
Если глВидЗначения(ЗначениеСубконто) = "Контрагенты" Тогда
Представление = """";
Если ПустоеЗначение(Субконто2) = 0 Тогда
Представление = СокрЛП(Субконто2)+": ";
КонецЕсли;
Представление = Представление + СокрЛП(Субконто1);
Если ПустоеЗначение(Субконто3) = 0 Тогда
Представление = Представление + ", " + СокрЛП(Субконто3);
КонецЕсли;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат Представление;
КонецФункции
                              
//-----------------------------------------------
Функция ПолучитьИмяСекцииНачисления(Дни, Часы)
ИмяСекцииНачисления = "Начисление";

Если ОтображатьДниЧасыПоВидамНачислений = 0 Тогда
Возврат ИмяСекцииНачисления;
КонецЕсли;

Если Дни + Часы > 0 Тогда
ИмяСекцииНачисления = "НачисленияПоДням";
КонецЕсли;

Возврат ИмяСекцииНачисления;
КонецФункции

//-----------------------------------------------
Процедура Сформировать(ФлагЗакрытияФормы = 0)

// проверка периода бухгалтерских итогов
Если глПределыБухгалтерскихИтогов(, Дата2, 0) = 0 Тогда
СтатусВозврата(0);
Возврат;
КонецЕсли;

Если (ВариантФормирования = 1) Тогда
Если (ПустоеЗначение(Дата1) = 1) или (ПустоеЗначение(Дата2) = 1) Тогда
Предупреждение("Неверно указан период формирования отчета!",60);
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;

Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 0) Тогда
Предупреждение("Необходимо выбрать документ начисления!",60);
СтатусВозврата(0);
Возврат;
КонецЕсли;      

Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 1) Тогда
СписокСотрудников = СоздатьОбъект("СписокЗначений");
ДокументНачисления.ВыгрузитьТабличнуюЧасть(СписокСотрудников, "Сотрудник");
Иначе
СписокСотрудников = """";
КонецЕсли;

Если (ТипЗначенияСтр(Т) <> "Таблица")ИЛИ(Обновить=0) Тогда
Т = СоздатьОбъект("Таблица");
Иначе
Т.Очистить();
КонецЕсли;                  

Т.ИсходнаяТаблица("Таблица");

Расшифровка = СоздатьОбъект("СписокЗначений");
Расшифровка.Установить("Отчет", "РасчетноПлатежнаяВедомость");
Расшифровка.Установить("РазделительУчета", РазделительУчета);
Расшифровка.Установить("Дата1", Дата1);
Расшифровка.Установить("Дата2", Дата2);
Расшифровка.Установить("Подразделение", Подразделение);
Расшифровка.Установить("СписокСотрудников", СписокСотрудников);
Расшифровка.Установить("ПоТабельномуНомеру", ПоТабельномуНомеру);
Расшифровка.Установить("ДокументНачисления", ДокументНачисления);
Расшифровка.Установить("ВариантФормирования", ВариантФормирования);
Расшифровка.Установить("ОтображатьСоциальныйНалог", ОтображатьСоциальныйНалог);
Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений", ОтображатьДниЧасыПоВидамНачислений);
Расшифровка.Установить("ГруппироватьПоПодразделениям", ГруппироватьПоПодразделениям);

Т.ВывестиСекцию("Обновить|Сотрудник");

Если ВариантФормирования = 1 Тогда
Расшифровка.Установить("Отчет",);
Расшифровка.Установить("РазделительУчета",);
Расшифровка.Установить("Дата1",);
Расшифровка.Установить("Дата2",);
Расшифровка.Установить("Подразделение",);
Расшифровка.Установить("СписокСотрудников",);
Расшифровка.Установить("ПоТабельномуНомеру",);
Расшифровка.Установить("ОтображатьСоциальныйНалог",);
Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений");
Расшифровка.Установить("ГруппироватьПоПодразделениям",);
Иначе
Расшифровка.Установить("ДокументНачисления", ДокументНачисления);
КонецЕсли;
                        
Если ГруппироватьПоПодразделениям = 1 Тогда
// создаем вспомогательную таблицу для группировки по подразделениям
тзПодразделений = СоздатьОбъект("ТаблицаЗначений");
тзПодразделений.НоваяКолонка("Подразделение");
тзПодразделений.НоваяКолонка("Начисления", "ТаблицаЗначений");
тзПодразделений.НоваяКолонка("Удержания", "ТаблицаЗначений");
тзПодразделений.НоваяКолонка("СНК", "Число", 15, 2);
тзПодразделений.НоваяКолонка("СКК", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Выдано", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Возврат", "Число", 15, 2);
тзПодразделений.НоваяКолонка("Дни", "Число", 15, 0);
тзПодразделений.НоваяКолонка("Часы", "Число", 15, 0);
тзПодразделений.НоваяКолонка("СоциальныйНалог", "Число", 15, 2);
тзПодразделений.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2);
КонецЕсли;

тзНачисленийУдержаний = СоздатьОбъект("ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("Сотрудник");
тзНачисленийУдержаний.НоваяКолонка("Подразделение");
тзНачисленийУдержаний.НоваяКолонка("Должность");
тзНачисленийУдержаний.НоваяКолонка("ТабельныйНомер");
тзНачисленийУдержаний.НоваяКолонка("Начисления", "ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("Удержания", "ТаблицаЗначений");
тзНачисленийУдержаний.НоваяКолонка("СНК", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("СКК", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Выдано", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Возврат", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("Дни", "Число", 10, 1);
тзНачисленийУдержаний.НоваяКолонка("Часы", "Число", 10, 0);
тзНачисленийУдержаний.НоваяКолонка("СоциальныйНалог", "Число", 15, 2);
тзНачисленийУдержаний.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2);


тзНачислений = СоздатьОбъект("ТаблицаЗначений");
тзНачислений.НоваяКолонка("Начисление");
тзНачислений.НоваяКолонка("Сумма", "Число", 15, 2);
тзНачислений.НоваяКолонка("Дни", "Число", 10, 1);
тзНачислений.НоваяКолонка("Часы", "Число", 10, 0);

тзУдержаний = СоздатьОбъект("ТаблицаЗначений");
тзУдержаний.НоваяКолонка("Счет", "Счет.Основной");      
тзУдержаний.НоваяКолонка("Сумма", "Число", 15, 2);

БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги");
БухИтоги.ИспользоватьПланСчетов(ВыбранныйПланСчетов());


Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
Если ПустоеЗначение(РазделительУчета) = 0 Тогда
БухИтоги.ИспользоватьРазделительУчета(РазделительУчета);
КонецЕсли;
КонецЕсли;

НачДата = ?(ВариантФормирования = 1, Дата1, ДокументНачисления);
КонДата = ?(ВариантФормирования = 1, Дата2, ДокументНачисления);

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "335");
БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл
Если Подразделение.Выбран() = 1 Тогда
Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
тзНачисленийУдержаний.НоваяСтрока();
тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто(1);
тзНачисленийУдержаний.Подразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
тзНачисленийУдержаний.Должность = БухИтоги.Субконто(1).Должность;
тзНачисленийУдержаний.ТабельныйНомер = БухИтоги.Субконто(1).Код;
// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
ТзПодразделений.НоваяСтрока();
ТзПодразделений.Подразделение = ТекПодразделение;
ТзПодразделений.Начисления = СоздатьОбъект("ТаблицаЗначений");

ТзПодразделений.Начисления.НоваяКолонка("Начисление");
ТзПодразделений.Начисления.НоваяКолонка("Сумма", "Число", 15, 2);
ТзПодразделений.Начисления.НоваяКолонка("Дни", "Число", 10, 1);
ТзПодразделений.Начисления.НоваяКолонка("Часы", "Число", 10, 0);


ТзПодразделений.Удержания = СоздатьОбъект("ТаблицаЗначений");
ТзПодразделений.Удержания.НоваяКолонка("Счет", "Счет.Основной");      
ТзПодразделений.Удержания.НоваяКолонка("Сумма", "Число", 15, 2);
ТзПодразделений.СНК = 0;
ТзПодразделений.СКК = 0;
ТзПодразделений.Выдано = 0;
ТзПодразделений.Возврат = 0;
ТзПодразделений.Дни = 0;
ТзПодразделений.Часы = 0;
ТзПодразделений.СоциальныйНалог = 0;
ТзПодразделений.СоциальноеСтрахование = 0;
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;
КонецЦикла;

НачислениеОклад = глПолучитьНачисление("Оклад", 1, "Заработная плата");
НачислениеТариф = глПолучитьНачисление("Тариф", 1, "Заработная плата");

БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНачисленийИПрочихДоходов);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ЕдиницыУчетаРабочегоВремени);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "ПНС");
БухИтоги.ВыбратьСубконто(1);

Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл

Стр = 0;
Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(1), Стр, "Сотрудник") = 0 Тогда
Продолжить;
Иначе
тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;

// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
Продолжить;      
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;

Начисления = СоздатьОбъект("ТаблицаЗначений");
Начисления.НоваяКолонка("Начисление");
Начисления.НоваяКолонка("Сумма", "Число", 15, 2);
Начисления.НоваяКолонка("Дни", "Число", 10, 1);
Начисления.НоваяКолонка("Часы", "Число", 10, 0);

БухИтоги.ВыбратьСубконто(2);
Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл
Если БухИтоги.ДО("С") = 0 Тогда            
Продолжить;
КонецЕсли;                                     
// по дням и часам
Дни = 0;
Часы = 0;            
БухИтоги.ВыбратьСубконто(3);
Пока БухИтоги.ПолучитьСубконто(3) = 1 Цикл
Если БухИтоги.Субконто(3) = Перечисление.ЕдиницыУчетаРабочегоВремени.Часы Тогда
Часы = Часы + БухИтоги.ДО("К");
Иначе
Дни = Дни + БухИтоги.ДО("К");
КонецЕсли;
КонецЦикла;

Начисления.НоваяСтрока();
Начисления.Начисление = БухИтоги.Субконто(2);
Начисления.Сумма = БухИтоги.ДО("С");            
Начисления.Дни = Дни;            
Начисления.Часы = Часы;
Стр = 0;
Если тзНачислений.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда
тзНачислений.НоваяСтрока();                        
тзНачислений.Начисление = БухИтоги.Субконто(2);
тзНачислений.Сумма = 0;
тзНачислений.Дни = 0;
тзНачислений.Часы = 0;
Иначе
тзНачислений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;            

тзНачислений.Сумма = тзНачислений.Сумма + БухИтоги.ДО("С");
тзНачислений.Дни = Дни;            
тзНачислений.Часы = Часы;
// Накапливаем итоги по подразделениям
Если ГруппироватьПоПодразделениям = 1 Тогда
Стр = """";
Если тзПодразделений.Начисления.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда
тзПодразделений.Начисления.НоваяСтрока();                        
тзПодразделений.Начисления.Начисление = БухИтоги.Субконто(2);
тзПодразделений.Начисления.Сумма = БухИтоги.ДО("С");
тзПодразделений.Начисления.Дни = Дни;            
тзПодразделений.Начисления.Часы = Часы;
Иначе
тзПодразделений.Начисления.ПолучитьСтрокуПоНомеру(Стр);
тзПодразделений.Начисления.Сумма = тзПодразделений.Начисления.Сумма + БухИтоги.ДО("С");
тзПодразделений.Начисления.Дни = тзПодразделений.Начисления.Дни + Дни;            
тзПодразделений.Начисления.Часы = тзПодразделений.Начисления.Часы + Часы;
КонецЕсли;                  

тзПодразделений.Дни = тзПодразделений.Дни + Дни;
             тзПодразделений.Часы = тзПодразделений.Часы + Часы;
КонецЕсли;
КонецЦикла; // По видам начислений
тзНачисленийУдержаний.Начисления = Начисления;
тзНачисленийУдержаний.Дни = Начисления.Итог("Дни");
тзНачисленийУдержаний.Часы = Начисления.Итог("Часы");
КонецЦикла;

БухИтоги.ВключатьСубсчета(1, -1);
БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
СписокСчетовЗапроса = "335";

Если ОтображатьСоциальныйНалог = 1 Тогда
СписокСчетовЗапроса = СписокСчетовЗапроса + ",ПНЦ";
БухИтогиВсп = СоздатьОбъект("БухгалтерскиеИтоги");
Если Метаданные.РазделительУчета.Выбран() = 1 Тогда
Если ПустоеЗначение(РазделительУчета) = 0 Тогда
БухИтогиВсп.ИспользоватьРазделительУчета(РазделительУчета);
КонецЕсли;
КонецЕсли;             
БухИтогиВсп.ВключатьСубсчета(-1, -1);
БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников,1);
БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.ВидыПлатежей, Перечисление.ВидыПлатежей.НалогВзнос,2);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);
//&&&&&&&&&&&&&&&&&&&&&&
БухИтогиВсп.ВыполнитьЗапрос(НачДата, КонДата, "321",,,3);
БухИтогиВсп.ВыбратьСубконто();
КонецЕсли;

БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, СписокСчетовЗапроса,,,3);
БухИтоги.ВыбратьСубконто();
Пока БухИтоги.ПолучитьСубконто() = 1 Цикл
Если Подразделение.Выбран() = 1 Тогда
Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда
Продолжить;
КонецЕсли;
КонецЕсли;

Стр = 0;
Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(), Стр, "Сотрудник") = 1 Тогда
тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);
Иначе
тзНачисленийУдержаний.НоваяСтрока();
тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто();
КонецЕсли;

// Если нужно группировать по подразделениям, то
// позиционируемся на запись в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);
Стр = """";
Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда
Продолжить;      
Иначе
ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
КонецЕсли;
КонецЕсли;

БухИтоги.ВыбратьСчета();
Если ОтображатьСоциальныйНалог = 1 Тогда
// сумма исчисленного социального налога
Если БухИтоги.ПолучитьСчет(,СчетПоКоду("ПНЦ.1")) = 1 Тогда
тзНачисленийУдержаний.СоциальныйНалог = БухИтоги.ДО();
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СоциальныйНалог = ТзПодразделений.СоциальныйНалог + БухИтоги.ДО();
КонецЕсли;                                                
КонецЕсли;                         
// сумма выплат в фонд обязательного социального страхования
СуммаСоцСтрах = 0;
Если БухИтогиВсп.ПолучитьСубконто(1,,БухИтоги.Субконто(1)) = 1 Тогда
СуммаСоцСтрах = БухИтогиВсп.КО();
БухИтогиВсп.ВыбратьКорСчета();
Если БухИтогиВсп.ПолучитьКорСчет(, СчетПоКоду("3398")) = 1 Тогда
СуммаСоцСтрах = СуммаСоцСтрах - БухИтогиВсп.КорКО();
КонецЕсли;
тзНачисленийУдержаний.СоциальноеСтрахование = СуммаСоцСтрах;
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СоциальноеСтрахование = ТзПодразделений.СоциальноеСтрахование + СуммаСоцСтрах;
КонецЕсли;                                                
КонецЕсли;
КонецЕсли;

Если БухИтоги.ПолучитьСчет(,СчетПоКоду("335")) = 1 Тогда
тзНачисленийУдержаний.СНК = БухИтоги.СНК("С");
тзНачисленийУдержаний.СКК = БухИтоги.СКК("С");
тзНачисленийУдержаний.Выдано = 0;
                                    
Удержания = СоздатьОбъект("ТаблицаЗначений");
Удержания.НоваяКолонка("Счет", "Счет.Основной");
Удержания.НоваяКолонка("Сумма", "Число", 15, 2);
БухИтоги.ВыбратьКорСчета(,1);
Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
Если БухИтоги.КорСчет.ЭтоГруппа() = 1 Тогда
Продолжить;
КонецЕсли;
Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда
тзНачисленийУдержаний.Выдано = тзНачисленийУдержаний.Выдано + БухИтоги.КорДО("С");
Продолжить;
КонецЕсли;
Удержания.НоваяСтрока();
Удержания.Счет = БухИтоги.КорСчет;
Удержания.Сумма = БухИтоги.КорДО("С");
Стр = 0;
Если тзУдержаний.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда
тзУдержаний.НоваяСтрока();                        
тзУдержаний.Счет = БухИтоги.КорСчет;
тзУдержаний.Сумма = БухИтоги.КорДО("С");
Иначе
тзУдержаний.ПолучитьСтрокуПоНомеру(Стр);
тзУдержаний.Сумма = тзУдержаний.Сумма + БухИтоги.КорДО("С");
КонецЕсли;            
// Накапливаем итоги по подразделениям
Если ГруппироватьПоПодразделениям = 1 Тогда
Стр = """";
Если тзПодразделений.Удержания.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда
тзПодразделений.Удержания.НоваяСтрока();                        
тзПодразделений.Удержания.Счет = БухИтоги.КорСчет;
тзПодразделений.Удержания.Сумма = БухИтоги.КорДО("С");
Иначе
тзПодразделений.Удержания.ПолучитьСтрокуПоНомеру(Стр);
тзПодразделений.Удержания.Сумма = тзПодразделений.Удержания.Сумма + БухИтоги.КорДО("С");
КонецЕсли;                        
КонецЕсли;
КонецЦикла;
тзНачисленийУдержаний.Удержания = Удержания;
БухИтоги.ВыбратьКорСчета(,2);
Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл
Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда
тзНачисленийУдержаний.Возврат = тзНачисленийУдержаний.Возврат + БухИтоги.КорКО("С");
Прервать;
КонецЕсли;
КонецЦикла;
// накапливаем итоги в таблице Подразделений
Если ГруппироватьПоПодразделениям = 1 Тогда
ТзПодразделений.СНК = ТзПодразделений.СНК + БухИтоги.СНК("С");
ТзПодразделений.СКК = ТзПодразделений.СКК + БухИтоги.СКК("С");
ТзПодразделений.Выдано = ТзПодразделений.Выдано + тзНачисленийУдержаний.Выдано;
ТзПодразделений.Возврат = ТзПодразделений.Возврат + тзНачисленийУдержаний.Возврат ;
КонецЕсли;
КонецЕсли; // Если ПолучитьСчет(, СчетПоКоду("681")) =1 Тогда                   
КонецЦикла;            

тзНачислений.Сортировать("+Начисление");
тзУдержаний.Сортировать("+Счет");
СтрокаСортировки = """";
Если ГруппироватьПоПодразделениям = 1 Тогда      
СтрокаСортировки = "+Подразделение";
КонецЕсли;                                    
Если ПоТабельномуНомеру = 1 Тогда      
СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+ТабельныйНомер","+ТабельныйНомер");
Иначе
СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+Сотрудник","+Сотрудник");
КонецЕсли;

Если ПустоеЗначение(СтрокаСортировки) = 0 Тогда
тзНачисленийУдержаний.Сортировать(СтрокаСортировки);
КонецЕсли;


Т.ВывестиСекцию("Шапка|Сотрудник");

тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Представление = СокрЛП(тзНачислений.Начисление);
Т.ПрисоединитьСекцию("Шапка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;

Т.ПрисоединитьСекцию("Шапка|ВсегоНачислено");

тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Представление = тзУдержаний.Счет.Наименование;
Т.ПрисоединитьСекцию("Шапка|Удержание");
КонецЦикла;

Т.ПрисоединитьСекцию("Шапка|ВсегоУдержано");

Т.ПрисоединитьСекцию("Шапка|Выплачено");

Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Шапка|Возврат");
КонецЕсли;

Т.ПрисоединитьСекцию("Шапка|КВыплате");

Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Шапка|СоцНалог");
КонецЕсли;

Если ГруппироватьПоПодразделениям = 1 Тогда
ПредыдущееПодразделение = """";
КонецЕсли;
НомерСтроки = 0;
тзНачисленийУдержаний.ВыбратьСтроки();
Пока тзНачисленийУдержаний.ПолучитьСтроку() = 1 Цикл
Если ГруппироватьПоПодразделениям = 1 Тогда
// Проверим смену подразделения
Если тзНачисленийУдержаний.Подразделение <> ПредыдущееПодразделение Тогда
// Позициониируемся на итогах по подразделению
// в таблице подразделений                                    
ПредыдущееПодразделение = тзНачисленийУдержаний.Подразделение;
НомерСтроки = 0;
Стр = """";
Если тзПодразделений.НайтиЗначение(тзНачисленийУдержаний.Подразделение,Стр,"Подразделение") = 1 Тогда
тзПодразделений.ПолучитьСтрокуПоНомеру(Стр);
ВсегоНачислено = 0;
ВсегоУдержано = 0;
Начисления = тзПодразделений.Начисления;
Удержания = тзПодразделений.Удержания;
Если ПустоеЗначение(Начисления) = 0 Тогда
ВсегоНачислено = Начисления.Итог("Сумма");
КонецЕсли;
Если ПустоеЗначение(Удержания) = 0 Тогда
ВсегоУдержано = Удержания.Итог("Сумма");
КонецЕсли;
Т.ВывестиСекцию("Подразделение|Сотрудник");
тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Стр = 0; Начислено = 0; Дни = 0; Часы = 0;
Если ПустоеЗначение(Начисления) = 0 Тогда
Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда
Начисления.ПолучитьСтрокуПоНомеру(Стр);
Начислено = Начисления.Сумма;
Дни = Начисления.Дни;
Часы = Начисления.Часы;
КонецЕсли;
КонецЕсли;       
Т.ПрисоединитьСекцию("Подразделение|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;
Т.ПрисоединитьСекцию("Подразделение|ВсегоНачислено");
тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Стр = 0; Удержано = 0;
Если ПустоеЗначение(Удержания) = 0 Тогда
Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда
Удержания.ПолучитьСтрокуПоНомеру(Стр);
Удержано = Удержания.Сумма;
КонецЕсли;
КонецЕсли;
Т.ПрисоединитьСекцию("Подразделение|Удержание");
КонецЦикла;
Т.ПрисоединитьСекцию("Подразделение|ВсегоУдержано");
Т.ПрисоединитьСекцию("Подразделение|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Подразделение|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Подразделение|КВыплате");
Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Подразделение|СоцНалог");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
ВсегоНачислено = 0;
ВсегоУдержано = 0;
Начисления = тзНачисленийУдержаний.Начисления;
Удержания = тзНачисленийУдержаний.Удержания;
Если ПустоеЗначение(Начисления) = 0 Тогда
ВсегоНачислено = Начисления.Итог("Сумма");
КонецЕсли;
Если ПустоеЗначение(Удержания) = 0 Тогда
ВсегоУдержано = Удержания.Итог("Сумма");
КонецЕсли;
Т.ВывестиСекцию("Строка|Сотрудник");
тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Стр = 0; Начислено = 0; Дни = 0; Часы = 0;
Если ПустоеЗначение(Начисления) = 0 Тогда
Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда
Начисления.ПолучитьСтрокуПоНомеру(Стр);
Начислено = Начисления.Сумма;
Дни = Начисления.Дни;
Часы = Начисления.Часы;
КонецЕсли;
КонецЕсли;      
Т.ПрисоединитьСекцию("Строка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;
Т.ПрисоединитьСекцию("Строка|ВсегоНачислено");
тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Стр = 0; Удержано = 0;
Если ПустоеЗначение(Удержания) = 0 Тогда
Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда
Удержания.ПолучитьСтрокуПоНомеру(Стр);
Удержано = Удержания.Сумма;
КонецЕсли;
КонецЕсли;
Т.ПрисоединитьСекцию("Строка|Удержание");
КонецЦикла;
Т.ПрисоединитьСекцию("Строка|ВсегоУдержано");
Т.ПрисоединитьСекцию("Строка|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Строка|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Строка|КВыплате");
Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Строка|СоцНалог");
КонецЕсли;
КонецЦикла;      

Т.ВывестиСекцию("Подвал|Сотрудник");

тзНачислений.ВыбратьСтроки();
Пока тзНачислений.ПолучитьСтроку() = 1 Цикл
Дни = тзНачислений.Дни;
Часы = тзНачислений.Часы;                                                      
Т.ПрисоединитьСекцию("Подвал|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));
КонецЦикла;

Т.ПрисоединитьСекцию("Подвал|ВсегоНачислено");

тзУдержаний.ВыбратьСтроки();
Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл
Т.ПрисоединитьСекцию("Подвал|Удержание");
КонецЦикла;

Т.ПрисоединитьСекцию("Подвал|ВсегоУдержано");

Т.ПрисоединитьСекцию("Подвал|Выплачено");
Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда
Т.ПрисоединитьСекцию("Подвал|Возврат");
КонецЕсли;
Т.ПрисоединитьСекцию("Подвал|КВыплате");

Если ОтображатьСоциальныйНалог = 1 Тогда
Т.ПрисоединитьСекцию("Подвал|СоцНалог");
КонецЕсли;
            
ВерхнийКолонтитул = "Расчетно-платежная ведомость "+?(ТипЗначения(РазделительУчета)=0, """", " "+РазделительУчета);
НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0," Пользователь: "+ИмяПользователя(),"""");

Т.ТолькоПросмотр(1);
Т.Опции(0, 0, 11, 4, "ОпцииПечатиРасчетноПлатежнаяВедомость", "РасчетноПлатежнаяВедомость");
Т.ОбластьПечати(2);
Т.ПараметрыСтраницы(1,,,,,,,,, 0);
Т.Показать(ВерхнийКолонтитул, """");

Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Тогда
       СтрокаДействийФормы = "#Закрыть";
КонецЕсли;

КонецПроцедуры

//-----------------------------------------------
Процедура УправлениеРУ(ТипУправления="""")
Если ТипУправления = """" Тогда
Если ПустоеЗначение(РазделительУчета) = 1 Тогда
Форма.РазделительУчета.Доступность(0);
ПоВсемРУ = 1;
Иначе
ПоВсемРУ = 0;
КонецЕсли;
ИначеЕсли ТипУправления = "ПоВсемРУ" Тогда
Если ПоВсемРУ = 1 Тогда
РазделительУчета = 0;
Форма.РазделительУчета.Доступность(0);
Иначе
Форма.РазделительУчета.Доступность(1);
КонецЕсли;
КонецЕсли;
УстановитьВладельца(РазделительУчета, Подразделение);
КонецПроцедуры

//-----------------------------------------------
Процедура ПриОткрытии()

глДоступностьОрганизацииВОтчете(Контекст);

ВидДеятельности=Константа.Бюджет;

Если глФлагРасшифровки = 1 Тогда
Закрыть = 1;
Обновить = глОбновить;

РазделительУчета = глРасшифровка.Получить("РазделительУчета");
ВариантФормирования = глРасшифровка.Получить("ВариантФормирования");
Дата1 = глРасшифровка.Получить("Дата1");
Дата2 = глРасшифровка.Получить("Дата2");
Подразделение = глРасшифровка.Получить("Подразделение");
ДокументНачисления = глРасшифровка.Получить("ДокументНачисления");
СписокСотрудников = глРасшифровка.Получить("СписокСотрудников");
ПоТабельномуНомеру = глРасшифровка.Получить("ПоТабельномуНомеру");
ОтображатьСоциальныйНалог = глРасшифровка.Получить("ОтображатьСоциальныйНалог");
ОтображатьДниЧасыПоВидамНачислений = глРасшифровка.Получить("ОтображатьДниЧасыПоВидамНачислений");
ГруппироватьПоПодразделениям = глРасшифровка.Получить("ГруппироватьПоПодразделениям");

Если Обновить <> 0 Тогда
Т = глТаблица;
КонецЕсли;

Если Обновить <> 2 Тогда
Сформировать();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Иначе            
ВариантФормирования = 1;
ДокументНачисления = """";
Закрыть = 0;
Обновить = 0;
Дата1 = НачалоПериодаБИ();
Дата2 = КонецПериодаБИ();
КонецЕсли;

ПриВыбореВарианта();
УправлениеРУ();

КонецПроцедуры"

 
Thorvardr
Пост №2
""Многа букав..." но осилилсмотрите внимательно, у...
07.04.2010 21:37
 

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Учет, налогообложение, автоматизация
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Интернет-конференция: Оформление командировок по новым правилам
  • ЕГАИС

1С бесплатно 1С-Отчетность 1С-Такском 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление небольшой фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПАРК-Риски 1СПредприятие 8 2-НДФЛ 3-НДФЛ 4-ФСС 5 минут 6-НДФЛ CRM Агентский договор. Учет административная ответственность адресный классификатор акцизы алкоголь алкогольная продукция амортизационная премия амортизация арбитражная практика аттестация рабочих мест аудит аудиторские организации база 1с база для начисления страховых взносов база по страховым взносам база по налогу на прибыль банк и касса в 1с банкротство безнадежная задолженность безналичные расчеты бланки строгой отчетности больничное пособие больничный листок бухгалтер бухгалтерия автономного учреждения бухгалтерская отчетность бухгалтерские события бухгалтерский баланс бухгалтерский учет бухучет Бытовые услуги. Учет бюджет муниципального образования бюджет поселения бюджетная отчетность бюджетный учет ВАС РФ Вахтовый метод.Оплата ввоз товаров взаимозависимые_лица взноcы в ПФР взносы в ФОМС взносы в ФСС взносы на травматизм видео 1С водный налог возврат переплаты восстановление НДС вывоз товаров выездная налоговая проверка выездная проверка выплата зарплаты выплаты иностранному работнику выплаты работникам выплаты физическим лицам высококвалифицированные специалисты вычет НДС вычеты по НДФЛ ВЭД ГК РФ госпошлина государственная регистрация государственные и муниципальные закупки гражданско-правовой договор графики работы двойное налогообложение дебиторка декларация по алкоголю декларация по ЕНВД декларация по НДС денежные документы День Бухгалтерии детские пособия ДиректБанк договор комиссии договор подряда договор поставки договор транспортной экспедиции договорная политика документальное оформление документооборот долговые обязательства должная осмотрительность доходы организации ЕГАИС ЕГРЮЛ ежемесячная отчетность ЕНВД ЕСН ЕСХН задержка заработной платы задолженность по налогам займы закон о бухгалтерском учете занимательная бухгалтерия заработная плата зарплата зарплатные налоги зарубежная командировка защита персональных данных заявление о постановке на учет земельный налог изменения 2015 изменения в законодательстве изменения в законодательстве 2012 изменения в законодательстве 2013 имущественные вычеты имущественный налоговый вычет индивидуальный предприниматель иностранные компании иностранный работник интернет-компании интернет-магазины ИП ИП на ЕНВД ИС 1С:ИТС исправление бухгалтерских ошибок исправление ошибок ИТС ИФНС кадастровая стоимость кадровое оформление камеральная проверка кассовая дисциплина кассовые операции КБК квоты на иностранных рабочих КИК ККТ КЛАДР ключевая ставка книга на УСН книга покупок книга продаж КоАП РФ коды видов продукции командировка командировочные расходы компенсации работникам компенсационные выплаты компенсация за отпуск консервация основных средств консолидированная группа контролируемые сделки корректировочный счет-фактура коэффициент-дефлятор крупнейшие налогоплательщики курортный сбор курсовые разницы лизинг лизинговое имущество ликвидация организации лицензирование льготы по ндс малый бизнес маркировка изделий маркировка изделий из натурального меха маркировка меховых изделий маркировка товара материальная выгода материальная помощь материнский капитал международные стандарты миниденьги модернизация основных средств МРОТ МСФО наличные расчеты налог на игорный бизнес налог на имущество налог на имущество физических лиц налог на прибыль налоги физических лиц налоговая база по налогу на прибыль налоговая база по ндс налоговая база по НДС налоговая декларация налоговая ответственность налоговая отчетность налоговая политика налоговая проверка налоговое администрирование налоговые каникулы налоговые льготы налоговые проверки налоговый агент налоговый агент НДФЛ налоговый агент по НДС налоговый агент по НДФЛ налоговый агент по ндфл налоговый вычет налоговый контроль налоговый мониторинг налоговый учет налогообложение доходов налогоплательщик начисление пени НДПИ НДС НДС по ставке 10% НДС при ввозе НДС при экспорте НДС-2015 НДФЛ некоммерческие организации учет неотделимые улучшения нерезиденты НИОКР НК РФ НМА новая форма декларации новая форма расчета новости нормы естественной убыли нулевая декларация нулевая ставка обзор обзор бухгалтерских событий обзор новостей обмен документами обновление КЛАДР обособленное подразделение обособленные подразделения обучение 1с оказание услуг ОКВЭД2 ОКПД2 онлайн-касса онлайн-ккт онлайн-ККТ освобождение от налогообложения освобождение от ндс освобождение от НДС основные средства отпускные отходы отчетность в ПФР отчетность в росстат отчетность в Росстат отчетность организации отчетность по страховым взносам отчетность предпринимателя оформление счета-фактуры охрана труда патентная система ПБУ 18 первичные документы перенос убытков персонифицированный учет план счетов плата за негативное воздействие на окружающую среду плата за проезд грузовиков платежи платежное поручение платежные документы 1с платежный агент платежный терминал повышение ставок подакцизные товары подтверждающие документы подтверждение расходов полномочия налоговых органов пониженные тарифы поправки в НК РФ поправки в тк рф поправки в ТК РФ порядок маркировки товаров пособие по беременности и родам пособие по временной нетрудоспособности пособие по нетрудоспособности пособия за счет ФСС посреднические договоры постановка на учет постановка на учет в налоговом органе права налогоплательщика представление сведений приказ Минфина применение ККТ приостановление операций по счету проверка ИНН/КПП проверка контрагентов продажа алкогольной продукции производственный календарь проф. Пятов профессиональные вычеты ПСН псн путевой лист работники-иностранцы раздельный учет расходы на ГСМ расходы на рекламу расходы организации расчет больничного листа расчет заработной платы расчет НДПИ расчет отпускных расчет себестоимости расчет страховых взносов расчетный счет расчеты с работниками регистрация недвижимости регистрация юридических лиц реконструкция основных средств ремонт основных средств реорганизация росалкогольрегулирование РСВ-1 рыночные цены самозанятые граждане свод отчетов сдача имущества в аренду секреты 1С:ЗУП сельскохозяйственный товаропроизводитель система "Платон" служебная командировка снижение ставок совместители совмещение налоговых режимов составление и сдача отчетности составление и сдача отчетности социальное страхование социальные вычеты социальный налоговый вычет спецоценка условий труда средний заработок ставка НДС Ставка НДФЛ ставка рефинансирования ставка УСН стандартные вычеты стандарты бухучета статистика статистическая отчетность статотчетность страхование страховые взносы страховые взносы в пфр страховые взносы в фсс страховые взносы в ФСС страховые взносы для самозанятых страховые взносы на травматизм страховые тарифы судебные издержки суммовые разницы суточные счет-фактура такси таможенные платежи таможенный союз ТК РФ торг-12 торговый сбор транспортный налог трудовая книжка трудовой договор увольнение по инициативе руководителя увольнение по соглашению сторон уголовная ответственность удержание алиментов УКД универсальный корректировочный документ УПД уплата налога уплата налогов упрощенная система налогообложения УСН уставный капитал уточненка утрата права на усн учет аренды учет в АО учет в ООО учет в сельском хозяйстве учет в строительстве учет в туризме учет дивидендов учет доходов при УСН учет доходов при усн учет импорта учет лизинга учет МПЗ учет на производстве учет ОС учет основных средств учет премий учет расходов учет расходов при УСН учет расходов при усн учет реализации учет скидок учет субсидий учет товаров учет ценных бумаг учет экспорта учетная политика учредительные документы факсимиле ФИАС финансовый анализ финансовый результат ФНС РФ форма 6-НДФЛ формы документов ФСС штрафные санкции ЭДО экологические платежи экспорт в страны ЕАЭС экспорт продукции электронная отчетность электронная подпись электронные счета-фактуры электронный документооборот электронный формат энциклопедия проверок

Все теги
X

Яндекс-виджет: Новости
Яндекс-виджет: Полезные материалы
Информеры