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