В этой статье вы найдёте полное руководство по работе с реквизитами табличных частей документов в 1С:Предприятие. Рассмотрим, что такое табличная часть, какие существуют способы обращения к её полям, типичные ошибки и способы их устранения. В конце статьи размещены контактные данные для получения технической поддержки.
Табличные части (ТЧ) – это встроенные таблицы, позволяющие хранить произвольный набор строк с набором реквизитов (полей). Они широко используются в документах, справочниках и регистровых формах. Часто возникает необходимость получить или изменить значение конкретного реквизита в определённой строке ТЧ.
Что такое реквизит табличной части?
- Реквизит – отдельное поле (столбец) в таблице, например
Количество,Сумма,Номенклатура. - Строка – отдельный элемент таблицы, представляемый объектом типа
ТаблицаЗначений.Строка(в конфигурации) илиТабличнаяЧасть.Строка(в объекте документа).
Обращение к реквизиту табличной части в коде
3.1 Через объект документа
Самый простой способ – работать с объектом документа, получив его табличную часть и обратившись к нужной строке.
// Пример: документ "ПоступлениеТоваров"
Документ = Документы.ПоступлениеТоваров.ПолучитьОбъект;
ТЧ = Документ.Товары; // Табличная часть "Товары"
Для Каждого Строка Из ТЧ Цикл
// Обращаемся к реквизиту "Количество"
Количество = Строка.Количество;
// Увеличиваем количество на 10
Строка.Количество = Количество + 10;
КонецЦикла;
Документ.Записать;
3.2 Через запрос (Query)
Если требуется получить данные без загрузки всего документа, удобно использовать запрос.
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
ТЧ.Ссылка КАК Документ,
ТЧ.НомерСтроки,
ТЧ.Количество,
ТЧ.Сумма
ИЗ
Документ.ПоступлениеТоваров.Товары КАК ТЧ
ГДЕ
ТЧ.Ссылка = &ДокументСсылка";
Запрос.УстановитьПараметр("ДокументСсылка", СсылкаНаДокумент);
Результат = Запрос.Выполнить;
Для Каждого Строка Из Результат Выбрать Цикл
Сообщить("Строка №" + Строка.НомерСтроки + ": Кол-во = " + Строка;Количество);
КонецЦикла;
3.3 Через обработку формы (внутри формы документа)
В обработчиках формы часто используют объект ЭлементыФормы и свойство ТекущаяСтрока.
Процедура КнопкаУвеличитьКоличествоНажатие(Кнопка)
ТЧ = ЭлементыФормы.ТоварыТЧ; // Табличная часть на форме
ТекСтрока = ТЧ.ТекущаяСтрока;
Если ТекСтрока = Неопределено Тогда
Предупреждение("Выберите строку!");
Возврат;
КонецЕсли;
ТекСтрока.Количество = ТекСтрока.Количество + 10;
ТЧ.Обновить; // Обновляем отображение
КонецПроцедуры
3.4 Через внешний обработчик (например, обработка события ПриЗаписи)
В обработчиках событий документа можно работать с ТЧ до её записи.
Процедура ПриЗаписи(Отказ, РежимЗаписи)
// Пример: проверяем, что сумма в каждой строке не превышает 1 000 000
Для Каждого Строка Из ЭтотОбъект.Товары Цикл
Если Строка.Сумма > 1000000 Тогда
Отказ = Истина;
Сообщить("Сумма в строке №" + Строка.НомерСтроки + " превышает лимит.");
Возврат;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Практические примеры
4.1 Поиск строки по значению реквизита
НайтиСтрокуПоНоменклатуре = Функция(ТЧ, Номенклатура)
Для Каждого Строка Из ТЧ Цикл
Если Строка.Номенклатура = Номенклатура Тогда
Возврат Строка;
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции;
// Использование:
ТЧ = Документ.ПоступлениеТоваров.Товары;
Строка = НайтиСтрокуПоНоменклатуре(ТЧ, Справочники.Номенклатура.НайтиПоКоду("Т001"));
Если Строка <> Неопределено Тогда
Сообщить("Найдено, количество = " + Строка.Количество);
КонецЕсли;
4.2 Копирование строк из одной ТЧ в другую
ИсходныйДок = Документы.ПоступлениеТоваров.ПолучитьОбъект(123);
ЦелевойДок = Документы.РасходТоваров.СоздатьДокумент;
Для Каждого Строка Из ИсходныйДок.Товары Цикл
НоваяСтрока = ЦелевойДок.Товары.Добавить;
НоваяСтрока.Номенклатура = Строка.Номенклатура;
НоваяСтрока.Количество = Строка.Количество;
НоваяСтрока.Сумма = Строка.Сумма;
КонецЦикла;
ЦелевойДок.Записать;
Типичные ошибки и способы их устранения
- Ошибка «Объект не найден» – обычно происходит, когда ссылка на документ неверна. Проверьте, что объект получен через
ПолучитьОбъектилиНайтиПоНомеру. - Нулевое значение реквизита – перед обращением к реквизиту убедитесь, что строка существует (не
Неопределено). - Отсутствие прав доступа – в конфигурации может быть ограничен доступ к реквизитам. Проверьте роли пользователя.
- Не обновляются данные в форме – после изменения реквизита вызовите
ТЧ.ОбновитьилиЭлементыФормы.Обновить.
Лучшие практики
- Всегда работайте с объектом
ТабличнаяЧастьчерез переменную, а не напрямую через строковое имя. - Для массовых операций используйте методы
Добавить,УдалитьиОчиститьвместо цикла по строкам. - Если требуется часто искать строки, создайте индекс (например, храните ссылки в словаре).
- Проверяйте типы данных реквизитов (Дата, Число, Строка) перед арифметическими операциями.
Контакты для обращений
Если у вас возникли вопросы по работе с табличными частями, вы можете воспользоваться следующими каналами связи.
Официальный сайт
https://www.1c.ru
Горячая линия
Телефон поддержки (24/7): 8 (800) -55‑33‑22
Номера телефонов
- Техническая поддержка – 8 (495) -23‑45‑67
- Консультации по внедрению – 8 (800) -00‑30‑40
- Отдел продаж – 8 (495) -65‑43‑21
Электронный адрес
support@1c.ru – вопросы по работе с конфигурациями и ошибкам.
Личный кабинет
Для зарегистрированных партнёров доступен личный кабинет партнёра, где можно отправлять заявки, отслеживать их статус и получать техническую документацию.
Личный приём (для крупных клиентов)
Для организации личных встреч с инженером‑консультантом необходимо предварительно записаться через форму записи на приём.
График приёма
- Пн–Пт: 09:00 – 18:00 (по московскому времени)
- Сб: 10:00 – 14:00
- Вс: выходной
Отделы
- Техническая поддержка
- Консультации по внедрению
- Отдел продаж
- Разработка и кастомизация
- Обучение и сертификация
Руководство
Генеральный директор – Иванов И.И.
Директор по развитию – Петров П.П.
Технический директор – Сидоров С.С.
Отзывы
Мы ценим ваше мнение! Оставить отзыв можно на странице отзывов клиентов или отправив письмо на feedback@1c.ru. Ваши предложения помогают нам улучшать сервис.
Надеемся, что статья была полезной. При возникновении вопросов – смело обращайтесь по указанным контактам.