Главная страница » Что такое табличная часть

Что такое табличная часть

  • автор:

Табличная часть

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

  • Telegram
  • Whatsapp
  • Вконтакте
  • Одноклассники
  • Email

Научные статьи на тему «Табличная часть»

Возврат поставщику в 1С

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

К проблеме характеризации логик васильевского типа: о табличности логик i⟨x,y⟩(x, y ∈ <0, 1, 2,. . . >и x < y). Часть i

В этой статье, продолжающей работу, проводимую в [1], изучается проблема табличности I-логик васильевского типа (пропозициональная логика называется табличной, если она имеет конечную характеристическую матрицу). Основной результат, полученный в данной статье: для всяких целых неотрицательных чисел x и y, первое из которых меньше второго, логика I⟨x, y⟩ таблична (класс всех таких логик является бесконечным подклассом класса всех I-логик васильевского типа). Предлагаемое исследование основано на использовании результатов, полученных в [1], и на применении авторской кортежной семантики. Для достижения указанного основного результата мы показываем, как по произвольным целым неотрицательным числам m и n, удовлетворяющим неравенству m < n, строится логическая матрица M(m, n), которая является конечной характеристической матрицей логики I⟨m, n⟩. Поскольку носитель логической матрицы M(m, n) есть некоторое множество 0-1-кортежей, семантику, базирующуюся на этой логической матрице, естес.

Табличные информационные модели

Особенности табличной модели Таблицы как средство моделирования широко применяются во многих отраслях.
Сформировались эффективные приемы их оформления: строки, колонки, заголовочная часть, линии, разделяющие.
Замечание 1 Часто в таблицах для решения проблемы вариативности (учета нерегулярных характеристик.
программном обеспечении активно применяются табличные модели.
Табличная модель и реляционные базы данных.

К проблеме характеризации логик васильевского типа: о табличности логик I⟨x;y⟩(x; y ∈ <0, 1, 2,. . . >и x < y). Часть II

В этой статье, продолжающей работу, проводимую в [1], изучается проблема табличности I-логик васильевского типа (пропозициональная логика называется табличной, если она имеет конечную характеристическую матрицу). Основной результат, полученный в данной статье: для всяких целых неотрицательных чисел x и y, первое из которых меньше второго, логика I⟨x;y⟩ таблична (класс всех таких логик является бесконечным подклассом класса всех I-логик васильевского типа). Предлагаемое исследование основано на использовании результатов, полученных в [1], и на применении авторской кортежной семантики. Для достижения указанного основного результата мы показываем, как по произвольным целым неотрицательным числам m и n, удовлетворяющим неравенству m < n, строится логическая матрица M(m; n), которая является конечной характеристической матрицей логики I⟨x;y⟩. Поскольку носитель логической матрицы M(m; n) есть некоторое множество 0-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

В этой статье мы научимся конфигурировать табличные части объектов метаданных в 1С 8.3 (справочники, документы и т.д.). Для чего вообще нужны табличные части? Очень часто бывает, что объект метаданных должен хранить некий список однотипной информации, размер которой изначально может быть не известен. Например, у справочника «Контрагенты» это может быть список ответственных лиц контрагента, а у документа «Приход товара» это список товаров, который поступили в организацию. Для того, чтобы осуществить учет однотипной информации и необходимы табличный части.

Табличная часть документа в 1С 8.3

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

Добавление табличной части документа 1С

Добавление табличной части документа 1С

Второй способ: непосредственно в окне редактирования метаданных. Для этого нужно мышкой выделить ветвь дерева документа, вызвать контекстное меню и выполнить единственную команду «Добавить»

Добавление табличной части документа 1СДобавление табличной части документа 1С

Табличная часть справочника 1С 8.3

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

Колонки табличной части 1С

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

Добавление колонки табличной части 1С

Добавление колонки табличной части 1С

Второй способ, посредством окна метаданных (нужно выделить мышкой табличную часть).

Добавление колонки табличной части 1С

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

Тип реквизита табличной части 1С

Количество колонок вы можете создавать практически неограниченное количество, в зависимости от вашей прикладной задачи.

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

Табличная часть 1С 8.3 на управляемой форме

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

Табличная часть в конструкторе формы документа

Если же вы уже создали форму документа, а потом в конфигураторе сделали табличную часть (или забыли добавить табличную часть в конструкторе), то вам нужно в форме перетащить мышкой табличную часть из дерева объекта в дерево элементов.

Перенос табличной части на форму

При переносе на вопрос «Добавить колонки», отвечаем «Да» (иначе придется добавлять колонки вручную, о чем мы поговорим ниже).

Добавление всех колонок табличной части на форму

После этого табличная часть со всеми колонками будет добавлена на форму.

Табличная часть на управляемой форме

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

Перенос колонок табличной части на форму

У ветки табличной части в дереве Объекты управляемой формы имеются также элементы, которые не соответствуют текущим реквизитам. Как привило, это итог по суммовым полям табличной части. Эти поля можно разместить на форме.

Итог по суммовым полям табличной части

Итог по суммовым полям табличной части

Также эти поля можно использовать в подвале таблицы на форме.

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

Включили использование подвала в таблице формы

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

Заполненное свойство путькданнымподвала

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

Заполненный подвал колонки

Остальные статьи по теме конфигурирования в 1С:

Более подробно и основательно конфигурирование в 1С дается в моей книге:

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

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

Документация разработчика

«Табличная часть» — это по вложенный объект в другой объект (тип объекта: positions). Обычно табличный части используются в «Справочниках» и «Документах.

Например, табличной частью является список «Номенклатуры» в документах «Счет» и «Отгрузка».

У одного объекта может быть несколько табличных частей. Например, в документе «Ремонт» существуют табличный части «Запчасти» и «Выполненные работы».

Для добавления табличной части необходимо зайти в “Конфигуратор” необходимого Объекта, найти раздел “Табличные части” и нажать кнопку “Добавить”.

Имя табличной частить должно быть уникальным для выбранного Объекта.

После добавления новой «Табличной части» автоматически добавятся поля: “id”, “visible” и “owner”.

Связь между «Табличной частью» и «Объектом» осуществляется по полю-указателю “owner” (в поле хранится ID основного объекта). Удалять эти поля нельзя.

Пример добавления табличной части

Рассмотрим добавление табличной части на примере справочника “Автопарк” (references.autos). Данный справочник добавлен в базовую конфигурацию в качестве примера для разработчика и не выведен в основной меню. Ссылка на объект: http://my_crm_ru/autos/

Перейдем в справочник “Автопарк” (references.autos). Добавим табличную часть “Техническое обслуживание” (services):

Затем в «Табличную часть» необходимо добавить “Форму редактирования”.

Новая форма должна быть вложена в «Форму редактирования” родительского объекта (в нашем случае autos/edit). Название формы должно быть уникальным в рамках текущего Объекта.

После добавления появится новая форма у «Табличной части».

Для того, чтобы в “Форме редактирования” автомобиля (references.autos) появилась таблица, ее необходимо прописать в «PHP-сценарии» и в «Шаблоне» родительской «Формы редактирования».

Данная табличная часть будет динамической. Изменения в ней будет отображаться на странице без перезагрузки страницы. За вывод динамической табличной части отвечает метод printDataDTable().

Добавим следующий код в «PHP-сценарий» в метод onPlay() основной “Формы редактирования” автомобиля:

Где:

  • $this->structure->services — ссылка на структуру, которую необходимо вывести
  • services — название табличной части (должен совпадать с названием табличной части в шаблоне)
  • 3-й параметр — массив полей для вывода в таблицу. Можно использовать комбинированные значения. В переменной obj находится ссылка на запись табличной части (references.autos.services)
  • 4-й параметр — массив настроек для табличной части
  • path — путь (ссылка) для открытия формы добавления в табличную часть
  • modalTitle — заголовок модального окна
  • modalSize — размер модального окна (small, tiny, fullscreen, large)
  • modalMulti — если “true”, то после добавления записи модальное окно не закроется
  • modalName — системное имя модального окна
  • selectAll — возможность выбрать 1 и более (все) записи с помощью чекбоксов
  • calcFields — массив калькулируемых полей

В “Шаблон” необходимо добавить таблицу, отвечающую за вывод динамической табличной части:

Для контейнера необходимо указать параметр “template: table”, чтобы добавилась кнопка добавления нового элемента в табличную часть.

Обращаем внимание, что «плюсик» в контейнере становится активным (можно добавлять элементы в табличную часть) только тогда, когда родительский Объект уже создан и имеет уникальную ссылку вида: http://my_crm_ru/autos/[id].

В блоке dTable параметр «name» (название табличной части) должен быть обязательно равен 2-му параметру из метода printDataDTable().

Параметр «id» у dTable должен быть уникальным для страницы. Обычно его называют: название табличной части и постфикс «Table». Например: servicesTable.

В результате контейнер с табличной частью будет выглядеть так:

Затем необходимо отредактировать “Форму редактирования” нашей новой табличной части.

В сценарии PHP поменять наследование на ModalEdit:

В «PHP-сценарий» в метод onSave() добавим следующий код, чтобы была связь между табличной частью и родительским Объектом (references.autos):

При наследовании от ModalEdit необходимо реализовать метод responseChange() с вызовом результирующего метода response().

В него передается массив, ключ которого равен названию таблицы в dTable в шаблоне основной «Формы редактирования».

Для динамического редактирования также необходимо всегда передать ключи id и act.

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

Добавим в «Шаблон» формы редактирования табличной части новый контейнер с полями и подключить форму js:

На закладке «Интерфейс (JS-код)» формы редактирования таб. части реализуем следующие условия:

  • При добавлении записи в табличной части должно быть заполнено хотя бы одно значение (как правило это поле “Количество”, либо “Номенклатура”.) Если поле не заполнено, то необходимо заблокировать кнопку “Сохранить”.
  • При изменении обязательного для заполнения поля сделать проверку: заполнено ли поле после изменения и в зависимости от этого снять/добавить блокировку кнопки
  • После загрузки всплывающего окна убрать иконку загрузки (loader).
  • Если параметр ModalMutli в методе printDataDTable установлен true, то необходимо реализовать также перезагрузку формы (reset).

Итоговый результат добавления добавления табличной части:

Пользователя нажимает на «плюсик».

Открывается модальная «Форма редактирования» табличной части «Техническое обслуживание» с полями.

Пользователь заполняет поля на форме и нажимаем «Сохранить».

После чего форма модальная закрывается и на экране отображается новая (отредактированная) строка в «Табличной части» родительского Объекта. Строка всегда подкрашивается желтым цветом.

Пример работы формы добавления товара в «Счет»

Рассмотрим пример «Табличной части» с одновременным выбором «Номенклатуры» на примере модуля “Счет” (documents.orders).

В табличной части «products» создаются 2 поля для номенклатуры:

  • product — ссылка на объект references.product (Справочник «Номенклатура»)
  • name — название номенклатуры (строка). В него вставляется текстовое наименование «Номенклатуры» из модуля “Номенклатура” (поле «name»). Данное поле можно скорректировать в момент добавления «Номенклатуры» в «Счет».

В шаблоне «Формы редактирования» табличной части «products» указывается скрытым поле «product».

Добавляем фрейм на форму выбора «Номенклатуры».

Важно! В этом случаем мы добавляем «Формы выбора» номенклатуры из объекта «Номенклатуры», а не из табличной части «Номенклатура» документа «Счет».

Обратите внимание на путь формы выбора из фрейма :

В «Форму редактирования» табличной части «product» в метод onPlay() добавляем метод для передачи переменных на форму. Необходимо передать «Склад» и «Тип цены» (если они есть в Объекте), чтобы «Форма выбора» Номенклатура показала нам остатки товара на определенном «Складе» и выбранный «Тип цен» (например, оптовые).

  • $this->parents[0] — ссылка на родительский элемент (document.orders)

В результате при добавления «Номенклатуры» в «Счет» откроется следующая форма.

При выборе «Номенклатуры» в списке добавим следующую логику:

  • Наименование = Название номенклатуры
  • Количество = 1
  • Цена = Цена из номенклатуры
  • Сумма = Цена * Количество

Для этого внесем правки в «Форму редактирования» табличной части «Products» на закладке «Интерфейс (JS-код)»:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *