На форме в табличное поле добавим Колонку (Имя — НачальноеСальдо, Данные — Пусто и все остальное тоже) и колонку КонечноеСальдо
Зайдем в свойства Табличного поля и в событиях определим процедуру при выводе строки: ДействиеПриВыводеСтроки
А в модуле напишем:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
Процедура ЗарплатаПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) //Укажем фильтр получения остатков Фильтр = Новый Структура; Фильтр.Вставить("ФизЛицо",ДанныеСтроки.ФизЛицо); // по подразделению не надо //Фильтр.Вставить("Подразделение", ДанныеСтроки.Подразделение); //Остаток до документа Попытка НачСальдо = РегистрыНакопления.Взаиморасчеты.Остатки(Новый Граница(Дата, ВидГраницы.Исключая),Фильтр,"ФизЛицо","ВзаимРасчет")[0].ВзаимРасчет; Исключение // остатка нет НачСальдо = 0; КонецПопытки; //Остаток после документа Попытка КонСальдо = РегистрыНакопления.Взаиморасчеты.Остатки(Новый Граница(Дата, ВидГраницы.Включая),Фильтр,"ФизЛицо","ВзаимРасчет")[0].ВзаимРасчет; Исключение // остатка нет КонСальдо = 0; КонецПопытки; ОформлениеСтроки.Ячейки.НачальноеСальдо.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.НачальноеСальдо.Текст = ?(НачСальдо=0,"",НачСальдо); ОформлениеСтроки.Ячейки.КонечноеСальдо.ОтображатьТекст = Истина; ОформлениеСтроки.Ячейки.КонечноеСальдо.Текст = ?(КонСальдо=0,"",КонСальдо); //Добавим цветовое оформление, чтобы выделить минусовые остатки Если НачСальдо < 0 Тогда ОформлениеСтроки.Ячейки.НачальноеСальдо.ЦветФона = Новый Цвет(255, 131, 131); Иначе ОформлениеСтроки.Ячейки.НачальноеСальдо.ЦветФона = Новый Цвет(255, 255, 231); КонецЕсли; Если КонСальдо < 0 Тогда ОформлениеСтроки.Ячейки.КонечноеСальдо.ЦветФона = Новый Цвет(255, 131, 131); Иначе ОформлениеСтроки.Ячейки.КонечноеСальдо.ЦветФона = Новый Цвет(255, 255, 231); КонецЕсли; КонецПроцедуры |