Содержание
Таблица значений в языке 1С 8.3, 8.2 (в примерах)
Всё для программиста >> Справочник языка 1С
Вступайте в мою группу помощник программиста.В ней мы обсуждаем программирование в 1С.
ДатаЕслиМассивыМатематикаПроцедурыСтрокиЦиклыДиалогиОписаниеТиповОперационнаяСистемаПриложениеСоответствиеСписокЗначенийСтруктура ТаблицаЗначенийФайловаяСистемаФорматОбщиеОбъектыЗапросыПрикладныеОбъектыУниверсальныеФункции
См. уроки на другие возможности языка 1С Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Таблица значений
Описание:
Таблица значений — это несохраняемый в базе данных объект, который позволяет строить динамические наборы значений и манипулировать ими (добавлять, редактировать, удалять элементы, сортировать). Он может быть наполнен значениями любого типа, т.е. в одной таблице типы хранимых значений могут быть разными. Одним из примеров использования данного объекта может служить организация представления в форме списка элементов справочника, отобранных по сложному алгоритму.
Необходимо отметить, что таблица значений, связанная с элементом управления ТабличноеПоле, будет иметь все колонки, имеющиеся в табличном поле, с соответствующими именами. Кроме того, таблица значений может иметь также и собственные колонки, не отображаемые в табличном поле, при этом их имена должны отличаться от имен колонок табличного поля.
Элементы коллекции: СтрокаТаблицыЗначений
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции.
Возможно обращение к элементу коллекции посредством оператора […]. В качестве аргумента передается индекс строки (нумерация с 0).
Свойства:
Индексы | Содержит коллекцию индексов таблицы значений. |
Колонки | Содержит коллекцию колонок таблицы значений. |
Методы:
Вставить(Индекс) | Вставляет строку на позицию в таблице значений, соответствующую указанному индексу. Возвращает вставленную строку. |
ВыбратьСтроку(Заголовок, НачальнаяСтрока) | Вызывает модальное диалоговое окно для интерактивного выбора строки из таблицы значений. Возвращает выбранную строку или Неопределено, если пользователь отказался от выбора. |
ВыгрузитьКолонку(Колонка) | Создает массив и копирует в него значения, содержащиеся в колонке таблицы значений. Возвращает этот массив. |
Добавить() | Добавляет строку в конец таблицы значений. Возвращает добавленную строку. |
ЗагрузитьКолонку(Массив, Колонка) | Загружает колонку таблицы значений из массива значений. |
ЗаполнитьЗначения(Значение, Колонки) | Заполняет все строки таблицы значений указанным значением. |
Индекс(Строка) | Получает индекс строки в коллекции строк таблицы значений. Если не найдено, то возвращается -1. |
Итог(Колонка) | Суммирует значения всех строк в указанной колонке. Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число. Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено. |
Количество() | Получает количество строк таблицы значений. |
Найти(Значение, Колонки) | Осуществляет поиск значения в указанных колонках таблицы значений. Возвращает строку, в которой содержится искомое значение. Если значение не найдено, то возвращается значение Неопределено. |
НайтиСтроки(ПараметрыОтбора) | Осуществляет поиск строк таблицы значений, отвечающих заданным условиям поиска. Возвращает массив строк таблицы значений, соответствующих условиям поиска. Замечание! Массив хранит ссылки на строки таблицы значений, то есть при изменении строки в таблице, значение в массиве тоже будет измененным. |
Очистить() | Удаляет все строки таблицы значений. Структура колонок остается неизменной. |
Получить(Индекс) | Получает значение по индексу. Работает аналогично оператору []. |
Свернуть(КолонкиГруппировок, КолонкиСуммирования) | Осуществляет свертку таблицы значений по указанным колонкам группировки. Строки, у которых совпадают значения в колонках, указанных в первом параметре, сворачиваются в одну строку. Значения этих строк, хранящиеся в колонках, указанных во втором параметре, накапливаются. Важно! Списки колонок не должны пересекаться. Колонки, не вошедшие ни в один из списков колонок, после выполнения метода удаляются из таблицы значений. |
Сдвинуть(Строка, Смещение) | Сдвигает строку на указанное количество позиций. |
Скопировать(Строки, Колонки) | Если указаны строки и колонки, то только они будут скопированы. Если не указаны, то будет создана полная копия таблицы значений. |
СкопироватьКолонки(Колонки) | Создает таблицу значений с заданным списком колонок. |
Сортировать(Колонки, ОбъектСравнения) | Сортирует таблицу значений в соответствии с указанными правилами сортировки. |
Удалить(Строка) | Удаляет строку таблицы значений, где Строка — индекс или сама строка. |
Конструктор:
НовыйТаблицаЗначений |
&НаСервере Процедура ВыполнитьКодНаСервере() /// Как создать таблицу значений в 1с 8.3, 8.2 // с таблицей значений можно работать только на сервере Таб =Новый ТаблицаЗначений; /// Как добавить колонки в таблицу значений в 1с 8.3, 8.2 Таб.Колонки.Добавить("Фрукт"); Таб.Колонки.Добавить("Цвет"); Таб.Колонки.Добавить("Вкус"); /// Как добавить строки в таблицу значений в 1с 8.3, 8.2 Стр = Таб.Добавить(); Стр.Фрукт ="Яблоко"; Стр.Цвет ="Зелёный"; Стр.Вкус ="Кислый"; Стр = Таб.Добавить(); Стр.Фрукт ="Банан"; Стр.Цвет ="Желтый"; Стр.Вкус ="Сладкий"; Стр = Таб.Добавить(); Стр.Фрукт ="Слива"; Стр.Цвет ="Синий"; Стр.Вкус ="Терпкий"; /// Как добавить в таблицу значений колонку с /// описанием типа и заголовка в 1с 8.3, 8.2 ОписаниеВеса =Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(12,3)); Таб.Колонки.Добавить("ВесФрукта", ОписаниеВеса,"Вес фрукта"); Таб[].ВесФрукта =100.005; Таб[1].ВесФрукта =60.010; Таб[2].ВесФрукта =25.000; /// Как перечислить все строки в таблице значений в 1с 8.3, 8.2 ДляКаждого Стр Из Таб Цикл Сообщить(Стр.Фрукт +" "+ Стр.Цвет +" "+ Стр.Вкус +" "+ Стр.ВесФрукта);КонецЦикла; /// Как перечислить все колонки в таблице значений /// в 1с 8.3, 8.2 ДляКаждого Колонка Из Таб.Колонки Цикл Сообщить(Колонка.Имя);КонецЦикла; /// Как выгрузить колонку таблицы значений в массив в 1с 8.3, 8.2 // выгрузка названий фруктов в массив МассивФруктов = Таб.ВыгрузитьКолонку("Фрукт"); // ничего не измениться, так как массив не менялся Таб.ЗагрузитьКолонку(МассивФруктов,"Фрукт"); /// Как заполнить значения в колонке для всех строк таблицы /// значений в 1с 8.3, 8.2 // обнулим вес во всех строках Таб.ЗаполнитьЗначения(,"ВесФрукта"); // выставим новые веса Таб[].ВесФрукта =100; Таб[1].ВесФрукта =60; Таб[2].ВесФрукта =25; /// Как в таблице значений посчитать итог по колонке в 1с 8.3, 8.2 Сообщить(Таб.Итог("ВесФрукта"));// 185 /// Как найти строку в таблице значений по значению в 1с 8.3, 8.2 // найдём строчку с яблоком и покажем его цвет НайденнаяСтрока = Таб.Найти("Яблоко");Если НайденнаяСтрока <>НеопределеноТогда Сообщить(НайденнаяСтрока.Цвет);// ЗелёныйКонецЕсли; /// Как найти строку в таблице значений поиском значения /// в определенных колонках в 1с 8.3, 8.2 // будем искать по слову "Кислый" в колонках вкус и цвет НайденнаяСтрока = Таб.Найти("Кислый","Вкус, Цвет");Если НайденнаяСтрока <>НеопределеноТогда Сообщить(НайденнаяСтрока.Фрукт);// ЯблокоКонецЕсли; // добавим ещё один зелёный фрукт Стр = Таб.Добавить(); Стр.Фрукт ="Киви"; Стр.Цвет ="Зелёный"; Стр.Вкус ="Сладкий"; Стр.ВесФрукта =30; /// Как искать в таблице значений неуникальные значения /// в 1с 8.3, 8.2 Отбор =Новый Структура; Отбор.Вставить("Цвет","Зелёный"); Строки = Таб.НайтиСтроки(Отбор);ДляКаждого Стр Из Строки Цикл Сообщить(Стр.Фрукт);// Яблоко КивиКонецЦикла; /// Как сдвинуть строку таблицы значений в 1с 8.3, 8.2 // сдвигаем первую строку на одну позицию вперёд Таб.Сдвинуть(,1); // и возвращаем обратно Таб.Сдвинуть(1,-1); /// Как создать копию таблицы значений в 1с 8.3, 8.2 // полная копия КопияТаб = Таб.Скопировать(); /// Как создать копию таблицы значений по нужным колонкам /// в 1с 8.3, 8.2 // только две колонки будет Фрукт и Цвет КопияТаб = Таб.СкопироватьКолонки("Фрукт, Цвет"); /// Как создать копию таблицы значений по отбору в 1с 8.3, 8.2 Отбор =Новый Структура; Отбор.Вставить("Фрукт","Яблоко"); // таблица будет содержать только строчку с яблоком КопияТаб = Таб.Скопировать(Отбор); // таблица будет содержать цвет и вес яблока КопияТаб = Таб.Скопировать(Отбор,"Цвет, ВесФрукта"); /// Как свернуть таблицу значений по колонке в 1с 8.3, 8.2 // свернём по вкусу, просуммируем по весу Таб.Свернуть("Вкус","ВесФрукта"); /// Как отсортировать таблицу значений по колонке в 1с 8.3, 8.2 Таб.Сортировать("ВесФрукта Возр"); /// Как отсортировать таблицу значений по нескольким колонкам /// в 1с 8.3, 8.2 Таб.Сортировать("ВесФрукта Возр, Вкус Убыв"); /// Как удалить строку из таблицы значений в 1с 8.3, 8.2 // по индексу или по значению Таб.Удалить(); КонецПроцедуры /// Как программно вывести таблицу значений на/// форму в 1с 8.3, 8.2 // см. примеры использования этой функции ниже // ТабВКоде - таблица значений, созданная программно// ТабРеквизит - имя реквизита формы типа ТаблицаЗначений// ТабНаФорме - имя элемента формы, связанного с ТабРеквизит &НаСервере Процедура ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде, ТабРеквизит, ТабНаФорме) // реквизит ТабРеквизит и соответствующий// ему элемент формы ТабНаФорме уже созданы// нами в визуальном режиме // 1. добавляем колонки из ТабВкоде в реквизит ТабРеквизит НовыеРеквизиты =Новый Массив; ДляКаждого Колонка Из ТабВКоде.Колонки Цикл НовыеРеквизиты.Добавить(Новый РеквизитФормы( Колонка.Имя, Колонка.ТипЗначения, ТабРеквизит ));КонецЦикла; ИзменитьРеквизиты(НовыеРеквизиты); // 2. добавляем колонки из ТабВКоде в элемент ТабНаФорме ДляКаждого Колонка Из ТабВКоде.Колонки Цикл НовыйЭлемент = Элементы.Добавить( ТабРеквизит +"_"+ Колонка.Имя, Тип("ПолеФормы"), Элементы[ТабНаФорме]); НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ПутьКДанным = ТабРеквизит +"."+ Колонка.Имя;КонецЦикла; // 3. наконец, передаём данные из ТабВКоде в ТабРеквизит ЗначениеВРеквизитФормы(ТабВКоде, ТабРеквизит); // готово! КонецПроцедуры &НаСервере Процедура СоздатьТаблицуНаФормеНаСервере() // программно создаём таблицу значений ТабВКоде ТабВКоде =Новый ТаблицаЗначений; ОписаниеСтроки =Новый ОписаниеТипов("Строка"); ОписаниеВеса =Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(12,3)); ТабВКоде.Колонки.Добавить("Фрукт", ОписаниеСтроки,"Имя фрукта"); ТабВКоде.Колонки.Добавить("Цвет", ОписаниеСтроки,"Цвет фрукта"); ТабВКоде.Колонки.Добавить("Вес", ОписаниеВеса,"Вес фрукта"); Стр = ТабВКоде.Добавить(); Стр.Фрукт ="Яблоко"; Стр.Цвет ="Зелёный"; Стр.Вес =200; Стр = ТабВКоде.Добавить(); Стр.Фрукт ="Банан"; Стр.Цвет ="Желтый"; Стр.Вес =150; ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде,"ТабРеквизит1","ТабНаФорме1"); КонецПроцедуры /// Как программно вывести на форму результат запроса/// в виде таблицы значений в 1с 8.3, 8.2 &НаСервере Процедура ВывестиНаФормуРезультатЗапросаНаСервере() Запрос =Новый Запрос; Запрос.Текст ="ВЫБРАТЬ | Товары.Ссылка, | Товары.ВерсияДанных, | Товары.ПометкаУдаления, | Товары.Код, | Товары.Наименование, | Товары.Цвет, | Товары.ЕдиницаИзмерений, | Товары.Предопределенный, | Товары.ИмяПредопределенныхДанных |ИЗ | Справочник.Товары КАК Товары"; РезультатЗапроса = Запрос.Выполнить(); ТабВКоде = РезультатЗапроса.Выгрузить(ОбходРезультатаЗапроса.Прямой); // функция ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме определена выше ВывестиТаблицуЗначенияВКодеВТаблицуНаФорме(ТабВКоде,"ТабРеквизит2","ТабНаФорме2"); КонецПроцедуры /// Скачать и выполнить эти примеры на компьютере |
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Таблица значений в языке 1С 8.3, 8.2 (в примерах)
ДатаЕслиМассивыМатематикаПроцедурыСтрокиЦиклыДиалогиОписаниеТиповОперационнаяСистемаПриложениеСоответствиеСписокЗначенийСтруктура ТаблицаЗначенийФайловаяСистемаФорматОбщиеОбъектыЗапросыПрикладныеОбъектыУниверсальныеФункции
С уважением, (преподаватель школы 1С программистов и разработчик обновлятора). Всё для программиста >> Справочник языка 1С
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь. |
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Для того, чтобы учитывать деньги и товары, в бизнесе широко используют разные таблицы. Почти каждый документ – это таблица.
В одной таблице перечислены товары к отгрузке со склада. В другой таблице – обязательства по оплате этих товаров.
Поэтому в 1С видное место занимает работа с таблицами.
Таблицы в 1С также называют «табличные части». Они есть у справочников, документов и других объектов конфигурации 1С.
В языке 1С таблицы называют «таблица значений».
Сегодня мы поговорим про работу в 1С с таблицами.
Что такое таблица 1С
Самое наглядное представление электронное таблицы можно посмотреть в Excel.
Таблица – это колонки, у которых есть имя. В большинстве случаев колонки имеют тип (типизированы). Это значит, что значения в этих колонках будут одного типа (строка или число или дата).
Строки пронумерованы и содержат значения в разрезе колонок.
На следующем скриншоте изображена таблица «Товары» из документа 1С. Таблицу документа называют «табличная часть». Она тоже имеет колонки, которые типизированы, и строчки, которые пронумерованы.
Над таблицей обычно расположена «командная панель» — группа кнопок для управления таблицей.
Другое «представление» таблиц в 1С – это таблица значений, которую программист использует в языке 1С. Таблицу значений можно вывести на экран с помощью метода ВыбратьСтроку()
.
И снова Вы видите те же колонки, пронумерованные строки. В таблице значений колонки могут быть как типизированны, так и нет. В последнем случае это значит, что в одной и той же колонке, в разных строчках будут совершенно разные значения.
Табличные части Объектов 1С
Итак, раскрыв в дереве объектов конфигурации любой справочник или документ Вы увидите ветку «Табличные части». С помощью нее можно добавить таблицу.
Такая таблица будет частью документа и будет сохраняться вместе с ним.
С точки зрения базы SQL – документ теперь будет хранится в двух таблицах, первая из которых будет хранить шапку документа и его идентификатор (одна строка на документ). Вторая таблица будет хранить табличные части с указанием идентификатора документа и номера строки (несколько строк на документ).
После добавления табличной части, в нее можно добавить реквизиты, также как и в шапку документа. Реквизиты табличной части – это ее колонки.
Так как для каждого реквизита необходимо указывать тип, то значения в этих колонках можно будет указать строго определенного типа.
Добавление строчек в такую таблицу проводится пользователем, в режиме Предприятие. Пользователь работает с формой документа, поэтому таблицу необходимо поместить на форму.
Таблицы в языке 1С
В языке 1С есть возможность создавать таблицы не привязанные к справочнику или документу.
//таблица Таблица = Новый ТаблицаЗначений();// создаем таблицу
//колонки Таблица.Колонки.Добавить(«Наименование»);//добавляем нетипизированную колонку Таблица.Колонки.Добавить(«Товар», Новый ОписаниеТипов(«СправочникСсылка.Номенклатура»));//добавляем колонку со строгим указанием типа
//строчки Строка = Таблица.Добавить(); Строка.Наименование = «Лопата»;//указываем произвольное значение Строка.Товар = Справочники.Номенклатура.НайтиПоНаименованию(«Лопата»); //указываем значение со строго определенным типом
//обход всей таблицы Для каждого Строка из Таблица Цикл Сообщить(Строка.Наименование); КонецЦикла;
Таблица как результат запроса
В предыдущих уроках мы обсуждали с Вами язык запросов 1С и возможность получения данных из базы 1С с помощью запросов 1С.
Запрос в результате своего выполнения возвращает таблицу, доступ к которой возможно получить двумя разными способами.
Первый – более быстрый – выборка, получение строк из нее возможен только по порядку. Второй – выгрузка результата запроса в таблицу значений и далее произвольный доступ к ней.
//Вариант 1 – последовательный доступ к результатам запроса Запрос = Новый Запрос(«ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура»); //получение таблицы Выборка = Запрос.Выполнить().Выбрать(); //по порядку обходим все строки результата запроса Пока Выборка.Следующий() Цикл Сообщить(Выборка.Наименование); КонецЦикла;
//Вариант 2 – выгрузка в таблицу значений Запрос = Новый Запрос(«ВЫБРАТЬ Наименование ИЗ Справочник.Номенклатура»); //получение таблицы Таблица = Запрос.Выполнить().Выгрузить(). //далее можем также обойти все строки Для каждого Строка из Таблица Цикл Сообщить(Строка.Наименование); КонецЦикла; //или произвольно обращаться к строкам Строка = Таблица.Найти(«Лопата», «Наименование»);
Важная особенность – в таблице, которая получена из результата запроса, все колонки будут строго типизированы. Это значит, что запросив поле Наименование из справочника Номенклатура, Вы получите колонку вида Строка с допустимой длиной не более N символов.
Таблица на форме (толстый клиент)
Пользователь работает с таблицей, когда она размещена на форме.
Базовые принципы работы с формами мы с Вами обсуждали в уроке по формам толстого клиента и в уроке по управляемым формам
Итак, разместим таблицу на форме. Для этого можно перетащить таблицу с панели элементов управления. Аналогично можно выбрать в меню Форма/Вставить элемент управления.
Далее необходимо зайти в свойства таблицы. Самое важное свойство для таблицы – Данные. В нем указывается связь таблицы на форме с хранением данных.
Данные могут храниться в конфигурации – тогда нужно выбрать существующую (ранее добавленную) табличную часть того объекта конфигурации, форму которого Вы редактируете.
Нажмите кнопку «…» в свойстве Данные. Для того, чтобы увидеть список табличных частей, нужно раскрыть ветку Объект.
При выборе табличной части 1С сама добавит колонки у таблицы на форме. Строки введенные пользователем в такую таблицу будут сохраняться автоматически вместе со справочником/документом.
В этом же свойстве Данные Вы можете ввести произвольное имя и выбрать тип ТаблицаЗначений.
Это значит, что выбрана произвольная таблица значений. Она не добавит автоматически колонки, не будет автоматически сохраняться, но и делать с ней можно все, что угодно.
Нажав правой кнопкой на таблице Вы можете добавить колонку. В свойствах колонки можно указать его имя (для обращения в коде 1С), заголовок колонки на форме, связь с реквизитом табличной части (последнее – если выбрана не произвольная таблица, а табличная часть).
В свойствах таблицы на форме Вы можете указать – доступно ли пользователю добавлять/удалять строки. Более продвинутая форма – галочка ТолькоПросмотр. Эти свойства удобно использовать для организации таблиц предназначенных для вывода информации, но не редактирования.
Чтобы управлять таблицей, нужно вывести на форму командную панель. Выберите пункт меню Форма/Вставить элемент управления/Командная панель.
В свойствах командной панели выберите галочку Автозаполнение, чтобы кнопки на панели появились автоматически.
Таблица на форме (тонкий/управляемый клиент)
На управляемой форме указанные действия выглядят немного по другому. Если Вам нужно разместить на форме табличную часть – раскройте ветку Объект и перетащите одну из табличных частей влево. И все!
Если нужно разместить таблицу значений, добавьте новый реквизит формы и в его свойствах укажите тип – таблица значений.
Чтобы добавить колонки, используйте меню по правой кнопке мыши на этом реквизите формы, пункт Добавить колонку реквизита.
После чего также перетащите таблицу влево.
Чтобы у таблицы появилась командная панель, в свойствах таблицы выберите значения в секции Использование – Положение командной панели.
Выгрузка таблицы в Excel
Любую таблицу 1С, расположенную на форме, можно распечатать или выгрузить в Excel.
Для этого щелкните правой кнопкой мыши на свободном месте в таблице и выберите пункт Вывести список.
В управляемом (тонком) клиент аналогичные действия можно выполнить с помощью пункта меню Все действия/Вывести список.
Список в табличном документе можно сохранить в Excel с помощью пункта меню Файл/Сохранить как с выбранным типом Excel.
Таблица значений — специальный объект в программировании 1С 8.3 (8.2), который позволяет хранить промежуточные значения в виде двумерного массива со строками и колонками. Таблицы значений можно использовать как источник данных в запросе.
Таблицу значений, как любую коллекцию, можно обойти циклом. Например:
ДляКаждого Строка Из Товары Цикл
Получить нужную строку можно по индексу, например:
Строка = ТаблицаЗначений[];
Индексы в 1С начинается с 0 (нуля).
Рассмотрим основные свойства и методы этого объекта на примерах.
Создание и использование таблиц значений 1С в примерах
Создать таблицу можно следующим образом:
ТаблицаТоваров =Новый ТаблицаЗначений;
Добавить колонки в таблицу значений 1С:
ТаблицаТоваров.Колонки.Добавить("Программа",Новый ОписаниеТипов("СправочникСсылка.Номенклатура")); ТаблицаТоваров.Колонки.Добавить("Цена",Новый ОписаниеТипов("Число"));
Крайне рекомендую указывать кроме первого еще и второй параметр — тип данных. Он поможет избежать некоторых ошибок.
После создания колонок добавим несколько новых строк и заполним колонки:
НоваяСтрока = ТаблицаТоваров.Добавить(); НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1C 8.3 Управление торговлей"); НоваяСтрока.Цена =17400; НоваяСтрока = ТаблицаТоваров.Добавить(); НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1С 8.2 Бухгалтерия"); НоваяСтрока.Цена =13000; НоваяСтрока = ТаблицаТоваров.Добавить(); НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию("1С 8 Управление небольшой фирмой"); НоваяСтрока.Цена =17400;
Получите 267 видеоуроков по 1С бесплатно:
- Бесплатный видео самоучитель по 1С Бухгалтерии 8.3;
- Самоучитель по новой версии 1С ЗУП 3.1;
Добавим еще одну колонку:
ТаблицаТоваров.Колонки.Добавить("ВерсияПлатформы",Новый ОписаниеТипов("Строка"));
Которую мы можем заполнить одинаковыми значениями двумя способами — перебором таблицы или функцией ЗаполнитьЗначения:
ДляКаждого Строка Из ТаблицаТоваров.ВерсияПлатформы Цикл Строка.ВерсияПлатформы ="1C 8.3";КонецЦикла;//или ТаблицаТоваров.ЗаполнитьЗначения("8.3","ВерсияПлатформы");
Сообщим пользователю название первой в списке программы (индекс таблицы значений в 1С начинается с «0»:
Сообщить(ТаблицаТоваров[].Программа);
Скопировать строку таблицы значений 1С, для примера — первую:
ЗаполнитьЗначенияСвойств(ТаблицаТоваров.Добавить(), ТаблицаТоваров[]);
Поиск в таблице значений 1С с ценой «17400» с помощью структуры:
МассивСтрок = ТаблицаТоваров.НайтиСтроки(Новый Структура("Цена",17400));
Сортировка программ в таблице по цене:
ТаблицаТоваров.Сортировать("Цена");
Количество строк в таблице:
ВсегоСтрок = ТаблицаТоваров.Количество();
Выгрузить колонку таблицы значений в массив 1С 8.3 или 8.2:
ТаблицаТоваров.ВыгрузитьКолонку("Программа");
Чтобы удалить строку в таблице значений, нужно передать саму строку или индекс в метод «Удалить». Два варианта:
//по строке ТаблицаТоваров.Удалить(ТаблицаТоваров[ВсегоСтрок -1]);//по индексу ТаблицаТоваров.Удалить(ВсегоСтрок -1);
Полностью скопировать таблицу значений 1С можно так:
НоваяТаблицаТоваров = ТаблицаТоваров.Скопировать();
Просуммировать итог по колонке таблицы значений:
СуммаЦен = ТаблицаТоваров.Итог("Цена");
Свернуть таблицу можно так:
ТаблицаТоваров.Свернуть("ВерсияПлатформы","Цена");
При этом в таблице останутся только различные значения из колонки «ВерсияПлатформы» с суммированными полями «Цена».
Ну и напоследок очистим строки таблицы значений 1С 8.3 (8.2) полностью:
ТаблицаТоваров.Очистить();
И удалим все колонки:
ТаблицаТоваров.Колонки.Очистить();
Если Вы начинаете изучать 1С программирование, рекомендуем наш курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):
К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.
Оцените статью, пожалуйста!
Используемые источники:
- https://helpme1c.ru/tablica-znachenij-v-yazyke-1s-8-v-primerax
- http://howknow1c.ru/programmirovanie-1c/tablicy-1s.html
- https://programmist1s.ru/rabota-s-tablitsami-znacheniy-v-1s-8-3-8-2/