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

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

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

Синтаксис

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

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

Параметры

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

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

Описание

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

Доступность

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Adobe reader xi что это за программа

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Dexp vr box обзор

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

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

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

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

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

Изучайте программирование в 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

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

Как можно создать новую таблицу значений?

Как добавить новую колонку с определенным типом и заголовком?

  • Имя (необязательный, тип Строка , по умолчанию пустая строка). Имя колонки.
  • Тип (необязательный, тип ОписаниеТипов ). Объект, описывающий допустимые типы значений для колонки. Если параметр не указан, в колонке можно будет хранить значение любого типа.
  • Заголовок (необязательный, тип Строка , по умолчанию пустая строка). Заголовок колонки таблицы значений. Используется при визуальном отображении таблицы значений.
  • Ширина (необязательный, тип Число , по умолчанию ноль). Ширина колонки в символах. Используется при визуальном отображении таблицы значений.
Читайте также:  Htc desire 626g фото

Как добавить новые строки?

Как выгрузить результат запроса в таблицу значений?

Как обойти в цикле все строки таблицы значений?

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

  • ПараметрыОтбора (обязательный, тип Структура ). Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры — искомое значение.

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

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

Как выполнить сортировку?

Как вычислить итоги по колонке?

Как сделать копию таблицы значений?

Как свернуть таблицу значений по колонке и суммировать по количеству?

Метод Свернуть() сворачивает таблицу по колонке «Наименование» и суммирует колонку «Количество». Если существуют еще колонки, то они будут удалены.

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

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

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

  • Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число .
  • Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число , значения других типов будут игнорироваться.
  • Если в колонке несколько типов и среди них есть тип Число , то в процессе суммирования будут принимать участие только значения, имеющие тип Число , значения других типов будут игнорироваться.
  • Если в колонке несколько типов и среди них нет типа Число , то результат суммирования будет 0, который будет присвоен в соответствующую колонку, где будет преобразован к значению по умолчанию для типа, установленного в колонке.

Как найти строку в таблице значений по значению?

  • Значение (обязательный, тип Произвольный ). Искомое значение.
  • Колонки (необязательный, тип Строка , по умолчанию пустая строка). Список имен колонок, разделенных запятыми, по которым производится поиск. Если параметр не указан, поиск осуществляется по всей таблице значений.

Осуществляет поиск значения в указанных колонках таблицы значений. Возвращает строку таблицы значений, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено . Метод эффективно использовать для поиска уникальных значений.

Ссылка на основную публикацию
Adblock detector