Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
24 ноя 2024, 13:58

Объединение строк в ТЗ

Автор Nosferatu112, 18 авг 2023, 16:38

0 Пользователей и 1 гость просматривают эту тему.

Nosferatu112

Всем доброго времени суток, мне нужно сграмоздить в одну строку расшифровку, в запросе этого сделать не получаеться так как там в конечной таблице строки с датой котрые не позволяют сгруппировать данные
но мне в конечном итоге нужно что бы у пользователя строки были сгруппированы в расшифровке указано из чего собиралась эта строка
Код как я пытался сделать
Пока Выб.Следующий() Цикл

ТЧ = Объект.НедельнаяПремия.Добавить();
ТЧ.Сотрудник = Выб.Сотрудник;
ТЧ.ВидНачисления = Выб.ВидНачисления;
ТЧ.Начисление = Справочники.вд_НачисленияМотиваций.НедельнаяПремия;
ТЧ.Сумма = Выб.Сумма;
ТЧ.Документ = Выб.Документ;
ТЧ.Расшифровка = СтрШаблон("%1 %2 стоимость: %3; ", Формат(Выб.Дата,"ДФ=dd.MM"),Выб.Начисление,Выб.Сумма);

КонецЦикла;

    ИтогоНП = Объект.НедельнаяПремия.Итог("Сумма");

ТЧн = Новый ТаблицаЗначений;

ТЧн.Колонки.Добавить("Сотрудник",,"Сотрудник"); 
ТЧн.Колонки.Добавить("ВидНачисления",,"ВидНачисления");
ТЧн.Колонки.Добавить("Начисление");
ТЧн.Колонки.Добавить("Сумма");
ТЧн.Колонки.Добавить("Документ");
ТЧн.Колонки.Добавить("Расшифровка",Новый ОписаниеТипов("Строка"));

Для Каждого С Из Объект.НедельнаяПремия Цикл

НК = ТЧн.Добавить();
НК.Сотрудник = С.Сотрудник;
НК.ВидНачисления = С.ВидНачисления;
НК.Начисление = С.Начисление;
НК.Сумма = С.Сумма;
НК.Документ = С.Документ;
НК.Расшифровка = С.Расшифровка;

КонецЦикла;

ТЧн.Свернуть("Сотрудник,ВидНачисления,Начисление,Документ,Расшифровка","Сумма");
Объект.НедельнаяПремия.Очистить();
Для Каждого А Из ТЧн Цикл

ТЧ = Объект.НедельнаяПремия.Добавить();
ТЧ.Сотрудник = А.Сотрудник;
ТЧ.ВидНачисления = А.ВидНачисления;
ТЧ.Начисление = А.Начисление;
ТЧ.Сумма = А.Сумма;
ТЧ.Документ = А.Документ;
ТЧ.Расшифровка = А.Расшифровка;

КонецЦикла;
Так же скриншот, на нём как раз 3 строки с одинаковым сотрудником нужно суммировать колонку сумма и сгрупировать по остальным, сгрупировать в запросе это добро не дают колонки которые выводят дату и наименование начисления в колонку расшифровка
ФПУ.png

LexaK

отсюда
ТЧн.Свернуть("Сотрудник,ВидНачисления,Начисление,Документ,Расшифровка","Сумма");уберите расшифровку,

затем пробежитесь по свернутой таблице,  и для каждой строки найдите
данные в исходной таблице с помощью НайтиСтроки(Отбор)
вот из них и сложите общую расшифровку
если помогло нажмите: Спасибо!

Максим75

Nosferatu112, В случае если необходимо поместить в значение расшифровки несколько значений, следует поместить нужные значения в коллекцию, после чего поместить коллекцию в расшифровку.
т.е. вначале делаете коллекцию значений по набору Сотрудник,ВидНачисления,Начисление,Документ, загоняете эту коллекцию значений в расшифровку поля табличного документа, ну а потом уже в обработчике типа

Процедура ПолеТабличногоДокумента1ОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
КонецПроцедуры

что-то написать, что достанет из коллекции значений

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск