Таблицы 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 Star2 Stars3 Stars4 Stars5 Stars (40 голосов, среднее: 4,48 из 5)
Загрузка...

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