Разработка и Конфигурация · 11 мин
Как открыть страницу в 1С: формы, веб-страницы и навигационные ссылки
Как открыть страницу в 1С: программное открытие форм через ОткрытьФорму, запуск веб-страниц из кода, навигационные ссылки, типичные ошибки и проверка результата.
Под фразой «открыть страницу в 1С» обычно скрываются три разные задачи: открыть форму объекта или списка внутри программы, открыть веб-страницу во внешнем браузере из кода 1С и перейти по навигационной ссылке на конкретный объект. У каждой задачи свой инструментарий, и путаница между ними — частая причина ошибок у начинающих разработчиков.
В управляемом приложении всё строится вокруг форм и навигационных ссылок. Форма — это «страница», которую видит пользователь: карточка элемента справочника, список документов, отчёт. Навигационная ссылка — уникальный адрес объекта внутри информационной базы, по которому его можно открыть напрямую, минуя поиск в списках.
Ниже разобраны практические способы для каждого сценария: программное открытие форм с параметрами, запуск веб-страниц, работа со ссылками вида e1cib/..., а также типичные ошибки и способы проверить результат.
Что считается «страницей» в 1С
В терминах платформы 1С:Предприятие нет понятия «страница» в веб-смысле. Пользователь работает с формами: основными окнами объектов, списками, отчётами. Каждая форма имеет имя вида Справочник.Номенклатура.Форма.ФормаЭлемента и открывается либо интерактивно (пользователем), либо программно (из кода).
Отдельный случай — реальные веб-страницы, которые нужно открыть из 1С: сайт банка, сервис проверки контрагента, страница документации. Для этого платформа предоставляет механизм запуска внешних приложений и перехода по ссылкам через браузер по умолчанию.
Как программно открыть форму объекта
Основной метод — ОткрытьФорму(). В простейшем варианте достаточно указать имя формы. Чтобы открыть форму конкретного элемента, в параметры передают ключ с ссылкой на объект.
// Открыть список справочника
ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
// Открыть карточку конкретного элемента
ПараметрыФормы = Новый Структура("Ключ", ЭлементСсылка);
ОткрытьФорму("Справочник.Номенклатура.ФормаОбъекта", ПараметрыФормы);
Метод поддерживает дополнительные аргументы: владельца формы, уникальность, окно, режим открытия. Параметр «Уникальность» полезен, когда нужно, чтобы форма не открывалась повторно: если передать туда ссылку, повторный вызов просто активирует уже открытое окно вместо создания дубликата.
Открытие формы с отбором и заполнением
Частая задача — открыть список с уже установленным отбором или форму нового документа с предзаполненными полями. Для отбора в параметры передают структуру Отбор, для заполнения — ЗначенияЗаполнения или Основание.
// Список документов по контрагенту
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Отбор", Новый Структура("Контрагент", КонтрагентСсылка));
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаСписка", ПараметрыФормы);
// Новый документ на основании
ПараметрыФормы = Новый Структура("Основание", ЗаказСсылка);
ОткрытьФорму("Документ.РеализацияТоваровУслуг.ФормаОбъекта", ПараметрыФормы);
Как открыть веб-страницу из 1С
Для открытия сайта во внешнем браузере используется метод ЗапуститьПриложение() с URL в качестве аргумента, либо более современный вариант — ПерейтиПоНавигационнойСсылке() из объекта ФайловаяСистема (в новых версиях платформы). Оба способа передают адрес операционной системе, и страница открывается в браузере по умолчанию.
// Открыть сайт в браузере по умолчанию
ЗапуститьПриложение("https://1c.ru");
// Вариант для новых версий платформы
ФайловаяСистема.ОткрытьНавигационнуюСсылку("https://1c.ru");
Если страницу нужно показать внутри окна 1С, используют поле HTML-документа на форме. В него загружают содержимое или устанавливают адрес — страница отрисуется встроенным браузерным движком. Учитывайте ограничение: встроенный движок может не поддерживать часть современных веб-технологий, поэтому сложные сайты корректнее открывать во внешнем браузере.
Как открыть объект по навигационной ссылке
Каждый объект базы имеет навигационную ссылку вида e1cib/data/Справочник.Номенклатура?ref=.... Получить её можно интерактивно: в форме объекта открыть меню «Ещё» и выбрать команду получения ссылки, либо программно — функцией ПолучитьНавигационнуюСсылку().
СсылкаНаФорму = ПолучитьНавигационнуюСсылку(ЭлементСсылка);
// Результат: e1cib/data/Справочник.Номенклатура?ref=...
Открыть объект по такой ссылке можно двумя способами. Интерактивно: скопировать ссылку, открыть в 1С команду перехода по ссылке (в тонком клиенте — через меню или диалог открытия) и вставить адрес. Программно — методом ПерейтиПоНавигационнойСсылке():
ПерейтиПоНавигационнойСсылке("e1cib/data/Документ.ЗаказКлиента?ref=8b3a...");
Навигационные ссылки удобны для передачи коллегам: получатель вставляет ссылку в своём клиенте той же базы и сразу видит нужный документ. Ссылки работают только внутри конкретной информационной базы и бесполезны для сторонних пользователей.
Сравнение способов открытия
Полный контроль: параметры, отборы, заполнение, режим окна. Требует знания имени формы и работает только внутри сеанса 1С.
Подходит для веб-страниц и внешних программ. Не управляет результатом — браузер открывается отдельно от сеанса 1С.
Универсальный адрес объекта для передачи и быстрого перехода. Работает только в пределах той же информационной базы.
Показывает страницу внутри окна 1С. Ограничения встроенного движка могут ломать современные сайты.
Открытие страницы в веб-клиенте и тонком клиенте
В веб-клиенте 1С работает в браузере, и «страница» здесь буквально страница браузера. Формы открываются теми же методами — ОткрытьФорму() и навигационные ссылки работают идентично, но адрес в строке браузера содержит полный URL вида http://сервер/база/ru_RU/#e1cib/data/.... Такой адрес можно скопировать и открыть в новой вкладке — форма откроется после авторизации.
Ограничение веб-клиента — запуск внешних приложений. ЗапуститьПриложение() в браузере может быть заблокирован настройками безопасности, поэтому для открытия сайтов в веб-клиенте надёжнее использовать переход по навигационной ссылке, который браузер обрабатывает как обычный переход.
- 1Получите ссылку на нужный элемент справочника (запросом, поиском по коду или наименованию).
- 2Сформируйте структуру параметров: Новый Структура("Ключ", Ссылка).
- 3Вызовите ОткрытьФорму() с именем формы объекта и параметрами.
- 4Проверьте, что форма открылась и в ней отображаются данные именно этого элемента.
- 5Если открылась пустая форма нового элемента — проверьте, что параметр называется именно «Ключ» и ссылка не пустая.
Типичные ошибки и их устранение
Самая частая ошибка — «Форма не найдена». Она возникает, когда указано неверное имя формы: опечатка, отсутствие префикса типа объекта или ссылка на форму, которая в конфигурации называется иначе. Проверьте точное имя в конфигураторе, в свойствах объекта на вкладке форм.
Вторая группа проблем — открытие пустой формы вместо карточки существующего элемента. Причина почти всегда в параметрах: ключ передан под другим именем, ссылка пустая или имеет неподходящий тип. Параметр должен называться Ключ, а значение должно быть ссылкой именно того типа, для которого открывается форма.
Третья ситуация — код работает в толстом клиенте, но не в тонком или веб-клиенте. Методы, связанные с запуском приложений и модальными окнами, имеют ограничения в разных клиентах. Проверяйте доступность метода в синтакс-помощнике для нужного режима и используйте асинхронные аналоги там, где платформа их требует.
Как проверить, что страница открылась правильно
После программного открытия формы убедитесь в трёх вещах: заголовок окна соответствует ожидаемому объекту, в полях отображаются данные нужного элемента, а при повторном вызове не плодятся дубликаты окон (если задана уникальность). Для отладки полезно временно выводить имя формы и состав параметров в сообщение.
Для веб-страниц проверка проще: браузер открылся, адрес в строке совпадает с переданным, страница загрузилась без ошибки. Если ссылка формируется динамически (например, с параметрами запроса), проверьте корректность кодирования специальных символов в URL.
Как проверить результат
Открылась карточка нужного объекта с его данными
Пустая форма нового элемента — неверный параметр Ключ
Активируется уже открытое окно (при заданной уникальности)
Открываются дубликаты окон
Браузер открыл нужный адрес
Ничего не происходит или ошибка — проверьте клиент и права
Открывается объект в той же базе
Ошибка перехода — ссылка из другой базы или устарела
FAQ
Как открыть форму нового документа с заполненным контрагентом?
Передайте в параметры структуру ЗначенияЗаполнения: Новый Структура("ЗначенияЗаполнения", Новый Структура("Контрагент", СсылкаНаКонтрагента)) — и укажите её вторым аргументом ОткрытьФорму(). Поле заполнится при условии, что обработка заполнения в модуле объекта поддерживает такой параметр.
Почему ОткрытьФорму() выдаёт ошибку «Метод не обнаружен» в общем модуле?
Метод доступен только на клиенте. Проверьте, что общий модуль имеет флаг «Клиент (управляемое приложение)» или вызов обёрнут в директиву #Если Клиент. На сервере формы открывать нельзя — там можно только подготовить данные и вернуть их на клиент.
Можно ли открыть страницу 1С по ссылке без запуска программы?
Да, если база опубликована на веб-сервере: скопируйте полный URL из адресной строки веб-клиента и откройте его в браузере — после авторизации откроется та же форма. Навигационные ссылки вида e1cib/... сами по себе вне 1С не работают.
Как открыть внешний отчёт или обработку из файла?
Интерактивно — через меню «Файл → Открыть» и выбор файла .epf или .erf. Программно в управляемом приложении используется механизм дополнительных отчётов и обработок либо запуск через временное хранилище; прямой вызов ОткрытьФорму() к файлу на диске не применяется.
Что делать, если после обновления конфигурации перестала открываться форма?
Вероятнее всего, изменилось имя формы или состав её параметров. Откройте конфигуратор, найдите объект, проверьте актуальное имя формы и параметры в обработчике ПриСозданииНаСервере. Надёжное решение — открывать форму без жёсткого имени, чтобы платформа использовала основную форму объекта.
Что важно запомнить
Формы внутри 1С открываются методом ОткрытьФорму() с параметром «Ключ» для существующих объектов, веб-страницы — запуском приложения или переходом по ссылке, а объекты по прямому адресу — навигационными ссылками e1cib. Проверяйте имя формы, тип клиента и состав параметров — это устраняет большинство ошибок.