Разработка и Конфигурация · 10 мин
Где находятся формы 1С и как их найти
Разбираем, где хранятся формы 1С: в дереве конфигурации, модулях, файлах выгрузки и расширениях. Пути, команды поиска, типичные ошибки и способы проверки.
Формы в 1С — это визуальные экраны, с которыми работает пользователь: карточки документов, списки справочников, отчёты, обработки. Вопрос «где находятся формы» возникает в трёх разных ситуациях: когда нужно открыть форму в конфигураторе для доработки, когда требуется найти файл формы на диске, и когда форму нужно вызвать программно из кода. Ответ в каждом случае свой.
Ключевой момент: в файловой или клиент-серверной базе формы не лежат отдельными файлами с понятными именами. Они хранятся внутри конфигурации — в составе метаданных объекта. Поэтому искать их нужно не проводником Windows, а через дерево конфигурации, поиск по метаданным или выгрузку в файлы.
Ниже разобраны все основные места, где реально находятся формы: конфигуратор, внешние обработки, расширения, файлы выгрузки и временные каталоги. Для каждого случая приведены точные действия и способы проверки результата.
Где формы находятся в конфигураторе
Основное место хранения форм — дерево конфигурации. Запустите конфигуратор, откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию» и найдите нужный объект метаданных: справочник, документ, отчёт, обработку, регистр. У каждого объекта, имеющего визуальное представление, есть ветка «Формы».
Внутри ветки расположены конкретные формы: форма элемента, форма списка, форма выбора, форма группы. Если ветка пустая, значит для объекта не созданы собственные формы и платформа генерирует их автоматически «на лету». Это нормальная ситуация для простых конфигураций.
Быстрый способ добраться до нужной формы — кликнуть правой кнопкой по объекту и выбрать пункт «Формы» либо открыть свойства объекта и посмотреть, какие формы назначены основными (основная форма элемента, основная форма списка). Именно они открываются у пользователя по умолчанию.
- 1Запустите конфигуратор и откройте конфигурацию
- 2В дереве метаданных найдите объект (например, Справочники → Номенклатура)
- 3Разверните ветку «Формы» у объекта
- 4Дважды кликните по нужной форме — откроется редактор формы
- 5Проверьте в свойствах объекта, какая форма назначена основной
Где находится модуль формы и данные формы
Каждая форма состоит из нескольких частей, и важно понимать, где какая находится. Визуальная разметка (элементы, группы, поля) открывается в редакторе формы сразу. Программный код находится в модуле формы — переключиться на него можно вкладками внизу окна редактора или сочетанием клавиш, открывающим модуль.
Реквизиты формы и её параметры видны на соответствующих панелях редактора. Командный интерфейс формы (команды в панели навигации и меню) настраивается на вкладке «Командный интерфейс». Всё это — части одной формы, физически хранящиеся вместе внутри конфигурации.
Обратите внимание: общие формы, не привязанные к конкретному объекту, находятся в отдельной ветке дерева конфигурации — «Общие → Общие формы». Туда часто выносят формы настроек, диалоги выбора и служебные окна, которые вызываются из разных мест системы.
Где формы хранятся физически: база, файлы выгрузки, внешние обработки
В файловой базе вся конфигурация, включая формы, упакована в файл 1Cv8.1CD в каталоге информационной базы. В клиент-серверном варианте конфигурация хранится в базе данных на сервере СУБД. Достать оттуда отдельную форму напрямую нельзя — только штатными средствами платформы.
Чтобы получить формы в виде файлов, используйте выгрузку конфигурации: «Конфигурация → Выгрузить конфигурацию в файлы». После выгрузки каждая форма появится в каталоге объекта как пара файлов: XML-описание формы (Form.xml) и файл модуля (Module.bsl). Путь будет примерно таким: Catalogs/Номенклатура/Forms/ФормаЭлемента/Ext/Form.xml и .../Ext/Form/Module.bsl.
Внешние обработки и отчёты — отдельный случай. Их формы находятся прямо в файле .epf или .erf на диске. Открывается такой файл через «Файл → Открыть» в конфигураторе, после чего в структуре обработки появляется знакомая ветка «Формы».
Catalogs\Номенклатура\Forms\ФормаЭлемента\Ext\Form.xml
Catalogs\Номенклатура\Forms\ФормаЭлемента\Ext\Form\Module.bslГде находятся формы в расширениях конфигурации
Если конфигурация доработана расширениями, часть форм может находиться не в основной конфигурации, а в расширении. Откройте «Конфигурация → Расширения конфигурации», выберите нужное расширение и посмотрите его дерево объектов. Заимствованные и добавленные формы видны там в ветках соответствующих объектов.
Признак того, что форма переопределена расширением: в основной конфигурации форма выглядит одним образом, а у пользователя открывается другая. Проверка простая — сравните состав форм объекта в основной конфигурации и в активных расширениях. Если в расширении есть форма с тем же именем, она и работает в режиме предприятия.
Как найти нужную форму поиском
Когда объектов много, искать форму вручную по дереву долго. Используйте глобальный поиск по конфигурации: «Правка → Глобальный поиск» (Ctrl+Shift+F). Ищите по имени формы, по фрагменту текста из модуля формы или по заголовку, который виден пользователю. В результатах поиска двойной клик откроет нужное место.
Другой приём — поиск ссылок на объект. Выделите форму в дереве, нажмите правую кнопку и выберите «Поиск ссылок на объект». Так вы увидите, откуда форма вызывается в коде, что помогает понять логику её использования.
Если известно только название окна, которое видит пользователь, ищите по строке заголовка или по характерному тексту сообщения из модуля. В типовых конфигурациях одна и та же сущность может иметь несколько форм, поэтому проверяйте, какая именно назначена основной в свойствах объекта.
Как программно открыть форму из кода
Во встроенном языке формы вызываются методами ОткрытьФорму() и ПолучитьФорму(). Путь к форме указывается строкой: имя объекта метаданных, точка, имя формы. Например, для формы элемента справочника путь выглядит как Справочник.Номенклатура.Форма.ФормаЭлемента, для общей формы — ОбщаяФорма.ИмяФормы, для внешней обработки — ВнешняяОбработка.ИмяОбработки.Форма.ИмяФормы.
Если имя формы не указано, платформа открывает основную форму, назначенную в свойствах объекта, а при её отсутствии — автоматически сгенерированную. Это удобно для универсального кода, но при доработках лучше указывать форму явно, чтобы поведение было предсказуемым.
ОткрытьФорму("Справочник.Номенклатура.Форма.ФормаЭлемента");
ОткрытьФорму("ОбщаяФорма.НастройкиОбмена");Как проверить, что вы нашли и изменили правильную форму
После доработки формы обязательно проверьте результат в режиме предприятия. Откройте объект тем же способом, что и пользователь: через список, двойной клик по элементу, команду интерфейса. Если изменений не видно — почти всегда причина в одном из трёх: изменена не основная форма, действует расширение с одноимённой формой или конфигурация базы данных не обновлена.
Обновление конфигурации базы данных выполняется через «Конфигурация → Обновить конфигурацию базы данных» (F7). Без этого шага изменения форм, сохранённые в конфигураторе, не попадут в работающую базу.
Как проверить результат
Пользователь видит доработанные элементы и поведение
Открывается старый вариант — проверьте основную форму, расширения и обновление конфигурации БД
Форма есть в ветке объекта или в «Общие формы»
Ветка пуста — форма генерируется автоматически или переопределена расширением
В каталоге выгрузки появились Form.xml и Module.bsl формы
Файлов нет — выгрузка выполнена не полностью или выбран не тот каталог
Что важно запомнить
Формы 1С находятся внутри конфигурации: в ветке «Формы» объекта метаданных, в «Общих формах», во внешних обработках (.epf) и в расширениях. Отдельными файлами в базе они не хранятся — извлекаются только выгрузкой конфигурации в файлы. После правок обновите конфигурацию базы данных и проверьте результат в режиме предприятия.
Частые вопросы
Почему в ветке «Формы» у объекта пусто?
Это значит, что собственные формы не созданы, и платформа автоматически генерирует стандартные формы списка и элемента при открытии. Чтобы доработать такую форму, создайте её вручную: правой кнопкой по ветке «Формы» → «Добавить», выберите тип формы и назначьте её основной в свойствах объекта.
Можно ли скопировать форму из одной конфигурации в другую?
Напрямую через буфер обмена формы между конфигурациями не переносятся. Рабочие способы: выгрузить объект в файл конфигурации и загрузить в другую базу, сравнить и объединить конфигурации, либо выгрузить конфигурацию в файлы и перенести файлы формы с последующей загрузкой. Учтите, что модуль формы может ссылаться на объекты, которых нет в целевой конфигурации.
Где находятся формы внешней печатной формы или обработки?
Внутри файла обработки с расширением .epf на диске. Откройте файл в конфигураторе через «Файл → Открыть» — в структуре обработки появится ветка «Формы», где и находятся все её формы с модулями.
Изменил форму, а пользователи видят старую. Что проверить?
Сначала обновите конфигурацию базы данных (F7). Затем проверьте, не переопределена ли форма расширением конфигурации, и та ли форма назначена основной в свойствах объекта. Также убедитесь, что пользователи перезапустили сеанс или форму.
Как узнать, какая форма открыта у пользователя прямо сейчас?
В режиме предприятия нет штатного окна «какая это форма», но можно воспользоваться встроенными средствами: открыть «Все функции» и посмотреть вызов объекта, либо добавить в код временное сообщение с ИмяФормы в модуле формы. В отладчике конфигуратора имя текущей формы видно в стеке вызовов.