Что необходимо для того чтобы написанная программистом процедура дополнила контекст документа
Комплект вопросов сертификационного экзамена на знание основных механизмов платформы «1С: Предприятие 8» (стр. 15 )
![]() | Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
5.68 В конфигурацию внесены изменения. Можно ли для контроля их работоспособности запустить программу в режиме отладки при наличии подключенных к базе данных пользовательских сеансов?
1. Нельзя, так как при этом придется выполнить обновление конфигурации базы данных
3. Можно, если не выполнять обновление конфигурации базы данных
4. Можно, если изменения не связаны с изменением структуры таблиц информационной базы
5.69 Хранилище конфигурации.
1. является основным элементом механизма групповой разработки и обеспечиваем синхронизацию работ нескольких разработчиков
2. используется для разделения доступа к объектам конфигурации
3. место, в которое средствами конфигуратора помещается конфигурация
4. верны ответы 1 и 3
5. все варианты верны
6. нет правильного ответа
5.70 Можно ли управлять включением/отключением точек останова?
1. Нет, можно только управлять установкой/удалением точек останова
4. Да, программно, посредством объекта «Метаданные»
6. Объектная модель прикладного решения
6.1 Какие виды программных модулей существуют в «1С:Предприятие 8»?
1. Общие модули, модуль сеанса, модули форм
2. Модуль обычного приложения, модуль управляемого приложения, общие модули, модуль сеанса, модули объектов, модули форм
3. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули и модули форм
4. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм и модули макетов
5. Модуль обычного приложения, модуль управляемого приложения, модуль внешнего соединения, модуль сеанса, модуль команды, общие модули, модули менеджера, модули форм, модули объектов и модули набора записей
6. Модуль приложения, модуль внешнего соединения, модуль сеанса, общие модули, модули форм, модули макетов, модули объектов и модули набора записей
6.2 Какие разделы существуют в общем модуле?
1. Раздел объявления переменных, раздел процедур и функций, раздел основной программы
2. Только раздел процедур и функций
3. Только раздел основной программы
4. Только раздел объявления переменных и раздел описания процедур и функций
6.3 В каком случае рекомендуется использовать общий модуль для описания только экспортных функций?
1. Для общих раздел объявления переменных, раздел процедур и функций, раздел основной программы
2. Только раздел процедур и функций
3. Только раздел основной программы
4. Только раздел объявления переменных и раздел описания процедур и функций
6.4 Модуль приложения рекомендуется использовать.
1. для определения предопределенных процедур «При11ачалеРаботыСисте-мы» и т. п.
2. как место определения процедур и функций, используемых во всей конфигурации
3. как место определения предопределенных процедур, которые инициализируются при старте и окончании работы системы в режиме внешнего соединения
4. верны ответы 1 и 2
6.5 В общих модулях.
1. нет ограничений на описание переменных, процедур, функций
2. нельзя описывать переменные
3. нельзя описывать переменные, процедуры и функции без ключевого слова «Экспорт»
6.6 Типизация переменных во встроенном языке «1С:Предприятие 8».
1. не жесткая, т. к. тип переменной определяется ее значением
2. не жесткая, т. к. неявным определением переменной является ее первое упоминание в левой части оператора присваивания
3. жесткая, т. к. обязательным является объявление переменной в явном виде
4. жесткая, т. к. неявным определением переменной является ее первое упоминание в левой части оператора присваивания
5. верны утверждения 1 и 2
6. верны утверждения 3 и 4
6.7 В модуле приложения.
1. нет ограничений на описание переменных, процедур, функций
2. нельзя описывать переменные
3. нельзя описывать процедуры и функции без ключевого слова «Экспорт»
6.8 Какой должен быть порядок определения процедур и функций в программном модуле?
1. Описание функций должно идти выше описания процедур и раздела основной программы
2. Описание вызываемых процедур и функций должно идти выше вызывающих
3. Порядок следования процедур и функций не имеет значения
4. Порядок следования процедур и функций зависит от типа модуля
6.9 Какое высказывание о модуле приложения верно?
1. Модуль приложения используется для обработки событий, связанных с началом и завершением работы системы
2. Модуль приложения используется для объявления глобальных переменных
3. Модуль приложения используется для объявления глобальных процедур и функций, доступных в любых других модулях
4. Верны все вышеперечисленные высказывания
5. Верны ответы 1 и 2
6.10 Только определения процедур и функций может содержать только следующий вид модуля:
1. модуль приложения
6.11 Модуль сеанса (выберите наиболее полный правильный ответ):
1. предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы
2. не содержит экспортируемых процедур и функций
3. в кластере серверов 1С:Предприприятия 8 исполняется в привилегированном режиме
4. исполнение происходит после начала исполнения модуля приложения (модуля внешнего соединения)
6.12 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):
1. может в любом случае
2. может, но только если модуль глобальный
3. может, но только если модуль пе глобальный
6.13 Какие функции отсутствуют во встроенном языке «1С:Предприятие 8»:
1. Функции работы со значениями типа Дата
2. Функции работы со значениями типа Время
3. Функции работы со значениями типа Строка
4. Функции работы со значениями типа Число
5. Все вышеперечисленные функции имеются во встроенном языке
6.14 Ключ может быть произвольного типа.
4. ни у одного из вышеперечисленных
6.15 Что произойдет, если удалить запись регистра сведений и создать новую с такими же полями (измерениями, ресурсами, реквизитами)?
1. Ничего, на логику программы это никак не повлияет
2. У этой записи будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
3. Возникнет исключительная ситуация
6.16 Как повлияет удаление элемента справочника, который уже используется в других объектах, а потом создать новый с такими же реквизитами, на поведение программы?
1. Ничего, на логику программы это никак не повлияет
2. У элемента будет другой внутренний идентификатор (ссылка) и это может повлиять на логику программы
3. Возникнет исключительная ситуация
6.17 В каком свойстве хранится дата документа?
4. Нет правильного ответа
6.18 С помощью объекта какого типа можно перебирать элементы справочника?
6.19 Где располагаются процедуры-обработчики событий прикладных объектов, например, ПриЗаписи, ПередУдалением?
3. В модуле приложения
4. Таких событий у прикладных объектов нет
6.20 Что такое «системные перечисления»?
1. Перечень значений, заданный на этапе разработки конфигурации (ветвь Перечисления в дереве конфигурации)
2. Перечень значений, заданный в платформе » 1 С:Предириятие 8.0″
3. Конструкция встроенного языка, используемая разработчиком для объявления перечислимых типов данных
4. Системные перечисления отсутствуют в системе «1С:Предприятие 8.0»
6.21 Какая коллекция из нижеперечисленных не относится к универсальным?
4. Коллекция строк табличной части документа
5. Верны ответы 3 и 4
6.22 Что необходимо для того, чтобы написанная программистом процедура дополнила контекст документа (объекта типа ДокументОбъект)?
Объектная модель прикладного решения 1c. Список вопросов 1c :Профессионал Платформа 8.3
Пройдите тест, чтобы проверить Ваши знания по теме “Объектная модель прикладного решения 1c”.
Список вопросов 1c :Профессионал Платформа 8.3 Глава 6
Навигация (только номера заданий)
0 из 84 заданий окончено
Информация
06. Объектная модель прикладного решения
Вы уже проходили тест ранее. Вы не можете запустить его снова.
Вы должны войти или зарегистрироваться для того, чтобы начать тест.
Вы должны закончить следующие тесты, чтобы начать этот:
Результаты
Правильных ответов: 0 из 84
Вы набрали 0 из 0 баллов ( 0 )
Рубрики
Какие виды программных модулей существуют “1С:Предприятие 8”?
Какие разделы существуют в общем модуле?
Модуль приложения рекомендуется использовать…
Типизация переменных во встроенном языке “1С:Предприятие
В модуле приложения…
Какой должен быть порядок определения процедур и функций в программном модуле?
Какое высказывание о модуле приложения верно?
Только определения процедур и функций может содержать только следующий вид модуля:
Модуль сеанса (выберите наиболее полный правильный ответ):
Имя общего модуля может совпадать с именем свойства глобального контекста (например “Отчеты”):
Какие функции отсутствуют во встроенном языке “1С:Предприятие 8”:
Ключ может быть произвольного типа…
Что произойдет, если удалить запись регистра сведений и создать новую такими же полями (измерениями, ресурсами, реквизитами)?
Как повлияет удаление элемента справочника, который уже используется других объектах, а потом создать новый с такими же реквизитами, на поведение программы?
С помощью объекта какого типа можно перебирать элементы справочника?
В каком свойстве хранится дата документа?
Где располагаются процедуры-обработчики событий прикладных объектов, например, ПриЗаписи, ПередУдалением?
Что такое “системные перечисления”?
Какая коллекция из нижеперечисленных не относится к универсальным?
Что необходимо для того, чтобы написанная программистом процедура дополнила контекст документа (объекта типа ДокументОбъект)?
В каком свойстве хранится время документа?
Для чего предназначен объект ДокументСписок?
С какого значения начинается индексирование элементов коллекций?
Объект какого типа позволяет изменить элемент справочника в базе данных?
Какие утверждения относительно NULL справедливы?
Какого типа является свойство глобального контекста “Справочники”?
Какой литерал представляет значение типа “дата” по умолчанию (пустая дата)?
Как можно обратиться к менеджеру справочника “Номенклатура”?
Где может размещаться процедура-обработчик события “Нажатие” кнопки диалога?
Что необходимо выполнить в процедуре “ОбработкаПроведения” в модуле документа для отмены проведения?
Пусть Переменная1 имеет тип Дата (состав даты – “Дата”) и значение, равное 1 марта 2005 года. Чему будет равно значение выражения “Переменная1+20”?
В каком обработчике события модуля объекта можно отказаться от записи объекта, например, элемента справочника?
Какое значение будет стоять в полях записей результата запроса, для которых не найдено соответствия в другой таблице-источнике при внешнем соединении?
При определении обработчика события на СОМ объект количество параметров в процедуре-обработчике:
При определении подписки на событие количество параметров в процедуре-обработчике:
При определении обработчика события на экземпляр объекта 1С:Предприятие количество параметров в процедуре-обработчике:
При определении подписки на событие процедура – обработчик должна располагаться:
При назначении обработчика события на объект (экземпляр объекта 1С:Предприятие, СОМ объект) процедура, отвечающая за отработку данного события должна быть расположена:
С помощью команды “ДобавитьОбработчик” можно назначить обработчик события на:
Какая процедура выполняет обработку события ввода документа “на основании”?
Какой метод документа обеспечивает вызов события проведения документа?
Какой метод документа обеспечивает вызов события отмены проведения документа?
При определении подписки на событие количество таких подписок:
При определении на одно событие объекта 1С:Предприятие нескольких подписок на событие, порядок вызова обработчиков следующий:
При определении подписки на событие, в случае если в модуле объекта определен соответствующий обработчик этого же события:
Подписка на событие может быть определена:
При определении подписки на событие для разных объектов перечень показываемых событий формируется по принципу:
Процедура, используемая подпиской на событие, должна располагаться в модуле с установленными (взведенными) флажками:
Пессимистическая блокировка объекта (метод Заблокировать()):
Пессимистическая блокировка объекта (метод Заблокировать()):
Тип анализа “Кластерный анализ” подразумевает:
Тип анализа “Дерево решений” подразумевает:
Тип анализа “Поиск ассоциаций” подразумевает:
Тип анализа “Поиск последовательностей” подразумевает:
Объект МодельПрогноза создается:
Алгоритмы в модуле управляемой формы могут исполняться?
Алгоритмы в модуле обычной формы могут исполняться?
Существует ли в 1С:Предприятии 8 возможность настроить конкретное прикладное решение на использование региональных настроек чисел, дат и времени?
К чему приведет изменение кода языка в свойстве “Код языка”, если уже введены тексты в свойствах “Синоним” или “Заголовок” на этом языке?
Какой режим используется для выполнения задач локализации (создания интерфейса на другом языке)?
При необходимости использования англоязычной транскрипции встроенного языка 1С:Предприятие 8 в уже существующей конфигурации можно:
Если в региональных установках информационной базы ни одно из свойств установлено не будет, тогда…
Что такое локализация?
Для чего применяется код локализации?
На что влияют региональные установки информационной базы?
Создание многоязыковых прикладных решений…
В каком формате хранятся тексты конфигурации и базы данных в системе 1С:Предприятие?
С какой целью тексты конфигурации и базы данных хранятся в формате UNICODE?
Механизмы интернационализации, заложены в…
Что такое код локализации?
Верно ли что в 1С:Предприятие 8 любая текстовая информация может включать одновременно символы различных языков?
Для чего предназначен объект конфигурации “Язык”?
Каким образом можно сменить язык просмотра (редактирования) конфигурации?
Какое написание имеют операторы встроенного языка?
Возможно ли использование в одном исходном тексте операторов встроенного языка в русском и английском написании?
С какой целью используется встроенный язык?
Какое написание имеют функции встроенного языка?
Что обозначает параметр Л(L) в форматной строке функции форматирования ЧислоПрописью()?
У регистра сведений установлен режим записи “Независимый”. Редактирование осуществляется в диалоге, ни одна из форм регистра не определена. При попытке интерактивного добавления в него “Записи” со значениями измерений, комбинация которых уже прописана в регистре:
При проведении документа по какому-либо регистру в случае, если у документа установлен автоматический режим управления транзакционными блокировками, а у регистра управляемый (в свойствах конфигурации используется вариант “Автоматический и управляемый”), то такое проведение приведет:
При проведении документа по какому-либо регистру в случае, если у документа установлен управляемый режим управления транзакционными блокировками, а у регистра автоматический (в свойствах конфигурации используется вариант “Автоматический и управляемый”), то такое проведение приведет:
При проведении документа по какому-либо регистру в случае, если у документа установлен автоматический режим управления транзакционными блокировками, а у регистра управляемый (в свойствах конфигурации используется вариант “Управляемый”), то такое проведение приведет:
Проведение документов
Рассмотрим подробно свойства документа на вкладке «Движения»
Процедура ОбработкаПроведения
Формирование новых наборов записей регистров включает в себя операции, состоящие:
Следует учитывать, что при автоматической записи движений они будут записаны с замещением, то есть старые движения документа будут замещены новыми. Фактически, платформа неявно выполнит код:
Действие данного параметра проявляется в случае, если на момент записи нового (или модифицированного) набора записей в регистре присутствуют еще записи, подчиненные данному же регистратору.
Подробнее о формировании движений
С точки зрения платформы отдельного процесса «проведение» не существует. Есть запись документа с проведением, причем в рамках одной транзакции. Таким образом, в момент выполнения обработчика события ОбработкаПроведения документ уже записан.
Свойство «Удаление движений» документа как объекта конфигурации стандартно устанавливается платформой в значение «Удалять автоматически при отмене проведения». Это значит, что при перепроведении документа движения, подчиненные данному документу, перезаписываются, а при отмене проведения движения документа автоматически удаляются.
Если разработчик захочет реализовать нестандартный вариант проведения документа и установит свойство «Удаление движений» в значение «Удалять автоматически», то при записи документа с проведением сначала будут удалены все старые движения документа. То есть на момент выполнения обработчика события ОбработкаПроведения в регистрах не будет наборов записей с движениями данного документа.
При записи с проведением система автоматически запишет выбранные и незаписанные наборы записей, находящиеся в свойстве «Движения». Отсюда следуют два важных вывода:
В случаях, если необходимо программно вызвать саму обработку проведения, инициируется запись документа с проведением. Пример программного вызова проведения документа в оперативном режиме:
Пример перепроведения документов РеализацияТоваров в интервале с ДатаНачала по ДатаОкончания :
Оперативное и неоперативное проведение
Оперативное и неоперативное проведение подразумевает, что работа пользователей может происходить в двух принципиально разных по своей сути режимах. Оперативное проведение документов пользователями выполняется в режиме «реального времени», то есть отображает изменения, факты, свершающиеся в настоящее время. Поэтому при этом способе проведения документов следует осуществлять максимум проверок, способных исключить ошибки при вводе данных пользователями.
Например, при оперативном проведении следует выполнять контроль остатков на складе списываемой номенклатуры с тем, чтобы исключить одновременную продажу одного товара несколькими продавцами. При оперативном проведении документа система, прежде всего, проверит положение даты документа относительно текущей даты сеанса. Если дата проводимого документа совпадает с текущей датой сеанса, то система будет проводить такой документ в оперативном режиме, и в обработке проведения об этом можно узнать, чтобы выстроить определенный алгоритм проведения документа.
Если дата проводимого документа меньше текущей даты сеанса, то такой документ система будет проводить в неоперативном режиме. Неоперативное проведение документов подразумевает отражение в базе данных фактов, которые свершились в прошлом или которые точно будут совершены в будущем. Поэтому задача неоперативного проведения документов — просто отразить в информационной базе данные о совершенных операциях.
При неоперативном проведении документов не имеет смысла производить целый ряд проверок, в частности контроль остатков. Подразумевается, что если в процессе неоперативного проведения документов были допущены ошибки (например, списано такое количество номенклатуры, которого не было на складе на дату проведения документа), то анализ полученного состояния базы данных является отдельной задачей, не относящейся к неоперативному проведению.
С оперативным проведением документов связано понятие оперативной отметки времени и понятие момента времени.
Понятие момента времени
Для определения положения документа на оси времени используется реквизит документа «Дата». Дата содержит время с точностью до секунды. Это позволяет контролировать последовательность записи документов. Однако при большом объеме создаваемых документов вероятна ситуация, когда несколько документов будут иметь одинаковое значение даты (т. е. будут созданы в течение одной секунды). Как в этом случае определить последовательность созданных документов?
Для обработки подобных ситуаций было введено понятие момент времени. Момент времени представляет собой совокупность даты, времени и ссылки на объект базы данных. Он позволяет однозначно идентифицировать любой объект ссылочного типа базы данных на оси событий, но имеет смысл в основном только для документов. Кроме того, момент времени позволяет идентифицировать и необъектные данные, например, записи регистров, подчиненных регистратору.
Для нескольких документов, имеющих одинаковую дату и время, последовательность их на оси событий определяется системой исходя из ссылок на эти документы. Она может не совпадать с последовательностью создания документов, и она недоступна для изменения пользователем, то есть нельзя каким-либо образом повлиять на последовательность документов внутри одной секунды или вычислить, что один документ создан раньше, а другой — позже.
Оперативная отметка времени создается системой каждый раз при оперативном проведении документа. Ее значение формируется исходя из текущей даты сеанса и последней созданной оперативной отметки. Если последняя оперативная отметка меньше текущей даты сеанса, в качестве новой оперативной отметки принимается текущая дата сеанса. Если последняя оперативная отметка равна или больше текущей даты сеанса, в качестве новой оперативной отметки принимается значение на одну секунду большее, чем старая оперативная отметка времени.
Таким образом, если у объекта конфигурации Документ установлено свойство оперативного проведения, последовательность действий системы будет следующей:
при определении подписки на событие количество параметров в процедуре обработчике
Объект 1С «Подписка на событие»
Объект «Подписки на события» — предназначен для размещения в общих модулях внешних обработчиков, которые будут исполняться после выполнения определенного обработчика события в модуле объекта или модуле менеджера ( при этом изменения в модуль объекта или модуль менеджера не вносятся ).
Это процедура, которая будет выполнена после того, как выполнится исходный обработчик события. Таким образом, возникает возможность программного расширения модулей без их модификации (полезно при изменении типовых решений).
Подписки на события описываются в ветке «Общие» окна объектов конфигурации.
Основные свойства объекта 1С «Подписка на событие»:
Источниками событий могут являться прикладные объекты, наборы записей регистров, менеджеры объектов конфигурации. Допускается как множественный выбор объектов, являющихся поставщиками событий, так и выбор всех объектов одного типа (например, все документы).
Пример кода процедуры-обработчика:
Обработчик события должен удовлетворять следующим требованиям:
Назначение обработчиков событий доступно также и средствами встроенного языка с помощью операторов:
У объектов, которые могут являться источниками событий, есть свойство ДополнительныеСвойства типа Структура, позволяющее хранить информацию между вызовами событий (например, это новый или старый объект).
События на которые можно назначить обработчик подписки на событие:
ВАЖНО! Подписку на событие можно установить только на объект, а не на форму.
Если в конфигурации создана подписка на событие некоторого объекта, например событие ПередЗаписью() объекта справочника, то при возникновении этого события платформа выполняет следующую последовательность действий:
С помощью подписок на события можно организовать выполнение различных проверок, выполняющихся при записи объектов в базу данных.
Особенности обработки подписки на событие 1С:
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Разбор тестирования 1С:Профессионал и PMP
Вопросы по разным конфигурациям 1С и проектному менеджменту
суббота, 20 января 2018 г.
Подписки на события
6 комментариев:
В 6.50 правильный ответ должен быть «Сервер», по крайней мере, только так это работает (8.3.8.1933).
Подтверждаю. 1С:Предприятие 8.3 (8.3.12.1616). Обязателен только флаг Сервер, другие без разницы, хоть сняты, хоть установлены.
Это неверно, что обязателен только флаг Сервер. Без галки «Внешнее соединение» COM-подключение к базе будет глючить «. Обработчик события не найден.» Поэтому галка «Внешнее соединение» нужна.
опечатка в комментарии к 6.49
«Правильный ответ третий. Соответствие числа параметров события и обработчика проверяется в принципе; если же одним обработчиком обрабатываются сращу несколько событий, то и наименование должно совпадать.»
Комплект вопросов сертификационного экзамена на знание основных механизмов платформы «1С: Предприятие 8» (стр. 16 )
![]() | Из за большого объема этот материал размещен на нескольких страницах: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
4. Коллекция строк табличной части документа
5. Верны ответы 3 и 4
6.22 Что необходимо для того, чтобы написанная программистом процедура дополнила контекст документа (объекта типа ДокументОбъект)?
1. Она должна быть определена в модуле документа
2. Она должна быть определена в общем модуле
3. Она должна быть определена с ключевым словом Экспорт
4. Одновременно должны выполняться условия 1 и 3
5. Одновременно должны выполняться условия 2 и 3
6.23 В каком свойстве хранится время документа?
4. Нет правильного ответа
6.24 Для чего предназначен объект ДокументСписок?
1. Для перебора (выборки) документов средствами встроенного языка
2. Для управления списком документов, выводимых в табличное поле, т. е. для решения интерфейсных задач
3. Для операций над документами как объектами базы данных, создания и удаления документов
4. Верны ответы 1 и 2
6.25 С какого значения начинается индексирование элементов коллекций?
3. С начального индекса, заданного программистом при создании коллекции
4. Элементы коллекций не индексируются
6.26 Объект какого типа позволяет изменить элемент справочника в базе данных?
4. Все перечисленные объекты
5. Верны ответы 1 и 2
6.27 Какие утверждения относительно NULL справедливы?
2. NULL относится к примитивным типам данных
4. Верны все перечисленные ответы
Подписка на событие в 1С 8.3
Подписка на событие
Подписки на событие позволяют добавить обработчик на события модуля объекта, модуля менеджера или модуля набора записей. Они находятся в разделе Общие — Подписки на события:
При создании новой подписки на событие в свойствах нужно указать источник, событие и обработчик:
В качестве источника может выступать объект, набор записей или менеджер. Можно выбрать составной тип, например СправочникОбъект.Товары, СправочникОбъект.Контрагенты. Можно выбрать набор типов, например СправочникОбъект, ДокументОбъект.
В свойстве Событие нужно выбрать событие источника. Если в качестве источника был выбран объект, то это события модуля объекта. Если в качестве источника был выбран менеджер — то события модуля менеджера. Если набор записей — то события модуля набора записей.
Если выбран составной источник, то будут доступны только те события, которые есть у всех выбранных источников. Например, если выбрать СправочникОбъект и ДокументОбъект, то можно будет выбрать только те события, которые есть и в модуле объекта справочника и в модуле объекта документа:
Платформа позволит выбрать в качестве источника и объект и менеджер, но тогда не будет доступно ни одного события, потому что в модуле объекта и в модуле менеджера нет одинаковых событий.
В свойстве обработчик нужно выбрать модуль, в котором будет создана процедура для обработки события. Для выбора доступны все серверные общие модули. Но правильно выбирать тот общий модуль, у которого в свойствах установлены флажки:
После выбора общего модуля в нем будет создана экспортная процедура для обработки события:
Заметки из Зазеркалья
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в EDT версии 1.7.0.567.
В 1C:Enterprise Development Tools (EDT) мы реализовали прототип нового инструмента. Рабочее название этого инструмента – редактор Все подписки на события. Он поможет вам удобно анализировать подписки на все события, которые существуют в прикладном решении.
Подписки на события
Платформа 1С:Предприятия позволяет создавать в прикладном решении подписки на события объектов конфигурации. Подписка – это процедура, которая будет выполнена после того, как выполнится исходный обработчик события. Удобство подписок заключается в том, что одну процедуру можно «подписать» на событие, принадлежащее разным объектам конфигурации. Таким образом, если есть алгоритм, который нужно выполнять и при записи организации, и при записи подразделения, его можно расположить в подписке, и тогда вам вообще не придётся даже изменять обработчики этого события в самих объектах.
Получается что подписка – это удобный и универсальный механизм. Но в больших прикладных решениях количество подписок на события может достигать нескольких сотен. Анализировать их в дереве конфигурации, в линейном списке, становится неудобно. Например, в прикладном решении 1С:Управление предприятием (ERP) более 340 подписок на события.
EDT несколько облегчает работу с подписками, показывая их в панели Схема, когда открыт модуль какого-либо прикладного объекта.
Такое отображение подписок удобно для целого ряда задач, связанных с редактированием модуля. Но оно все равно не подходит тогда, когда нужно быстро найти и проанализировать все алгоритмы, которые выполняются в подписках при наступлении того или иного события.
Все подписки на события
Чтобы избавиться от неудобств, перечисленных выше, мы реализовали универсальный способ представления подписок, событий, объектов конфигурации и процедур, в которых реализуются алгоритмы подписок.
В результате вы можете вызвать редактор Все подписки на события для всей конфигурации, или только для одного объекта – разница будет лишь в составе данных, отфильтрованных некоторым образом.
В левой части редактор показывает все события, а в каждом событии все его подписки. При выделении конкретной подписки, справа вверху показывается список объектов конфигурации, на событие которых «подписана» подписка. А справа внизу показывается модуль и процедура, в которой находится алгоритм подписки. Дважды кликнув на процедуре, вы можете открыть ее в редакторе встроенного языка.
Находясь в редакторе, вы можете анализировать не только отдельные подписки, но и все подписки, относящиеся к одному событию. Если выделить событие, то редактор покажет все модули и все процедуры, подписанные на обработку этого события.
Если вы вызываете редактор для некоторого объекта конфигурации, будут показаны события и подписки только этого объекта, а сам объект всегда будет подсвечен красным в списке источников. Таким образом, вы можете быстро проконтролировать, например, что выбранная вами подписка работает для всех объектов конфигурации, для которых это нужно.
Вызов редактора с помощью контекстной команды (на объекте конфигурации) позволяет вам сразу уменьшить количество подписок, отображаемых в редакторе. Например, вы можете посмотреть подписки только на те события, которые обрабатываются в модуле объекта или в модуле менеджера.
Кроме этого редактор содержит универсальный фильтр, с помощью которого вы можете произвольным образом настраивать состав объектов, событий и процедур.
Обратите внимание, что с помощью этого фильтра вы можете выбирать не только конкретные объекты, являющиеся источником событий, но и наборы типов, такие как СправочникОбъект, ДокументОбъект и другие. Такие наборы типов включают в себя все справочники или все документы, которые есть в конфигурации.
С помощью поиска по строке вы можете быстро найти только те подписки, которые относятся к интересующему вас механизму.
В любой момент вы можете быстро отфильтровать содержимое по тому событию или источнику, который показан в редакторе. Например, вы нашли подписку ПроверитьФормулуРасчета. Её источником является план видов расчета Удержания.
С помощью контекстной команды на плане видов расчета вы можете быстро увидеть только те подписки, которые связаны с его событиями.
Автоматическое добавление точек останова
Одним из распространённых способов анализа подписок на события является последовательный просмотр всех вызываемых процедур в отладчике в порядке их выполнения. Для этого редактор предоставляет удобный инструмент автоматического добавления точек останова в обработчики.
Прежде всего, вы можете вызвать этот инструмент прямо в редакторе.
Вы можете найти и выбрать интересующий вас объект, выбрать одно из его событий, и отметить, например, все обработчики. После нажатия ОК точки останова будут добавлены на первую исполняемую строку каждого отмеченного обработчика, и все эти точки появятся в панели Точки прерывания в перспективе Отладка.
Другой способ добавить точки останова удобен тогда, когда вы уже нашли в редакторе интересующий вас объект или событие. В этом случае из контекстного меню вы можете вызвать подходящую вам команду.
И, наконец, третий способ, которым вы можете воспользоваться, это автоматическое добавление точек останова уже в процессе отладки. В этом случае вам не нужно открывать редактор, потому что команда добавления находится прямо в панели Точки прерывания.
Таким образом, редактор Все подписки на события является универсальным инструментом, позволяющим использовать самые разные сценарии анализа. Он будет полезен не только разработчикам, которые хорошо знают прикладное решение, но и специалистам по внедрению или IT-специалистам, которым требуется разобраться с незнакомой функциональностью.


