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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания - попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

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

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

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

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

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

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

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

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

//или

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

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

Комментариев: 3 на “Работа с таблицей значений в 1С 8.3
  1. А как работать с ТаблицейЗначений как с элементом формы

    Ответить

  2. Здравствуйте. Можно ли добавить строку в таблице между строк?

    Ответить

  3. Можно ли добавить в таблице строку между строк?

    Ответить

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

Ваш адрес email не будет опубликован.