К статье
Практический материал

Разработка и Конфигурация · 10 мин

Где находятся формы 1С и как их найти

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

Формы в 1С — это визуальные экраны, с которыми работает пользователь: карточки документов, списки справочников, отчёты, обработки. Вопрос «где находятся формы» возникает в трёх разных ситуациях: когда нужно открыть форму в конфигураторе для доработки, когда требуется найти файл формы на диске, и когда форму нужно вызвать программно из кода. Ответ в каждом случае свой.

Ключевой момент: в файловой или клиент-серверной базе формы не лежат отдельными файлами с понятными именами. Они хранятся внутри конфигурации — в составе метаданных объекта. Поэтому искать их нужно не проводником Windows, а через дерево конфигурации, поиск по метаданным или выгрузку в файлы.

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

Где формы находятся в конфигураторе

Основное место хранения форм — дерево конфигурации. Запустите конфигуратор, откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию» и найдите нужный объект метаданных: справочник, документ, отчёт, обработку, регистр. У каждого объекта, имеющего визуальное представление, есть ветка «Формы».

Внутри ветки расположены конкретные формы: форма элемента, форма списка, форма выбора, форма группы. Если ветка пустая, значит для объекта не созданы собственные формы и платформа генерирует их автоматически «на лету». Это нормальная ситуация для простых конфигураций.

Быстрый способ добраться до нужной формы — кликнуть правой кнопкой по объекту и выбрать пункт «Формы» либо открыть свойства объекта и посмотреть, какие формы назначены основными (основная форма элемента, основная форма списка). Именно они открываются у пользователя по умолчанию.

Как открыть форму объекта в конфигураторе
  1. 1
    Запустите конфигуратор и откройте конфигурацию
  2. 2
    В дереве метаданных найдите объект (например, Справочники → Номенклатура)
  3. 3
    Разверните ветку «Формы» у объекта
  4. 4
    Дважды кликните по нужной форме — откроется редактор формы
  5. 5
    Проверьте в свойствах объекта, какая форма назначена основной

Где находится модуль формы и данные формы

Каждая форма состоит из нескольких частей, и важно понимать, где какая находится. Визуальная разметка (элементы, группы, поля) открывается в редакторе формы сразу. Программный код находится в модуле формы — переключиться на него можно вкладками внизу окна редактора или сочетанием клавиш, открывающим модуль.

Реквизиты формы и её параметры видны на соответствующих панелях редактора. Командный интерфейс формы (команды в панели навигации и меню) настраивается на вкладке «Командный интерфейс». Всё это — части одной формы, физически хранящиеся вместе внутри конфигурации.

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

Где формы хранятся физически: база, файлы выгрузки, внешние обработки

В файловой базе вся конфигурация, включая формы, упакована в файл 1Cv8.1CD в каталоге информационной базы. В клиент-серверном варианте конфигурация хранится в базе данных на сервере СУБД. Достать оттуда отдельную форму напрямую нельзя — только штатными средствами платформы.

Чтобы получить формы в виде файлов, используйте выгрузку конфигурации: «Конфигурация → Выгрузить конфигурацию в файлы». После выгрузки каждая форма появится в каталоге объекта как пара файлов: XML-описание формы (Form.xml) и файл модуля (Module.bsl). Путь будет примерно таким: Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml и .../Ext/Form/Module.bsl.

Внешние обработки и отчёты — отдельный случай. Их формы находятся прямо в файле .epf или .erf на диске. Открывается такой файл через «Файл → Открыть» в конфигураторе, после чего в структуре обработки появляется знакомая ветка «Формы».

text
Catalogs\Номенклатура\Forms\ФормаЭлемента\Ext\Form.xml
Catalogs\Номенклатура\Forms\ФормаЭлемента\Ext\Form\Module.bsl

Где находятся формы в расширениях конфигурации

Если конфигурация доработана расширениями, часть форм может находиться не в основной конфигурации, а в расширении. Откройте «Конфигурация → Расширения конфигурации», выберите нужное расширение и посмотрите его дерево объектов. Заимствованные и добавленные формы видны там в ветках соответствующих объектов.

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

Как найти нужную форму поиском

Когда объектов много, искать форму вручную по дереву долго. Используйте глобальный поиск по конфигурации: «Правка → Глобальный поиск» (Ctrl+Shift+F). Ищите по имени формы, по фрагменту текста из модуля формы или по заголовку, который виден пользователю. В результатах поиска двойной клик откроет нужное место.

Другой приём — поиск ссылок на объект. Выделите форму в дереве, нажмите правую кнопку и выберите «Поиск ссылок на объект». Так вы увидите, откуда форма вызывается в коде, что помогает понять логику её использования.

Если известно только название окна, которое видит пользователь, ищите по строке заголовка или по характерному тексту сообщения из модуля. В типовых конфигурациях одна и та же сущность может иметь несколько форм, поэтому проверяйте, какая именно назначена основной в свойствах объекта.

Типичные ошибки
01
Искать формы как отдельные файлы в каталоге базы — их там нет, вся конфигурация внутри 1Cv8.1CD или в СУБД
02
Править форму в основной конфигурации, когда действует расширение, — изменения не повлияют на то, что видит пользователь
03
Путать общие формы с формами объектов и искать их не в той ветке дерева конфигурации
04
Забыть проверить, какая форма назначена основной, и дорабатывать не ту форму, которая реально открывается

Как программно открыть форму из кода

Во встроенном языке формы вызываются методами ОткрытьФорму() и ПолучитьФорму(). Путь к форме указывается строкой: имя объекта метаданных, точка, имя формы. Например, для формы элемента справочника путь выглядит как Справочник.Номенклатура.Форма.ФормаЭлемента, для общей формы — ОбщаяФорма.ИмяФормы, для внешней обработки — ВнешняяОбработка.ИмяОбработки.Форма.ИмяФормы.

Если имя формы не указано, платформа открывает основную форму, назначенную в свойствах объекта, а при её отсутствии — автоматически сгенерированную. Это удобно для универсального кода, но при доработках лучше указывать форму явно, чтобы поведение было предсказуемым.

bsl
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаЭлемента");
ОткрытьФорму("ОбщаяФорма.НастройкиОбмена");

Как проверить, что вы нашли и изменили правильную форму

После доработки формы обязательно проверьте результат в режиме предприятия. Откройте объект тем же способом, что и пользователь: через список, двойной клик по элементу, команду интерфейса. Если изменений не видно — почти всегда причина в одном из трёх: изменена не основная форма, действует расширение с одноимённой формой или конфигурация базы данных не обновлена.

Обновление конфигурации базы данных выполняется через «Конфигурация → Обновить конфигурацию базы данных» (F7). Без этого шага изменения форм, сохранённые в конфигураторе, не попадут в работающую базу.

Контрольные точки

Как проверить результат

Открывается ли изменённая форма в режиме предприятия
Норма

Пользователь видит доработанные элементы и поведение

Тревожный признак

Открывается старый вариант — проверьте основную форму, расширения и обновление конфигурации БД

Наличие формы в дереве конфигурации
Норма

Форма есть в ветке объекта или в «Общие формы»

Тревожный признак

Ветка пуста — форма генерируется автоматически или переопределена расширением

Выгрузка в файлы
Норма

В каталоге выгрузки появились Form.xml и Module.bsl формы

Тревожный признак

Файлов нет — выгрузка выполнена не полностью или выбран не тот каталог

Итог

Что важно запомнить

Формы 1С находятся внутри конфигурации: в ветке «Формы» объекта метаданных, в «Общих формах», во внешних обработках (.epf) и в расширениях. Отдельными файлами в базе они не хранятся — извлекаются только выгрузкой конфигурации в файлы. После правок обновите конфигурацию базы данных и проверьте результат в режиме предприятия.

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

Почему в ветке «Формы» у объекта пусто?

Это значит, что собственные формы не созданы, и платформа автоматически генерирует стандартные формы списка и элемента при открытии. Чтобы доработать такую форму, создайте её вручную: правой кнопкой по ветке «Формы» → «Добавить», выберите тип формы и назначьте её основной в свойствах объекта.

Можно ли скопировать форму из одной конфигурации в другую?

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

Где находятся формы внешней печатной формы или обработки?

Внутри файла обработки с расширением .epf на диске. Откройте файл в конфигураторе через «Файл → Открыть» — в структуре обработки появится ветка «Формы», где и находятся все её формы с модулями.

Изменил форму, а пользователи видят старую. Что проверить?

Сначала обновите конфигурацию базы данных (F7). Затем проверьте, не переопределена ли форма расширением конфигурации, и та ли форма назначена основной в свойствах объекта. Также убедитесь, что пользователи перезапустили сеанс или форму.

Как узнать, какая форма открыта у пользователя прямо сейчас?

В режиме предприятия нет штатного окна «какая это форма», но можно воспользоваться встроенными средствами: открыть «Все функции» и посмотреть вызов объекта, либо добавить в код временное сообщение с ИмяФормы в модуле формы. В отладчике конфигуратора имя текущей формы видно в стеке вызовов.