Из чего собрана любая база 1С:Предприятие 8.3 — справочники, документы, регистры и их связи

· 10 мин

Содержание

Объекты конфигурации 1С — это описания в дереве Конфигуратора: справочник «Номенклатура», документ «Реализация», регистр накопления «Товары на складах». По каждому такому описанию платформа 1С:Предприятие сама создаёт таблицы в базе, формы, права и программные объекты, через которые с данными работают пользователи и код. Открыть дерево объектов можно в Конфигураторе: Конфигурация → Открыть конфигурацию.

Тема общая для платформы 8.3 и не зависит от конкретной конфигурации. Бухгалтерия, ЗУП и УТ построены из одних и тех же видов объектов, отличается только их набор и названия.

Объект конфигурации и объект в памяти: где граница

Путаница начинается с того, что словом «объект» в 1С называют две разные вещи.

📐 Объект конфигурации (метаданные) — это схема. Например, справочник «Контрагенты» с реквизитами «ИНН», «КПП», «Вид контрагента». Он существует один раз, в дереве конфигурации, и меняется только разработчиком.

📦 Объект встроенного языка (данные) — конкретный экземпляр по этой схеме: контрагент «ООО Ромашка» с ИНН 7701234567. Таких экземпляров в базе тысячи, их создают пользователи.

По одному объекту метаданных платформа порождает целое семейство типов:

ТипЧто этоПример для справочника «Номенклатура»
МенеджерТочка входа: поиск, создание, выборкаСправочники.Номенклатура
СсылкаУказатель на запись, только чтениеСправочникСсылка.Номенклатура
ОбъектЗагруженная в память запись, можно менять и записыватьСправочникОбъект.Номенклатура
ВыборкаПоследовательный обход записейСправочникВыборка.Номенклатура
Описание метаданныхСама схема, доступна из кодаМетаданные.Справочники.Номенклатура

Разница видна в коде. Ссылку получают быстро и дёшево, а объект — только когда запись нужно изменить:

Ссылка = Справочники.Номенклатура.НайтиПоКоду("00-00000001");
Если НЕ Ссылка.Пустая() Тогда
    Объект = Ссылка.ПолучитьОбъект();
    Объект.Наименование = "Бумага офисная А4";
    Объект.Записать();
КонецЕсли;

А так код читает уже не данные, а саму схему — список всех справочников конфигурации с их синонимами:

Для Каждого МД Из Метаданные.Справочники Цикл
    Сообщить(МД.Имя + " — " + МД.Синоним);
КонецЦикла;

Правило практика: читать данные — запросом или через ссылку, ПолучитьОбъект() вызывать только перед записью. Объект грузит в память все реквизиты и табличные части, на списке из 10 000 элементов это заметно.

Основные виды объектов конфигурации 1С и зачем каждый нужен

Дерево конфигурации делится на две части: ветку «Общие» и прикладные объекты. Общие объекты сами данных почти не хранят, они обслуживают всю конфигурацию.

Общие объекты

  • 🗂 Подсистемы — разделы интерфейса («Продажи», «Склад»). Объект без подсистемы пользователь в разделах не увидит.
  • 🧩 Общие модули — процедуры, которые вызываются из разных мест.
  • 🔐 Роли — наборы прав на чтение, добавление, изменение, проведение.
  • 📣 Подписки на события — обработчик, который срабатывает при записи или проведении сразу нескольких объектов.
  • ⏰ Регламентные задания — фоновые операции по расписанию.
  • ⚙️ Функциональные опции — переключатели, которые скрывают или показывают часть функциональности.
  • 🖼 Общие формы, общие макеты, общие картинки, стили — оформление и печать.

Прикладные объекты

Вид объектаЧто хранитПример из жизни
КонстантыОдно значение на всю базуОсновная валюта, флаг использования складов
СправочникиСписки однотипных элементовНоменклатура, контрагенты, сотрудники
ПеречисленияФиксированный набор значений, задаётся разработчикомСтавки НДС, виды операций
ДокументыФакты хозяйственной жизни с датойПоступление, реализация, начисление зарплаты
Журналы документовОбщий список документов разных видовЖурнал кассовых документов
Регистры сведенийЗначения по измерениям, часто с датойКурсы валют, цены номенклатуры
Регистры накопленияОстатки и оборотыТовары на складах, взаиморасчёты
Планы счетовСчета и их признакиПлан счетов бухгалтерского учёта
Регистры бухгалтерииПроводки Дт/КтЖурнал проводок
Планы видов характеристикВиды произвольных свойств и аналитикиВиды субконто
Планы видов расчёта и регистры расчётаНачисления с периодами действияОклад, премия, больничный
Отчёты и обработкиВывод данных и служебные действияОборотно-сальдовая ведомость, групповая обработка
Бизнес-процессы и задачиМаршруты согласованияСогласование договора
Планы обменаУзлы и регистрация изменений для синхронизацииОбмен с УТ, распределённая база

У каждого прикладного объекта внутри своя структура: реквизиты, табличные части, формы, команды, макеты, модуль объекта и модуль менеджера.

Внешние отчёты и обработки (файлы .erf и .epf) — не объекты конфигурации. Они подключаются к базе снаружи и в дереве Конфигуратора не видны.

Как объекты конфигурации 1С связаны между собой

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

1. Ссылочные типы реквизитов

Реквизит «Контрагент» в документе имеет тип СправочникСсылка.Контрагенты. В базе хранится не название, а ссылка на запись. Переименовали контрагента — во всех документах сразу видно новое имя.

2. Документ как регистратор

Документ сам по себе остатков не считает. При проведении он записывает движения в регистры:

  1. Пользователь проводит «Реализацию» на 10 штук.
  2. Модуль документа в обработчике ОбработкаПроведения формирует записи.
  3. Регистр накопления получает расход 10 штук, регистр бухгалтерии — проводку.
  4. Отчёт об остатках читает регистр, а не документы.

На вкладке «Движения» в окне документа указывают, по каким регистрам он может делать записи. У каждой записи регистра есть поле «Регистратор» — по нему видно, какой документ её создал.

3. План счетов, регистр бухгалтерии и ПВХ

Регистр бухгалтерии всегда опирается на план счетов . Аналитика (субконто) берётся из плана видов характеристик: в нём перечислено, что может быть субконто — контрагенты, договоры, номенклатура. Эта тройка работает только вместе.

4. Подсистемы и роли

Подсистема отвечает на вопрос «где пользователь увидит объект», роль — «что ему с объектом можно делать». Объект без роли не откроется, объект без подсистемы не появится в разделах.

5. Ввод на основании и подписки

На вкладке «Ввод на основании» задают, из каких объектов можно создать текущий: счёт → реализация → счёт-фактура. Подписки на события связывают поведение многих объектов сразу, без правки модуля каждого.

Объекты конфигурации в типовых решениях: что за чем стоит

Знание имён объектов помогает в отладке, в запросах и при чтении сообщений об ошибках. Несколько опорных примеров из Бухгалтерии предприятия 3.0:

Что видит пользовательОбъект конфигурации
План счетовПлан счетов Хозрасчетный
Проводки документа (кнопка «Дт/Кт»)Регистр бухгалтерии Хозрасчетный
Виды субконтоПлан видов характеристик ВидыСубконтоХозрасчетные
НоменклатураСправочник Номенклатура
Реализация (акты, накладные)Документ РеализацияТоваровУслуг
Поступление товаров и услугДокумент ПоступлениеТоваровУслуг

Отсюда понятна типовая цепочка учёта: справочники дают аналитику, документ при проведении пишет проводки в регистр бухгалтерии, а ОСВ и карточка счёта строятся по этому регистру.

В ЗУП 3.1 ту же роль, что план счетов в бухгалтерии, играют планы видов расчёта: начисления и удержания описаны как виды расчёта, а документы начисления ссылаются на них.

Как быстро узнать имя объекта в пользовательском режиме: откройте элемент или документ и нажмите Shift+F11 («Получить ссылку»). В ссылке вида e1cib/data/Документ.РеализацияТоваровУслуг?ref=… видно полное имя объекта. Те же имена платформа пишет в сообщениях об ошибках, например Документ.РеализацияТоваровУслуг.МодульОбъекта.

Создание объекта конфигурации: пошаговая инструкция

Разберём на простом примере: справочник «Автомобили» с реквизитом «Госномер» и документ «Путевой лист», который на него ссылается.

Подготовка

  • 💾 Сделайте копию базы : Администрирование → Выгрузить информационную базу в Конфигураторе.
  • 🧪 Работайте в копии или тестовой базе, а не в рабочей.
  • 🔒 Если конфигурация типовая и стоит на поддержке, решите, куда добавлять объект (об этом ниже).

Шаги в Конфигураторе

  1. Откройте Конфигурация → Открыть конфигурацию.
  2. В дереве щёлкните правой кнопкой по ветке «Справочники» и выберите «Добавить».
  3. На вкладке «Основные» задайте имя Автомобили и синоним «Автомобили». Имя — для кода, синоним — для пользователя.
  4. На вкладке «Подсистемы» отметьте раздел, где справочник должен появиться.
  5. На вкладке «Данные» задайте длину кода и наименования, добавьте реквизит Госномер типа «Строка» длиной 12.
  6. На вкладке «Формы» нажмите кнопку с лупой рядом с основной формой элемента — откроется конструктор формы. Можно не создавать формы вовсе: платформа сгенерирует их автоматически.
  7. Добавьте документ ПутевойЛист тем же способом, а в нём реквизит Автомобиль типа СправочникСсылка.Автомобили.
  8. Откройте роль, которой пользуются сотрудники, и выдайте права на новые объекты.
  9. Сохраните изменения и выполните Конфигурация → Обновить конфигурацию базы данных (F7).
  10. Запустите отладку (F5) и проверьте, что справочник виден в разделе и элемент записывается.

На шаге 9 платформа покажет список изменений структуры и попросит подтвердить реструктуризацию. Если изменение затрагивает таблицы с данными, может потребоваться монопольный доступ — тогда пользователи должны выйти из базы.

Типовая конфигурация: расширение вместо правки основной

В типовую Бухгалтерию или ЗУП новые объекты лучше добавлять через расширение: Конфигурация → Расширения конфигурации. Основная конфигурация остаётся на поддержке и обновляется без ручного сравнения.

СпособКогда подходитРиски
РасширениеТиповая на поддержке, нужен новый справочник, отчёт, реквизитНе всё можно сделать расширением
Включение возможности измененияНужны глубокие правки основной конфигурацииКаждое обновление — сравнение и объединение вручную
Своя конфигурация с нуляСамописная системаОбновления типовых не применимы

Снимать типовую с поддержки ради одного справочника не стоит: потом каждое обновление релиза превращается в ручное объединение.

Проверьте себя
Где хранится список реквизитов справочника?
Почему пользователь не видит новый справочник в разделах?
Что считает остатки товаров в типовой конфигурации?

Ошибки при работе с объектами конфигурации

Имя объекта

Имя начинается с буквы, без пробелов и спецсимволов, уникально в своей ветке. Кириллица допустима, и в типовых она используется повсеместно. Длинное понятное имя (ПутевыеЛисты) лучше сокращения (ПЛ), которое через год никто не расшифрует.

Смена типа реквизита при заполненных данных

Сменили «Строку» на «Число» — при реструктуризации значения, которые не приводятся к новому типу, пропадут. Перед такой правкой выгрузите данные или заведите новый реквизит, перенесите значения обработкой и только потом удаляйте старый.

Удаление объекта, на который ссылаются

Прежде чем удалять реквизит или объект, найдите в Конфигураторе ссылки на него: правой кнопкой по объекту → «Поиск ссылок на объект». Иначе ошибки всплывут в модулях, формах и запросах уже после обновления.

Переименование и код

Данные при переименовании объекта не теряются: платформа хранит их по внутреннему идентификатору. А вот строки в коде и тексты запросов с прежним именем перестанут работать. Проверьте их глобальным поиском по конфигурации (Ctrl+Shift+F) и синтаксическим контролем модулей.

Строка неограниченной длины

Реквизит-строка без ограничения длины хранится иначе: по нему нельзя нормально сравнивать и сортировать в запросах, его нельзя индексировать. Для госномера, артикула, ИНН ставьте фиксированную длину.

Табличная часть вместо регистра

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

Как ускорить работу объектов конфигурации

Быстродействие закладывается ещё при проектировании объектов.

  • 🔎 Индексация. Реквизиты, по которым часто ищут или отбирают, отметьте свойством «Индексировать». Вариант «Индексировать с доп. упорядочиванием» нужен, когда по полю ещё и сортируют списки.
  • 📊 Регистры с итогами. Регистр накопления остатков хранит итоги, и отчёт не пересчитывает всё движение с начала времён. Используйте виртуальные таблицы Остатки и ОстаткиИОбороты с параметрами периода и отбора, а не условие в ГДЕ.
  • 🧮 Запрос вместо обращения через точку. Конструкция Документ.Контрагент.ОсновнойДоговор.Валюта в цикле — это отдельное чтение из базы на каждом шаге. Один запрос с нужными полями быстрее.
  • 🧱 Минимум табличных частей в «тяжёлых» документах. Каждая табличная часть — отдельная таблица в базе, и объект при чтении грузит их все.
  • 📁 Хранилище значения для файлов и больших данных. Вложения лучше держать в отдельном справочнике, а не в реквизите основного объекта, иначе каждое открытие формы тянет файл.
  • 🚦 Разделение итогов у регистров. При одновременном проведении многими пользователями оно уменьшает блокировки.

Индекс ускоряет поиск, но замедляет запись и увеличивает базу. Индексируйте поля, по которым реально ищут, а не все подряд.

Частые вопросы

Чем справочник отличается от перечисления?
Элементы справочника добавляют пользователи в рабочей базе. Значения перечисления задаёт только разработчик в Конфигураторе, и в режиме «Предприятие» их не изменить.
Можно ли добавить объект в типовую конфигурацию без снятия с поддержки?
Да, через расширение конфигурации. Основная конфигурация остаётся на поддержке и обновляется в обычном порядке.
Сколько объектов конфигурации может быть в базе?
Жёсткого практического предела нет: типовые решения вроде ERP содержат тысячи объектов. Ограничивает скорее удобство сопровождения.
Объекты конфигурации можно редактировать в 1С:EDT?
Да. 1С:EDT — альтернативная среда разработки, где та же конфигурация хранится набором файлов и удобно ведётся в Git. Дерево объектов и их виды там те же.
Почему после добавления реквизита он не появился в форме?
Если форма создана вручную, новый реквизит в неё не попадёт сам. Откройте форму в редакторе и перетащите реквизит на неё из списка реквизитов объекта.