Программное получение объекта, имени и формы документа в 1С 8.3

Иван Корнев·13 октября 2026·⏱2 мин

Разбираем, как получить объект, имя и форму документа в 1С 8.3. Используйте методы ПолучитьОбъект(), Метаданные().Имя и ПолучитьФорму(). Ниже приведен точный синтаксис для каждого действия.

Оглавление

Получение объекта документа

Использование метода ПолучитьОбъект() внутри циклов (например, при переборе списка из 100+ документов) категорически запрещено. Это приводит к многократным обращениям к СУБД и блокировке интерфейса. Для пакетной обработки данных необходимо использовать язык запросов 1С.

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

СсылкаНаДокумент.ПолучитьОбъект()

Для получения нового или существующего объекта по имени метаданных применяются методы менеджера:

Документы.ИмяДокумента.ПолучитьОбъект()
Документы.ИмяДокумента.СоздатьДокумент()

Метод ПолучитьОбъект() загружает все данные документа в память. Если вам нужно только узнать имя метаданных или открыть форму, в управляемых формах это можно сделать напрямую через ссылку: Ссылка.Метаданные().Имя и Ссылка.ПолучитьФорму("ИмяФормы"). Это сэкономит ресурсы системы.

Получение имени и представления

Для получения программного названия (имени) документа используется свойство Метаданные:

Объект.Метаданные().Имя

Метод возвращает строку, например, "РеализацияТоваровУслуг".

Для получения пользовательского названия (синонима) применяется метод Представление:

Объект.Метаданные().Представление()

Метод возвращает строку, например, "Реализация (акт, накладная)".

Открытие формы документа

Получить форму можно напрямую через объект или через глобальный контекст:

// Через объект
Объект.ПолучитьФорму("ИмяФормы")

// Через глобальный контекст
ПолучитьФорму("Документ.ИмяДокумента.ФормаДокумента", Объект)

Для вывода формы на экран используется метод Открыть():

ПолученнаяФорма.Открыть();

У документа может быть несколько форм (ФормаДокумента, ФормаСписка, ФормаВыбора). Имя основной формы обычно совпадает с именем метаданных, но лучше проверять его в дереве метаданных в Конфигураторе.

Обычный пользователь не может ввести этот код в стандартном интерфейсе. Чтобы это сделать, пользователю необходимо либо включить функциональную опцию «Разработчик» в настройках интерфейса, либо использовать специальную «Внешнюю обработку» с программным модулем.

Частые ошибки

  • Загрузка объекта в цикле. Вызов ПолучитьОбъект() для каждого элемента в цикле приводит к потере производительности и зависанию клиента. Используйте запросы для пакетной работы с данными.
  • Путаница между Ссылкой и Объектом. Разработчики часто загружают объект в память (ПолучитьОбъект()) только для того, чтобы прочитать его имя или открыть форму. В управляемых формах эти действия выполняются напрямую через ссылку без загрузки данных в память.

FAQ

Как получить форму, если есть только ссылка, а не объект? В управляемых формах это можно сделать напрямую через ссылку: Ссылка.ПолучитьФорму("ИмяФормы"). Загружать объект в память методом ПолучитьОбъект() не нужно.

Почему обычный пользователь не может выполнить этот код? Эти методы требуют доступа к инструментам разработки. Пользователю нужно включить опцию «Разработчик» в настройках интерфейса или использовать внешнюю обработку с программным модулем.