РЕКЛАМА

На главную страницу

РЕКЛАМА




Чтобы разместить ссылку на свой сайт с этой страницы воспользуйтесь системой платных ссылок SAPE.


На главную 1с форева.ру
На страницу "Программисту \ Разработка (программирование) приложений на платформе 1с".

Операции с таблицей значений в 1с.

Платформа: 8.2, 8.3
Формы: Обычные, Управляемые
Конфигурация: любая
Релиз: любой
Страница актуализирована: 30.01.2017

Не претендуя на полноту описания функций и методов работы с таблицей значений 1с привожу некоторые аспекты, которые в своё время вызвали у меня затруднения.

Таблица значений в 1с.

Описание типов колонок. Необходим, когда вы хотите заранее описать таблицу значений.
ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Документ", Новый ОписаниеТипов("ДокументСсылка.РеализацияТоваровУслуг"));
ТЗ.Колонки.Добавить("Документ", _ОписаниеСоставногоТипа);
ТЗ.Колонки.Добавить("ОписаниеОшибки", Новый ОписаниеТипов("Строка"));



Описание элементарных типов.
ОписаниеЧисла = Новый ОписаниеТипов("Число");
ОписаниеСтроки = Новый ОписаниеТипов("Строка");
ОписаниеДаты = Новый ОписаниеТипов("Дата");
ОписаниеБулева = Новый ОписаниеТипов("Булево");



Описание составного типа
СписокТипов = Новый Массив;
СписокТипов.Добавить("Строка");
СписокТипов.Добавить("Структура");
СписокТипов.Добавить("ДокументСсылка.РеализацияТоваровУслуг");
СписокТипов.Добавить("СправочникСсылка.Контрагенты");
_ОписаниеСоставногоТипа = Новый ОписаниеТипов(СписокТипов);



Перебрать таблицу значений.
Для Каждого стр Из ТЗ Цикл
      ...
КонецЦикла;



Залить таблицу значений в ТабличноеПоле (ТП1)
ТЗ = Запрос.Выполнить().Выгрузить();
ЭлементыФормы.ТП1.Значение = ТЗ;
ЭлементыФормы.ТП1.СоздатьКолонки();



Залить таблицу значений в табличную часть документа.
ТЗ = Запрос.Выполнить().Выгрузить();
Товары.Загрузить(ТЗ);



Залить таблицу значений в другую таблицу значений. В качестве параметра можно задать отбор.
_КопияТЗ = ТЗ.Скопировать(); // всю таблицу
_КопияТЗ = ТЗ.Скопировать(Отбор);    // с отбором
_КопияТЗ = Таб.Скопировать(, "Номенклатура, Сумма");    // конкретные колонки



Свернуть таблицу значений.
ТЗ.Свернуть("Номенклатура, ЕдиницаИзмерения","Количество, Сумма");



Сортировать таблицу значений.
ТЗ.Сортировать("Цена Убыв, Товар Возр");



Посчитать сумму по колонке.
_Всего = ТЗ.Итог("Стоимость");



Удалить из таблицы значений строки выборочно, по условию, если скопировать с отбором проблематично.
_Индекс = 0;
Пока _Индекс <= тз.количество()-1 цикл
    Если тз[_Индекс].внеПаллетныеОстатки = 0 Тогда
        тз.Удалить(_Индекс);
    Иначе
        _Индекс = _Индекс +1;
    КонецЕсли;
КонецЦикла;   



Copyright (c) by iKai, 2016