Записки программиста 1с

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

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

Объекты конфигурации такие как справочники и документы в 1С : Предприятие 8 могут иметь несколько табличных частей.

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

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

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

Затем в табличную часть добавляем реквизиты.

табличная часть объекта 1с
Добавление реквизитов в табличную часть

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

табличная часть объекта 1с
Создание табличной части в дереве конфигурации.

Затем Добавляем Реквизиты Табличной части.

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

Программное создание табличной части объекта 1с .

Рассмотрим пример программного заполнения табличной части объекта 1с.

Во-первых в переменную Таблица поместим нашу табличную часть.

Таблица=Объект.Материалы; 

Во-вторых Добавим новую строку в создаваемую табличную часть.

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

В-третьих заполняем реквизиты Табличной части значениями.

НоваяСтрока.Номенклатура=Справочники.Номенклатура.НайтиПоНаименованию("Шуруп");
НоваяСтрока.Количество=100;
НоваяСтрока.Цена=200;
НоваяСтрока.Сумма=НоваяСтрока.Количество*НоваяСтрока.Цена;

В заключении заполнения необходимо записать Объект.

Полный код

табличная часть объекта 1с
Код создания табличной части документа 1с.

1с запрос к табличной части.

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

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

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

1с запрос к табличной части
Пример запроса к табличной части.

Как выгрузить Табличную часть 1с в таблицу значений

ДокументСсылка -это ссылка на Документ содержащий табличную часть «Материалы».

ВыгрузкаМатериалов = ДокументСсылка.Материалы.Выгрузить();

Для Каждого Строка Из ВыгрузкаМатериалов Цикл
    //Ваш код по обработке строки таблицы значений
КонецЦикла;

Как загрузить таблицу значений в табличную часть объекта 1с.

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

ТЗМатериалы=Запрос.Выполнить().Выгрузить();
ДокументСсылка.Материалы.Загрузить(ТЗМатериалы);

Как очистить столбец табличной части объекта 1с

В случае когда необходимо очистить не всю табличную часть, а только один столбец можно поступить одним из 3 способов:

Во-первых просто перебрать табличную часть и очистить реквизит табличной части:

Для Каждого Строка из Объект.Студенты Цикл
     Строка.СтарыйСтатусСтудента = Неопределено;
КонецЦикла;
Как очистить столбец табличной части объекта 1с
Код очистки столбца табличной части 1с перебором.

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

&НаСервере
Процедура ОчиститьСтолбецТабЧасти(ИмяКолонки)
ТабЗнач = Объект.Студенты.Выгрузить(); 
ТабЗнач.ЗаполнитьЗначения(Неопределено, ИмяКолонки);
Объект.Студенты.Загрузить(ТабЗнач);
КонецПроцедуры
Как очистить столбец табличной части объекта 1с
Код очистки с помощью Таблицы значений 1с.

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

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