Самостоятельное использование формы не предусмотрено 1с

Обновлено: 07.07.2024

Добрый день!<br>Добавляю к документу управляемую форму. <br>Проблема: Если форму документа развернуть на весь экран, то перестает добавляться строка в табличную часть. Если не разворачивать то все работает. <br>В чем может быть причина?

В каком режиме Вы запускаете конфигурацию?

Толстый клиент обычное приложение. Платформа 8.2.19.80

А разве УФ запускаются в обычном приложении?

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

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

> наоборот наверное можно, но это как гланды через одно место вырезать.<br>Можно. И 1С уже практикуется. Например в УПП "Состочние согласования заявок" открывается через форма списка управляемая.

> . наоборот наверное можно, но это как гланды через одно место вырезать.<br>Можно однозначно и ничего "черезгландового" в этом нет.

Самые простые варианты обновить на 19.83 и почистить кэш (для форм кэш просто "отец родной").

Читают тему:

Мероприятия

1C:Лекторий: 25 ноября 2021 года (четверг, начало в 12:00) — Специальные механизмы в "1С:ЗУП 8" (ред. 3)

  • Где купить СОФТ
  • Вакансии фирм-партнеров "1С"
  • Центры Сертифицированного Обучения
  • Интернет курсы обучения "1С"
  • Самоучители
  • Учебный центр № 1
  • Учебный центр № 3
  • Сертификация по "1С:Профессионал"
  • Организация обучения под заказ
  • Книги по 1С:Предприятию

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

Редакция БУХ.1С не несет ответственности за мнения и информацию, опубликованную в комментариях к материалам.

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

Дизайн сайта

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также: раздел «Открытие управляемой формы» статьи «Минимизация количества серверных вызовов»

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

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

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

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

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

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

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

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

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

  • Обработчик события формы ПриОткрытии не должен содержать код по открытию какой-либо другой формы вместо открываемой.
  • Не рекомендуется выполнять программное открытие и закрытие формы в одном обработчике. Такие действия должны быть разнесены по времени. Например, закрытие формы можно выполнять в обработчике ожидания.

Открытие форм объектов с помощью команды меню "Все функции"

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

Открытие параметризированных форм

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

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

3.3. При этом не следует выдавать исключение в тех случаях, когда форма открывается с заданным параметром «АвтоТест». Наличие этого параметра означает, что получение формы выполняется специальным средством автоматизированного тестирования (например, 1С: Автоматизированная проверка конфигураций – для контроля соблюдения стандартов разработки). В этом случае, весь код обработчика ПриСозданииНаСервере должен отработать без ошибок времени выполнения (например, вследствие отсутствующих параметров формы, которые не передаются при таком способе получения формы).

Блокирующее или независимое открытие форм объектов

4.1 По умолчанию , при создании форм некоторых типов объектов (справочников, планов видов характеристик и др.) им устанавливается режим открытия с блокированием окна владельца (свойство РежимОткрытияОкна установлено в значение "Блокировать окно владельца"). Для таких форм предполагается, что работа с ними всегда выполняется "за один заход", без необходимости переключения в другие формы. Тем самым, предотвращается одновременное открытие нескольких форм такого типа, и как следствие, рабочее пространство пользователя не "замусоривается" лишними окнами.

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

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

а также если в панели навигации формы

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

Для таких форм необходимо установить свойству РежимОткрытияОкна значение "Независимый".

См. также раздел Формы - выбор: блокирующая или независимая в руководстве по стилю.

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

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

В этих случаях рекомендуется разместить функцию для получения формы в общем модуле с повторным использованием возвращаемых значений на время сеанса .
Например:

и вместо вызова метода ОткрытьФорму использовать конструкцию вида:

Подобное кеширование дает значительное ускорение на медленных каналах связи между клиентским приложением и сервером 1С:Предприятия.

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

а) В случае если число комбинаций значений параметров невелико, например, два-три значения, то следует кешировать два-три готовых экземпляра формы в «разрезе» ее параметров. Например, если у формы имеется параметр ПрименитьДляВсех типа Булево, то в общем модуле с повторным использованием возвращаемых значений на время сеанса размещается код вида:

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

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

При этом не следует применять какие-либо другие методы для кеширования форм и их параметризации перед открытием.

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

5.3. В отдельных обоснованных случаях для снижения объема трафика между клиентским приложением и сервером 1С:Предприятия допускается альтернативный способ инициализации «клиентских» параметров формы при открытии. К таким параметрам относятся реквизиты и свойства элементов формы, которые могут быть гарантированно проинициализированы на клиенте без обращения на сервер.
В таких случаях необходимо разместить в модуле формы экспортную процедуру УстановитьПараметрыИспользования, пример использования которой приведен выше.
Такие случаи должны быть прокомментированы в коде.

См. также: Минимизация количества серверных вызовов

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