воскресенье, 14 января 2018 г.

Порядок записи элемента справочника

Последовательность событий при записи позиции справочника по кнопке Записать и закрыть такова:
Нюансы:
1) схема описывает поведение системы при интерактивной записи; при программной соответственно не возникает событий на форме.
2) заливкой выделены моменты, происходящие в транзакции
Рассмотрим кратко основные шаги, и что можно сделать на каждом.
  1. Форма, ПередЗаписью() - обработчик нужен, если нужен диалог с пользователем перед тем, как записать объект.
  2. Форма, ОбработкаПроверкиЗаполненияНаСервере() - проверяем заполнение, есть доступ к данным формы
  3. Объект, ОбработкаПроверкиЗаполнения() - проверяем заполнение, доступа к данным формы нет
  4. Форма, ПередЗаписьюНаСервере() - в  этот момент экземпляр класса объекта уже существует, можем обратиться к его свойствам и методам, но в базу он пока не записан. Можно дозаполнить  реквизиты объекта или провести доп.проверки
  5. Объект, ПередЗаписью() - в этот момент экземпляр класса объекта уже записан в базу данных, но транзакция еще не завершена (следовательно, может быть откачена). Можно дозаполнить  реквизиты объекта или провести доп.проверки
  6. Объект, ПриЗаписи() - в этот момент экземпляр класса объекта уже записан в базу данных, на него есть ссылка, но транзакция еще не завершена (следовательно, может быть откачена). Используя эту ссылку, можно записать в базу какие-то данные, на основе данных объекта
  7. Форма, ПриЗаписиНаСервере() - в этот момент экземпляр класса объекта уже записан в базу данных, на него есть ссылка, но транзакция еще не завершена (следовательно, может быть откачена), но уже есть доступ к данным формы. От записи можно еще отказаться на этом шаге
  8. Форма, ПослеЗаписиНаСервере() - объект записан, транзакция завершена. Можно отобразить что-то на форме
  9. Форма, ПослеЗаписи() - можно отобразить что-то на форме
Очень подробно тут: http://infostart.danila.org.ua/public/153748/

***
Вопрос 06.34 экзамена 1С:Профессионал по платформе. В каком обработчике события модуля объекта можно отказаться от записи объекта, например, элемента справочника?
  1. ПередЗаписью
  2. ПриЗаписи
  3. ПослеЗаписи
  4. В любом из перечисленных
  5. Справедливо 1 и 2
Правильный ответ пятый, разбор выше. На шаге ПриЗаписи() транзакция еще не завершена.

7 комментариев:

  1. В новой версии вместо 5 варианта - 2 варианта -
    5) Верно 1 и 2 (т. к. такого обработчика события нет в модуле объекта)
    6) Верно 1 и 2 (т. к. обработчик события выполняется "после" записи)
    Правильный 5 ответ
    Кто - нить может объяснить че за ахинею написали в вариантах????
    Я вот никак не врублюсь
    Видимо сильный план у тех кто пишет эту чепуху))))

    ОтветитьУдалить
    Ответы
    1. Кароч билеты только зубрить... никакой логики у этих наркоманов нет от слова совсем! Половина ответов еще и неправильные))) Надеюсь сдам профа и тут же забуду этот мрак!

      Удалить
    2. 1С только-только изучаю, немножко покопался в этом вопросе. Он сформулирован криво, но логика есть. Здесь идёт речь про "Модуль объекта" и про его предопределенные процедуры - про обработчики событий. В "Модуле объекта" обработчика событий "ПослеЗаписи" - нет; но в свою очередь в "Модуле формы" обработчика событий "ПослеЗаписи" - есть.

      Пятый ответ звучит так:
      "5) Верно 1 и 2 (т. к. такого обработчика события нет в модуле объекта)"

      Нас интересует именно "нет в МОДУЛЕ ОБЪЕКТА", поэтому ответ пятый.

      Удалить
    3. Короче, в вариантах говорится о "таком обработчике", это говорится о "ПослеЗаписи" и его действительно нет в модулей объекта.

      Удалить