Параметр ИмяПроцедуры Это имя экспортной процедуры общего модуля, модуля менеджера объекта или модуля обработки, которую необходимо выполнить в фоне.

Бизнес-события Описание База знаний
В системе 1С: Документооборот существует понятие бизнес-событий (событий произошедших в программе). Для того чтобы можно было использовать этот механизм, необходимо его включить в настройках программы:
Для классификации таких событий есть специальный справочник «Виды бизнес событий» (сами же события система записывает в регистр сведений «Произошедшие бизнес-события»). Также важными частями механизма бизнес-событий являются детекторы бизнес-событий и обработчики бизнес-событий, но о них ниже.
Рассмотрим пример – нужно автоматически отправлять в обработку все зарегистрированные служебные записки, файлы которых сотрудники подписали электронной подписью. Тогда условием будет – документ зарегистрирован, файл документа подписан электронной подписью, и по данному документу нет комплексного процесса «Обработка записки».
Создадим вид для бизнес-события, которое будет формироваться при наступлении данного условия.
Теперь нужно добавить «Детектор бизнес-события». Детектор бизнес-события — это как раз та часть механизма, которая отслеживает выполнение условия и создает соответствующее событие в системе.
ВАЖНО: Если не установлен флаг «Детектор включен», код детектора исполняться не будет!
ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию(«Служебная записка», Истина));
| Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы
| ПО ВнутренниеДокументы.Ссылка = КомплексныйПроцессПредметы.Предмет
Далее необходимо выполнить обработку сформированных бизнес-событий. В нашем случае это запуск процессов по документам. Для обработки бизнес-события в программе используется справочник «Дополнительные обработчики-бизнес событий».
В нем также необходимо написать код на встроенном языке, который будет выполнять необходимые действия. В нашем случае фрагмент кода должен находить конкретные документы, для которых выполнились условия, и создавать для них процессы.
ВидыДокументов.Добавить(Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию(«Служебная записка», Истина));
| Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
| ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.КомплексныйПроцесс.Предметы КАК КомплексныйПроцессПредметы
| ПО ВнутренниеДокументы.Ссылка = КомплексныйПроцессПредметы.Предмет
ШаблонПроцесса = Справочники.ШаблоныКомплексныхБизнесПроцессов.НайтиПоНаименованию(«Обработка записок», Истина);
БизнесПроцессОбъект.ЗаполнитьПоШаблонуИПредмету(ШаблонПроцесса, Документ, Документ.Подготовил);
Если ПолучитьФункциональнуюОпцию(«ИспользоватьФоновыйСтартПроцессов») Тогда
Обработчик бизнес-события и бизнес-событие необходимо связать между собой при помощи команды Подписки в панели навигации обработчика. В открывшемся списке нужно нажать Создать и указать ссылку на созданный ранее вид бизнес-события.
Промокоды на Займер на скидки
1С Платформа 8.3. Изучаем немодальные окна |
Процедура ПереместитьЭлементВКоллекциюЭлементовФормы ЭлементыФормы , ИмяЭлемента , ИмяРодителя , МестоРасположения Экспорт ЭлементыФормы.

Методика упрощения поддержки конфигураций. Переопределение и вызов обработчиков событий для УФ 1С 8.2-8.3
Что же для этого нужно? Рассматриваемый пример работает на конфигурации «Управление торговлей, редакция 11», для любой другой конфигурации адаптировать его не составит большого труда.
1. Нужно создать общий модуль МодульПереназначенияОбра ботчиков, вот такой он у меня:
// Общая процедура перед переназначения обработчиков
//
// Параметры:
// УправляемаяФорма – УправляемаяФорма – Управляемая форма.
//
Процедура ПереназначитьОбработчики ( УправляемаяФорма ) Экспорт
Если ТипЗнч ( УправляемаяФорма ) = Тип ( «УправляемаяФорма» ) Тогда
ОбщаяВнешняяОбработка = ПолучитьВнешнийОбъект ( «Библиотека внешних обработок» );
ВнешняяОбработкаСерийныеНомера = ПолучитьВнешнийОбъект ( «Серийные номера» );
ИмяВнешнейОбработкиСерийныеНомера = ПолучитьИмяВнешнегоОбъекта ( «Серийные номера» );
ВнешняяОбработкаСерийныеНомера . ПодготовитьСерийныеНомераКРаботе ( УправляемаяФорма , ОбщаяВнешняяОбработка , ИмяВнешнейОбработкиСерийныеНомера );
ОбщаяВнешняяОбработка . ПодменитьДействиеУправляемоеПриложение ( УправляемаяФорма , «ПриЗакрытии» , , «ВыполнитьОткатОбработчиков» );
//Пример как можно изменить свойства управляемой формы
УправляемаяФорма . ПоведениеКлавишиEnter = ТипПоведенияКлавишиEnter . ПереходПоЭлементамФормы ;
КонецЕсли;
КонецПроцедуры
2. Далее, нужно загрузить общую внешнюю обработку в режиме предприятия. Код обработки:
Если НЕ ТипЗнч ( Параметры ) = Тип ( «Структура» ) Тогда
ВызватьИсключение «Параметры элемента формы не заданы!» ;
КонецЕсли;
Если НЕ Параметры . Свойство ( «Имя» , ИмяЭлемента ) Тогда
ВызватьИсключение «Имя элемента формы не задано!» ;
КонецЕсли;
Если НЕ Параметры . Свойство ( «ТипЭлемента» , ТипЭлемента ) Тогда
ВызватьИсключение «Тип элемента формы не задан!» ;
КонецЕсли;
Если НЕ Родитель = Неопределено Тогда
Если ТипЗнч ( Родитель ) Тип ( «ГруппаФормы» )
И ТипЗнч ( Родитель ) Тип ( «ТаблицаФормы» )
И ТипЗнч ( Родитель ) Тип ( «УправляемаяФорма» ) Тогда
ВызватьИсключение «Родитель должен иметь один из перечисленных типов: ГруппаФормы; ТаблицаФормы; УправляемаяФорма.» ;
КонецЕсли;
КонецЕсли;
ЭлементФормы = ЭлементыФормы . Добавить ( ИмяЭлемента , ТипЭлемента , Родитель );
ЗаполнитьЗначенияСвойств ( ЭлементФормы , Параметры );
Возврат ЭлементФормы ;
// Функция добавляет команду в коллекцию команд формы и возращает его.
//
// Параметры:
// Команды – КомандыФормы – Содержит коллекцию всех элементов управляемой формы;
// Параметры – Структура – параметры добавляемой команды.
//
// Возвращаемое значение:
// – КомандаФормы – команда управляемой формы.
//
Функция ДобавитьКомандуВКоллекциюКомандФормы ( Команды , Параметры ) Экспорт
Если НЕ ТипЗнч ( Параметры ) = Тип ( «Структура» ) Тогда
ВызватьИсключение «Параметры команды не заданы!» ;
КонецЕсли;
Объект . ИмяКоманды = СтароеДействие ;
Иначе
Объект . УстановитьДействие ( ИмяСобытияФормы , СтароеДействие );
КонецЕсли;
КонецПроцедуры
Обработчик события ОбработкаПроверкиЗаполнения — Правила разработки в 1С — Confluence
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму.

1С Платформа 8.3. Изучаем немодальные окна
Всему виной свойство конфигурации «Режим использования модальности»
У этого свойства может быть три значения:
• Использовать – тогда процедуры типа Предупреждение, Вопрос и тп будут работать;
• Использовать с предупреждениями – процедуры типа Предупреждение, Вопрос и тп будут работать, но будет выходить сообщение;
• Не использовать — процедуры типа Предупреждение, Вопрос и тп работать не будут.
Поэтому если возникла такая ошибка, то есть два варианта решения проблемы. Первый вариант – топорный, изменить свойство конфигурации «Режим использования модальности». Этот вариант в некоторых случаях может иметь место. Но имейте в виду, что он не применим, если конфигурация планируется запускаться под web-клиентом.
Второй вариант – переписать все имеющиеся процедуры вызова модальных окон на процедуры, использующие немодальные окна. Процедур, которые потребуется заменить в случае перехода с платформы 8.2 на 8.3, довольно таки много, я приведу только некоторые из них:
• Предупреждение – ПоказатьПредупреждение
• Вопрос – ПоказатьВопрос
• ВвестиЧисло – ПоказатьВводЧисла
• ВвестиСтроку- ПоказатьВводСтроки
• ВвестиДату – ПоказатьВводДаты
• ВвестиЗначение — ПоказатьВвводЗначения
В тоже время не стоит путать асинхронность с параллельностью. Код, который у Вас сработает в процедуре обработчике ожидания, не будет выполняться параллельно основному коду. Он сработает после выполнения этого кода.
Рассмотрим эту особенность более подробно. Для этого я создал простую обработку, в которой будет выполняться следующий код:
Обратите внимание на рисунок, цикл сработал до того, как мы нажали на кнопку «ОК» окна предупреждении. Это и есть, по сути, асинхронное выполнение кода.
Теперь попробуем применить вызов предупреждения внутри цикла
И всё равно, выполнение цикла произойдет до того как будет нажата кнопка «ОК». Точно так же будет работать метод, если мы уберем оповещение.
В связи с переходом на немодальные окна потребуется пересмотреть принципы работы диалогов пользователя, где нужно ответить, как вариант, да-нет.
Если в модальных окнах можно было использовать такой код:
То при использовании немодальных окон, код будет следующим:
В этом случае одним из параметров процедуры, которая будет обработчиком ожидания, будет параметр, имеющий тип код возврата диалога.
И при вызове обработчика события, буду рекурсивно прибавлять этот реквизит. Тем самым мы будем знать, для какого по индексу события вызван наш обработчик.
В структуру, которую Вы указываете в описании оповещения можно записывать практически любые переменный, а потом их использовать в обработчике этого оповещения. Но всегда нужно помнить, что код в обработчике выполнится уже после основного кода.
Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
1С обработка создать документ
Микрофинансирование → Микрокредиты → Специальные предложения → Скачать файлы → Обзор Быстроденег → Предмет договора → Ответственность сторон → Отличные наличные→ Экспресс займы