1с не открывается основная форма

Обновлено: 07.07.2024

Открытие форм

Область применения: управляемое приложение, мобильное приложение.

1. Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 и более ранних версий - также ОткрытьФормуМодально ). Применение альтернативного способа, с получением формы и ее последующим открытием с помощью метода ПолучитьФорму , не рекомендуется.

Рекомендация обусловлена соображениями

  • повышения устойчивости кода, работающего с формой, за счет разделения программного интерфейса для работы с формой и деталей ее внутренней реализации,
  • а также сохранения единой стилистики кода прикладных решений.

Кроме того, применение глобального метода ОткрытьФорму гарантирует выполнение инициализации формы на сервере в обработчике ПриСозданииНаСервере . Этот подход помогает сосредоточить весь код инициализации формы в одном месте и исключает "случайное" обращение к серверу, связанное с инициализацией формы, между строками кода

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

Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).

3. Не следует применять другие способы параметризации формы при открытии. Например, нужно избегать обращения к методам и свойствам формы после ее открытия.
Например, вместо

следует по той же причине использовать параметры формы:

ОткрытьФорму("ОбщаяФорма.ПутеводительПоСистеме", Новый Структура("РежимОткрытия", "Приветствие"));

4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы

ФормаВопроса = ПолучитьФорму("ОбщаяФорма.ФормаВопроса");
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …

следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:

Оповещение = Новый ОписаниеОповещения("БольшеНеПоказыватьНапоминаниеЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ФормаВопроса". Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.

&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт

Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;

Если БольшеНеПоказыватьНапоминание Тогда
// …

При этом возвращаемое значение формы формируется в коде модуля формы с помощью метода формы Закрыть .

5. Другие ограничения:

  • Обработчик события формы ПриОткрытии не должен содержать код по открытию какой-либо другой формы, так как это может привести к нарушению порядка отображения окон. В этом случае рекомендуется использовать обработчик ожидания на короткий интервал или открывать другие формы интерактивно, например, по нажатию на кнопку.
  • Не рекомендуется выполнять программное открытие и закрытие формы в одном обработчике. Такие действия должны быть разнесены по времени. Например, закрытие формы можно выполнять в обработчике ожидания.
  • При использовании в конфигурации Библиотека стандартных подсистем и разработке форм (рабочих мест), предназначенных только для внешних пользователей, следует явно блокировать открытие таких форм в сеансах "обычных" пользователей. Для этого следует устанавливать параметр Отказ при создании формы на сервере с помощью функции ЭтоСеансВнешнегоПользователя общего модуля Пользователи или ПользователиКлиент :

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;

КонецПроцедуры

6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню "Все функции" вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:

Любой начинающий разработчик управляемого приложения 1С, который дошел до открытия управляемых форм заметил, что новая форма открывается всегда не поверх текущего окна, а в соседнем окне. Этот режим открытия называют Независимым. Но очень часто для удобства работы пользователей форму нужно открыть именно поверх всех имеющихся окон. Разберемся, как это работает.

Прежде чем изучать открытие формы программно, познакомимся с очень интересным свойством управляемой формы 1С, которое называется РежимОткрытияОкна. Именно это свойство отвечает, каким образом откроется новое окно. Это свойство принимает три значения: Независимый, Блокировать окно владельца и Блокировать весь интерфейс.

Свойство формы 1С режим открытия окна

Если у формы 1С установлен Независимый режим открытия окна, то форма откроется в отдельном окне, как на рисунке ниже.

Независимый режим открытия окна

Здесь и далее приведена конфигурация из книги «Основы разработки в 1С: Такси».

В том случае если установлен режим Блокировать окно владельца или Блокировать весь интерфейс, то форма откроется по верх всех окон.

Форма 1С открыта по верх всех окон

Только в случае режима Блокировать окно владельца, будет заблокирована форма, в которой было инициализировано открытие новой формы. А в случае режима Блокировать весь интерфейс заблокируется весь интерфейс программы 1С. По сути, форма откроется в модальном режиме.

Со свойством формы разобрались, перейдем к открытию формы при помощи программного кода. Делать мы это будем при помощи уже знакомого нам метода ОткрытьФорму. Как работает этот метод, читайте в моей статье:

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

Если мы в методе ОткрытьФорму установим в седьмой параметр какое-либо значение, то форма откроется согласно этому значению.

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

Изучайте управляемые формы 1С с моими статьями:

Открытие управляемой формы существующего объекта

Открытие управляемой формы 1С на основании другого объекта

Открытие обычной формы в управляемом приложении 1С

Очень подробно вопросы по работе с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.


  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

Промо-код на скидку в 16%: vCph8bW3rE


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

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

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

Путь к параметрам конфигуратора 1C: Главное меню –Сервис – Параметры

Путь к параметрам конфигуратора 1С

Сам параметр находится на закладке «Общие»

Параметр Редактирование конфигурации для режимов запуска

Семь полезных параметров конфигуратора 1С

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

Использовать обычные формы в управляемом приложении

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

Обратите внимание! Открывать обычную форму можно только в режиме толстого клиента, в других режимах (тонкий клиент или веб-клиент) обычные формы открывать нельзя!

После изменения конфигурации при создании любой формы у Вас появится возможность выбрать: сделать эту форму обычной или управляемой. В конструкторе формы появится свойство «Тип формы», где можно выбрать, какая это будет форма Управляемая или Обычная.

Выбор типа формы 1С

В своей учебной конфигурации я сделал форму документа обычной

Обычная форма документа 1С

Причем сделал её основной формой документа

Основная форма документа 1С

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

Обычная форма документа 1С

При запуске 1С: Предприятия в тонком клиенте, откроется управляемая форма документа (сгенерируется автоматически). Это не смотря на то, что основная форма документа обычная.

Открытие управляемом формы с передачей параметров

Открытие управляемой формы существующего объекта

Открытие управляемой формы на основании другого объекта

Очень подробно вопросы по работе с управляемыми формами в частности и с управляемым приложением в целом рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомится с разработкой управляемого приложения.


  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

Промо-код на скидку в 16%: vCph8bW3rE


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

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

За открытие управляемой формы 1С в командном интерфейсе отвечают свойства объектов «Основные формы…». Посмотреть их можно двумя способами. Первый, в конструкторе объекта на закладке «Формы».

Основная форма документа в конструкторе

Второй, в палитре свойств объекта. В категории представление

Основная форма справочника в палитре свойств

Здесь и далее приведены примеры из конфигурации, разработанной в книге «Программировать в 1С за 11 шагов».

У всех объектов есть определенный перечень основных форм. Причем количество и состав основных форм может отличаться в зависимости от прототипа объекта (что это: справочник, документ, обработка и т.д.).

Например, у справочников это – форма элемента, форма списка, форма группы, форма выбора и форма выбора группы. А у документов – форма документа, форма списка и форма выбора.

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

Основные формы справочника с выключенной иерархией

А на этом скрине, приведена основные формы справочника с включенной иерархией.

Основные формы справочника с включенной иерархией

При создании новой формы разработчику предлагается выбрать тип формы.

Выбрать тип при создании новой формы

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

Основная форма списка

Если мы сделаем так, как показано на рисунке выше, то по умолчанию, в командном интерфейсе будет всегда открываться форма списка – ФормаСписка1. Но форма ФормаСписка, ни куда не денется, разработчик сможет её использовать в собственных алгоритмах. Например, при программном открытии управляемой формы.

Статьи о программном открытии управляемых форм:

Программное открытие управляемой формы 1С

Открытие управляемой формы существующего объекта

Открытие управляемой формы на основании другого объекта

Открытие управляемой формы выбора объекта

Если же основная форма объекта не задана, то при выполнении стандартных команд будет открываться автоматически сгенерированная форма. Такое действие платформы в некоторых случаях разработчика может устроить (например, если мы создали простой справочник). Но большинстве случаев, программист конструирует форму самостоятельно, и тогда её необходимо указать в нужном свойстве.


Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!


Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Читайте также: