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