Что значит свернуть таблицу значений

ТаблицаЗначений
Метод Свернуть()

Сворачивает таблицу значений по указанным колонкам группировки

Синтаксис

Метод Свернуть() имеет следующий синтаксис:

А также альтернативный англоязычный синтаксис:

Параметры

Описание параметров метода Свернуть() :

Имя параметра Тип Описание
КолонкиГруппировок Строка Имена колонок, разделенные запятыми, по которым необходимо группировать строки таблицы значений
КолонкиСуммирования (необязательный) Строка Имена колонок, разделенные запятыми, по которым необходимо суммировать значения для сгруппированных строк
Жирным шрифтом выделены обязательные параметры

Описание

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

Доступность

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).

Пример использования

Пример кода с использованием метода Свернуть() :

Источник

Свернуть ТЧ в управляемой форме

В обычной форме можно было свернуть ТЧ так:

Товары.Свернуть(«Номенклатура, Цена», «Количество, Сумма»);

А в УФ, уже нельзя так, модно тока примерно так, но оно ниче не сворачивает:

Там необходимо обращатся к реквизитам обхекта:

но там нету метода Свернуть() .

Подскажите плиз как всетки свернуть ?

Свернуть (GroupBy)
Синтаксис:

Тип: Строка. Имена колонок, разделенные запятыми, по которым необходимо суммировать значения в строках табличного поля.
Описание:

Осуществляет свертку табличной части по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются.
Важно! Оба списка колонок должны покрывать всю табличную часть. Списки колонок не должны пересекаться.

Сервер, толстый клиент, внешнее соединение.
Примечание:

Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.
Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения.
Пример:

Состав.Свернуть(«Номенклатура», «Количество, Сумма, Всего»);

Источник

Как в 1с свернуть таблицу значений

Рассмотрим два способа в 1с свернуть таблицу значений. Для первого воспользуемся методом таблицы значений Свернуть, для второго используем Запрос.

Свернуть с использованием метода таблицы значений

У таблицы значений существует специальный метод Свернуть. Он позволяет группировать строки по полям, указанным в первом параметре и суммировать значения полей, указанных во втором параметре.

Пример 1. Пусть у нас существует таблица значений с колонками Номенклатура, Цена, Количество, Сумма. Необходимо в 1с свернуть таблицу значений по колонкам Номенклатура и Цена, просуммировав при этом данные в колонках Количество и Сумма.

Также стоит отметить следующие особенности метода Свернуть:

  • Работает только НаСервере (как и любые действия с таблицами значений);
  • Прост в реализации;
  • Может суммировать значения, но не может получать минимум, максимум, среднее и т.д.

Свернуть таблицу значений при помощи запроса

Если для вашей задачи недостаточно метода Свернуть, то можно воспользоваться возможностями языка запросов, для свертки таблицы значений. Например, вам необходимо получить среднее или максимум, по значениям колонки.

Для свертки таблицы значений запросом необходимо:

  • Таблицу значений передать параметром в запрос;
  • Сгруппировать по нужным полям,
  • Применить агрегатные функции к нужным полям (сумма, максимум, минимум, среднее);
  • Выгрузить результат запроса в таблицу значений.

Пример 2. Пусть у нас существует таблица значений с колонками Номенклатура, Цена, Количество, Сумма. Необходимо в 1с свернуть таблицу значений по колонке Номенклатура, по колонке Цена получить среднее значение, просуммировать данные в колонках Количество и Сумма.

Особенности данного метода:

  • Работает только НаСервере (как и любые действия с таблицами значений и запросами);
  • Более сложен в реализации;
  • Более универсален, в сравнении с предыдущим.

Скачать обработку с двумя этими примерами можно: Здесь

Источник

Программирование в 1С для всех

Продолжим изучать методы работы с таблицами значений. В предыдущей статье мы научились работать с поиском по таблице значений, а также копировать таблицы значений.

В этой статье мы научимся сортировать, получать итоги и сворачивать таблицу значений.

Сортировка таблицы значений 1С

Сортировка таблицы значений 1С осуществляется при помощи метода Сортировать, этот метод является процедурой, выполнение которой изменяет порядок строк в таблице значений. Данный метод имеет следующий синтаксис.

Сортировать(Колонки, ОбъектСравнения)

Колонки – обязательный параметр, который имеет тип Строка, в этой строке должны быть перечислены колонки таблицы значений, по которым осуществляется сортировка. После названия колонки можно указывать направление сортировки: или «Убыв», тогда сортировка осуществляется по убыванию, или «Возр», в этом случае сортировка будет по возрастанию. Если не указать направление сортировки, то сортировка будет по возрастанию. Можно перечислять несколько колонок, тогда таблица значений будет отсортирована сначала по первой указанной колонке, потом строки с одинаковым значением в первой колонке будут отсортированы по второй колонке и т.д.

ОбъектСравнения — необязательный параметр, в него передается переменная с типом СравнениеЗначений. Этот параметр необходимо применять, когда в сортируемых колонках содержатся значения не примитивных типов. Если этот параметр не указан, то элементы не примитивных типов сравниваются по своему строковому представлению. Если же он указан, то они сравниваются по следующим правилам:

  • Объекты сравниваются по идентификатору
  • Моменты времени сравниваются по дате и идентификатору объекта
  • Если есть элементы с разными типами, то они сравниваются по коду типа
  • Элементы остальных типов сравниваются по строковому представлению

Рассмотрим работу этого метода без второго параметра.

ТЗ = Новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( «ФИО» );
ТЗ . Колонки . Добавить ( «ДатаРождения» );
ТЗ . Колонки . Добавить ( «Оклад» );
//первая строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Иванов И.И» ;
НСтр . ДатаРождения = Дата ( 1985 , 1 , 15 );
НСтр . Оклад = 2000 ;
//вторая строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Петров П.С» ;
НСтр . ДатаРождения = Дата ( 1984 , 5 , 25 );
НСтр . Оклад = 1000 ;
//третья строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Тарасов К.В» ;
НСтр . ДатаРождения = Дата ( 1987 , 6 , 11 );
НСтр . Оклад = 2000 ;
//сортируем по окладу и дате рождения (убывание)
ТЗ . Сортировать ( «Оклад,ДатаРождения УБЫВ» );

В этом коде мы отсортировали таблицу по окладу, поскольку название колонки было без указания направления, то сортировка осуществлялась по возрастанию. И вторая колонка для сортировки это дата рождения, здесь мы указали направление сортировки – по убыванию.

Посмотрим в отладке, какая таблица значений была до сортировки.

И после сортировки.

Итоги таблицы значений 1С

При работе с таблицей значений можно получить общий итог по какой-то колонке. Это осуществляется при помощи метода Итог. Этот метод является функцией, которая возвращает сумму значений определенной колонки всех строк таблицы. У этого метода следующий синтаксис:

Итог(Колонка)

Где: Колонка – это колонка, по которой будут просуммированы значения всех строк. Обычно данный метод применяется к колонкам, в которых содержатся значения с типом число.

ТЗ = Новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( «ФИО» );
ТЗ . Колонки . Добавить ( «ДатаРождения» );
ТЗ . Колонки . Добавить ( «Зарплата» );
//первая строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Иванов И.И» ;
НСтр . ДатаРождения = Дата ( 1985 , 1 , 15 );
НСтр . Зарплата = 2000 ;
//вторая строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Петров П.С» ;
НСтр . ДатаРождения = Дата ( 1984 , 5 , 25 );
НСтр . Зарплата = 5000 ;
//третья строка
НСтр = ТЗ . Добавить ();
НСтр . ФИО = «Тарасов К.В» ;
НСтр . ДатаРождения = Дата ( 1987 , 6 , 11 );
НСтр . Зарплата = 3000 ;
//итог по зарплатам
Общая = ТЗ . Итог ( «Зарплата» );

Посмотрим, какой итог получился по указанной колонке.

Свернуть таблицу значений 1С

Рассмотрим еще один метод, который очень полезен при работе с таблицами значений. Метод Свернуть сворачивает используемую таблицу значений по значениям одной или нескольких колонок. Данный метод является процедурой, которая изменяет текущую таблицу значений.

Рассмотрим синтаксис этого метода

Свернуть(КолонкиГруппы, КолонкиСуммы)

КолонкиГруппы – колонки, по которым будет свернута таблица значений. Это обязательный параметр типа строка, в котором нужные колонки должны быть перечислены через запятую.

КолонкиСуммы – колонки, значения по которым будут просуммированы (необязательный параметр).

Причем, обратите внимание, после применения метода, в измененной таблице значений останутся только колонки группы и колонки суммы, остальные колонки, те, что были до свертки, будут удалены и информация в них потеряется!

Данный метод производит свертку таблицы значений: значения в колонках, которые перечисленные в первом параметре (КолонкиГруппы) будут сгруппированы, а значения в колонках, которые перечислены во втором параметре (КолонкиСуммы) будут просуммированы. Одна и та же колонка не может быть указанна и в первом параметр, и во втором.

Рассмотрим пример: в таблице значений будут следующие колонки: ФИО, Вид работ , сумма выданных средств и дополнительная информация (аванс, «окончаловка» и т.п.), свернем эту таблицу значений по колонкам ФИО и Вид работ, и просуммируем колонку «Сумма».

ТабВыплат = Новый ТаблицаЗначений ;
ТабВыплат . Колонки . Добавить ( «ФИО» );
ТабВыплат . Колонки . Добавить ( «ВидРабот» );
ТабВыплат . Колонки . Добавить ( «Сумма» );
ТабВыплат . Колонки . Добавить ( «Причина» );
//первая строка
НовВыплата = ТабВыплат . Добавить ();
НовВыплата . ФИО = «Иванов» ;
НовВыплата . ВидРабот = «Отделка» ;
НовВыплата . Сумма = 1000 ;
НовВыплата . Причина = «Аванс» ;
//вторая строка
НовВыплата = ТабВыплат . Добавить ();
НовВыплата . ФИО = «Иванов» ;
НовВыплата . ВидРабот = «Монтаж» ;
НовВыплата . Сумма = 1500 ;
НовВыплата . Причина = «Расчет» ;
//третья строка
НовВыплата = ТабВыплат . Добавить ();
НовВыплата . ФИО = «Иванов» ;
НовВыплата . ВидРабот = «Монтаж» ;
НовВыплата . Сумма = 500 ;
НовВыплата . Причина = «аванс» ;
//четверта строка
НовВыплата = ТабВыплат . Добавить ();
НовВыплата . ФИО = «Петров» ;
НовВыплата . ВидРабот = «Монтаж» ;
НовВыплата . Сумма = 500 ;
НовВыплата . Причина = «аванс» ;
//пятая строка
НовВыплата = ТабВыплат . Добавить ();
НовВыплата . ФИО = «Петров» ;
НовВыплата . ВидРабот = «Монтаж» ;
НовВыплата . Сумма = 1500 ;
НовВыплата . Причина = «Расчет» ;
//свертка
ТабВыплат . Свернуть ( «ФИО,ВидРабот» , «Сумма» );

Посмотрим в отладке, что было до свертки.

И после свертки

Как видите, произошла группировка по колонкам ФИО и ВидРабот, а значения в колонке Сумма просуммировались, причем колонка Причина была удалена и информация в ней пропала.

Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект.

Более подробно и основательно работа с таблицей значений в дается в моей книге:

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

  1. Очень доступный и понятный язык изложения
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Поймете идеологию управляемого приложения 1С
  4. Узнаете, как разрабатывать управляемое приложение;
  5. Научитесь разрабатывать управляемые формы 1С;
  6. Сможете работать с основными и нужными элементами управляемых форм
  7. Программирование под управляемым приложением станет понятным

Промо-код на скидку в 15% — 48PVXHeYu

Источник

Читайте также:  Что значит проведение экзамена
Оцените статью