Изучение событий 1С для программирования

12.03.17

Разработка - Механизмы платформы 1С

Какие события и в какой последовательности вызываются платформой 1С? Куда лучше поместить свой программный код, чтобы добиться нужного поведения программы? Предлагаю разработку «Изучение событий» которая облегчит поиск ответов на такие вопросы.

Скачать файлы

Наименование Файл Версия Размер
Изучение событий 1.0
.dt 158,05Kb
52
.dt 1.0 158,05Kb 52 Скачать

Почему появилась эта статья?

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

В управляемой форме могут быть сгенерированы события: ПриЧтенииНаСервере, ПриСозданииНаСервере, ПриОткрытии и т.д.

События в управляемой форме генерируются на клиенте и на сервере: ПередЗаписью, ПередЗаписьюНаСервере.

События вызываются в разных модулях: ФормаЭлемента, МодульОбъекта, МодульМенеджера.

Некоторые события могут вызываться несколько раз, если в списке несколько элементов справочника, например: ОбработкаПолученияПредставления.

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

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

Чтобы лучше понять логику и последовательность вызываемых событий, можно воспользоваться разработкой «Изучение событий» прикрепленной к данной статье. Зная контекст вызова события, последовательность событий и действия которые будет выполнять пользователь будет легче понять в какой обработчик событий лучше всего поместить свой программный код.

Инструкция к применению программы «Изучение событий»

Программа «Изучение событий» показывает события, которые генерирует платформа 1С при интерактивных действиях пользователя. Принцип работы следующий, пользователь открывает справочник, программа показывает цепочку событий. Пользователь помечает на удаление элемент справочника, программа выводит последовательность возникающих событий. События отображаются с небольшой задержкой по умолчанию 3 секунды, это необходимо чтобы отделить одну цепочку событий от другой цепочки событий. Поэтому выполнять интерактивные действия нужно «неторопливо».

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

Программа не может сама определить каким действием вызвана цепочка событий, советую в поле «Действие причина» набирать с клавиатуры названия ваших последних действий, например «Открыта форма списка справочника», «Помечен на удаление элемент в списке справочника» и т.д. Это облегчит затем анализ действий и событий.

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

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

Чтобы быстро очистить все записанные действия и события в разделе «Сервис» выбираем «Очистить события и действия».

Работа программы тестировалась на 1С платформе версии «8.3.9».

Программа «Изучение событий» может полезна как новичкам, так и программистам с опытом.

Демонстрация работы программы

Программирование 8

См. также

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Обмен между базами 1C Администрирование СУБД Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.17 появился замечательный механизм «Сервисы интеграции». Многие считают, что это просто коннектор 1С:Шины. Так ли это?

11.03.2024    4509    dsdred    53    

71

Как готовить и есть массивы

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

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

24.01.2024    5287    YA_418728146    25    

63

Планы обмена VS История данных

Обмен между базами 1C Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?

11.12.2023    6408    dsdred    36    

111

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    18471    SeiOkami    46    

118

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    12087    human_new    27    

74

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    8818    YA_418728146    6    

141

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Внешние компоненты для 1С можно разработывать очень просто, пользуясь всеми преимуществами языка Rust - от безопасности и кроссплатформенности до удобного менеджера библиотек.

20.08.2023    6279    sebekerga    54    

94

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    15983    SeiOkami    31    

103
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. gubanoff 63 14.03.17 12:01 Сейчас в теме
Интересно, как это реализовано? Просто создали все события и добавили в них код по фиксации этих событий в каком-то регистре или по-другому? Я так понимаю, это работает только в приложенной конфигурации?
3. rusmil 262 14.03.17 14:18 Сейчас в теме
(1) Думаете правильно, работает это только в приложенной конфигурации.
2. trntv 25 14.03.17 14:02 Сейчас в теме
Отладчик в руки и в бой:)
rpgshnik; +1 Ответить
4. rusmil 262 14.03.17 14:31 Сейчас в теме
(2) Эта разработка не заменяет собой отладчик, и задачи такой не ставилось. Она представляет собой "испытательный стенд" если можно так выразиться. Основная фишка этой разработки в интерактивности, щелкнул кнопку увидел как платформа 1С реагирует, это можно использовать при демонстрации на учебных занятиях. Также мне было интересно взглянуть на всю цепочку вызываемых событий, а не фрагментарно.
5. Brawler 454 14.03.17 21:22 Сейчас в теме
Баловался когда-то так на Delphi и С#.
Там та событий у объектов просто завались бывает, что, когда, где, зачем, порой не разберешь))
6. Rasdag 159 15.03.17 00:14 Сейчас в теме
Блин, думал обработка
7. AlexGroovy 15.03.17 08:12 Сейчас в теме
Программа учитывает вызовы к общим модулям?
8. rusmil 262 15.03.17 08:35 Сейчас в теме
1. Программа показывает именно события, которые генерирует платформа 1С, насколько я знаю общие модули событий не генерируют или я ошибаюсь?

2. Зачем вы хотите отследить вызовы к общим модулям, с какой целью?
9. Octopus 337 15.03.17 09:50 Сейчас в теме
Подписки в сферу действия функционала не попали, как я понимаю. С одной стороны, ежу понятно, что вызываются они последними, с другой, если использовать материал для обучения, было бы очень хорошо показать и подписки.
rpgshnik; mike_grig; корум; rusmil; Alias; kraynev-navi; +6 Ответить
10. rusmil 262 15.03.17 10:00 Сейчас в теме
(9) Да есть такая идея, "запилить" туда демонстрацию подписок и еще механизма расширений, чтобы посмотреть как этот "бульон" будет вариться ;-). Сделаю позже при наличии свободного времени. Спасибо что даете обратную связь для улучшения продукта.
Светлый ум; Andry.Boris; mike_grig; +3 Ответить
11. CheBurator 3119 16.03.17 01:44 Сейчас в теме
1С обновили платформу, добавились новые события. разработка в этом случае, как я понмаю. не покажет новые события? т.е. введет обучающегося в заблуждение, так?
(если да, то при запуске надо анализировать версию платформы, и если она превышает некую "предопределенную" - на которой писалась данная конфига - явно и недвусмысленно выдавать ИНФО, типа: платоформа отлична от "базовой" такойто, выдаваемые данные могут быть недостоверными.
rpgshnik; rusmil; +2 Ответить
12. rusmil 262 16.03.17 04:26 Сейчас в теме
Зная фирму 1С, уверен они обязательно что-нибудь новое придумают ;-). Замечание учту.
13. artemns 24.03.17 10:44 Сейчас в теме
Очень неплохая разработка. Т.к. с управляемыми формами я только начинаю работать, то я думаю мне это решение будет в помощь. Спасибо.
15. Поручик 4670 12.05.17 06:55 Сейчас в теме
(13) Разработка управляемого интерфейса от Радченко и Ко вам в помощь.
Bukaska; sergpogo; brr; +3 Ответить
18. rusmil 262 12.05.17 16:23 Сейчас в теме
(15) Очень хорошая книга, читал и другим советую. В ней приводятся схемы с последовательностью вызова событий. Однако книжку я с собой не ношу, как назло когда она нужна ее нет под рукой. Мне проще запустить разработку с флэшки и через 15 секунд получить необходимую мне информацию по вызову событий. Каждый выбирает сам, что ему удобнее.
14. Matveev_VS 159 10.05.17 10:32 Сейчас в теме
16. IvanovAV 132 12.05.17 15:44 Сейчас в теме
А чем стандартный стэк вызовов в отладчике не устраивает ?
rpgshnik; +1 Ответить
17. rusmil 262 12.05.17 16:08 Сейчас в теме
(16) Стек вызовов в отладчике устраивает, и я им активно пользуюсь и другим советую, однако, чтобы увидеть всю вызываемую последовательность событий Вам нужно будет на каждое событие создать обработчики и потратить на это время, затем пройтись отладчиком по всем этим событиям и посмотреть каждое по отдельности и как-то это запомнить в своей голове, попробуйте сколько уйдет на это времени? Прилагаемая к данной статье разработка уже через 3 секунды покажет всю цепочку событий которые могут возникнуть при создании нового документа, при открытии существующего документа, при вводе документа на основании. Сразу будет видно в чем разница между этими вариантами открытия формы документа.
tormozit; user774630; +2 Ответить
19. rpgshnik 3631 14.03.21 13:46 Сейчас в теме
А смысл в обработке, лучше было бы сразу в статье и описать.
20. rusmil 262 14.03.21 14:58 Сейчас в теме
(19) Причина раз: Много пришлось бы описывать ;-) цепочки событий зависят от контекста и выполняемого действия, например форма документа может быть открыта по кнопке Создать, Скопировать, Ввести на основании, Переходом по гиперссылке, Открывается новый документ, открывается существующий документ и т.д. Каждый раз, цепочки событий будут разными. Или вот еще пример пометили элемент справочника на удаление в форме справочника, в списке справочника опять получим разные цепочки событий. Открывается форма списка, какие события будут вызваны один раз, какие несколько раз?
Причина два: программист в эту тестовую конфигурацию может добавить любой неспецифичный для конфигурации программный код и протестировать как он будет работать.
Причина три: платформа 1С тоже меняется идея была чтобы еще проверить на разных версиях платформы, однако для разных версий платформы обработку доделать руки пока не дошли. Это в перспективе.
21. AnryMc 849 02.10.21 18:04 Сейчас в теме
(9)
(20)
"Распутывая" доработку одного очень уважаемого (со стороны 1С) франча который практически повторил всю типовую конфигурацию с небольшими доработками и "повесил" это на типовую через "Подписки" создал для себя и немного "причесав" выложил:
Отчет по Глобальным командам и Подпискам на события в конфигурации с возможностью отбора по Документам и Справочникам
Светлый ум; +1 Ответить
Оставьте свое сообщение