- Таблица значений сортировка колонок
- Таблица значений
- Создание таблицы значений
- Добавление строк в таблицу значений
- Перебор строк таблицы значений
- Сортировка таблицы значений
- Поиск в таблице значений
- Итоги и группировка таблицы значений
- Удаление строк и колонок из таблицы значений
- Таблица значений как элемент диалога
- Методы УстановитьЗначение и ПолучитьЗначение
- ТаблицаЗначений Метод Сортировать()
- Синтаксис
- Параметры
- Описание
- Доступность
- Пример использования
- Программирование в 1С для всех
- Сортировка таблицы значений 1С
- Итоги таблицы значений 1С
- Свернуть таблицу значений 1С
Таблица значений сортировка колонок
Таблица значений
Таблица значений — это двумерный массив в 1С, который предназначен для хранения и обработки промежуточных данных, возникающих в процессе работы программы. | Автор статьи: Волшебник | Редакторы: Туц, vligm Последняя редакция №5 от 10.01.09 | История URL: http://kb.mista.ru/article.php?id=188 |
Создание таблицы значений
Добавление строк
Перебор строк
Сортировка
Поиск значения
Итоги и группировка
Удаление строк и колонок
Таблица значений в диалоге
Специальные методы
Выгрузка таблицы значений
Создание таблицы значений
Таблица значений часто применяется при программировании на 1С, потому что имеет множество полезных возможностей и работает очень быстро. Таблица значений создается в памяти и не сохраняется в базе данных, т.е. это временный набор данных.
//можно указать тип данных каждой колонки
//если тип данных колонки не указан, то можно хранить данные любого типа
Синтаксис: НоваяКолонка( , , , , , , , )
Добавление строк в таблицу значений
Перебор строк таблицы значений
Сортировка таблицы значений
Поиск в таблице значений
Синтаксис: НайтиЗначение( , , )
Возвращает число: 0 — значение не найдено; 1 — значение найдено
Если указан параметр , то поиск производится только по заданной строке
Если указан параметр , то поиск производится только по заданной колонке
Итоги и группировка таблицы значений
//часто требуется группировать строки и подсчитывать итоги по группам,
//в этом случае применяется метод Свернуть
Удаление строк и колонок из таблицы значений
ВНИМАНИЕ
Часто требуется удалить строки, удовлетворяющие определенному условию.
Так как при удалении строки из таблицы значений следующая строка становится текущей,
то указанная ниже программа может удалить НЕ ВСЕ необходимые строки.
В этом случае я рекомендую использовать следующий прием:
А вот еще один правильный алгоритм, предложенный Wlad:
Замечание(Туц). Предыдущий вариант не совсем правильный. Случай, когда последняя строка попадает под условие и в условии идёт обращение к строке таблицы, приводит к ошибке. Т.е. происходит попытка чтения для строки 0.
И ещё вариант, предложенный Туц:
Замечание (vligm). А я использую такой алгоритм (это, собственно говоря, шаблон):
Таблица значений как элемент диалога
Таблица значений может использоваться в экранных формах как элемент диалога с пользователем.
Методы УстановитьЗначение и ПолучитьЗначение
Эти методы позволяют обращаться к данным в таблице значений для чтения и записи.
Они могут пригодиться в особых случаях при написании универсальных программ (мастеры отчетов и т.д.).
Синтаксис: УстановитьЗначение( , , )
Синтаксис: ПолучитьЗначение( , )
Источник
ТаблицаЗначений
Метод Сортировать()
Сортирует таблицу значений по указанным правилам
Синтаксис
Метод Сортировать() имеет следующий синтаксис:
А также альтернативный англоязычный синтаксис:
Параметры
Описание параметров метода Сортировать() :
Имя параметра | Тип | Описание | ||||||
---|---|---|---|---|---|---|---|---|
Колонки | Строка | Список имен колонок, разделенных запятыми, по которым производится сортировка таблицы. После каждого имени колонки через пробел может быть указано направление сортировки:
| ||||||
ОбъектСравнения (необязательный) | СравнениеЗначений | Объект для сравнения значений. Реализует сравнение значений, типы которых отличаются от простых (Строка, Число, Дата, Булево) | ||||||
Жирным шрифтом выделены обязательные параметры |
Описание
Метод Сортировать() cортирует строки таблицы значений в соответствии с указанными правилами сортировки. Порядок указания имен колонок таблицы определяет порядок сортировки. Это означает, что сначала таблица сортируется по колонке, указанной первой. Затем группы строк с одинаковым значением в первой колонке сортируются по колонке, которая указана второй, и так далее.
Если параметр ОбъектСравнения не задан, значения простых типов сравниваются по значению, а значения остальных типов — по строковому представлению.
Если параметр ОбъектСравнения задан, значения простых типов также сравниваются по значению, а значения остальных типов — по правилам:
- объекты сравниваются по идентификатору
- моменты времени сравниваются по дате и идентификатору объекта
- остальные значения сравниваются по строковому представлению
Доступность
Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
Пример использования
Пример кода с использованием метода Сортировать() :
Источник
Программирование в 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 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Источник