СтандартнаяОбработка в процедуре ПриСозданииНаСервере
Всем доброго времени суток.
Товарищи программисты, подскажите, пожалуйста, для чего служит параметр СтандартнаяОбработка в процедуре ПриСозданииНаСервере у формы? В целом ее предназначение понятно - она отменяет стандартное поведение. Довольно часто сталкивался с этим в ОбработкаПолученияПредставления, ОбработкаПолученияФормы и тд. Но что именно она отменяет в форме, при ее создании?
Товарищи программисты, подскажите, пожалуйста, для чего служит параметр СтандартнаяОбработка в процедуре ПриСозданииНаСервере у формы? В целом ее предназначение понятно - она отменяет стандартное поведение. Довольно часто сталкивался с этим в ОбработкаПолученияПредставления, ОбработкаПолученияФормы и тд. Но что именно она отменяет в форме, при ее создании?
По теме из базы знаний
- Обзор полезных методов БСП 3.1.4
- Реализация отборов на форме с помощью СКД
- Расширение типового механизма настройки заполнения бухгалтерской отчетности (на примере конфигурации 1С:ERP. Управление холдингом 3.1.8.15)
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
- Программная установка отборов в типовых отчетах
Найденные решения
(1) помимо доступных обработчиков формы есть еще служебные (системные). Они не доступны напрямую. В данном случае после выполнения обработчика ПриСозданииНаСервере происходит привязка и настройка параметров формы.
К примеру:
Есть формаВыбора справочника. Для списка параметр "ВыборГруппИЭлементов" установлен в Элементы.
Переопределяем в коде:
Все вроде хорошо. Вызываем эту форму и... выбор элементов доступен. Как будто ничего в коде и не писали.
Теперь изменяем код:
И теперь выбор элементов стал недоступен.
К примеру:
Есть формаВыбора справочника. Для списка параметр "ВыборГруппИЭлементов" установлен в Элементы.
Переопределяем в коде:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Список.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы; // тут конкретные значения можно через параметры получать и устанавливать.
КонецПроцедуры
Все вроде хорошо. Вызываем эту форму и... выбор элементов доступен. Как будто ничего в коде и не писали.
Теперь изменяем код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Элементы.Список.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы; // тут конкретные значения можно через параметры получать и устанавливать.
КонецПроцедуры
И теперь выбор элементов стал недоступен.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) помимо доступных обработчиков формы есть еще служебные (системные). Они не доступны напрямую. В данном случае после выполнения обработчика ПриСозданииНаСервере происходит привязка и настройка параметров формы.
К примеру:
Есть формаВыбора справочника. Для списка параметр "ВыборГруппИЭлементов" установлен в Элементы.
Переопределяем в коде:
Все вроде хорошо. Вызываем эту форму и... выбор элементов доступен. Как будто ничего в коде и не писали.
Теперь изменяем код:
И теперь выбор элементов стал недоступен.
К примеру:
Есть формаВыбора справочника. Для списка параметр "ВыборГруппИЭлементов" установлен в Элементы.
Переопределяем в коде:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Элементы.Список.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы; // тут конкретные значения можно через параметры получать и устанавливать.
КонецПроцедуры
Все вроде хорошо. Вызываем эту форму и... выбор элементов доступен. Как будто ничего в коде и не писали.
Теперь изменяем код:
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Элементы.Список.ВыборГруппИЭлементов = ИспользованиеГруппИЭлементов.Группы; // тут конкретные значения можно через параметры получать и устанавливать.
КонецПроцедуры
И теперь выбор элементов стал недоступен.
(12) Спасибо за подробный ответ! Проверил, действительно так и есть. Также следующий код:
работает только, если СтандартнаяОбработка =ложь;
Попробовал сделать , СтандартнуюОбработку оставил без изменений (истина), но список не виден. С чем это связано? Хотя Ваш пример работает исправно в зависимости от значения СтандартнаяОбработка.
Получается, если брать в пример Список формы, то это актуально для тех свойств, что выделены на скриншоте?
СтандартнаяОбработка = ложь;
Элементы.Список.РазрешитьВыборКорня = истина;
работает только, если СтандартнаяОбработка =ложь;
Попробовал сделать
Элементы.Список.Видимость = Ложь
Получается, если брать в пример Список формы, то это актуально для тех свойств, что выделены на скриншоте?
Прикрепленные файлы:
если установить СтандартнаяОбработка в значение Ложь, то в этом случае событие произойдет, но стандартные действия системы, например ПоУстановкеНовогоКода не будут выполнены.
o — это принципиальное отличие от параметра Отказ
• если мы устанавливаем параметр Отказ в Истину, то действия вообще не произойдет, и будет выдана ошибка
o — это принципиальное отличие от параметра Отказ
• если мы устанавливаем параметр Отказ в Истину, то действия вообще не произойдет, и будет выдана ошибка
(2)Синтаксис:
ПриСозданииНаСервере(<Отказ>, <СтандартнаяОбработка>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от создания формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то форма создана не будет.
Значение по умолчанию: Ложь.
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:
Возникает на сервере при создании формы.
--------------
Это я уже читал. Вопрос был, что подразумевается под "стандартной обработкой события" именно в процедуре ПриСозданииНаСервере. Что она отменяет.
ПриСозданииНаСервере(<Отказ>, <СтандартнаяОбработка>)
Параметры:
<Отказ>
Тип: Булево.
Признак отказа от создания формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то форма создана не будет.
Значение по умолчанию: Ложь.
<СтандартнаяОбработка>
Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:
Возникает на сервере при создании формы.
--------------
Это я уже читал. Вопрос был, что подразумевается под "стандартной обработкой события" именно в процедуре ПриСозданииНаСервере. Что она отменяет.
Вопрос был, что подразумевается под "стандартной обработкой события" именно в процедуре ПриСозданииНаСервере. Что она отменяет.
Событие "создание формы" и именно это событие будет отменено.
будем дальше учить таблицу умножения или вы немного задумаетесь?
(5)
а как же параметр "отказ" ? Это именно про него написано
Событие "создание формы" и именно это событие будет отменено.
а как же параметр "отказ" ? Это именно про него написано
<Отказ>
Тип: Булево.
Признак отказа от создания формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то форма создана не будет.
Значение по умолчанию: Ложь.
(5) наверно речь идет о том, что отказ это завершение работы формы.
А вот стандартная обработка, это отказ от выполнения процедуры.
Дальше все идет как обычно.
Единственное, а что же такого особенного эта процедура выполняет? Это же не модуль.
Или это для расширений сделано?
Возможно какие-то оповещения не так отработают?
А вот стандартная обработка, это отказ от выполнения процедуры.
Дальше все идет как обычно.
Единственное, а что же такого особенного эта процедура выполняет? Это же не модуль.
Или это для расширений сделано?
Возможно какие-то оповещения не так отработают?
(10) Вот и мне интересно. Ранее не задумывался про это, а сегодня столкнулся вновь.
Сначала подумал, что если мы в процедуре ПриСозданииНаСервере изменяем видимость элементов формы, или, например, устанавливаем Этаформа.ТолькоПросмотр = Истина; , предварительно не выставив СтандартнаяОбработка = Ложь, то изменения не учтутся. Но, как выяснилось СтандартнаяОбработка на это не влияет, они учтутся в любом случае.
Сначала подумал, что если мы в процедуре ПриСозданииНаСервере изменяем видимость элементов формы, или, например, устанавливаем Этаформа.ТолькоПросмотр = Истина; , предварительно не выставив СтандартнаяОбработка = Ложь, то изменения не учтутся. Но, как выяснилось СтандартнаяОбработка на это не влияет, они учтутся в любом случае.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот