1С ЗУП Отчет "Расчетные листки организаций": меняем местами удержания и выплаты

Задача: В конфигурации Зарплата и Управление Персоналом для Украины, редакция 2.1 в отчете "Расчетные листки организаций" поменять местами удержания и выплаты. Сделать отчет компактнее. Не выводить табельный номер и код по ДРФО.

Конфигурация: Зарплата и Управление Персоналом для Украины, редакция 2.1 (2.1.47.1)

В данной конфигурации отчет "Расчетные листки организаций" выводится с помощью механизма компоновки данных. Используется 2 набора данных:

  1. РаботникиОрганизации (запрос)
  2. НачисленияУдержания (объект)

Наборы данных СКД "РасчетныеЛисткиОрганизаций"

Т. о. при формировании отчета платформа получает список работников и присоединяет в нему внешний набор данных НачисленияУдержания. Это происходит по след. схеме:

  1. В процедуре НастроитьПостроительЗапросов  подготавливается Построитель отчетов
  2. Построитель передается в метод ЗаполнитьВнешнийИсточникДанных, который формирует таблицу значений НачисленияУдержания
  3. В процедуре СформироватьОтчет ТЗ НачисленияУдержания передается в ПроцессорКомпоновки

Редактирование исходного кода

После изучения исходного кода принято решение внести изменения в процедуру ЗаполнитьВнешнийИсточникДанных. В ней с помощью построителя формируется дерево значений ТаблицаРезультатаЗапроса и осуществляется его обход. По каждой из частей расчетного листка формируется отдельная таблица значений (Начисления, Удержания и т. д.).

Для каждого СтрокаОрганизация  из ТаблицаРезультатаЗапроса.Строки Цикл
	Для каждого СтрокаПериодаРегистрации из СтрокаОрганизация.Строки Цикл
		Для каждого СтрокаФизЛицо из СтрокаПериодаРегистрации.Строки Цикл
			
			Выполнился = истина;
			
			// Получим таблицы значений по каждой из частей расчетного листка
			Начисления              = СтрокаФизЛицо.Строки.Найти("Начислено", "ВидДвижения");
			Удержания               = СтрокаФизЛицо.Строки.Найти("Удержано", "ВидДвижения");
			ДоходыВНатуральнойФорме = СтрокаФизЛицо.Строки.Найти("ДоходыВНатуральнойФорме", "ВидДвижения");
			Выплачено              	= СтрокаФизЛицо.Строки.Найти("Выплата", "ВидДвижения");
			Сальдо                  = СтрокаФизЛицо.Строки.Найти("Сальдо", "ВидДвижения");

Для решения нашей задачи проще всего поменять ТЗ Удержания и Выплачено:

//Подменяем ТЗ Удержания на Выплачено и наоборот
// Получим таблицы значений по каждой из частей расчетного листка
Начисления              = СтрокаФизЛицо.Строки.Найти("Начислено", "ВидДвижения");
//Удержания               = СтрокаФизЛицо.Строки.Найти("Удержано", "ВидДвижения");
Удержания               = СтрокаФизЛицо.Строки.Найти("Выплата", "ВидДвижения");				
ДоходыВНатуральнойФорме = СтрокаФизЛицо.Строки.Найти("ДоходыВНатуральнойФорме", "ВидДвижения");
//Выплачено              	= СтрокаФизЛицо.Строки.Найти("Выплата", "ВидДвижения");
Выплачено              	= СтрокаФизЛицо.Строки.Найти("Удержано", "ВидДвижения");
Сальдо                  = СтрокаФизЛицо.Строки.Найти("Сальдо", "ВидДвижения");

Редактирование макетов

Для вывода отчета "Расчетные листки организаций" используются макеты группировок компоновки данных. Для корректного вывода нам нужно отредактировать 4 макета группировки: макеты с типом "Заголовок" и "Подвал" для группировки "Начисление" и "Удержание".

Для повышения компактности отчета изменим высоту на 1 для строк № 17, 22 и 23 (флажок "Автовысота строки" надо снять). Таким образом мы уберем из отчета организацию, код и табельный номер сотрудника. При необходимости, можно также уменьшить высоту строк 18 и 19.

Уменьшаем высоту строк в макете

Результат:

Результат

 


Похожие материалы

Комментарии