Андрюхина Альбина

1425
Рейтинг

AlbinaAAA
Альбина Андрюхина



  •   Регистрация: 28.01.2010 (14 лет назад)

  •   Был(а) на сайте: 23.04.2024

Друзья
  • Шамиль Иксанов
  • Алексей Зайцев
  • Lika Perova
  • Владимир Гусев
  • Дмитрий Малышев
  • Евгений Комиссаров
  • Павел Филатов
  • Андрей Миронов
Подписчики 78

Группы

Профессиональный разработчик

Участник Meetup

IE 2021 Online

Компания


Тинькофф Банк
tinkoff.ru

Тинькофф — технологическая компания с банковской лицензией. Примерно 70% сотрудников штаб-квартиры — IT-специалисты, которые каждый день создают лучшие цифровые продукты в России. В Банке нет отделений, управлять своими финансами можно через мобильное приложение, сайт или просто по телефону.

11.04.2016    1655   

Рейтинг 1425

Обработчики событий при записи объектов. Зачем и что за чем?

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла Математика и алгоритмы

Программисту, имеющему немного опыта на платформе 1С 8.3, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта.... Эта шпаргалка была создана в процессе обучения и реального опыта с целью разложить всё по полочкам, чтобы было четкое понимание в каком случае какой обработчик нужно использовать и в какой последовательности они запускаются при записи и проведении документов. Данная статья будет полезна в большей степени начинающим разработчикам. Но и опытным позволит освежить информацию, упорядочить её.

25.07.2019    262468    4    AlbinaAAA    59       

887

Пример выбора несколько обработчиков событий записи объекта для решения одной задачи

Статья Программист Платформа 1С v8.3 Бесплатно (free) Нет файла Математика и алгоритмы

Данная публикация предназначена для начинающих разработчиков и является продолжением статьи "Обработчики событий при записи объектов. Зачем и что за чем?" (ссылка далее). Содержит пример использования несколько обработчиков событий для решения одной задачи и объясняется почему выбраны именно они.

27.09.2012    200775    AlbinaAAA    65       

503

Комментарии

DevРаботаем с дополнительными реквизитами на форме#68 11.05.22 21:42
Спасибо большое! Помогли быстро разобраться и сэкономили много времени.
ПубликацииМиру – Miro: Общие доски для управления проектами в распределенной команде#3 10.09.21 14:25
Спасибо, интересно очень. Будем пробовать..
DevОбработчики событий при записи объектов. Зачем и что за чем?#46 25.08.21 9:12
(45) и я вчера ступила)) Написала , что при обращении к реквизитам формы мы обращаемся через Объект. Нет, обращаемся напрямую к реквизиту формы, без Объект- мы же говорим про модуль формы и про реквизит формы! Внесла в статью изменение, спасибо за замечание!
DevОбработчики событий при записи объектов. Зачем и что за чем?#43 24.08.21 18:01
(42) не соглашусь.
Цитата
Пример плохой практики. :-) При возникновении ошибки транзакция будет отменена, а вот изменения в данных формы - нет.
Транзакция завершена и, если мы попали в обработчик После записи на сервере, значит всё записано.
DevОбработчики событий при записи объектов. Зачем и что за чем?#41 24.08.21 17:47
(40) Согласна. Вы поняли правильно, как написано. Мне правильнее было бы написать так "Если нужно изменить записанные дополнительные данные на основании данных формы и данных объекта, то необходимо использовать в данном обработчике при обращении к данным объекта ТекущийОбъект, а при обращении к реквизитам формы Объект".

Ну, а если, помедитировать над фразой "перед отправкой на клиент", то можно представить такой пример: далее после передачи данных объекта на клиент мы должны отразить эти, созданные дополнительные данные, на форме . Например на форме есть надпись реквизит формы "Создан документ такой-то с такими-то данными".
После обсуждаемого выше обработчика вызывается событие формы После записи на сервере, смысл которого, вывод в форме некоторой дополнительной информации, связанной с данными объекта. И там мы отразим данные созданного документа.
DevОбработчики событий при записи объектов. Зачем и что за чем?#39 24.08.21 17:11
(32) Наверно правильнее было бы написать так: "Если нужно изменить записанные дополнительные данные на основании данных формы и данных объекта, то необходимо использовать в данном обработчике при обращении к данным объекта ТекущийОбъект, а при обращении к реквизитам формы Объект"
Назначение этого обработчика – записать в базу данных дополнительную информацию, связанную с данными записываемого объекта. Оно аналогично предыдущему обработчику "При записи", там то же самое назначение, но в модуле объекта. Ведь совсем не обязательно, что все исходные данные для записи дополнительной информации находятся в самом объекте. Они могут находиться и в форме. Как раз для таких случаев и предназначено это событие.

Пример: До записи объекта был какой-то РеквизитОбъекта = 3 и во время записи РеквизитОбъекта по каким-то условиям программно в обработчиках выше поменяли, например, на 5. Т.е. записали в базу РеквизитОбъекта =5 и получилось, что в данном обработчике "ПриЗаписиНаСервере" Объект.РеквизитОбъекта = 3, а ТекущийОбъект.РеквизитОбъекта=5.
А ранее, в обработчике ПриЗаписи в модуле объекта, создали какой-то документ, который должен быть создан и записан только, если создан и записан этот объект (поэтому делаем то в транзакции). Далее, пришли в обработчик модуля формы "ПриЗаписиНаСервере" и видим, что там реквизит формы , в зависимости от которого и значения РеквизитОбъекта нужно что-то дописать в тот ранее созданный и записанный документ. И вот тут используем в условии Объект.РеквизитФормы и ТекущийОбъект.РеквизитОбъекта (а не Объект.РеквизитОбъекта). Надеюсь, понятно написала)
ПубликацииКто такой архитектор? Системный или функциональный? Статья 1#4 30.06.20 8:59
Очень полезная статья, спасибо за труд. Жду следующие статьи!