Как добавить таблицу или новый элемент в справочник 1С: два сценария для разработчика и пользователя
Как добавить таблицу или новый элемент в справочник 1С: таблицу добавляют как табличную часть в Конфигураторе, а новую запись — через «Создать» или программно.
Оглавление
Что именно вы добавляете
В 1С:Предприятие важно разделить две задачи: изменение структуры метаданных и добавление данных. Таблица внутри справочника создается как табличная часть в Конфигураторе, строки вносятся в уже существующую табличную часть, а новый элемент справочника создается как отдельная запись.
Сценарии добавления в справочник 1С
| Задача | Что изменяется | Как выполнить |
|---|---|---|
| Добавить таблицу в справочник | Метаданные справочника: новая табличная часть | Конфигуратор: ветка «Табличные части» → «Добавить» |
| Добавить строку в существующую таблицу | Данные табличной части | Кнопка «Добавить» или Insert в форме, копирование строк из Excel |
| Добавить новый элемент справочника | Новая запись справочника | Кнопка «Создать» в форме списка или программный код |
Добавление табличной части в Конфигураторе
Если нужно расширить справочник и добавить в него подчиненную таблицу, действуйте в Конфигураторе:
- Откройте конфигурацию в Конфигураторе.
- В дереве метаданных найдите нужный справочник и раскройте его.
- Нажмите правой кнопкой мыши на ветку «Табличные части» и выберите «Добавить».
- Задайте имя и синоним новой табличной части.
- Перейдите на вкладку «Данные» и добавьте необходимые реквизиты-колонки, указав их типы.
- Сохраните конфигурацию и обновите базу данных (
F7).
Табличная часть — это не отдельный объект базы данных, а подчиненная коллекция строк, хранящаяся вместе с основным объектом. Не путайте её с регистром сведений или документов.
Перед изменением метаданных всегда делайте резервную копию информационной базы.
Добавление строки в табличную часть
Если табличная часть уже существует, строки можно добавить через интерфейс:
- В форме списка или карточки нажмите кнопку «Добавить» (или
Insert) в панели навигации табличного поля. - Можно использовать копирование строк (
Ctrl+C/Ctrl+V) из Excel или другого источника.
Программно строка табличной части добавляется методом Добавить():
НоваяСтрока = СправочникОбъект.МояТабличнаяЧасть.Добавить();
НоваяСтрока.Реквизит1 = Значение1;
НоваяСтрока.Реквизит2 = Значение2;
Добавление нового элемента справочника
Если речь идет о создании новой записи справочника, а не таблицы внутри него:
- Через интерфейс: форма списка справочника → кнопка «Создать».
- Программно:
НовыйЭлемент = Справочники.ИмяСправочника.СоздатьЭлемент();
НовыйЭлемент.Наименование = "Новое значение";
НовыйЭлемент.Записать();
Рекомендации перед изменениями
- При добавлении табличных частей учитывайте производительность: большое количество строк в табличной части может замедлить проведение документов и формирование отчетов.
- Если ожидается тысячи строк, рассмотрите использование регистра сведений или отдельного справочника с ссылкой на основной.
- Для типовых конфигураций (Бухгалтерия, УТ, ERP) избегайте прямых изменений метаданных: используйте механизмы расширений конфигурации, чтобы сохранить возможность обновления.
Частые ошибки
- Табличную часть путают с отдельной таблицей базы данных, регистром сведений или документов.
- Изменяют метаданные без резервной копии информационной базы.
- Не обновляют базу данных после сохранения конфигурации (
F7). - В типовых конфигурациях меняют метаданные напрямую вместо расширений конфигурации.
- Планируют тысячи строк в табличной части там, где уместнее регистр сведений или отдельный справочник.
FAQ
-
Как добавить строку в табличную часть без программирования?
Нажмите «Добавить» (илиInsert) в панели навигации табличного поля. Также можно скопировать строки из Excel или другого источника. -
Табличная часть справочника — это отдельный объект базы данных?
Нет. Это подчиненная коллекция строк, которая хранится вместе с основным объектом. Её не следует путать с регистром сведений или документов. -
Как программно добавить новый элемент справочника?
Создайте элемент методомСправочники.ИмяСправочника.СоздатьЭлемент(), заполните реквизиты и вызовитеЗаписать(). -
Можно ли напрямую менять типовые конфигурации?
Избегайте прямых изменений метаданных. Используйте расширения конфигурации, чтобы сохранить возможность обновления.