Закажите бесплатный расчет стоимости вашей задачи по 1С!
Перезвоним за 10 минут!

Работа с таблицей значений в 1С 8.3 (8.2)

Таблица значений — специальный объект в программировании 1С 8.3 (8.2), который позволяет хранить промежуточные значения в виде двумерного массива со строками и колонками. Таблицы значений можно использовать как источник данных в запросе.

Таблицу значений, как любую коллекцию, можно обойти циклом. Например:

Для Каждого Строка Из Товары Цикл

Получить нужную строку можно по индексу, например:

Строка = ТаблицаЗначений[0];

Индексы в 1С начинается с 0 (нуля).

Рассмотрим основные свойства и методы этого объекта на примерах.

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

Создать таблицу можно следующим образом:

ТаблицаТоваров = Новый ТаблицаЗначений;

Добавить колонки в таблицу значений 1С:

ТаблицаТоваров.Колонки.Добавить("Программа", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
ТаблицаТоваров.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));

Крайне рекомендую указывать кроме первого еще и второй параметр — тип данных. Он поможет избежать некоторых ошибок.

После создания колонок добавим несколько новых строк и заполним колонки:

НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1С 8.3 Управление торговлей");
НоваяСтрока.Цена = 17400;

НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1С 8.2 Бухгалтерия");
НоваяСтрока.Цена = 13000;

НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1С 8 Управление небольшой фирмой");
НоваяСтрока.Цена = 17400;

Получите 267 видеоуроков по 1С бесплатно:

Добавим еще одну колонку:

ТаблицаТоваров.Колонки.Добавить("ВерсияПлатформы", Новый ОписаниеТипов("Строка"));

Которую мы можем заполнить одинаковыми значениями двумя способами — перебором таблицы или функцией ЗаполнитьЗначения:

Для Каждого Строка Из ТаблицаТоваров.ВерсияПлатформы Цикл
Строка.ВерсияПлатформы = "1C 8.3";
КонецЦикла;

//или

ТаблицаТоваров.ЗаполнитьЗначения("8.3", "ВерсияПлатформы");

Сообщим пользователю название первой в списке программы (индекс таблицы значений в 1С начинается с «0»:

Сообщить(ТаблицаТоваров[0].Программа);

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

ЗаполнитьЗначенияСвойств(ТаблицаТоваров.Добавить(), ТаблицаТоваров[0]);

Поиск в таблице значений 1С с ценой «17400» с помощью структуры:

МассивСтрок = ТаблицаТоваров.НайтиСтроки(Новый Структура("Цена", 17400));

Сортировка программ в таблице по цене:

ТаблицаТоваров.Сортировать("Цена");

Количество строк в таблице:

ВсегоСтрок = ТаблицаТоваров.Количество();

Выгрузить колонку таблицы значений в массив 1С 8.3 или 8.2:

ТаблицаТоваров.ВыгрузитьКолонку("Программа");

Что бы удалить строку в таблице значений нужно передать саму строку или индекс в метод «Удалить». Два варианта:

//по строке
ТаблицаТоваров.Удалить(ТаблицаТоваров[ВсегоСтрок  - 1]);
//по индексу
ТаблицаТоваров.Удалить(ВсегоСтрок  - 1);

Полностью скопировать таблицу значений 1С можно так:

НоваяТаблицаТоваров = ТаблицаТоваров.Скопировать();

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

СуммаЦен = ТаблицаТоваров.Итог("Цена");

Свернуть таблицу можно так:

ТаблицаТоваров.Свернуть("ВерсияПлатформы", "Цена");

При этом в таблице останется только различные значения из колонки «ВерсияПлатформы», с суммированными полями «Цена».

Ну и напоследок, очистим строки таблицы значений 1С 8.3 (8.2) полностью:

ТаблицаТоваров.Очистить();

И удалим все колонки:

ТаблицаТоваров.Колонки.Очистить();

P.S. Наша компания предоставляет услуги по настройке, доработке и комплексному внедрению 1С. Закажите бесплатный расчет стоимости вашей задачи на странице Услуги 1С или по телефону +7 (499) 350 29 00.

Остались вопросы?

Задайте ВОПРОС на нашем форуме 1С! ››

СПРОСИТЕ в комментариях!

Добавить комментарий:

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*