1с этотобъект получить форму
Открытие форм
Область применения: управляемое приложение, мобильное приложение.
1. Для открытия форм следует применять метод глобального контекста ОткрытьФорму (при использовании версии платформы 1С:Предприятие 8.2 и более ранних версий - также ОткрытьФормуМодально ). Применение альтернативного способа, с получением формы и ее последующим открытием с помощью метода ПолучитьФорму , не рекомендуется.
Рекомендация обусловлена соображениями
- повышения устойчивости кода, работающего с формой, за счет разделения программного интерфейса для работы с формой и деталей ее внутренней реализации,
- а также сохранения единой стилистики кода прикладных решений.
Кроме того, применение глобального метода ОткрытьФорму гарантирует выполнение инициализации формы на сервере в обработчике ПриСозданииНаСервере . Этот подход помогает сосредоточить весь код инициализации формы в одном месте и исключает "случайное" обращение к серверу, связанное с инициализацией формы, между строками кода
2. В случаях когда форма требует параметризации при открытии, все ее параметры следует указывать в наборе параметров формы. Таким образом, набор параметров формы декларативно описывает возможности формы по ее параметризации.
Параметры формы из этого набора могут быть указаны в вызывающем коде при открытии формы ( ОткрытьФорму ).
3. Не следует применять другие способы параметризации формы при открытии. Например, нужно избегать обращения к методам и свойствам формы после ее открытия.
Например, вместо
следует по той же причине использовать параметры формы:
ОткрытьФорму("ОбщаяФорма.ПутеводительПоСистеме", Новый Структура("РежимОткрытия", "Приветствие"));
4. Для получения результата работы формы, вместо непосредственного обращения к элементам и реквизитам формы
ФормаВопроса = ПолучитьФорму("ОбщаяФорма.ФормаВопроса");
ФормаВопроса.ОткрытьМодально();
Если ФормаВопроса.БольшеНеПоказыватьНапоминание Тогда
// …
следует использовать процедуры-обработчики оповещений, которые будут вызваны при завершении работы пользователя с формой:
Оповещение = Новый ОписаниеОповещения("БольшеНеПоказыватьНапоминаниеЗавершение", ЭтотОбъект);
ОткрытьФорму("ОбщаяФорма.ФормаВопроса". Оповещение, РежимОткрытияОкнаФормы.БлокироватьВеcьИнтерфейс);
.
&НаКлиенте
Процедура БольшеНеПоказыватьНапоминаниеЗавершение(БольшеНеПоказыватьНапоминание, Параметры) Экспорт
Если БольшеНеПоказыватьНапоминание = Неопределено Тогда
Возврат;
КонецЕсли;
Если БольшеНеПоказыватьНапоминание Тогда
// …
При этом возвращаемое значение формы формируется в коде модуля формы с помощью метода формы Закрыть .
5. Другие ограничения:
- Обработчик события формы ПриОткрытии не должен содержать код по открытию какой-либо другой формы, так как это может привести к нарушению порядка отображения окон. В этом случае рекомендуется использовать обработчик ожидания на короткий интервал или открывать другие формы интерактивно, например, по нажатию на кнопку.
- Не рекомендуется выполнять программное открытие и закрытие формы в одном обработчике. Такие действия должны быть разнесены по времени. Например, закрытие формы можно выполнять в обработчике ожидания.
- При использовании в конфигурации Библиотека стандартных подсистем и разработке форм (рабочих мест), предназначенных только для внешних пользователей, следует явно блокировать открытие таких форм в сеансах "обычных" пользователей. Для этого следует устанавливать параметр Отказ при создании формы на сервере с помощью функции ЭтоСеансВнешнегоПользователя общего модуля Пользователи или ПользователиКлиент :
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Не ПользователиКлиентСервер.ЭтоСеансВнешнегоПользователя() Тогда
Отказ = Истина;
Возврат;
КонецЕсли;
…
КонецПроцедуры
6. Следующие виды форм должны быть всегда доступны пользователю в режиме 1С:Предприятия из меню "Все функции" вне зависимости от того, размещены ли соответствующие объекты в командном интерфейсе приложения или нет:
Расчет начислений сотрудников: ошибка "Процедура уже определена".
1С выдает следующую ошибку: ""Отчет.НачисленияСотрудникам.МодульОбъекта": Процедура или функция с.
Переменная не определена
Доброго времени суток! Позавчера пришлось столкнуться с 1с Предприятие 8.2 Начал делать.
Переменная не определена
Добрый день, возникла такая проблема, в общем модуле хочу получить последние записи из регистра.
Это где же ты такое прочел.
По коду видно что он написан в модуле формы.
Обрати внимание на реквизиты формы? Что там? Есть там переменная ЭтотОбъект?
Какие там есть переменные?
Dethmontt, при всем уважении. Не должно быть в реквизитах ЭтотОбъект. В переменной "ЭтотОбъект" хранится объект типа УправляемаяФорма. СП:
"ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: ДокументОбъект.<Имя документа>.
Содержит сам объект базы данных. Предназначено, в основном, для получения данного объекта встроенного языка в модуле объекта или модуле формы"
Введено в 8.3, не работает в 8.2 или в режиме совместимости с 8.2
polax, как на клиенте может храниться тип ДокументОбъект .
Зачем тогда функции РеквизитФормыВЗначение(), ДанныеФормыВЗначение() ?
Добавлено через 1 минуту
ЭтотОбъект
Доступность:
Сервер, толстый клиент, внешнее соединение.
Dethmontt, а вот здесь 100% ошибка СП. Работает в тонком клиенте! И описание тоже хромает. "ЭтотОбъект" - Значение УправляемаяФорма и Тип - УправляемаяФорма. Это не Объект в стандартном понимании.В форме есть реквизит Объект - тип СтруктураДанныхФормы
Объект - это сконвертированный для формы ЭтотОбъект - тип ДокументОбъект (что бы его можно было хранить на клиенте)
Для того что бы сконвертировать данные формы в прикладной тип, необходимо воспользоваться функциями
РеквизитФормыВЗначение(), ДанныеФормыВЗначение().
При записи документа платформа это делает автоматически.
Dethmontt, а вот здесь 100% ошибка СП. Работает в тонком клиенте! И описание тоже хромает. "ЭтотОбъект" - Значение УправляемаяФорма и Тип - УправляемаяФорма.Добавлено через 1 минуту
polax, да назвать можно как угодно.
По сути это старая переменная ЭтаФорма
Добавлено через 5 минут
Зачем плодить однотипные свойства.
Что бы сишникам было проще привыкать код писать? this
Добавлено через 4 минуты
polax, да в СП 8.3.10
УправляемаяФорма (ManagedForm)
ЭтотОбъект (ThisObject)
Использование:
Только чтение.
Описание:
Тип: УправляемаяФорма.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.
Доступность:
Тонкий клиент, веб-клиент, сервер, толстый клиент, мобильное приложение(клиент).
Форма (Form)
ЭтаФорма (ThisForm)
Использование:
Только чтение.
Описание:
Тип: Форма.
Содержит данную форму. Может быть использовано в модуле формы для получения данной формы и передачи ее в качестве параметра в другие формы, глобальные процедуры и функции и т.д.
Читайте также: