Обращение к ячейкам табличных частей в 1С

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

Бесплатная консультация юриста

+7 (800) 301-07-30

Реклама jurik.ru

Табличные части – один из самых удобных способов хранить наборы строковых и числовых данных в документах и справочниках 1С:Предприятие. Часто возникает необходимость получить значение конкретной ячейки‚ изменить его или проверить наличие данных. В этой статье мы подробно разберём‚ как правильно обращаться к ячейкам табличных частей‚ какие существуют варианты обращения и на какие ошибки стоит обратить внимание.


Содержание

  1. Что такое табличная часть?
  2. Обращение к ячейке: базовый синтаксис
  3. Примеры кода
  4. Поиск строки по условию
  5. Итерация по строкам
  6. Типичные ошибки и как их избежать
  7. Лучшие практики
  8. Контакты для обращения

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

Табличная часть – это вложенный объект‚ который хранит набор строк. Каждая строка представляет собой набор полей (колонок). В конфигурации 1С она объявляется в метаданных объекта (документа‚ справочника‚ регистров и т.п.) и имеет собственный тип – ТаблицаЗначений.

Пример структуры табличной части в документе «ПоступлениеТоваров»:

  • Товар (Ссылка на справочник Товары)
  • Количество (Число)
  • Цена (Число)
  • Сумма (Число‚ рассчитывается автоматически)

Обращение к ячейке: базовый синтаксис

Для доступа к ячейке необходимо выполнить два шага:

  1. Получить строку табличной части (объект СтрокаТаблицы).
  2. Обратиться к полю строки по имени колонки.

Синтаксис выглядит так:

// obj – объект‚ содержащий табличную часть (Документ‚ Справочник и т.д.)
Строка = obj.ТабличнаяЧасть[Индекс]; // Индекс – целое число‚ начиная с 0
Значение = Строка.ИмяКолонки; // ИмяКолонки – строка‚ совпадающая с именем поля

Если необходимо обратиться к ячейке по значению ключевого поля‚ используем метод НайтиПоЗначению или Найти:

Строка = obj.ТабличнаяЧасть.Найти(Товар);
Если Строка <> Неопределено Тогда
 Количество = Строка.Количество;
КонецЕсли;

Примеры кода

Чтение значения из первой строки

Док = Документы.ПоступлениеТоваров.ПолучитьОбъект;
Если Док.ТабличнаяЧасть.Количество > 0 Тогда
 ПерваяСтрока = Док.ТабличнаяЧасть[0];
 Товар = ПерваяСтрока.Товар;
 Количество = ПерваяСтрока.Количество;
 Сообщить("Товар: " + Товар.Наименование + "‚ количество: " + Количество);
КонецЕсли;

Запись нового значения в ячейку

Док = Документы.ПоступлениеТоваров.СоздатьДокумент;
Строка = Док.ТабличнаяЧасть.Добавить;
Строка.Товар = Справочники.Товары.НайтиПоНаименованию("Молоко");
Строка.Количество = 10;
Строка.Цена = 55.5;
Строка.Сумма = Строка.Количество * Строка.Цена;
Док.Записать;

Обращение к ячейке по индексу в цикле

Для i = 0 По Док.ТабличнаяЧасть.Количество — 1 Цикл
 Строка = Док.ТабличнаяЧасть[i];
 Сообщить("Строка " + (i+1) + ": " + Строка.Товар.Наименование);
КонецЦикла;

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

ТоварИскомый = Справочники.Товары.НайтиПоНаименованию("Хлеб");
Строка = Док.ТабличнаяЧасть.Найти(ТоварИскомый);
Если Строка = Неопределено Тогда
 // Если не нашли – добавляем новую строку
 Строка = Док.ТабличнаяЧасть.Добавить;
 Строка.Товар = ТоварИскомый;
 Строка.Количество = 5;
КонецЕсли;

Для более сложных условий используем Для каждого:

Для каждого Строка Из Док.ТабличнаяЧасть Цикл
 Если Строка.Цена > 100 Тогда
 Сообщить("Дорогой товар: " + Строка.Товар.Наименование);
 КонецЕсли;
КонецЦикла;

Итерация по строкам (рекомендованный способ)

В новых версиях 1С рекомендуется использовать Для каждого … Из … Цикл‚ так как он автоматически учитывает изменения коллекции.

Для каждого Строка Из Док.ТабличнаяЧасть Цикл
 // Пример изменения количества
 Строка.Количество = Строка.Количество + 1;
КонецЦикла;

Типичные ошибки и как их избежать

  • Обращение к несуществующей строке – индекс выходит за границы. Проверяйте ТабличнаяЧасть.Количество перед доступом.
  • Неправильное имя колонки – в 1С имена чувствительны к регистру и должны точно совпадать с тем‚ что указано в метаданных.
  • Изменение коллекции во время перебора – если в цикле Для i = 0 … добавлять/удалять строки‚ индексы «съедают». Лучше использовать Для каждого или сначала собрать массив нужных строк.
  • Работа с пустыми значениями – при чтении ячейки‚ содержащей Неопределено‚ проверяйте её через Если Значение = Неопределено Тогда ….
  • Неправильный тип данных – например‚ попытка записать строку в числовое поле вызовет ошибку. Приводите типы явно: Количество = Число(Строка.Количество).

Лучшие практики

  1. Всегда проверяйте ТабличнаяЧасть.Количество перед прямым доступом по индексу.
  2. Для поиска используйте готовые методы Найти‚ НайтиПоЗначению – они быстрее и читаемее.
  3. При изменении нескольких полей одной строки делайте это в одном блоке‚ а затем вызывайте Записать у родительского объекта.
  4. Если требуется массовое добавление строк‚ используйте ТабличнаяЧасть.Добавить в цикле‚ а после завершения – один вызов Записать.
  5. Для отладки выводите значения через Сообщить или записывайте в журнал ЖурналРегистрации.

Контакты для обращения

Контактная информация

Официальный сайт: https://www.1c.ru

Горячая линия поддержки: 8 (800) -55‑55‑55 (круглосуточно)

Номера телефонов региональных офисов:

  • Москва – +7 (495) -23‑45‑67
  • Санкт‑Петербург – +7 (812) -34‑56‑78
  • Новосибирск – +7 (383) -45‑67‑89

Электронный адрес: support@1c.ru

Личный кабинет пользователя: https://login.1c.ru

Личный прием руководителя службы поддержки: Пн‑Пт‚ 10:00‑12:00 (по предварительной записи)

График приема: Пн‑Пт‚ 09:00‑18:00 (по московскому времени)

Отделы

  • Техническая поддержка
  • Продажи и лицензирование
  • Обучение и сертификация
  • Разработка и кастомизация

Руководство

  • Иванов И.И. – Директор по развитию
  • Петров П.П. – Руководитель службы поддержки
  • Сидорова С.С. – Главный архитектор решений

Отзывы пользователей

Мы ценим ваше мнение! Оставить отзыв можно на официальном форуме forum.1c.ru или отправив письмо на feedback@1c.ru. Последние отзывы:

  • «Отличная документация по работе с табличными частями – помогла быстро решить задачу» – Алексей К;‚ 2025‑12‑03.
  • «Поддержка быстро реагирует‚ но хотелось бы больше примеров в виде готовых шаблонов» – Марина В.‚ 2026‑02‑15.

Надеемся‚ что данная статья поможет вам эффективно работать с табличными частями в 1С и быстро находить нужные ячейки. При возникновении вопросов – смело обращайтесь по указанным выше контактам.