Разработка и Конфигурация · 13 мин
Что такое объект в 1С и как с ним работать
Объект в 1С — это элемент конфигурации или данных: справочники, документы, регистры. Разбираем виды объектов, их свойства, реквизиты и работу с ними на примерах.
Объект в 1С — это базовая единица, из которой строится вся система: от конфигурации до конкретной записи в базе данных. Когда бухгалтер создаёт документ «Реализация товаров», а программист добавляет в конфигураторе новый справочник — оба работают с объектами, только на разных уровнях. Понимание того, что такое объект, из каких частей он состоит и какие виды объектов существуют, — фундамент для любой работы с платформой: от ввода данных до разработки собственных решений.
Термин «объект» в 1С используется в двух смыслах, и их часто путают. Первый смысл — объект конфигурации: шаблон, который разработчик описывает в конфигураторе (например, справочник «Номенклатура» как структура). Второй смысл — объект данных: конкретный экземпляр, созданный по этому шаблону (конкретный товар «Кирпич М-150» в справочнике). Между ними примерно такое же отношение, как между чертежом дома и построенным зданием.
Кроме того, в языке 1С существуют программные объекты — сущности встроенного языка, через которые код обращается к данным: СправочникОбъект, ДокументОбъект, запросы, записи регистров. Эта статья разбирает все три уровня, показывает, как объекты связаны между собой, и даёт практические ориентиры для работы с ними в пользовательском режиме, в конфигураторе и в коде.
Два уровня объектов: конфигурация и данные
Объект конфигурации — это описание структуры, которое разработчик создаёт в конфигураторе. Например, объект «Справочник.Контрагенты» задаёт: какие поля будут у каждого контрагента (наименование, ИНН, КПП), какие формы он будет иметь, какие права доступа к нему настроены. Сам по себе объект конфигурации не содержит ни одного контрагента — это только шаблон.
Объект данных — это конкретная запись, созданная пользователем или кодом по этому шаблону. Контрагент «ООО Вектор» с конкретным ИНН — объект данных. Документ «Поступление № 128 от 15 марта» — тоже объект данных. Все объекты данных одного типа имеют одинаковую структуру, заданную объектом конфигурации, но разное содержимое.
Различие важно на практике. Когда отчёт «не видит» новое поле, причина обычно в том, что реквизит добавили в объект конфигурации, но не обновили схему отчёта. Когда в базе «пропал» элемент справочника, проблема на уровне данных, а не конфигурации. Умение быстро определить, на каком уровне находится проблема, экономит часы поиска.
Основные виды объектов конфигурации
Все объекты конфигурации делятся на группы по назначению. Понимание этой классификации помогает правильно выбрать инструмент при проектировании и быстро ориентироваться в чужой конфигурации.
| Группа | Примеры объектов | Назначение |
|---|---|---|
| Хранение нормативных данных | Справочники, планы видов характеристик, планы счетов | Списки товаров, контрагентов, сотрудников — относительно редко меняющаяся информация |
| Фиксация событий | Документы, журналы документов | Хозяйственные операции: поступления, продажи, начисления |
| Накопление итогов | Регистры накопления, сведений, бухгалтерии, расчёта | Остатки, обороты, проводки — основа для отчётов |
| Анализ и обработка | Отчёты, обработки | Выборка и представление данных, сервисные операции |
| Инфраструктура | Подсистемы, роли, общие модули, константы, перечисления | Интерфейс, права, переиспользуемая логика, настройки |
Ключевая связка в типовом учёте выглядит так: документ при проведении записывает движения в регистры, а отчёты читают данные из регистров. Справочники при этом служат источниками аналитики — измерений регистров. Если документ проведён, но движений нет, отчёт покажет ноль, хотя документ существует в базе.
Справочники и документы — в чём разница
Справочник описывает «кто» и «что» — сущности учёта. Документ описывает «когда», «сколько» и «что произошло» — события. Справочник можно редактировать сколько угодно раз, и история изменений по умолчанию не хранится. Документ фиксируется на дату и время, участвует в последовательности проведения и формирует движения по регистрам.
Регистры — где живут итоги
Регистры накопления хранят остатки и обороты (складские запасы, взаиморасчёты), регистры сведений — произвольные данные в разрезе измерений (цены, курсы валют), регистры бухгалтерии — проводки по плану счетов. Напрямую пользователи с регистрами почти не работают: записи туда попадают через проведение документов или обработки.
Из чего состоит объект: реквизиты, табличные части, формы, модули
Структура объекта конфигурации раскрывается в конфигураторе через палитру свойств и окно редактирования. Основные составляющие одинаковы для большинства прикладных объектов.
Реквизиты — поля объекта: у документа это «Контрагент», «Склад», «Сумма», у справочника — «ИНН», «Единица измерения». Каждый реквизит имеет тип: строка, число, дата, булево или ссылка на другой объект. Ссылочные типы связывают объекты между собой: реквизит «Контрагент» документа хранит ссылку на элемент справочника «Контрагенты».
Табличные части — вложенные таблицы внутри объекта. Классический пример — список товаров в документе реализации: наименование, количество, цена, сумма в каждой строке. Табличная часть принадлежит объекту и не существует отдельно от него.
Стандартные реквизиты платформа добавляет автоматически: у справочника это код и наименование, у документа — номер и дата. Их состав и свойства (длина кода, периодичность нумерации) настраиваются, но удалить их нельзя.
Формы и модули определяют, как объект выглядит и как себя ведёт. Форма — это экранное представление для пользователя. Модуль объекта содержит код на встроенном языке: обработчики событий вроде «ПриЗаписи», «ОбработкаПроведения», «ПередЗаписью». Именно в модуле документа обычно описывается алгоритм формирования движений по регистрам.
Объекты данных: ссылка, объект, набор записей
Во встроенном языке 1С работа с данными построена на различении трёх сущностей, и их путаница — самый частый источник ошибок начинающих разработчиков.
Ссылка (СправочникСсылка, ДокументСсылка) — лёгкий указатель на запись в базе. Через ссылку доступны только ключевые поля (код, наименование, номер, дата), остальные данные платформа дочитывает при обращении, что порождает неявные запросы к базе. Ссылку нельзя изменить — она только указывает.
Объект (СправочникОбъект, ДокументОбъект) — полная копия данных в памяти, доступная для изменения. Его получают вызовом ПолучитьОбъект() у ссылки, изменяют реквизиты и сохраняют методом Записать(). Именно на этом этапе срабатывают обработчики событий и проверки заполнения.
Набор записей — аналог объекта для регистров: коллекция строк регистра, которую можно прочитать, изменить и записать. Движения документа — это наборы записей по каждому регистру, указанному в его свойствах.
КонтрагентСсылка = Справочники.Контрагенты.НайтиПоНаименованию("ООО Вектор");
КонтрагентОбъект = КонтрагентСсылка.ПолучитьОбъект();
КонтрагентОбъект.ИНН = "7701234567";
КонтрагентОбъект.Записать();Как посмотреть и изменить объект на практике
Пользователь работает с объектами данных через формы: списки, формы элемента, формы документа. Разработчик или администратор дополнительно использует конфигуратор и встроенные инструменты просмотра.
- 1Откройте конфигуратор и выполните «Конфигурация → Открыть конфигурацию»
- 2В дереве конфигурации раскройте нужную ветку: «Справочники», «Документы», «Регистры»
- 3Дважды щёлкните по объекту — откроется окно редактирования с вкладками «Данные», «Формы», «Права»
- 4На вкладке «Данные» добавьте реквизит, укажите его имя и тип
- 5Сохраните конфигурацию и выполните «Обновить конфигурацию базы данных» (F7)
- 6Проверьте в режиме «Предприятие», что новое поле появилось в форме объекта
Для просмотра конкретных объектов данных без разработки удобны универсальные инструменты: «Все функции» (включается в параметрах режима «Предприятие») открывает доступ к любым таблицам, а типовые обработки группового изменения реквизитов позволяют массово править данные с контролем изменений.
Проверка результата
После изменения объекта конфигурации убедитесь, что: конфигурация базы данных обновлена без ошибок; форма объекта открывается и новый реквизит виден; существующие данные не потерялись (для удалённых реквизитов платформа предупреждает заранее); отчёты и права, завязанные на объект, продолжают работать.
Как проверить корректность изменений
Завершилось без ошибок, реструктуризация прошла
Ошибки типа «конфликт блокировок» или прерванная реструктуризация
Форма открывается, реквизиты отображаются
Ошибка «Поле не найдено» или пустая форма
Документ проводится, движения появляются в регистрах
Документ записан, но провести нельзя или движений нет
Типичные ошибки при работе с объектами
Большинство проблем с объектами в 1С сводится к нескольким повторяющимся сценариям. Их знание помогает диагностировать ситуацию за минуты.
Отдельного внимания заслуживают «битые ссылки» — ситуации, когда объект удалён, а ссылки на него остались в других объектах. В списках они отображаются как «Объект не найден». Перед удалением объектов используйте штатный механизм пометки на удаление с последующим контролем ссылочной целостности («Удаление помеченных объектов»), который покажет все места использования.
Как выбрать тип объекта при проектировании
При добавлении новой сущности в конфигурацию выбор типа объекта определяет всю дальнейшую архитектуру. Ориентируйтесь на природу данных.
Как выбрать тип объекта
Типичный признак ошибки проектирования — попытка хранить в справочнике то, что является событием (например, «остаток на складе» как реквизит товара, который обновляется вручную). Такие данные быстро расходятся с реальностью. Остатки должны жить в регистрах и вычисляться из движений документов.
Часто задаваемые вопросы
Чем объект 1С отличается от объекта в других языках программирования?
В классическом ООП объект — это экземпляр класса с методами и состоянием, созданный программистом. В 1С понятие шире и жёстче привязано к платформе: типы объектов предопределены (справочник, документ, регистр), свои классы создавать нельзя. Программист выбирает готовый тип и настраивает его структуру, а платформа обеспечивает хранение, формы и права автоматически.
Что такое «объект не найден» в списке и как это исправить?
Это битая ссылка: запись, на которую ссылается реквизит, была физически удалена из базы. Исправление — либо восстановить удалённый объект (если есть копия), либо очистить ссылку или заменить её на существующий элемент. Чтобы проблема не повторялась, удаляйте объекты только через пометку на удаление с контролем ссылочной целостности.
Можно ли изменить объект без конфигуратора?
Данные объекта (значения реквизитов) — да: через формы в режиме «Предприятие», обработки группового изменения или внешние обработки. Структуру объекта (состав реквизитов, типы) — только через конфигуратор или механизм расширений конфигурации, который позволяет добавлять реквизиты без изменения основной конфигурации.
Чем ссылка отличается от объекта в коде 1С?
Ссылка — это только идентификатор записи, лёгкий и неизменяемый; через неё можно читать ключевые поля. Объект — полная копия записи в памяти, которую можно редактировать и записать. Получение объекта затратнее, поэтому для чтения больших объёмов данных правильнее использовать запросы, а не ПолучитьОбъект() в цикле.
Куда документ записывает движения и почему отчёт может быть пустым?
Документ при проведении записывает наборы записей в регистры, перечисленные на вкладке «Движения» его свойств. Если отчёт пуст при наличии проведённых документов, проверьте: проведён ли документ именно в статусе «Проведён», указан ли нужный регистр в движениях документа и есть ли код формирования движений в обработчике ОбработкаПроведения.
Что такое стандартные реквизиты и можно ли их удалить?
Это поля, которые платформа добавляет автоматически: у справочника — код, наименование, ссылка, пометка удаления; у документа — номер, дата, проведён. Удалить их нельзя, но можно настроить: длину кода и наименования, периодичность нумерации, автонумерацию. Эти настройки задаются в палитре свойств объекта конфигурации.
Что важно запомнить
Объект в 1С существует на двух уровнях: объект конфигурации — шаблон структуры, объект данных — конкретная запись. Основные типы — справочники (сущности), документы (события), регистры (итоги). В коде различайте ссылку, объект и набор записей. Меняйте структуру только через конфигуратор с резервной копией, а данные удаляйте через пометку с контролем ссылочной целостности.