1с стандартнаяобработка что это

ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка)

Например, я создаю в документе табличную часть и одному из реквизитов указываю тип: ПеречислениеСсылка.ИмяПеречисления.
При работе с этим документом, при выборе значения перечисления, срабатывает обработчик ОбработкаПолученияДанныхВыбора(ДанныеВыбора, Параметры, СтандартнаяОбработка), находящийся в модуле менеджера Перечисления.

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

Такой метод есть и в глобальном контексте. В его параметре нужно указывать тип объекта, для которого он должен быть вызван.

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

Для защиты от рекурсии перед вызовом метода ПолучитьДанныеВыбора() в структуру параметров будем добавлять служебный параметр с ключом Рекурсия.

Весь код, написанный в обработчике, будем выполнять только в том случае, если в параметрах отсутствует элемент Рекурсия, т. е. при первом «заходе» в этот обработчик.

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

Источник

СтандартнаяОбработка в процедуре ПриСозданииНаСервере

Все вроде хорошо. Вызываем эту форму и. выбор элементов доступен. Как будто ничего в коде и не писали.

Теперь изменяем код:

Все вроде хорошо. Вызываем эту форму и. выбор элементов доступен. Как будто ничего в коде и не писали.

Теперь изменяем код:

работает только, если СтандартнаяОбработка =ложь;

, СтандартнуюОбработку оставил без изменений (истина), но список не виден. С чем это связано? Хотя Ваш пример работает исправно в зависимости от значения СтандартнаяОбработка.

Получается, если брать в пример Список формы, то это актуально для тех свойств, что выделены на скриншоте?

почитайте синтаксис помощник.

если вопрос будет актуальным, то, извините, это как 2*2 = 4

Тип: Булево.
Признак отказа от создания формы. Если в теле процедуры-обработчика установить данному параметру значение Истина, то форма создана не будет.
Значение по умолчанию: Ложь.

Тип: Булево.
В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина.
Описание:

Возникает на сервере при создании формы.

Это я уже читал. Вопрос был, что подразумевается под «стандартной обработкой события» именно в процедуре ПриСозданииНаСервере. Что она отменяет.

Источник

Обработчик события ОбработкаЗаполнения

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

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

2. Для оповещения пользователя о причинах отказа, в обработчике ОбработкаЗаполнения следует использовать исключения:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)

Если ТипЗнч(ДанныеЗаполнения) = Тип(«СправочникСсылка.Сотрудники») Тогда
Если ПолучитьЗначениеРеквизита(ДанныеЗаполнения, «ЭтоГруппа») = Истина Тогда
ВызватьИсключение «Ввод приказа о приеме на основании группы сотрудников невозможен!
|Выберите сотрудника. Для раскрытия группы используйте клавиши Ctrl и стрелку вниз»;
КонецЕсли;

// обработка заполнения объекта по данным заполнения

При этом не рекомендуются какие-либо иные решения для подобных проверок. В частности, не следует создавать дополнительные команды для ввода на основании и размещать проверки в обработчиках этих команд.

Методическая рекомендация (полезный совет)

3. Рекомендуется придерживаться следующей логической структуры обработчика ОбработкаЗаполнения (отдельные шаги могут быть пропущены):

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

Если Не ЗначениеЗаполнено(Подразделение) Тогда
Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПоУмолчанию();
КонецЕсли;

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

Источник

Обработчики событий ОбработкаПолученияПредставления и ОбработкаПолученияПолейПредставления

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

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

Процедура ОбработкаПолученияПолейПредставления(Поля, СтандартнаяОбработка)
Поля.Добавить(«Наименование»);
Поля.Добавить(«Дата»);
СтандартнаяОбработка = Ложь;
КонецПроцедуры

2. Обработчики вызываются при любой необходимости получения представления какого-либо объекта информационной базы. Поэтому избыточные данные или неправильный выбор данных для формирования представления могут привести к существенному замедлению работы системы.

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

Эти требования также справедливы при разработке планов обмена для синхронизации с другими программами (не РИБ, по правилам конвертации) с помощью подсистемы «Обмен данными» Библиотеки стандартных подсистем.
Например, недопустимо обращаться к предопределенным элементам, которые еще могли быть не загружены в базу или, наоборот, уже удалены в ходе обмена данными:

Процедура ОбработкаПолученияПредставления(Данные, Представление, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
Если Данные.ВидОбразования = Справочники.ВидыОбразованияФизическихЛиц.ПослевузовскоеОбразование Тогда
Представление = НСтр(«ru = ‘Послевузовское образование'»);
Иначе
.

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

Источник

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

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

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

2. Добавляете переменные в модуль формы.

Перем мДеревоМакетов; // Хранит дерево макетов печатных форм

Перем мПодменюПечати; // Хранит элемент управления подменю печати

Перем мПечатьПоУмолчанию; // Хранит элемент управления кнопку печать по умолчанию

Перем мКнопкиЗаполненияТЧ; // Хранит дерево кнопок подменю заполнение ТЧ

3. Процедура «ПередОткрытием» должна содержать вызов двух процедур.

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

// Установка кнопок печати

// Установка кнопок заполнение ТЧ

4. Добовляете процедуры, которые управляют кнопками по заполнению табличных частей.

СоответствиеТЧ = Новый Соответствие;

СоответствиеТЧ, Новый Действие(«НажатиеНаДополнительнуюКнопкуЗаполненияТЧ»));

5. Добавляете процедуры управления кнопками печати доп. печатных форм.

мДеревоМакетов = УниверсальныеМеханизмы.ПолучитьДеревоМакетовПечати(Ссылка, Неопределено, Новый Действие(«ОсновныеДействияФормыПечать»),

УниверсальныеМеханизмы.УстановитьПодменюПечати (мПодменюПечати, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов);

УниверсальныеМеханизмы.УстановитьПечатьПоУмолчанию(мПечатьПоУмолчанию, ЭлементыФормы.ОсновныеДействияФормы, мДеревоМакетов,

Если Не мПодменюПечати = Неопределено Тогда

УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);

УниверсальныеМеханизмы.ПечатьПоДополнительнойКнопке(мДеревоМакетов, ЭтотОбъект, ЭтаФорма, Кнопка.Текст);

Если УниверсальныеМеханизмы.НазначитьКнопкуПечатиПоУмолчанию(мДеревоМакетов, Метаданные().Имя) Тогда

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *