Обратиться к табличной части справочника

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

+7 (800) 301-07-30

Реклама jurik.ru

Вопрос: Как получить доступ к табличной части справочника‚ изменить её данные или выполнить расчёты?

В этой статье мы подробно разберём:

  • Что такое табличная часть справочника;
  • Как правильно обращаться к ней в коде 1С;
  • Примеры типовых запросов и обработок;
  • Типичные ошибки и способы их устранения;
  • Практические рекомендации для разработки.

Табличная часть справочника: основные понятия

Табличная часть (ТЧ) – это вложенный набор записей‚ который хранится внутри объекта справочника. Каждый элемент ТЧ представляет собой отдельный строковый объект со своим набором реквизитов.

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

  • Код‚ Наименование – реквизиты справочника;
  • ТоварыНаСкладе – табличная часть‚ содержащая поля Товар‚ Количество‚ Серия и т.д.

Почему важен правильный доступ к ТЧ?

ТЧ часто используется для:

  1. Ведения остатков и проведения инвентаризации;
  2. Хранения исторических данных (например‚ цены за период);
  3. Выполнения расчётов и формирования отчетов.

Обращение к табличной части в коде 1С

Чтение данных

Для получения доступа к ТЧ необходимо сначала получить объект справочника‚ а затем обратиться к его полю‑таблице.

// Пример: чтение всех товаров на складе с кодом "S001"
Запрос = Новый Запрос;
Запрос.Текст = 
 "ВЫБРАТЬ
 Склад.Ссылка КАК Склад‚
 ТоварыНаСкладе.Товар‚
 ТоварыНаСкладе.Количество
 ИЗ
 Справочник.Склад КАК Склад
 ЛЕВОЕ СОЕДИНЕНИЕ Склад.ТоварыНаСкладе КАК ТоварыНаСкладе
 ПО Склад.Ссылка = ТоварыНаСкладе.Ссылка
 ГДЕ
 Склад.Код = &КодСклада";

Запрос.УстановитьПараметр("КодСклада"‚ "S001");
Результат = Запрос.Выполнить;

Для Каждого Строка Из Результат.Выбрать Цикл
 Сообщить("Товар: " + Строка.Товар + "‚ Кол-во: " + Строка.Количество);
КонецЦикла;

Добавление и изменение строк

Для изменения ТЧ используется объект ТаблицаЗначений или метод Записать справочника.

// Добавление нового товара в ТЧ "ТоварыНаСкладе"
Склад = Справочники.Склад.НайтиПоКоду("S001");
Если Склад = Неопределено Тогда
 Сообщить("Склад не найден");
 Возврат;
КонецЕсли;

// Открываем форму в режиме редактирования (опционально)
Склад.ПолучитьОбъект.ТоварыНаСкладе.Добавить;
НоваяСтрока = Склад.ПолучитьОбъект.ТоварыНаСкладе[Склад.ПолучитьОбъект.ТоварыНаСкладе.Количество];
НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоКоду("N100");
НоваяСтрока.Количество = 25;
НоваяСтрока.Серия = "A12345";

// Сохраняем изменения
Склад.Записать;

Удаление строк
// Удаляем все строки‚ где количество = 0
Склад = Справочники.Склад.НайтиПоКоду("S001");
Если Склад = Неопределено Тогда
 Сообщить("Склад не найден");
 Возврат;
КонецЕсли;

ТЧ = Склад.ПолучитьОбъект.ТоварыНаСкладе;
Для i = ТЧ.Количество По 1 Шаг -1 Цикл
 Если ТЧ[i].Количество = 0 Тогда
 ТЧ.Удалить(i);
 КонецЕсли;
КонецЦикла;

Склад.Записать;

Использование Объект.Выбрать для перебора без запросов
// Перебор всех строк ТЧ без SQL‑запроса
Склад = Справочники.Склад.НайтиПоКоду("S001");
Если Склад = Неопределено Тогда
 Сообщить("Склад не найден");
 Возврат;
КонецЕсли;

ТЧ = Склад.ПолучитьОбъект.ТоварыНаСкладе;
Для Каждого Строка ТЧ Цикл
 Сообщить("Товар: " + Строка.Товар + "‚ Кол-во: " + Строка.Количество);
КонецЦикла;

Типичные ошибки и способы их устранения
  • Ошибка «Объект не найден» – проверьте‚ что справочник и код действительно существуют.
  • Ошибка «Неверный тип данных» – убедитесь‚ что типы реквизитов ТЧ совпадают с типами полей (например‚ количество – Число).
  • Ошибка «Таблица уже содержит запись с таким ключом» – в ТЧ могут быть уникальные индексы; перед добавлением проверьте наличие аналогичной строки.
  • Ошибка «Запрос не выполнен: недопустимое имя колонки» – в запросах используйте точные имена реквизитов‚ а не их подписи.

Как отладить?
  1. Включите Отладчик (Ctrl+Alt+F9) и пошагово пройдите код.
  2. Выведите в журнал Сообщить значения переменных перед критическими операциями.
  3. Проверьте структуру ТЧ через Метаданные.Справочник.ИмяТабличнойЧасти.Колонки.

Практические рекомендации
  • Всегда работайте с объектом справочника через ПолучитьОбъект‚ если планируете менять ТЧ.
  • Для массовых операций (добавление/удаление сотен строк) используйте ТаблицаЗначений и метод Записать один раз – это ускорит процесс.
  • Если требуется подсчитать итог по колонке‚ используйте метод Суммировать:
  • При работе с большими справочниками рекомендуется применять Запросы вместо перебора Выбрать – это уменьшит нагрузку на сервер.
  • Не забывайте про транзакции (НачатьТранзакцию; ... ЗафиксироватьТранзакцию;) при критически важных изменениях.

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

Если после изучения материала у вас остались вопросы‚ вы можете связаться с нашей технической поддержкой. Ниже указаны все необходимые контактные данные.

Официальный сайт

https://www.example1c-support.ru

Горячая линия

Телефон (многоканальная): +7 (495) -23‑45‑67 (круглосуточно)

Номера телефонов
  • Техническая поддержка – +7 (495) -23‑45‑68 (рабочие часы 9:00–18:00 МСК)
  • Отдел продаж – +7 (495) -23‑45‑69
  • Служба обновлений – +7 (495) -23‑45‑70

Электронный адрес

support@example1c-support.ru

Личный кабинет

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

  • Создавать и отслеживать заявки;
  • Скачивать обновления и патчи;
  • Получать персональные рекомендации.

Личный приём

При необходимости личного визита в офис‚ запишитесь заранее через форму записи на приём.

График приёма
День недели Время
Понедельник – Пятница 09:00 – 18:00
Суббота 10:00 – 14:00 (по предварительной записи)
Воскресенье Выходной

Отделы
  • Отдел технической поддержки – решение проблем с 1С‚ работа с ТЧ‚ настройка запросов.
  • Отдел внедрения – помощь в установке и адаптации системы под бизнес‑процессы.
  • Отдел разработки – создание кастомных решений‚ доработок и расширений.
  • Отдел обучения – проведение вебинаров и семинаров.

Руководство

Контактные лица руководства компании:

  • Генеральный директор – Иванов И.И. (ivanov@example1c-support;ru‚ +7 (495) -23‑45‑71)
  • Технический директор – Петров П.П. (petrov@example1c-support.ru‚ +7 (495) -23‑45‑72)
  • Директор по продажам – Сидорова С.С. (sidorova@example1c-support.ru‚ +7 (495) -23‑45‑73)

Отзывы

Мы ценим обратную связь. Оставить отзыв можно в нескольких формах:

  1. Через онлайн‑форму на сайте.
  2. Отправив письмо на feedback@example1c-support.ru.
  3. Заполнив анкету в личном кабинете после закрытия заявки.

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


Обращение к табличной части справочника – одна из базовых‚ но в то же время мощных возможностей 1С:Предприятие. Правильное использование методов ПолучитьОбъект‚ Выбрать‚ запросов и транзакций позволяет эффективно вести учёт‚ проводить инвентаризацию и автоматизировать бизнес‑процессы.

Если вы столкнётесь с трудностями‚ помните‚ что наша служба поддержки готова помочь в любое время – см. раздел Контакты для обращений выше.

Удачной разработки!