Жизненный цикл управляемой формы. Шпаргалка разработчика

29.06.18

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

Прочитав когда-то давно книжку "Разработка управляемых форм", составил для себя такую схемку-напоминалку для обращения в процессе разработки. С тех пор не раз выручала и избавляла от необходимости лезть в гуглы.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование SM По подписке [?] Купить один файл
Жизненный цикл управляемой формы. Шпаргалка разработчика
.docx 21,11Kb
80
80
1 SM
Скачать Купить за 1 850 руб.

 

Модуль формы (клиент) Модуль формы (сервер) Модуль объекта (сервер)

 

1. Открытие формы

   

 

ПриЧтенииНаСервере()(1)

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

ОбработкаЗаполнения()(1)

Только для нового объекта. Начальное заполнение объекта данными. Доступны ДанныеЗаполнения (ссылка на объект-основание либо структура отбора). В случае "СтандартнаяОбработка = Истина", после обработки заполнения, обрабатываются сначала ДанныеЗаполнения, затем ЗначенияЗаполнения

 

ПриСозданииНаСервере()

Окончательная подготовка формы (ее представления) к открытию

 

ПриОткрытии()

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

   

 

2. Запись объекта из формы

   

ПередЗаписью()

Анализ готовности вспомогательных данных для записи объекта

   
 

1. ОбработкаПроверкиЗаполненияНаСервере()

Проверка данных, не относящихся к объекту. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов формы

Механизм проверки заполнения(2)
   

2. ОбработкаПроверкиЗаполнения()

Всё, что относится к проверкам реквизитов основного объекта БД. Параметр ПроверяемыеРеквизиты содержит массив имен реквизитов объекта

 

ПередЗаписьюНаСервере()

Объект - основной реквизит формы объекта; ТекущийОбъект - объект, который реально будет записан в БД. Анализировать данные и дозаполнять реквизиты нужно через ТекущийОбъект, модификация Объекта ни к чему не приведет. Обработчик вызывается только при записи из формы

 
  Транзакция

ПередЗаписью()

Вызывается при любом способе записи. Данные объекта записываются в БД, но транзакция не закрывается

   

ПриЗаписи()

Выполняются действия над доп.данными, которые неразрывно связаны с основными данными объекта

 

ПриЗаписиНаСервере()

Предназначение аналогично ПриЗаписи(), но при обработке доп.данных можно использовать данные формы. ТекущийОбъект - данные, которые были записаны в БД, работать следует именно с ним; Объект - данные основного реквизита формы, которые были до записи, его модификация бесполезна. Если это запись нового объекта, то у Объект свойство Ссылка пустое, а у ТекущийОбъект уже заполнено

 
 

ПослеЗаписиНаСервере()

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

 

ПослеЗаписи()

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

   

 

3. Закрытие формы

   

ПередЗакрытием()

Проверка, можно закрыть форму или нельзя. Если отключить стандартную обработку, то форма будет закрыта, независимо от модифицированности

   

ПриЗакрытии()

Выполняется, если форма 100% закрывается. На момент вызова пользователь форму уже не видит

   
     

Примечания:

1) Вызывается только один из двух обработчиков, в зависимости от того, записан объект в БД или создаётся новый;

2) Параметр Отказ нужен для отказа от записи объекта (не будет вызываться обработчик ПередЗаписьюНаСервере()). Чтобы отказаться от проверки заполнения, нужно очистить массив ПроверяемыеРеквизиты. При этом, если в обработчике [1] удалить из массива значение Объект, то обработчик [2] вызываться не будет. Если проверяемый реквизит привязан к функциональной опции, то при ее отключении заполнение реквизита проверяться не будет (имя отсутствует в массиве ПроверяемыеРеквизиты);

 

Жизненный цикл управляемой формы управляемая форма управляемые формы УФ

См. также

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

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    4303    bayselonarrend    18    

147

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

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    4239    dsdred    16    

77

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

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

24.01.2024    10024    YA_418728146    25    

70

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

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

11.12.2023    9051    dsdred    44    

126

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

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

06.10.2023    21265    SeiOkami    46    

130

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

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

14.09.2023    15460    human_new    27    

80

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

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

28.08.2023    11809    YA_418728146    7    

158
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. nik_lankaster 29.06.18 09:49 Сейчас в теме
Очень кстати. Спасибо что поделились)
2. leosoft 166 29.06.18 11:25 Сейчас в теме
Наглядно! :)
viktor3d; adhocprog; DrAku1a; +3 Ответить
3. ildary 21 29.06.18 11:29 Сейчас в теме
Большое спасибо за наглядную подсказку!
4. EMelihoff 29.06.18 11:44 Сейчас в теме
Хорошо, нашёл время сделать схему, у меня на стене висит скан страницы из книги Радченко, т.к. "кирпичи"
5. CyberCerber 864 29.06.18 11:57 Сейчас в теме
Наглядная схема, спасибо
Однако есть не все события. Для полноты картины не хватает ПередЗагрузкойДанныхИзНастроекНаСервере и подобных.
adhocprog; Alias; logarifm; +3 Ответить
8. stas_ganiev 1799 29.06.18 13:56 Сейчас в теме
(5)
(6)
Возможно, картина не полная, не судите строго...
Выписал то, на что сам Радченко обращал внимание, в другие источники некогда было лазить. Но, по опыту, могу сказать, что большего пока и не требовалось))
Переопределение параметров однозначно входит в жизнь формы, с ними там целая эпопея. Но вот как-то без них...
(7)
Спасибо, загляну!
9. CyberCerber 864 29.06.18 14:35 Сейчас в теме
(8) Я, бывает, в работе сталкиваюсь, когда нужно как-то обработать значения полей формы, которые были сохранены у пользователя в настройках. При создании на сервере - это еще рано, при открытии - можно, но это на клиенте. Самое правильное - это вот таких специальных событиях.
11. logarifm 1120 01.07.18 19:04 Сейчас в теме
(5)
ПередЗагрузкойДанныхИзНастроекНаСервере


Это да, но уже они с более новых платформ. Я так понимаю автор хотел основную механику.
6. SlavaKron 29.06.18 12:16 Сейчас в теме
Переопределение параметров открываемой формы перед созданием входит в её жизненный цикл?
10. logarifm 1120 01.07.18 18:39 Сейчас в теме
На самом деле не весьма наглядно, поскольку на одном уровне расположены ПриЧтенииНаСервере() и ОбработкаЗаполнения()
. На самом деле вначале обработчики происходят МодуляОбъекта, а потом уже на стороне модулей формы но никакак ни наодном уровне. исправьте!
programmer_87; balanceprof; +2 Ответить
13. stas_ganiev 1799 04.07.18 02:03 Сейчас в теме
(10) Разве можно говорить о порядке двух обработчиков, один из которых выполняется только для нового объекта, а другой - только для существующего? Они взаимоисключаемые )) Не вижу смысла исправлять.
12. kiruha 388 02.07.18 11:04 Сейчас в теме
Еще пропущено
1) Код модуля формы
2) Код модуля объекта

И это основные механики.

из новых ОбработкаЗаписиНового

Кстати попробуйте догадайтесь в каком порядке происходит вызов кода модуля формы ))
14. stas_ganiev 1799 04.07.18 02:06 Сейчас в теме
(12) Не понял вашего замечания. По-моему, именно эти вещи отмечены на схеме.
А по поводу дополнительных обработчиков, которых нет на схеме, еще раз повторюсь: я не претендую на абсолютную полноту ))
15. kiruha 388 04.07.18 10:47 Сейчас в теме
(14)
Открытие формы

выполняется до процедур обработчиков, в том числе ПриЧтенииНаСервере() - код который расположен ПОСЛЕ всех процедур и функций
в модуле формы
в модуле объекта
16. Dach 378 13.08.18 10:49 Сейчас в теме
(14) товарищ (15) имеет ввиду, видимо, компиляцию программного кода модуля формы и модуля объекта... И про определение операторов тела программы типа "мСпециальныйФлаг = Истина". В принципе да, важное замечание - можно добавить в статью пару слов про последовательность компиляции
17. sml 41 20.08.18 17:33 Сейчас в теме
Рекомендую дополнить заголовок словом "объекта". Для УФ набора записей, записи, отчета и обработки существуют другие процедуры и функции.
Cthulhu; kiruha; +2 Ответить
18. dr2c 44 31.08.18 16:36 Сейчас в теме
Под книжкой "Разработка управляемых форм" имелась в виду "Разработка управляемого интерфейса" с Радченко и Хрусталевой?
Student1C; +1 Ответить
19. stas_ganiev 1799 03.09.18 03:01 Сейчас в теме
20. NittenRenegade 109 23.11.18 18:40 Сейчас в теме
Очень хорошая схема, автор молодец. Есть дополнение к:
Если проверяемый реквизит привязан к функциональной опции, то при ее отключении заполнение реквизита проверяться не будет (имя отсутствует в массиве ПроверяемыеРеквизиты);

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


Взводится такая ФО примерно вот так:
ПараметрыОпций = Новый Структура("Поставщик", Объект.Поставщик);

УстановитьПараметрыФункциональныхОпцийФормы(ПараметрыОпций);
stas_ganiev; +1 Ответить
21. salazar 1 12.04.19 11:36 Сейчас в теме
Вот ещё картинка
Прикрепленные файлы:
vis_tmp; SagittariusA; Cthulhu; balanceprof; Blagin; user591389_aska_rabota; Suslik_Johns; +7 Ответить
26. Suslik_Johns 17.02.20 12:26 Сейчас в теме
(21) Спасибо. Хорошие схемы.
22. salazar 1 12.04.19 11:37 Сейчас в теме
И другая
Прикрепленные файлы:
vis_tmp; balanceprof; Blagin; user591389_aska_rabota; Suslik_Johns; +5 Ответить
23. ovadia 19.10.19 13:42 Сейчас в теме
Есть вообще какой-то справочник или манул 1С:8.3 по всем событиям? С учетом того, что будущий читатель может и не знать как называются события, то есть СП не поможет.
24. stas_ganiev 1799 23.10.19 06:21 Сейчас в теме
(23)Руководство разработчика и синтакс-помощник ))
25. ovadia 23.10.19 20:15 Сейчас в теме
(24) Отличная шутка. Так я написал, что СП не поможет, так как пользователь не знает названия функций. Какое конкретно руководство, дайте ссылку на источник.
Оставьте свое сообщение