Таблицы 1С

Данная инструкция предназначена для управляемых форм (8. 2 и 8. Для обычных форм (8. 1, 8. 2) можно воспользоваться следующей инструкцией.

  • Создание внешней обработки
  • Заполнение табличной части документа
  • Регистрация внешней обработки

Таблица значений в 1С 8. 3 позволяет строить динамические наборы значений. При этом каких-либо жестких ограничений на тип данных не накладывается. Таблица значений создается в памяти и не сохраняется в базе данных, имеет множество полезных возможностей и работает очень быстро.

Свойствами таблиц значений являются:

  • индексы (коллекция индексов таблицы значений)
  • колонки (коллекция колонок таблицы значений).

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

Таблицы 1С

Табличные части существуют у многих объектов в 1С:

  • Справочники
  • Документы
  • Отчеты и обработки
  • Планы счетов
  • Планы видов характеристик
  • Планы видов расчета
  • Бизнес-процессы и задачи

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

Рассмотрим некоторые приемы работы с табличными частями.

Как обойти табличную часть

Для обхода табличной части можно использовать цикл Для каждого

Для каждого Строка из ТабличнаяЧасть Цикл

На каждой итерации в переменную Строка передается очередная строка табличной части. Значения реквизитов строки можно получить выражением Строка. ИмяРеквизита.

Как получить и обойти выделенные строки табличной части

Для вывода информации из табличной части объекта служит элемент формы Табличное поле. Для включения возможности выделения нескольких строк на табличном поле нужно установить значение Множественный у его свойства Режим выделения.

Для получения перечня выделенных строк используется следующий код:

ВыделенныеСтроки=ЭлементыФормы. ИмяТабличногоПоля. ВыделенныеСтроки;

Для того чтобы обойти выделенные строки используется цикл Для каждого:

Для каждого Строка из ВыделенныеСтроки Цикл

Как программно выделить строки табличной части (табличного поля) и снять выделение

Чтобы программно снять выделение строк табличного поля:

ЭлементыФормы. ИмяТабличногоПоля. ВыделенныйСтроки. Очистить();

Чтобы программно выделить все строки табличного поля:

Для каждого ТекущаяСтрока Из ТабличнаяЧасть Цикл
ЭлементыФормы. ИмяТабличногоПоля. ВыделенныеСтроки. Добавить(ТекущаяСтрока);
КонецЦикла;

Как очистить табличную часть

Текущая строка — это срока, в которой у пользователя в данный момент находится курсор. Чтобы ее получить, нужно обратиться к элементу управления на форме, который связан с табличной частью.

Для обычных форм код будет выглядеть так:

ЭлементыФормы. ИмяТабличногоПоля. ТекущиеДанные;

Для управляемых форм:

Элементы. ИмяТабличногоПоля. ТекущиеДанные;

Как добавить новую строку в табличную часть

Добавление новой строки в конец табличной части:

НоваяСтрока=ТабличнаяЧасть. Добавить();
НоваяСтрока. Реквизит1=»Значение»;

Добавление новой строки в любое место табличной части (последующие строки будут сдвинуты):

НоваяСтрока=ТабличнаяЧасть. Вставить(Индекс)
//Индекс — номер добавляемой строки. Нумерация строк начинается с нуля.

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

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

Создаваемая обработчиком процедура имеет три параметра:

  • Элемент — содержит элемент управления ТабличноеПоле.
  • НоваяСтрока — булево. Содержит значение Истина, если добавляется новая строка табличной части, и Ложь, если пользователь начал редактировать уже существующую строку.
  • Копирование — булево. Содержит значение Истина, если пользователь копирует строку, и Ложь в остальных случаях.

Рассмотрим пример. Допустим, нам нужно заполнить реквизит табличной части СчетУчета, в случае, когда добавляется новая строка. При редактировании существующей строки изменять счет учета не нужно.

Процедура ТабличнаяЧастьПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)

//Если пользователь редактирует существующую строку, то ничего не делаем
Если НЕ НоваяСтрока Тогда
Возврат;
КонецЕсли;

//Если же строка новая, устанавливаем счет учета
ТекСтрока = Элемент. ТекущиеДанные; //Получили текущую строку табличной части
ТекСтрока. СчетУчета = ПланыСчетов. Хозрасчетый. НужныйСчетУчета;
КонецПроцедуры

Для того, чтобы учитывать деньги и товары, в бизнесе широко используют разные таблицы. Почти каждый документ – это таблица.

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

Поэтому в 1С видное место занимает работа с таблицами.

Таблицы 1С

Таблицы в 1С также называют «табличные части». Они есть у справочников, документов и других объектов конфигурации 1С.

В языке 1С таблицы называют «таблица значений».

Сегодня мы поговорим про работу в 1С с таблицами.

Что такое таблица 1С

Самое наглядное представление электронное таблицы можно посмотреть в Excel.

Таблица – это колонки, у которых есть имя. В большинстве случаев колонки имеют тип (типизированы). Это значит, что значения в этих колонках будут одного типа (строка или число или дата).

Строки пронумерованы и содержат значения в разрезе колонок.

Таблицы 1С

На следующем скриншоте изображена таблица «Товары» из документа 1С. Таблицу документа называют «табличная часть». Она тоже имеет колонки, которые типизированы, и строчки, которые пронумерованы.

Над таблицей обычно расположена «командная панель» — группа кнопок для управления таблицей.

Таблицы 1С

Другое «представление» таблиц в 1С – это таблица значений, которую программист использует в языке 1С. Таблицу значений можно вывести на экран с помощью метода ВыбратьСтроку().

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

Таблицы 1С

Табличные части Объектов 1С

Итак, раскрыв в дереве объектов конфигурации любой справочник или документ Вы увидите ветку «Табличные части». С помощью нее можно добавить таблицу.

Такая таблица будет частью документа и будет сохраняться вместе с ним.

С точки зрения базы SQL – документ теперь будет хранится в двух таблицах, первая из которых будет хранить шапку документа и его идентификатор (одна строка на документ). Вторая таблица будет хранить табличные части с указанием идентификатора документа и номера строки (несколько строк на документ).

После добавления табличной части, в нее можно добавить реквизиты, также как и в шапку документа. Реквизиты табличной части – это ее колонки.

Таблицы 1С

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

Таблицы 1С

Добавление строчек в такую таблицу проводится пользователем, в режиме Предприятие. Пользователь работает с формой документа, поэтому таблицу необходимо поместить на форму.

Таблицы 1С

Таблицы в языке 1С

В языке 1С есть возможность создавать таблицы не привязанные к справочнику или документу.

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

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

//строчки
Строка = Таблица. Добавить();
Строка. Наименование = «Лопата»; //указываем произвольное значение
Строка. Товар = Справочники. Номенклатура. НайтиПоНаименованию(«Лопата»); //указываем значение со строго определенным типом

//обход всей таблицы
Для каждого Строка из Таблица Цикл
     Сообщить(Строка. Наименование);
КонецЦикла;

Таблица как результат запроса

В предыдущих уроках мы обсуждали с Вами язык запросов 1С и возможность получения данных из базы 1С с помощью запросов 1С.

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

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

//Вариант 1 – последовательный доступ к результатам запроса
Запрос = Новый Запрос(«ВЫБРАТЬ Наименование ИЗ Справочник. Номенклатура»);
//получение таблицы
Выборка = Запрос. Выполнить(). Выбрать();
//по порядку обходим все строки результата запроса
Пока Выборка. Следующий() Цикл
     Сообщить(Выборка. Наименование);
КонецЦикла;

//Вариант 2 – выгрузка в таблицу значений
Запрос = Новый Запрос(«ВЫБРАТЬ Наименование ИЗ Справочник. Номенклатура»);
//получение таблицы
Таблица = Запрос. Выполнить(). Выгрузить(). //далее можем также обойти все строки
Для каждого Строка из Таблица Цикл
     Сообщить(Строка. Наименование);
КонецЦикла;
//или произвольно обращаться к строкам
Строка = Таблица. Найти(«Лопата», «Наименование»);

Важная особенность – в таблице, которая получена из результата запроса, все колонки будут строго типизированы. Это значит, что запросив поле Наименование из справочника Номенклатура, Вы получите колонку вида Строка с допустимой длиной не более N символов.

Таблица на форме (толстый клиент)

Пользователь работает с таблицей, когда она размещена на форме.

Базовые принципы работы с формами мы с Вами обсуждали в уроке по формам толстого клиента и в уроке по управляемым формам

Итак, разместим таблицу на форме. Для этого можно перетащить таблицу с панели элементов управления. Аналогично можно выбрать в меню Форма/Вставить элемент управления.

Таблицы 1С

Далее необходимо зайти в свойства таблицы. Самое важное свойство для таблицы – Данные. В нем указывается связь таблицы на форме с хранением данных.

Таблицы 1С

Данные могут храниться в конфигурации – тогда нужно выбрать существующую (ранее добавленную) табличную часть того объекта конфигурации, форму которого Вы редактируете.

При выборе табличной части 1С сама добавит колонки у таблицы на форме. Строки введенные пользователем в такую таблицу будут сохраняться автоматически вместе со справочником/документом.

Таблицы 1С

В этом же свойстве Данные Вы можете ввести произвольное имя и выбрать тип ТаблицаЗначений.

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

Нажав правой кнопкой на таблице Вы можете добавить колонку. В свойствах колонки можно указать его имя (для обращения в коде 1С), заголовок колонки на форме, связь с реквизитом табличной части (последнее – если выбрана не произвольная таблица, а табличная часть).

Таблицы 1С

В свойствах таблицы на форме Вы можете указать – доступно ли пользователю добавлять/удалять строки. Более продвинутая форма – галочка ТолькоПросмотр. Эти свойства удобно использовать для организации таблиц предназначенных для вывода информации, но не редактирования.

Таблицы 1С

Чтобы управлять таблицей, нужно вывести на форму командную панель. Выберите пункт меню Форма/Вставить элемент управления/Командная панель.

Таблицы 1С

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

Таблицы 1С

Таблица на форме (тонкий/управляемый клиент)

На управляемой форме указанные действия выглядят немного по другому. Если Вам нужно разместить на форме табличную часть – раскройте ветку Объект и перетащите одну из табличных частей влево. И все!

Таблицы 1С

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

Таблицы 1С

Чтобы добавить колонки, используйте меню по правой кнопке мыши на этом реквизите формы, пункт Добавить колонку реквизита.

Таблицы 1С

После чего также перетащите таблицу влево.

Таблицы 1С

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

Таблицы 1С

Выгрузка таблицы в Excel

Любую таблицу 1С, расположенную на форме, можно распечатать или выгрузить в Excel.

Для этого щелкните правой кнопкой мыши на свободном месте в таблице и выберите пункт Вывести список.

Таблицы 1С

В управляемом (тонком) клиент аналогичные действия можно выполнить с помощью пункта меню Все действия/Вывести список.

Таблицы 1С

Список в табличном документе можно сохранить в Excel с помощью пункта меню Файл/Сохранить как с выбранным типом Excel.

В этой статье рассмотрим процесс написания простейшей внешней обработки заполнения табличной части в 1С 8 для конфигураций, использующих обычное приложение. Для примера возьмем такую задачу: “В конфигурации 1С:Бухгалтерия 2. 0 создать внешнюю обработку заполнения табличной части Товары документа Реализация товаров и услуг, данные для заполнения взять из табличной части Товары документа Поступление товаров и услуг”. Таким образом нам необходимо заполнить товары реализации на основании товаров поступления, такая задача довольно часто встречается в реальной практике программиста 1С.

Создание внешней обработки

Зайдем в 1С 8 в режиме Конфигуратор. При помощи меню Файл -> Новый или пиктограммы Новый документ создадим новую внешнюю обработку.

Таблицы 1С

В поле Имя укажем: “ПростейшееЗаполнениеТабличнойЧасти” и сохраним внешнюю обработку на жесткий диск используя меню Файл -> Сохранить или пиктограмму Сохранить или сочетание клавиш Ctrl + S.

Наша команда предоставляет услуги по консультированию, настройке и внедрению 1С. Связаться с нами можно по телефону +7 499 350 29 00. Услуги и цены можно увидеть по ссылке. Будем рады помочь Вам!

Таблицы 1С

Выделив ветку Реквизиты в дереве метаданных обработки и нажав кнопку Добавить(кнопка с зеленым плюсом) создадим новый реквизит внешней обработки — ДокументПоступления, выберем для него тип ДокументСсылка. ПоступлениеТоваровУслуг, этот реквизит нужен нам для выбора документа Поступление товаров и услуг, на основании которого будет заполняться реализация.

Таблицы 1С

Для выбора документа поступления нам понадобится отдельная форма. Выделив ветку Формы и используя ту же кнопку — Добавить создадим форму внешней обработки. Откроется окно конструктора формы , на первой странице конструктора никаких изменений делать не нужно, поэтому просто нажмем кнопку Далее.

Таблицы 1С

На второй странице конструктора нам необходимо выбрать реквизит ДокументПоступления(для того что бы он появился на создаваемой форме) и нажать кнопку Готово.

Таблицы 1С

После этого откроется созданная форма, нам необходимо что бы на ней пользователь выбирал документ поступления, и закрывал ее. Поэтому при нажатии кнопки Выполнить форма должна просто закрываться. Для того что бы реализовать это, выделим кнопку Выполнить, кликнем по ней правой кнопкой мыши и выберем пункт Свойства. В свойствах кнопки, в строке Действие выберем действие — Закрыть. На этом работа с формой завершена, закроем ее.

Таблицы 1С

Приступим к программированию обработки заполнения табличной части. Перейдем в Модуль объекта внешней обработки(на нижней панели обработки кнопка Действия -> Открыть модуль объекта).

Таблицы 1С

В нем нам необходимо создать экспортную процедуру Инициализировать.

Процедура Инициализировать(Объект, ИмяТабличнойЧасти = Неопределено, ТабличноеПолеОбъекта = Неопределено) Экспорт

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

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

При выполнении процедуры в параметре Объект будет содержаться объект документа, который мы заполняем, а в параметре ИмяТабличнойЧасти строка с именем табличной части, которую мы заполняем. Таким образом эта строчка кода получает табличную часть заполняемого документа по ее имени.

Нам необходимо что бы пользователь выбрал документ Поступление товаров и услуг, поэтому напишем код открытия формы выбора документа. Для начала получим эту форму в переменную, используя метод внешней обработки ПолучитьФорму(<Форма>, <Владелец>, <КлючУникальности>). Нам достаточно заполнить только первый параметр этого метода, передав туда строку с именем нашей формы.

ФормаВыбораПоступления = ПолучитьФорму();

Теперь откроем полученную форму, используя модальное открытие(пока форма открыта все остальные окна 1С недоступны), потому что при таком способе открытия дальнейший наш код в процедуре Инициализировать выполняться не будет, пока пользователь не закроет форму.

После того, как пользователь закроет форму нам необходимо проверить, заполнен ли реквизит ДокументПоступления(на случай если документ поступления не был выбран). Если после проверки ДокументПоступления окажется пустым, то дальнейшее выполнение обработки не имеет смысла, и его следует прервать.

ЗначениеЗаполнено(ДокументПоступления)
(«Не выбран документ поступления»);
;
;

Для проверки заполненности реквизита здесь используется функция глобального контекста ЗначениеЗаполнено(<Значение>), она проверяет отличатся ли значение переданное в параметре от значения по умолчанию того же типа. Процедура Сообщить выводит указанный текст в окно сообщений 1С 8. Ключевое слово Возврат прерывает выполнение процедуры.

Приступим к написанию запроса, который будет выбирать данные табличной части Товары документа Поступление товаров и услуг. Создадим новый запрос:

Запрос = Новый Запрос;

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

Напишем текст запроса, будем делать это при помощи Конструктора запроса. Писать текст запроса вручную не рекомендуется, это не эффективно и отнимает кучу времени. Для начала напишем строку:

Запрос. Текст = ;

Таблицы 1С

Теперь раскроем по “+” выбранную нами таблицу(ПоступлениеТоваровУслугТовары) и перетащим необходимые для нашего заполнения табчасти поля в третью часть экрана конструктора, которая так и называется — Поля. Все доступные поля выбирать не будем, ограничимся таким набором: Номенклатура, Количество, Цена, Сумма, СтавкаНДС, СуммаНДС.

Таблицы 1С

Так как нам нужны данные только одного документа поступления(который мы выбрали перед началом заполнения), то в на закладке “Условия” наложим условие на ссылку документа при помощи переданного нами параметра.

Таблицы 1С

Создание текста запроса в конструкторе на этом завершено, нажмем кнопку “ОК”. В итоге у нас получился следующий текст запроса:

Запрос. Текст =

;

Созданный запрос осталось только выполнить и выгрузить в переменную:

Результат = Запрос. Выполнить(). Выгрузить();

В переменной Результат хранится таблица значений со строками табличной части Товары выбранного нами документа Поступление товаров и услуг. Теперь можно приступать к заполнению табличной части Товары нашей реализации. Но прежде чем заполнять данные следует ее очистить, на тот случай если там уже есть какие-то строки.

При помощи цикла Для каждого обойдем таблицу значений с результатами запроса.

Каждого ЭлементРезультата из Результат
;

В этом цикле создадим и заполним строки табличной части документа Реализация товаров и услуг. Создать новую строку мы можем при помощи переменной ТабличнаяЧасть, через которую можно совершать с ней любые действия.

НоваяСтрокаТЧ = ТабличнаяЧасть. Добавить();

Заполним созданную строку таб. части данными из строки результата запроса используя процедуру Глобального контекста — ЗаполнитьЗначенияСвойств(<Приемник>, <Источник>).

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

процедурой ЗаполнитьСчетаУчетаВСтрокеТабЧасти из модуля объекта документа Реализация товаров и услуг. Вызовем ее при помощи параметра Объект(следует заметить,

что мы можем вызывать только экспортные процедуры из модуля объекта документа).

Объект. ЗаполнитьСчетаУчетаВСтрокеТабЧасти(НоваяСтрокаТЧ, ИмяТабличнойЧасти, Истина);

На этом программирование заполнения табличной части для 1С 8 завершено. Обработку можно использовать. Полный текст процедуры Инициализировать, выглядит так:

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

Довольно часто требуется отлаживать код, который вы пишите. Для того что бы отладить обработку заполнения табличной части в 1С 8 создадим у нее реквизит СсылкаНаОбъект типа ДокументСсылка. РеализацияТоваровУслуг

Таблицы 1С

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

Таблицы 1С

После того как форма будет создана, перейдем в ее модуль. Там найдем автоматически созданную процедуру КнопкаВыполнитьНажатие. Эта процедура отрабатывает при нажатии кнопки Выполнить. Вызовем из нее процедуру Инициализировать, которая находится в модуле обработки, в параметры передадим объект документа Реализация товаров и услуг(который мы получим из реквизита СсылкаНаОбъект) и строку с названием заполняемой табличной части(в нашем случае Товары).

Инициализировать(СсылкаНаОбъект. ПолучитьОбъект(), );

Теперь необходимо сделать созданную форму основной формой обработки. Для этого выберем ее в поле “Форма обработки”.

Таблицы 1С

Теперь вы можете ставить точку останова в нужном месте процедуры Инициализировать или процедуры КнопкаВыполнитьНажатие формы отладки, и запускать обработку заполнения табличной части в режиме отладки 1С:Предприятия.

Подключение к документу

После того как обработка заполнения написана и отлажена следует подключить ее к документу из которого она будет выполняться. Для этого зайдем в 1С 8 в режиме Предприятие, перейдем в меню Сервис -&gt; Дополнительные отчеты и обработки -&gt; Дополнительные внешние обработки табличных частей и добавим новый элемент справочника. При помощи кнопки Заменить файл внешней обработки добавим файл созданной нами обработки заполнения табличной части.

Таблицы 1С

Заполним принадлежность обработки, для этого воспользовавшись кнопкой Подбор выберем документ Реализация товаров и услуг

Таблицы 1С

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

Таблицы 1С

Создание внешней обработки

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

Таблицы 1С

Откройте модуль объекта и пропишите код, приведенный ниже (его также можно взять из данной выше обработки). В целом, структура не будет меняться в зависимости от ситуации. Редактируются только некоторые параметры настроек, а так же при необходимости имена переменных.

Таблицы 1С

В рамках данной статьи мы не будем подробно останавливаться на регистрации внешних обработок и печатных форм в 1С. Вся эта информация есть в других наших статьях.

Заполнение табличной части документа

Создадим новую форму обработки.

Таблицы 1С

Теперь нам необходимо добавить на созданной форме новую команду. Предполагается, что она будет автоматически менять данные в табличной части как одного, так и нескольких документов (их формы списка) одновременно, записывая их впоследствии.

В рамках нашего примера будет произведена обработка уже существующей табличной части «Товары». Для каждой строки будет установлена ручная скидка в размере 5%. Так же, мы рассчитаем саму сумму данной скидки, равную сумме товаров в строке, умноженных на 0,05.

ВыполнитьКомандуКоманда ОбъектыНазначения
ЗаказКлиента ОбъектыНазначения
ЗаказКлиентаОбъект ЗаказКлиентаПолучитьОбъект
СтрокаТЗ ЗаказКлиентаОбъектТовары
СтрокаТЗПроцентРучнойСкидки
СтрокаТЗСуммаРучнойСкидки СтрокаТЗСумма

ЗаказКлиентаОбъектЗаписать

Далее сохраним нашу обработку и перейдем к ее регистрации в 1С.

Регистрация внешней обработки

Запустите 1С в режиме «Предприятие» и откройте справочник «Дополнительные отчеты и обработки». Найдем его через меню «Все функции».

Таблицы 1С

Создайте новый элемент в открывшемся справочнике и по одноименной кнопке загрузите из файла свою обработку. Разместим ее одновременно и на форме списка и на форме самой карточки документа.

Таблицы 1С

Таблицы 1С

Так же данная кнопка будет доступна и в карточке самого документа.

Таблицы 1С

Работа с таблицей значений в 1С 8. 3 на примерах

ТЗ ТаблицаЗначений

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

// Необходимо, чтобы колонка таблицы значения была строго типизировано
ОписаниеВеса ОписаниеТипов КвалификаторыЧисла
ТЗКолонкиДобавить ОписаниеВеса

Добавить строку в таблицу значений

НоваяСтрока ТЗДобавить
НоваяСтрокаАвтомобиль
НоваяСтрокаЦвет
НоваяСтрокаКласс
НоваяСтрокаВес

НоваяСтрока ТЗДобавить
НоваяСтрокаАвтомобиль
НоваяСтрокаЦвет
НоваяСтрокаКласс
НоваяСтрокаВес

НоваяСтрока ТЗДобавить
НоваяСтрокаАвтомобиль
НоваяСтрокаЦвет
НоваяСтрокаКласс
НоваяСтрокаВес

Заполнить строку значениями

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

Вставить строку

//Метод вставляет в таблицу значения новую строку
НоваяСтрока ТЗВставить

НоваяСтрокаАвтомобиль
НоваяСтрокаЦвет
НоваяСтрокаКласс
НоваяСтрокаВес

Сортировка

//Сортирует таблицу значение по нужным колонкам и направлению сортировки
ТЗ. Сортировать(«Цвет Убыв, Вес Возр»);

Получить значение

//Предположим что в строке №1 хранится информация об автомобиле БМВ. //А цвет храниться в колонке №2 с именем «Цвет»
//Задача — получить значение цвета из таблицы значений

//Если мы знаем номер строки и название свойства:
ЦветБМВ ТЗЦвет
//Если мы значем номер строки и колонки
ЦветБМВ ТЗ
// * отсчет номера строк и колонок начинается с 0

Удалить строку

//Удаляем строку №1 из таблицы значений
ТЗУдалитьТЗ
//Удалить строки по условию можно с помощью перебора (см. Обход таблицы значений)

Найти одну строку

//Позволяет найти одну строку в таблице значений. //Искать можно как по всем колонкам таблице
ИскомаяСтрока ТЗНайти
//Так и по определенной колонке:
ИскомаяСтрока ТЗНайти
//*Метод находит первую попавшуюся строку, если их несколько
//Если строка не найдена, то вернет «Неопределено»

Найти несколько строк

// Позволяет найти сразу несколько строк в таблице значений
//Создаем структуру для отбора
ОтборПоЗеленомуЦвету Структура
ОтборПоЗеленомуЦветуВставить
//Получаем массив строк с зелеными машинами
МассивСоСтроками ТЗНайтиСтрокиОтборПоЗеленомуЦвету

Свернуть таблицу значений

//Позволяет «свернуть» таблицу значений:
//1С оставляет указанные колонки в первом параметре и суммирует по колонкам из второго параметра
ТЗСвернуть

Скопировать таблицу

//Позволяет получить копию таблицы значений. НоваяТЗ ТЗСкопировать
//Если нужны только некоторые строки — нужно вставить массив таких строк в 1-ый параметр
//Если нужны только некоторые колонки — нужно вставить их имена через запятую в 2-ый параметр

Скопировать таблицу без данных

//Делает копию таблицы, но без строк. Только колонки
НоваяТЗ ТЗСкопироватьКолонки

Узнать количество строк

КоличествоСтрокТЗ = ТЗ. Количество();

//Очищает таблицу значений от строк
ТЗОчистить

Обход таблицы значения

Стр ТаблицаЗначений

СообщитьСтрНоменклатура

Обратный обход таблицы (снизу вверх)

Чаще всего применяется для удаления строк в таблице.

//Товары — таблица значений, где необходимо удалить строки с «Сумма = 0»
Сч
СчТоварыКоличество
ТекущаяСтрокаТоварыСч
ТекущаяСтрокаСумма
ТоварыУдалитьТекущаяСтрока
СчСч

СчСч

Обход колонок

Можно перечислить все колонки в таблице значений в 1с 8. 3 с помощю цикла &lt;&lt;Для&gt;&gt;:

Колонка ТаблицаЗначенийКолонки

СообщитьКолонкаИмя