1с статьи | Курс-репетитор программиста 1С

Создание и обход


// создаем таблицу значений
// тип доступен на сервере
// на клиенте недоступен
ТаблицаЗначений = Новый ТаблицаЗначений;	

// определим её колонки
ТаблицаЗначений.Колонки.Добавить("Колонка1", 
	Новый ОписаниеТипов("Булево"), "Колонка 1");
ТаблицаЗначений.Колонки.Добавить("Колонка2", 
	Новый ОписаниеТипов("Строка"), "Колонка 2");
	
// тип переменной НоваяСтрока - СтрокаТаблицыЗначений
НоваяСтрока = ТаблицаЗначений.Добавить();       
// у строки есть свойства - имена доступных колонок
НоваяСтрока.Колонка1 = Ложь;
НоваяСтрока.Колонка2 = "строка 1";

// ещё одна строка
НоваяСтрока = ТаблицаЗначений.Добавить();       
НоваяСтрока.Колонка1 = Истина;
НоваяСтрока.Колонка2 = "строка 2";

// выведем таблицу значений через Сообщить
// сначала выведем названия колонок
// есть свойство Колонки, тип КоллекцияКолонокТаблицыЗначений

МассивДляВывода = Новый Массив;

// у Колонка тип КолонкаТаблицыЗначений 
Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
	МассивДляВывода.Добавить(Колонка.Имя);	
КонецЦикла;

ТекстСообщения = СтрСоединить(МассивДляВывода, Символы.Таб);	
Сообщить(ТекстСообщения);

// обход строк циклом Для Каждого
Для Каждого Строка Из ТаблицаЗначений Цикл
	
	МассивДляВывода = Новый Массив;
	// обход колонок вложенным циклом
	Для Каждого Колонка Из ТаблицаЗначений.Колонки Цикл
		// собираем в массив значения колонок строки
		// для получения значения используем Строка[Колонка.Имя]
		МассивДляВывода.Добавить(Строка[Колонка.Имя]);
	КонецЦикла;
	
	ТекстСообщения = СтрСоединить(МассивДляВывода, Символы.Таб);	
	Сообщить(ТекстСообщения);

КонецЦикла;

// Что будет выведено?

Показать решение

ТаблицаЗначений (ValueTable)

Элементы коллекции: СтрокаТаблицыЗначений

Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.

Возможно обращение к элементу коллекции посредством оператора [...]. В качестве аргумента передается индекс строки (нумерация с 0).

Конструкторы (По умолчанию) Синтаксис: Новый ТаблицаЗначений

Вставить (Insert)

Синтаксис: Вставить(<Индекс>)

Параметры:

<Индекс> (обязательный) Тип: Число.

Индекс вставляемой строки.

Возвращаемое значение: Тип: СтрокаТаблицыЗначений. Вставленная строка

Описание: Вставляет строку на позицию в таблице значений, соответствующую указанному индексу.

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

ВыбратьСтроку (ChooseRow)

Синтаксис: ВыбратьСтроку(<Заголовок>, <НачальнаяСтрока>)

Параметры:

<Заголовок> (необязательный) Тип: Строка.

Заголовок диалогового окна выбора строки. Может использоваться для подсказки пользователю.

<НачальнаяСтрока> (необязательный) Тип: СтрокаТаблицыЗначений.

Указывает строку таблицы значений, на которой будет установлен курсор при открытии окна выбора.

Возвращаемое значение: Тип: СтрокаТаблицыЗначений, Неопределено.

Если пользователь отказался от выбора, возвращает Неопределено.

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

Доступность: Толстый клиент.

ВыгрузитьКолонку (UnloadColumn)

Синтаксис: ВыгрузитьКолонку(<Колонка>)

Параметры:

<Колонка> (обязательный) Тип: Число, Строка, КолонкаТаблицыЗначений.

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

Возвращаемое значение: Тип: Массив.

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

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

Добавить (Add)

Синтаксис: Добавить()

Возвращаемое значение: Тип: СтрокаТаблицыЗначений.

Описание: Добавляет строку в конец таблицы значений.

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

ЗагрузитьКолонку (LoadColumn)

Синтаксис: ЗагрузитьКолонку(<Массив>, <Колонка>)

Параметры:

<Массив> (обязательный) Тип: Массив.

Массив значений, который выступает в качестве источника данных для колонки.

<Колонка> (обязательный) Тип: Число, Строка, КолонкаТаблицыЗначений.

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

Описание: Загружает колонку таблицы значений из массива значений.

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

Примечание: Значения из массива загружаются в колонку в порядке индексов.

ЗаполнитьЗначения (FillValues)

Синтаксис: ЗаполнитьЗначения(<Значение>, <Колонки>)

Параметры:

<Значение> (обязательный) Тип: Произвольный.

Значение, которым необходимо заполнить строки таблицы.

<Колонки> (необязательный) Тип: Строка.

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

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

Описание: Заполняет все строки таблицы значений указанным значением.

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

Индекс (IndexOf)

Синтаксис: Индекс(<Строка>)

Параметры:

<Строка> (обязательный) Тип: СтрокаТаблицыЗначений.

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

Возвращаемое значение: Тип: Число.

Индекс указанной строки в коллекции. Если не найдено, то возвращается -1.

Описание: Получает индекс строки в коллекции строк таблицы значений.

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

Итог (Total)

Синтаксис: Итог(<Колонка>)

Параметры:

<Колонка> (обязательный) Тип: Строка.

Имя колонки, по которой необходимо посчитать итог.

Возвращаемое значение: Тип: Число, Неопределено.

Сумма значений по всем строкам указанной колонки.

Описание: Суммирует значения всех строк в указанной колонке.

Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.

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

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

Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено.

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

Количество (Count)

Синтаксис: Количество()

Возвращаемое значение: Тип: Число.

Сумма значений по всем строкам указанной колонки.

Описание: Получает количество строк таблицы значений.

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

Найти (Find)

Синтаксис: Найти(<Значение>, <Колонки>)

Параметры:

<Значение> (обязательный) Тип: Произвольный.

Искомое значение.

<Колонки> (необязательный) Тип: Строка.

Список имен колонок, разделенных запятыми, по которым производится поиск.

Если параметр не указан, поиск осуществляется по всей таблице значений. Значение по умолчанию: Пустая строка.

Возвращаемое значение: Тип: СтрокаТаблицыЗначений, Неопределено.

Строка, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено.

Описание: Осуществляет поиск значения в указанных колонках таблицы значений.

Примечание: Метод эффективно использовать для поиска уникальных значений.

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

НайтиСтроки (FindRows)

Синтаксис: НайтиСтроки(<ПараметрыОтбора>)

Параметры:

<ПараметрыОтбора> (обязательный) Тип: Структура.

Задает условия поиска: ключ структуры определяет имя колонки, по которой будет осуществляться поиск, а значение структуры - искомое значение.

Возвращаемое значение: Тип: Массив.

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

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

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

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

Примечание: Метод эффективно использовать для выборки неуникальных значений.

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

Очистить (Clear)

Синтаксис: Очистить()

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

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

Получить (Get)

Синтаксис: Получить(<Индекс>)

Параметры:

<Индекс> (обязательный) Тип: Число.

Индекс строки.

Возвращаемое значение: Тип: СтрокаТаблицыЗначений.

Описание: Получает значение по индексу. Работает аналогично оператору [].

Примечание: Применяется в случаях, когда использование оператора [] невозможно.

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

Свернуть (GroupBy)

Синтаксис: Свернуть(<КолонкиГруппировок>, <КолонкиСуммирования>)

Параметры:

<КолонкиГруппировок> (обязательный) Тип: Строка.

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

<КолонкиСуммирования> (необязательный) Тип: Строка.

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

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

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

Примечание: Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.

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

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

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

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

Сдвинуть (Move)

Синтаксис: Сдвинуть(<Строка>, <Смещение>)

Параметры:

<Строка> (обязательный) Тип: Число, СтрокаТаблицыЗначений.

Индекс строки, которую нужно переместить, или сама строка.

<Смещение> (обязательный) Тип: Число.

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

Описание: Сдвигает строку на указанное количество позиций.

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

Скопировать (Copy)

Вариант синтаксиса: Скопировать строки

Синтаксис: Скопировать(<Строки>, <Колонки>)

Параметры:

<Строки> (необязательный) Тип: Массив.

Массив строк для копирования. Если не указан, копируются все строки таблицы значений.

<Колонки> (необязательный) Тип: Строка.

Список колонок для копирования в формате: "Колонка1, Колонка2...".

Описание варианта метода: Если указаны строки и колонки, то только они будут скопированы. Если не указаны, то будет создана полная копия таблицы значений.

Вариант синтаксиса: Скопировать по отбору

Синтаксис: Скопировать(<ПараметрыОтбора>, <Колонки>)

Параметры:

<ПараметрыОтбора> (необязательный) Тип: Структура.

Ключ структуры - идентификатор колонки, а значение структуры - значение отбора.

<Колонки> (необязательный) Тип: Строка.

Список колонок для копирования в формате: "Колонка1, Колонка2...".

Описание варианта метода: Если указан отбор, то только строки из отбора будут скопированы. Если отбор не указан, то будут скопированы все строки таблицы значений. Если указаны колонки, то только эти колонки будут скопированы. Иначе, будут скопированы все колонки таблицы значений.

Возвращаемое значение: Тип: ТаблицаЗначений.

Описание: Создает копию исходной таблицы значений.

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

СкопироватьКолонки (CopyColumns)

Синтаксис: СкопироватьКолонки(<Колонки>)

Параметры:

<Колонки> (необязательный) Тип: Строка.

Список колонок для копирования в формате: "Колонка1, Колонка2...". Если список не задан, то будут скопированы все колонки.

Возвращаемое значение: Тип: ТаблицаЗначений.

Описание: Создает таблицу значений с заданным списком колонок.

Примечание: Содержимое колонок не копируется.

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

Сортировать (Sort)

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

Параметры:

<Колонки> (обязательный) Тип: Строка.

Список имен колонок, разделенных запятыми, по которым производится сортировка таблицы. После каждого имени колонки через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Порядок указания имен колонок таблицы определяет порядок сортировки. Это означает, что сначала таблица сортируется по колонке, указанной первой. Затем группы строк с одинаковым значением в этой колонке сортируются по колонке, которая указана второй, и так далее.

<ОбъектСравнения> (необязательный) Тип: СравнениеЗначений.

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

Дополнительно к этому: если объект сравнения не задан, то элементы остальных типов сравниваются по строковому представлению;

если объект сравнения задан, то: объекты сравниваются по идентификатору;

моменты времени сравниваются по дате и идентификатору объекта;

элементы остальных типов сравниваются по строковому представлению.

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

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

Удалить (Delete)

Вариант синтаксиса: Удаление по объекту

Синтаксис: Удалить(<Строка>)

Параметры:

<Строка> (обязательный) Тип: СтрокаТаблицыЗначений.

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

Вариант синтаксиса: Удаление по индексу

Синтаксис: Удалить(<Индекс>)

Параметры:

<Индекс> (обязательный) Тип: Число.

Индекс строки, которую необходимо удалить.

Описание: Удаляет строку таблицы значений.

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

Слишком маленькое разрешение экрана.