1С 8.3 Свернуть таблицу значений на клиенте
Данные > Примеры кода 1С > 1С 8.3 Таблица значений
Перейти в раздел примеры кода 1С 8.3:
Сворачивает реквизит формы типа "ТаблицаЗначений" на клиенте. Процедуру можно вставить в клиентский общий модуль и использовать для сворачивания таблицы значений (ДанныеФормыКоллекция) без серверного вызова.
Свернуть таблицу значений на форме (от Little Friend) в 1С 8.3:
// Сворачивает ДанныеФормыКоллекция по указанным колонкам группировки. Элементы коллекции,
// указанной в первом параметре, у которых совпадают значения в колонках, указанных во
// втором параметре, сворачиваются в один элемент. Значения этих элементов,
// хранящиеся в колонках, указанных в третьем параметре, сворачиваются.
// Важно! Значения колонок, не вошедших ни в один из списков принимают значения первого элемента коллекции.
//
// Параметры:
// Коллекция - ДанныеФормыКоллекция - коллекция, которую необходимо свернуть.
//
// КолонкиГруппировок - Строка - имена колонок, разделенные запятыми,
// по которым необходимо группировать элементы коллекции.
//
// КолонкиСуммирования - Строка - имена колонок, разделенные запятыми,
// по которым необходимо суммировать значения в элементах коллекции.
//
&НаКлиенте
Процедура СвернутьДанныеФормыКоллекция(Коллекция, КолонкиГруппировок, КолонкиСуммирования)
СтруктураКолонокСуммирования = Новый Структура(КолонкиСуммирования);
Отбор = Новый Структура(КолонкиГруппировок);
СвернутыеСтроки = Новый Соответствие;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Если СвернутыеСтроки[ЭлементКоллекции] <> Неопределено Тогда
Продолжить;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Отбор, ЭлементКоллекции, КолонкиГруппировок);
СтрокиПоОтбору = Коллекция.НайтиСтроки(Отбор);
Для Индекс = 1 По СтрокиПоОтбору.ВГраница() Цикл
Для Каждого ОписаниеКолонки Из СтруктураКолонокСуммирования Цикл
ЭлементКоллекции[ОписаниеКолонки.Ключ] = ЭлементКоллекции[ОписаниеКолонки.Ключ]
+ СтрокиПоОтбору[Индекс][ОписаниеКолонки.Ключ];
СвернутыеСтроки.Вставить(СтрокиПоОтбору[Индекс], Истина);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Для Каждого СвернутаяСтрока Из СвернутыеСтроки Цикл
Коллекция.Удалить(СвернутаяСтрока.Ключ);
КонецЦикла;
КонецПроцедуры
// указанной в первом параметре, у которых совпадают значения в колонках, указанных во
// втором параметре, сворачиваются в один элемент. Значения этих элементов,
// хранящиеся в колонках, указанных в третьем параметре, сворачиваются.
// Важно! Значения колонок, не вошедших ни в один из списков принимают значения первого элемента коллекции.
//
// Параметры:
// Коллекция - ДанныеФормыКоллекция - коллекция, которую необходимо свернуть.
//
// КолонкиГруппировок - Строка - имена колонок, разделенные запятыми,
// по которым необходимо группировать элементы коллекции.
//
// КолонкиСуммирования - Строка - имена колонок, разделенные запятыми,
// по которым необходимо суммировать значения в элементах коллекции.
//
&НаКлиенте
Процедура СвернутьДанныеФормыКоллекция(Коллекция, КолонкиГруппировок, КолонкиСуммирования)
СтруктураКолонокСуммирования = Новый Структура(КолонкиСуммирования);
Отбор = Новый Структура(КолонкиГруппировок);
СвернутыеСтроки = Новый Соответствие;
Для Каждого ЭлементКоллекции Из Коллекция Цикл
Если СвернутыеСтроки[ЭлементКоллекции] <> Неопределено Тогда
Продолжить;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Отбор, ЭлементКоллекции, КолонкиГруппировок);
СтрокиПоОтбору = Коллекция.НайтиСтроки(Отбор);
Для Индекс = 1 По СтрокиПоОтбору.ВГраница() Цикл
Для Каждого ОписаниеКолонки Из СтруктураКолонокСуммирования Цикл
ЭлементКоллекции[ОписаниеКолонки.Ключ] = ЭлементКоллекции[ОписаниеКолонки.Ключ]
+ СтрокиПоОтбору[Индекс][ОписаниеКолонки.Ключ];
СвернутыеСтроки.Вставить(СтрокиПоОтбору[Индекс], Истина);
КонецЦикла;
КонецЦикла;
КонецЦикла;
Для Каждого СвернутаяСтрока Из СвернутыеСтроки Цикл
Коллекция.Удалить(СвернутаяСтрока.Ключ);
КонецЦикла;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник