"Нужна РасчетноПлатежнаяВедомость по видам деятельности<br>Добавил строку БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);<br>Ошибка число фильтров субконто превысило допустимое значение <br><br><br>Перем Т;<br>Перем Обновить;<br>Перем Расшифровка;<br>Перем Закрыть; <br><br>Перем СписокСотрудников;<br><br>//-----------------------------------------------<br>Процедура УстановитьВладельца(РУ, Объект)<br> Назначить = 0;<br> Если ТипЗначенияСтр(Объект) = "Справочник" Тогда<br> Назначить = 1; <br> Если (ТипЗначенияСтр(РУ) = "Справочник") Тогда<br> МДСубконто = Метаданные.Справочник(Объект.Вид());<br> Если МДСубконто.Владелец.Выбран() = 1 Тогда<br> Если МДСубконто.Владелец.Идентификатор = РУ.Вид() Тогда<br> Назначить = 2;<br> КонецЕсли;<br> КонецЕсли; <br> КонецЕсли;<br> КонецЕсли;<br> Если Назначить = 1 Тогда<br> Объект.ИспользоватьВладельца("""");<br> ИначеЕсли Назначить = 2 Тогда<br> Объект.ИспользоватьВладельца(РУ);<br> КонецЕсли;<br>КонецПроцедуры<br><br>//-------------------------------------------------------------------<br>Процедура ПриВыбореВарианта()<br> Если ВариантФормирования = 1 Тогда <br> Форма.ДокументНачисления.Доступность(0);<br> Форма.ПодписьС.Доступность(1);<br> Форма.Дата1.Доступность(1);<br> Форма.ПодписьПо.Доступность(1);<br> Форма.Дата2.Доступность(1);<br> Форма.КнПериода.Доступность(1);<br> Форма.ПодписьПодразделения.Доступность(1);<br> Форма.Подразделение.Доступность(1);<br> Форма.КнОчиститьПодразделение.Доступность(1);<br> Иначе<br> Форма.ПодписьС.Доступность(0);<br> Форма.Дата1.Доступность(0);<br> Форма.ПодписьПо.Доступность(0);<br> Форма.Дата2.Доступность(0);<br> Форма.КнПериода.Доступность(0);<br> Форма.ПодписьПодразделения.Доступность(0);<br> Форма.Подразделение.Доступность(0);<br> Подразделение = 0;<br> Форма.КнОчиститьПодразделение.Доступность(0); <br> Форма.ДокументНачисления.Доступность(1);<br> КонецЕсли;<br>КонецПроцедуры //ПриВыбореВарианта<br><br>//-----------------------------------------------<br>Функция РасшифровкаОбновить(Обновить)<br> Расшифровка.Установить("Обновить", Обновить);<br> Возврат Расшифровка;<br>КонецФункции //Функция РасшифровкаОбновить(Обновить)<br><br>//-----------------------------------------------<br>Функция ПредставлениеУдержания(Сотрудник, Счет, Субконто1, Субконто2, Субконто3)<br> Представление = "Удержание"; <br> СписокСубконто = СоздатьОбъект("СписокЗначений");<br> СписокСубконто.ДобавитьЗначение(Субконто1);<br> СписокСубконто.ДобавитьЗначение(Субконто2);<br> СписокСубконто.ДобавитьЗначение(Субконто3);<br> Для СчетчикЦиклов = 1 по СписокСубконто.РазмерСписка() Цикл<br> ЗначениеСубконто = СписокСубконто.ПолучитьЗначение(СчетчикЦиклов);<br> Если глВидЗначения(ЗначениеСубконто) = "НалогиСборыОтчисления" Тогда<br> Представление = СокрЛП(ЗначениеСубконто);<br> Прервать;<br> КонецЕсли;<br> Если глВидЗначения(ЗначениеСубконто) = "Сотрудники" Тогда<br> Представление = Счет.Наименование;<br> Прервать;<br> КонецЕсли;<br> Если глВидЗначения(ЗначениеСубконто) = "Контрагенты" Тогда<br> Представление = """";<br> Если ПустоеЗначение(Субконто2) = 0 Тогда<br> Представление = СокрЛП(Субконто2)+": ";<br> КонецЕсли;<br> Представление = Представление + СокрЛП(Субконто1);<br> Если ПустоеЗначение(Субконто3) = 0 Тогда<br> Представление = Представление + ", " + СокрЛП(Субконто3);<br> КонецЕсли;<br> Прервать;<br> КонецЕсли;<br> КонецЦикла;<br> Возврат Представление;<br>КонецФункции<br> <br>//-----------------------------------------------<br>Функция ПолучитьИмяСекцииНачисления(Дни, Часы) <br> ИмяСекцииНачисления = "Начисление"; <br> <br> Если ОтображатьДниЧасыПоВидамНачислений = 0 Тогда<br> Возврат ИмяСекцииНачисления;<br> КонецЕсли;<br> <br> Если Дни + Часы > 0 Тогда<br> ИмяСекцииНачисления = "НачисленияПоДням";<br> КонецЕсли; <br> <br> Возврат ИмяСекцииНачисления;<br>КонецФункции <br><br>//-----------------------------------------------<br>Процедура Сформировать(ФлагЗакрытияФормы = 0)<br> <br> // проверка периода бухгалтерских итогов<br> Если глПределыБухгалтерскихИтогов(, Дата2, 0) = 0 Тогда<br> СтатусВозврата(0);<br> Возврат;<br> КонецЕсли;<br> <br> Если (ВариантФормирования = 1) Тогда<br> Если (ПустоеЗначение(Дата1) = 1) или (ПустоеЗначение(Дата2) = 1) Тогда<br> Предупреждение("Неверно указан период формирования отчета!",60);<br> СтатусВозврата(0);<br> Возврат;<br> КонецЕсли; <br> КонецЕсли;<br> <br> Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 0) Тогда<br> Предупреждение("Необходимо выбрать документ начисления!",60);<br> СтатусВозврата(0);<br> Возврат;<br> КонецЕсли; <br> <br> Если (ВариантФормирования = 2) и (ДокументНачисления.Выбран() = 1) Тогда<br> СписокСотрудников = СоздатьОбъект("СписокЗначений");<br> ДокументНачисления.ВыгрузитьТабличнуюЧасть(СписокСотрудников, "Сотрудник");<br> Иначе <br> СписокСотрудников = """";<br> КонецЕсли;<br> <br> Если (ТипЗначенияСтр(Т) <> "Таблица")ИЛИ(Обновить=0) Тогда<br> Т = СоздатьОбъект("Таблица");<br> Иначе<br> Т.Очистить();<br> КонецЕсли; <br> <br> Т.ИсходнаяТаблица("Таблица");<br> <br> Расшифровка = СоздатьОбъект("СписокЗначений");<br> Расшифровка.Установить("Отчет", "РасчетноПлатежнаяВедомость");<br> Расшифровка.Установить("РазделительУчета", РазделительУчета);<br> Расшифровка.Установить("Дата1", Дата1);<br> Расшифровка.Установить("Дата2", Дата2);<br> Расшифровка.Установить("Подразделение", Подразделение);<br> Расшифровка.Установить("СписокСотрудников", СписокСотрудников);<br> Расшифровка.Установить("ПоТабельномуНомеру", ПоТабельномуНомеру);<br> Расшифровка.Установить("ДокументНачисления", ДокументНачисления);<br> Расшифровка.Установить("ВариантФормирования", ВариантФормирования);<br> Расшифровка.Установить("ОтображатьСоциальныйНалог", ОтображатьСоциальныйНалог);<br> Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений", ОтображатьДниЧасыПоВидамНачислений);<br> Расшифровка.Установить("ГруппироватьПоПодразделениям", ГруппироватьПоПодразделениям);<br><br> Т.ВывестиСекцию("Обновить|Сотрудник");<br> <br> Если ВариантФормирования = 1 Тогда<br> Расшифровка.Установить("Отчет",);<br> Расшифровка.Установить("РазделительУчета",);<br> Расшифровка.Установить("Дата1",);<br> Расшифровка.Установить("Дата2",);<br> Расшифровка.Установить("Подразделение",);<br> Расшифровка.Установить("СписокСотрудников",);<br> Расшифровка.Установить("ПоТабельномуНомеру",);<br> Расшифровка.Установить("ОтображатьСоциальныйНалог",);<br> Расшифровка.Установить("ОтображатьДниЧасыПоВидамНачислений");<br> Расшифровка.Установить("ГруппироватьПоПодразделениям",);<br> Иначе<br> Расшифровка.Установить("ДокументНачисления", ДокументНачисления);<br> КонецЕсли;<br> <br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> // создаем вспомогательную таблицу для группировки по подразделениям<br> тзПодразделений = СоздатьОбъект("ТаблицаЗначений");<br> тзПодразделений.НоваяКолонка("Подразделение");<br> тзПодразделений.НоваяКолонка("Начисления", "ТаблицаЗначений");<br> тзПодразделений.НоваяКолонка("Удержания", "ТаблицаЗначений");<br> тзПодразделений.НоваяКолонка("СНК", "Число", 15, 2);<br> тзПодразделений.НоваяКолонка("СКК", "Число", 15, 2);<br> тзПодразделений.НоваяКолонка("Выдано", "Число", 15, 2);<br> тзПодразделений.НоваяКолонка("Возврат", "Число", 15, 2);<br> тзПодразделений.НоваяКолонка("Дни", "Число", 15, 0); <br> тзПодразделений.НоваяКолонка("Часы", "Число", 15, 0); <br> тзПодразделений.НоваяКолонка("СоциальныйНалог", "Число", 15, 2); <br> тзПодразделений.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2); <br> КонецЕсли;<br> <br> тзНачисленийУдержаний = СоздатьОбъект("ТаблицаЗначений");<br> тзНачисленийУдержаний.НоваяКолонка("Сотрудник"); <br> тзНачисленийУдержаний.НоваяКолонка("Подразделение"); <br> тзНачисленийУдержаний.НоваяКолонка("Должность"); <br> тзНачисленийУдержаний.НоваяКолонка("ТабельныйНомер");<br> тзНачисленийУдержаний.НоваяКолонка("Начисления", "ТаблицаЗначений");<br> тзНачисленийУдержаний.НоваяКолонка("Удержания", "ТаблицаЗначений");<br> тзНачисленийУдержаний.НоваяКолонка("СНК", "Число", 15, 2);<br> тзНачисленийУдержаний.НоваяКолонка("СКК", "Число", 15, 2);<br> тзНачисленийУдержаний.НоваяКолонка("Выдано", "Число", 15, 2);<br> тзНачисленийУдержаний.НоваяКолонка("Возврат", "Число", 15, 2);<br> тзНачисленийУдержаний.НоваяКолонка("Дни", "Число", 10, 1); <br> тзНачисленийУдержаний.НоваяКолонка("Часы", "Число", 10, 0); <br> тзНачисленийУдержаний.НоваяКолонка("СоциальныйНалог", "Число", 15, 2); <br> тзНачисленийУдержаний.НоваяКолонка("СоциальноеСтрахование", "Число", 15, 2); <br> <br> <br> тзНачислений = СоздатьОбъект("ТаблицаЗначений");<br> тзНачислений.НоваяКолонка("Начисление");<br> тзНачислений.НоваяКолонка("Сумма", "Число", 15, 2);<br> тзНачислений.НоваяКолонка("Дни", "Число", 10, 1);<br> тзНачислений.НоваяКолонка("Часы", "Число", 10, 0);<br> <br> тзУдержаний = СоздатьОбъект("ТаблицаЗначений");<br> тзУдержаний.НоваяКолонка("Счет", "Счет.Основной"); <br> тзУдержаний.НоваяКолонка("Сумма", "Число", 15, 2);<br> <br> БухИтоги = СоздатьОбъект("БухгалтерскиеИтоги"); <br> БухИтоги.ИспользоватьПланСчетов(ВыбранныйПланСчетов());<br> <br> <br> Если Метаданные.РазделительУчета.Выбран() = 1 Тогда<br> Если ПустоеЗначение(РазделительУчета) = 0 Тогда<br> БухИтоги.ИспользоватьРазделительУчета(РазделительУчета);<br> КонецЕсли;<br> КонецЕсли; <br> <br> НачДата = ?(ВариантФормирования = 1, Дата1, ДокументНачисления);<br> КонДата = ?(ВариантФормирования = 1, Дата2, ДокументНачисления);<br> <br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "335");<br> БухИтоги.ВыбратьСубконто(1);<br> <br> Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл<br> Если Подразделение.Выбран() = 1 Тогда<br> Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда<br> Продолжить;<br> КонецЕсли;<br> КонецЕсли;<br> тзНачисленийУдержаний.НоваяСтрока();<br> тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто(1); <br> тзНачисленийУдержаний.Подразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2); <br> тзНачисленийУдержаний.Должность = БухИтоги.Субконто(1).Должность;<br> тзНачисленийУдержаний.ТабельныйНомер = БухИтоги.Субконто(1).Код;<br> // Если нужно группировать по подразделениям, то<br> // позиционируемся на запись в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);<br> Стр = """";<br> Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда<br> ТзПодразделений.НоваяСтрока();<br> ТзПодразделений.Подразделение = ТекПодразделение;<br> ТзПодразделений.Начисления = СоздатьОбъект("ТаблицаЗначений");<br> <br> ТзПодразделений.Начисления.НоваяКолонка("Начисление");<br> ТзПодразделений.Начисления.НоваяКолонка("Сумма", "Число", 15, 2); <br> ТзПодразделений.Начисления.НоваяКолонка("Дни", "Число", 10, 1); <br> ТзПодразделений.Начисления.НоваяКолонка("Часы", "Число", 10, 0); <br> <br> <br> ТзПодразделений.Удержания = СоздатьОбъект("ТаблицаЗначений");<br> ТзПодразделений.Удержания.НоваяКолонка("Счет", "Счет.Основной"); <br> ТзПодразделений.Удержания.НоваяКолонка("Сумма", "Число", 15, 2);<br> ТзПодразделений.СНК = 0;<br> ТзПодразделений.СКК = 0;<br> ТзПодразделений.Выдано = 0;<br> ТзПодразделений.Возврат = 0;<br> ТзПодразделений.Дни = 0;<br> ТзПодразделений.Часы = 0;<br> ТзПодразделений.СоциальныйНалог = 0;<br> ТзПодразделений.СоциальноеСтрахование = 0; <br> Иначе<br> ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);<br> КонецЕсли;<br> КонецЕсли;<br> КонецЦикла; <br> <br> НачислениеОклад = глПолучитьНачисление("Оклад", 1, "Заработная плата");<br> НачислениеТариф = глПолучитьНачисление("Тариф", 1, "Заработная плата");<br> <br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыНачисленийИПрочихДоходов);<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ЕдиницыУчетаРабочегоВремени);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, "ПНС");<br> БухИтоги.ВыбратьСубконто(1);<br> <br> Пока БухИтоги.ПолучитьСубконто(1) = 1 Цикл<br> <br> Стр = 0;<br> Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(1), Стр, "Сотрудник") = 0 Тогда<br> Продолжить;<br> Иначе<br> тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);<br> КонецЕсли; <br> <br> // Если нужно группировать по подразделениям, то<br> // позиционируемся на запись в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);<br> Стр = """";<br> Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда<br> Продолжить; <br> Иначе<br> ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);<br> КонецЕсли;<br> КонецЕсли;<br> <br> Начисления = СоздатьОбъект("ТаблицаЗначений");<br> Начисления.НоваяКолонка("Начисление");<br> Начисления.НоваяКолонка("Сумма", "Число", 15, 2);<br> Начисления.НоваяКолонка("Дни", "Число", 10, 1);<br> Начисления.НоваяКолонка("Часы", "Число", 10, 0); <br> <br> БухИтоги.ВыбратьСубконто(2);<br> Пока БухИтоги.ПолучитьСубконто(2) = 1 Цикл <br> Если БухИтоги.ДО("С") = 0 Тогда <br> Продолжить;<br> КонецЕсли; <br> // по дням и часам <br> Дни = 0; <br> Часы = 0; <br> БухИтоги.ВыбратьСубконто(3);<br> Пока БухИтоги.ПолучитьСубконто(3) = 1 Цикл<br> Если БухИтоги.Субконто(3) = Перечисление.ЕдиницыУчетаРабочегоВремени.Часы Тогда<br> Часы = Часы + БухИтоги.ДО("К");<br> Иначе <br> Дни = Дни + БухИтоги.ДО("К");<br> КонецЕсли;<br> КонецЦикла; <br> <br> Начисления.НоваяСтрока();<br> Начисления.Начисление = БухИтоги.Субконто(2);<br> Начисления.Сумма = БухИтоги.ДО("С"); <br> Начисления.Дни = Дни; <br> Начисления.Часы = Часы;<br> Стр = 0;<br> Если тзНачислений.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда<br> тзНачислений.НоваяСтрока(); <br> тзНачислений.Начисление = БухИтоги.Субконто(2);<br> тзНачислений.Сумма = 0;<br> тзНачислений.Дни = 0;<br> тзНачислений.Часы = 0;<br> Иначе<br> тзНачислений.ПолучитьСтрокуПоНомеру(Стр); <br> КонецЕсли; <br> <br> тзНачислений.Сумма = тзНачислений.Сумма + БухИтоги.ДО("С");<br> тзНачислений.Дни = Дни; <br> тзНачислений.Часы = Часы;<br> // Накапливаем итоги по подразделениям<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> Стр = """";<br> Если тзПодразделений.Начисления.НайтиЗначение(БухИтоги.Субконто(2), Стр, "Начисление") = 0 Тогда<br> тзПодразделений.Начисления.НоваяСтрока(); <br> тзПодразделений.Начисления.Начисление = БухИтоги.Субконто(2);<br> тзПодразделений.Начисления.Сумма = БухИтоги.ДО("С");<br> тзПодразделений.Начисления.Дни = Дни; <br> тзПодразделений.Начисления.Часы = Часы;<br> Иначе<br> тзПодразделений.Начисления.ПолучитьСтрокуПоНомеру(Стр);<br> тзПодразделений.Начисления.Сумма = тзПодразделений.Начисления.Сумма + БухИтоги.ДО("С");<br> тзПодразделений.Начисления.Дни = тзПодразделений.Начисления.Дни + Дни; <br> тзПодразделений.Начисления.Часы = тзПодразделений.Начисления.Часы + Часы;<br> КонецЕсли; <br> <br> тзПодразделений.Дни = тзПодразделений.Дни + Дни;<br> тзПодразделений.Часы = тзПодразделений.Часы + Часы;<br> КонецЕсли; <br> КонецЦикла; // По видам начислений<br> тзНачисленийУдержаний.Начисления = Начисления;<br> тзНачисленийУдержаний.Дни = Начисления.Итог("Дни"); <br> тзНачисленийУдержаний.Часы = Начисления.Итог("Часы"); <br> КонецЦикла;<br> <br> БухИтоги.ВключатьСубсчета(1, -1);<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> СписокСчетовЗапроса = "335";<br> <br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> СписокСчетовЗапроса = СписокСчетовЗапроса + ",ПНЦ"; <br> БухИтогиВсп = СоздатьОбъект("БухгалтерскиеИтоги");<br> Если Метаданные.РазделительУчета.Выбран() = 1 Тогда<br> Если ПустоеЗначение(РазделительУчета) = 0 Тогда<br> БухИтогиВсп.ИспользоватьРазделительУчета(РазделительУчета);<br> КонецЕсли;<br> КонецЕсли; <br> БухИтогиВсп.ВключатьСубсчета(-1, -1);<br> БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.Сотрудники, СписокСотрудников,1); <br> БухИтогиВсп.ИспользоватьСубконто(ВидыСубконто.ВидыПлатежей, Перечисление.ВидыПлатежей.НалогВзнос,2);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтоги.ИспользоватьСубконто(ВидыСубконто.ВидыДеятельности, ВидДеятельности);<br> //&&&&&&&&&&&&&&&&&&&&&&<br> БухИтогиВсп.ВыполнитьЗапрос(НачДата, КонДата, "321",,,3);<br> БухИтогиВсп.ВыбратьСубконто();<br> КонецЕсли; <br> <br> БухИтоги.ВыполнитьЗапрос(НачДата, КонДата, СписокСчетовЗапроса,,,3);<br> БухИтоги.ВыбратьСубконто();<br> Пока БухИтоги.ПолучитьСубконто() = 1 Цикл<br> Если Подразделение.Выбран() = 1 Тогда<br> Если БухИтоги.Субконто(1).Подразделение.Получить(КонДата) <> Подразделение Тогда<br> Продолжить;<br> КонецЕсли;<br> КонецЕсли;<br> <br> Стр = 0;<br> Если тзНачисленийУдержаний.НайтиЗначение(БухИтоги.Субконто(), Стр, "Сотрудник") = 1 Тогда<br> тзНачисленийУдержаний.ПолучитьСтрокуПоНомеру(Стр);<br> Иначе<br> тзНачисленийУдержаний.НоваяСтрока();<br> тзНачисленийУдержаний.Сотрудник = БухИтоги.Субконто();<br> КонецЕсли;<br> <br> // Если нужно группировать по подразделениям, то<br> // позиционируемся на запись в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТекПодразделение = БухИтоги.Субконто(1).Подразделение.Получить(Дата2);<br> Стр = """";<br> Если ТзПодразделений.НайтиЗначение(ТекПодразделение,Стр,"Подразделение") = 0 Тогда<br> Продолжить; <br> Иначе<br> ТзПодразделений.ПолучитьСтрокуПоНомеру(Стр);<br> КонецЕсли;<br> КонецЕсли;<br> <br> БухИтоги.ВыбратьСчета();<br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> // сумма исчисленного социального налога<br> Если БухИтоги.ПолучитьСчет(,СчетПоКоду("ПНЦ.1")) = 1 Тогда<br> тзНачисленийУдержаний.СоциальныйНалог = БухИтоги.ДО(); <br> // накапливаем итоги в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТзПодразделений.СоциальныйНалог = ТзПодразделений.СоциальныйНалог + БухИтоги.ДО(); <br> КонецЕсли; <br> КонецЕсли; <br> // сумма выплат в фонд обязательного социального страхования<br> СуммаСоцСтрах = 0;<br> Если БухИтогиВсп.ПолучитьСубконто(1,,БухИтоги.Субконто(1)) = 1 Тогда<br> СуммаСоцСтрах = БухИтогиВсп.КО();<br> БухИтогиВсп.ВыбратьКорСчета();<br> Если БухИтогиВсп.ПолучитьКорСчет(, СчетПоКоду("3398")) = 1 Тогда<br> СуммаСоцСтрах = СуммаСоцСтрах - БухИтогиВсп.КорКО();<br> КонецЕсли; <br> тзНачисленийУдержаний.СоциальноеСтрахование = СуммаСоцСтрах;<br> // накапливаем итоги в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТзПодразделений.СоциальноеСтрахование = ТзПодразделений.СоциальноеСтрахование + СуммаСоцСтрах;<br> КонецЕсли; <br> КонецЕсли; <br> КонецЕсли; <br> <br> Если БухИтоги.ПолучитьСчет(,СчетПоКоду("335")) = 1 Тогда<br> тзНачисленийУдержаний.СНК = БухИтоги.СНК("С");<br> тзНачисленийУдержаний.СКК = БухИтоги.СКК("С");<br> тзНачисленийУдержаний.Выдано = 0;<br> <br> Удержания = СоздатьОбъект("ТаблицаЗначений");<br> Удержания.НоваяКолонка("Счет", "Счет.Основной");<br> Удержания.НоваяКолонка("Сумма", "Число", 15, 2);<br> БухИтоги.ВыбратьКорСчета(,1);<br> Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл<br> Если БухИтоги.КорСчет.ЭтоГруппа() = 1 Тогда<br> Продолжить;<br> КонецЕсли;<br> Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда<br> тзНачисленийУдержаний.Выдано = тзНачисленийУдержаний.Выдано + БухИтоги.КорДО("С");<br> Продолжить;<br> КонецЕсли;<br> Удержания.НоваяСтрока();<br> Удержания.Счет = БухИтоги.КорСчет;<br> Удержания.Сумма = БухИтоги.КорДО("С");<br> Стр = 0;<br> Если тзУдержаний.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда<br> тзУдержаний.НоваяСтрока(); <br> тзУдержаний.Счет = БухИтоги.КорСчет;<br> тзУдержаний.Сумма = БухИтоги.КорДО("С");<br> Иначе<br> тзУдержаний.ПолучитьСтрокуПоНомеру(Стр);<br> тзУдержаний.Сумма = тзУдержаний.Сумма + БухИтоги.КорДО("С");<br> КонецЕсли; <br> // Накапливаем итоги по подразделениям<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> Стр = """";<br> Если тзПодразделений.Удержания.НайтиЗначение(БухИтоги.КорСчет, Стр, "Счет") = 0 Тогда<br> тзПодразделений.Удержания.НоваяСтрока(); <br> тзПодразделений.Удержания.Счет = БухИтоги.КорСчет;<br> тзПодразделений.Удержания.Сумма = БухИтоги.КорДО("С");<br> Иначе<br> тзПодразделений.Удержания.ПолучитьСтрокуПоНомеру(Стр);<br> тзПодразделений.Удержания.Сумма = тзПодразделений.Удержания.Сумма + БухИтоги.КорДО("С");<br> КонецЕсли; <br> КонецЕсли; <br> КонецЦикла;<br> тзНачисленийУдержаний.Удержания = Удержания;<br> БухИтоги.ВыбратьКорСчета(,2);<br> Пока БухИтоги.ПолучитьКорСчет() = 1 Цикл<br> Если (БухИтоги.КорСчет = СчетПоКоду("101")) или (БухИтоги.КорСчет = СчетПоКоду("103")) или (БухИтоги.КорСчет = СчетПоКоду("1021")) Тогда<br> тзНачисленийУдержаний.Возврат = тзНачисленийУдержаний.Возврат + БухИтоги.КорКО("С");<br> Прервать;<br> КонецЕсли;<br> КонецЦикла;<br> // накапливаем итоги в таблице Подразделений<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ТзПодразделений.СНК = ТзПодразделений.СНК + БухИтоги.СНК("С");<br> ТзПодразделений.СКК = ТзПодразделений.СКК + БухИтоги.СКК("С");<br> ТзПодразделений.Выдано = ТзПодразделений.Выдано + тзНачисленийУдержаний.Выдано;<br> ТзПодразделений.Возврат = ТзПодразделений.Возврат + тзНачисленийУдержаний.Возврат ;<br> КонецЕсли;<br> КонецЕсли; // Если ПолучитьСчет(, СчетПоКоду("681")) =1 Тогда <br> КонецЦикла; <br> <br> тзНачислений.Сортировать("+Начисление");<br> тзУдержаний.Сортировать("+Счет");<br> СтрокаСортировки = """";<br> Если ГруппироватьПоПодразделениям = 1 Тогда <br> СтрокаСортировки = "+Подразделение";<br> КонецЕсли; <br> Если ПоТабельномуНомеру = 1 Тогда <br> СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+ТабельныйНомер","+ТабельныйНомер"); <br> Иначе<br> СтрокаСортировки = СтрокаСортировки + ?(ПустоеЗначение(СтрокаСортировки) = 0,",+Сотрудник","+Сотрудник"); <br> КонецЕсли; <br> <br> Если ПустоеЗначение(СтрокаСортировки) = 0 Тогда<br> тзНачисленийУдержаний.Сортировать(СтрокаСортировки); <br> КонецЕсли;<br> <br> <br> Т.ВывестиСекцию("Шапка|Сотрудник"); <br> <br> тзНачислений.ВыбратьСтроки();<br> Пока тзНачислений.ПолучитьСтроку() = 1 Цикл<br> Представление = СокрЛП(тзНачислений.Начисление); <br> Т.ПрисоединитьСекцию("Шапка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы)); <br> КонецЦикла;<br> <br> Т.ПрисоединитьСекцию("Шапка|ВсегоНачислено"); <br> <br> тзУдержаний.ВыбратьСтроки();<br> Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл<br> Представление = тзУдержаний.Счет.Наименование;<br> Т.ПрисоединитьСекцию("Шапка|Удержание"); <br> КонецЦикла;<br> <br> Т.ПрисоединитьСекцию("Шапка|ВсегоУдержано");<br> <br> Т.ПрисоединитьСекцию("Шапка|Выплачено");<br> <br> Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда<br> Т.ПрисоединитьСекцию("Шапка|Возврат");<br> КонецЕсли;<br> <br> Т.ПрисоединитьСекцию("Шапка|КВыплате"); <br> <br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> Т.ПрисоединитьСекцию("Шапка|СоцНалог"); <br> КонецЕсли; <br> <br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> ПредыдущееПодразделение = """"; <br> КонецЕсли;<br> НомерСтроки = 0;<br> тзНачисленийУдержаний.ВыбратьСтроки();<br> Пока тзНачисленийУдержаний.ПолучитьСтроку() = 1 Цикл<br> Если ГруппироватьПоПодразделениям = 1 Тогда<br> // Проверим смену подразделения<br> Если тзНачисленийУдержаний.Подразделение <> ПредыдущееПодразделение Тогда <br> // Позициониируемся на итогах по подразделению<br> // в таблице подразделений <br> ПредыдущееПодразделение = тзНачисленийУдержаний.Подразделение;<br> НомерСтроки = 0;<br> Стр = """";<br> Если тзПодразделений.НайтиЗначение(тзНачисленийУдержаний.Подразделение,Стр,"Подразделение") = 1 Тогда<br> тзПодразделений.ПолучитьСтрокуПоНомеру(Стр);<br> ВсегоНачислено = 0;<br> ВсегоУдержано = 0;<br> Начисления = тзПодразделений.Начисления;<br> Удержания = тзПодразделений.Удержания;<br> Если ПустоеЗначение(Начисления) = 0 Тогда<br> ВсегоНачислено = Начисления.Итог("Сумма");<br> КонецЕсли;<br> Если ПустоеЗначение(Удержания) = 0 Тогда<br> ВсегоУдержано = Удержания.Итог("Сумма");<br> КонецЕсли;<br> Т.ВывестиСекцию("Подразделение|Сотрудник"); <br> тзНачислений.ВыбратьСтроки();<br> Пока тзНачислений.ПолучитьСтроку() = 1 Цикл<br> Стр = 0; Начислено = 0; Дни = 0; Часы = 0;<br> Если ПустоеЗначение(Начисления) = 0 Тогда<br> Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда<br> Начисления.ПолучитьСтрокуПоНомеру(Стр);<br> Начислено = Начисления.Сумма; <br> Дни = Начисления.Дни;<br> Часы = Начисления.Часы; <br> КонецЕсли;<br> КонецЕсли; <br> Т.ПрисоединитьСекцию("Подразделение|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы)); <br> КонецЦикла;<br> Т.ПрисоединитьСекцию("Подразделение|ВсегоНачислено"); <br> тзУдержаний.ВыбратьСтроки();<br> Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл<br> Стр = 0; Удержано = 0; <br> Если ПустоеЗначение(Удержания) = 0 Тогда<br> Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда<br> Удержания.ПолучитьСтрокуПоНомеру(Стр);<br> Удержано = Удержания.Сумма;<br> КонецЕсли;<br> КонецЕсли;<br> Т.ПрисоединитьСекцию("Подразделение|Удержание");<br> КонецЦикла;<br> Т.ПрисоединитьСекцию("Подразделение|ВсегоУдержано");<br> Т.ПрисоединитьСекцию("Подразделение|Выплачено"); <br> Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда<br> Т.ПрисоединитьСекцию("Подразделение|Возврат");<br> КонецЕсли;<br> Т.ПрисоединитьСекцию("Подразделение|КВыплате");<br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> Т.ПрисоединитьСекцию("Подразделение|СоцНалог"); <br> КонецЕсли; <br> КонецЕсли;<br> КонецЕсли; <br> КонецЕсли;<br> НомерСтроки = НомерСтроки + 1;<br> ВсегоНачислено = 0;<br> ВсегоУдержано = 0;<br> Начисления = тзНачисленийУдержаний.Начисления;<br> Удержания = тзНачисленийУдержаний.Удержания;<br> Если ПустоеЗначение(Начисления) = 0 Тогда<br> ВсегоНачислено = Начисления.Итог("Сумма");<br> КонецЕсли;<br> Если ПустоеЗначение(Удержания) = 0 Тогда<br> ВсегоУдержано = Удержания.Итог("Сумма");<br> КонецЕсли;<br> Т.ВывестиСекцию("Строка|Сотрудник");<br> тзНачислений.ВыбратьСтроки();<br> Пока тзНачислений.ПолучитьСтроку() = 1 Цикл<br> Стр = 0; Начислено = 0; Дни = 0; Часы = 0;<br> Если ПустоеЗначение(Начисления) = 0 Тогда<br> Если Начисления.НайтиЗначение(тзНачислений.Начисление, Стр, "Начисление") = 1 Тогда<br> Начисления.ПолучитьСтрокуПоНомеру(Стр);<br> Начислено = Начисления.Сумма;<br> Дни = Начисления.Дни;<br> Часы = Начисления.Часы; <br> КонецЕсли;<br> КонецЕсли; <br> Т.ПрисоединитьСекцию("Строка|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы));<br> КонецЦикла;<br> Т.ПрисоединитьСекцию("Строка|ВсегоНачислено"); <br> тзУдержаний.ВыбратьСтроки();<br> Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл<br> Стр = 0; Удержано = 0; <br> Если ПустоеЗначение(Удержания) = 0 Тогда<br> Если Удержания.НайтиЗначение(тзУдержаний.Счет, Стр, "Счет") = 1 Тогда<br> Удержания.ПолучитьСтрокуПоНомеру(Стр);<br> Удержано = Удержания.Сумма;<br> КонецЕсли;<br> КонецЕсли;<br> Т.ПрисоединитьСекцию("Строка|Удержание");<br> КонецЦикла;<br> Т.ПрисоединитьСекцию("Строка|ВсегоУдержано");<br> Т.ПрисоединитьСекцию("Строка|Выплачено"); <br> Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда<br> Т.ПрисоединитьСекцию("Строка|Возврат");<br> КонецЕсли;<br> Т.ПрисоединитьСекцию("Строка|КВыплате");<br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> Т.ПрисоединитьСекцию("Строка|СоцНалог"); <br> КонецЕсли; <br> КонецЦикла; <br> <br> Т.ВывестиСекцию("Подвал|Сотрудник"); <br> <br> тзНачислений.ВыбратьСтроки();<br> Пока тзНачислений.ПолучитьСтроку() = 1 Цикл <br> Дни = тзНачислений.Дни;<br> Часы = тзНачислений.Часы; <br> Т.ПрисоединитьСекцию("Подвал|" + ПолучитьИмяСекцииНачисления(тзНачислений.Дни, тзНачислений.Часы)); <br> КонецЦикла;<br> <br> Т.ПрисоединитьСекцию("Подвал|ВсегоНачислено"); <br> <br> тзУдержаний.ВыбратьСтроки();<br> Пока тзУдержаний.ПолучитьСтроку() = 1 Цикл<br> Т.ПрисоединитьСекцию("Подвал|Удержание"); <br> КонецЦикла;<br> <br> Т.ПрисоединитьСекцию("Подвал|ВсегоУдержано");<br> <br> Т.ПрисоединитьСекцию("Подвал|Выплачено"); <br> Если тзНачисленийУдержаний.Итог("Возврат") > 0 Тогда<br> Т.ПрисоединитьСекцию("Подвал|Возврат");<br> КонецЕсли;<br> Т.ПрисоединитьСекцию("Подвал|КВыплате");<br> <br> Если ОтображатьСоциальныйНалог = 1 Тогда<br> Т.ПрисоединитьСекцию("Подвал|СоцНалог"); <br> КонецЕсли; <br> <br> ВерхнийКолонтитул = "Расчетно-платежная ведомость "+?(ТипЗначения(РазделительУчета)=0, """", " "+РазделительУчета);<br> НижнийКолонтитул = "Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0," Пользователь: "+ИмяПользователя(),"""");<br> <br> Т.ТолькоПросмотр(1);<br> Т.Опции(0, 0, 11, 4, "ОпцииПечатиРасчетноПлатежнаяВедомость", "РасчетноПлатежнаяВедомость");<br> Т.ОбластьПечати(2);<br> Т.ПараметрыСтраницы(1,,,,,,,,, 0);<br> Т.Показать(ВерхнийКолонтитул, """");<br><br> Если (ФлагЗакрытияФормы = 1) Или (Обновить = 2) Тогда<br> СтрокаДействийФормы = "#Закрыть";<br> КонецЕсли;<br><br>КонецПроцедуры<br><br>//----------------------------------------------- <br>Процедура УправлениеРУ(ТипУправления="""")<br> Если ТипУправления = """" Тогда<br> Если ПустоеЗначение(РазделительУчета) = 1 Тогда<br> Форма.РазделительУчета.Доступность(0);<br> ПоВсемРУ = 1;<br> Иначе<br> ПоВсемРУ = 0;<br> КонецЕсли;<br> ИначеЕсли ТипУправления = "ПоВсемРУ" Тогда<br> Если ПоВсемРУ = 1 Тогда<br> РазделительУчета = 0;<br> Форма.РазделительУчета.Доступность(0);<br> Иначе<br> Форма.РазделительУчета.Доступность(1);<br> КонецЕсли; <br> КонецЕсли;<br> УстановитьВладельца(РазделительУчета, Подразделение);<br>КонецПроцедуры<br><br>//-----------------------------------------------<br>Процедура ПриОткрытии()<br> <br> глДоступностьОрганизацииВОтчете(Контекст);<br> <br> ВидДеятельности=Константа.Бюджет;<br> <br> Если глФлагРасшифровки = 1 Тогда<br> Закрыть = 1;<br> Обновить = глОбновить;<br> <br> РазделительУчета = глРасшифровка.Получить("РазделительУчета"); <br> ВариантФормирования = глРасшифровка.Получить("ВариантФормирования");<br> Дата1 = глРасшифровка.Получить("Дата1");<br> Дата2 = глРасшифровка.Получить("Дата2");<br> Подразделение = глРасшифровка.Получить("Подразделение");<br> ДокументНачисления = глРасшифровка.Получить("ДокументНачисления");<br> СписокСотрудников = глРасшифровка.Получить("СписокСотрудников");<br> ПоТабельномуНомеру = глРасшифровка.Получить("ПоТабельномуНомеру");<br> ОтображатьСоциальныйНалог = глРасшифровка.Получить("ОтображатьСоциальныйНалог");<br> ОтображатьДниЧасыПоВидамНачислений = глРасшифровка.Получить("ОтображатьДниЧасыПоВидамНачислений");<br> ГруппироватьПоПодразделениям = глРасшифровка.Получить("ГруппироватьПоПодразделениям");<br> <br> Если Обновить <> 0 Тогда<br> Т = глТаблица;<br> КонецЕсли;<br><br> Если Обновить <> 2 Тогда<br> Сформировать();<br> СтатусВозврата(0);<br> Возврат;<br> КонецЕсли;<br> Иначе <br> ВариантФормирования = 1;<br> ДокументНачисления = """";<br> Закрыть = 0;<br> Обновить = 0;<br> Дата1 = НачалоПериодаБИ();<br> Дата2 = КонецПериодаБИ(); <br> КонецЕсли; <br> <br> ПриВыбореВарианта();<br> УправлениеРУ();<br> <br>КонецПроцедуры"