Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Вопрос профессионал по техвопросам

Вопрос профессионал по техвопросам
Я
   Kashey
 
02.12.18 - 19:45
Какой вариант верный на ваш взгляд?

9.8 Выберите верное утверждение:
1. Чтение через объектную модель всегда приводит к наложению управляемой блокировки
2. Чтение наборов записей регистров через объектную модель приводит к наложению управляемой блокировки
3. Чтение через объектную модель всегда приводит к наложению объектной блокировки
4. Получение прикладного объекта через ПолучитьОбъект() всегда происходит с использованием объектной блокировки
5. Верны варианты 2 и 4
6. Верны все варианты
 
 
   H A D G E H O G s
 
1 - 02.12.18 - 19:47
На экзамене расскажут
   Kashey
 
2 - 02.12.18 - 19:48
(1) Дык проф это и есть допуск к экзамену, разве нет?
   H A D G E H O G s
 
3 - 02.12.18 - 19:50
(2) Аааа, проф, счаст все поменялось.
Госпади, уже 4 года прошло, как сдавал.
   Kashey
 
4 - 02.12.18 - 19:53
(3) Насчёт варианта 2 уверен. Но в некоторых источниках пишут что ответ 5. Т.ч. сомневаюсь в варианте номер 4
   rphosts
 
5 - 02.12.18 - 20:01
Как говорит один из преподавателей УЦ№1: есть ответ правильный, а есть ответ лучший.

Если конфигурация работает в режиме автоматических блокировок, то никаких управляемых там быть не должно.
С другой стороны, скорее всего проверку теста будет делать программа на основе тго что в неё заложили... если заложили с ошибками - правильным для неё будет не тот ответ что реально правильный.
   Kashey
 
6 - 02.12.18 - 20:05
(5) Из контекста я понял что речь про упр. блокировки, про автоматические нигде не упоминается...
А вот насчет объектных блокировок непонятно.
   xXeNoNx
 
7 - 02.12.18 - 20:08
Я за ответ N5
   Kashey
 
8 - 02.12.18 - 20:32
(7) А почему?

Я насколько понял, объектные блокировки - это про интерактивное изменение объектов. В коде есть метод объекта Заблокировать(). Т.ч. не думаю что ПолучитьОбъект() ставит объектную блокировку.
   Kashey
 
9 - 02.12.18 - 20:34
(3) Часто приходится использовать экспертные навыки в работе? Насколько вообще полезно на твой взгляд получение Эксперта?
   hhhh
 
10 - 02.12.18 - 22:35
(9) ну сертификат дает какие-то преимущества при приеме на работу, например, во франч. В остальном, абсолютно бесполезная бумажка.
 
 Рекламное место пустует
   H A D G E H O G s
 
11 - 02.12.18 - 22:39
(9) Нет навыков эксперта.
Ну, в том смысле, что вся эта подготовка тебе никак не поможет, если ты регулярно не сталкиваешься с большими данными.
Большие данные прям суко, прямым в печень дают тебе знать, где ты не прав, не досмотрел, ступил.
Эксперт лишь приоткрывает некоторые грани.

Но вот конкретно твой вопрос - он бесполезен, я ни разу с ним не сталкивался.
   H A D G E H O G s
 
12 - 02.12.18 - 22:40
И, я, Эксперт, не знаю ответа на него. И даже не буду запускать тесты, чтобы узнать.
   Kashey
 
13 - 02.12.18 - 23:12
(10) Ну так-то сам серт понятно - бумажка. Насчёт знаний, полученных в процессе подготовки - тут другое немного. Хотя, если практики нет, всё забывается очень быстро.
   hhhh
 
14 - 03.12.18 - 01:26
(13) лучше прямо к утру выбросить эту фигню из головы. Поэтому лучше после сдачи экзамена нажраться как следует, чтобы все эти "знания" сразу выветрились.
   Tonik992
 
15 - 03.12.18 - 01:48
(14) Посмеялся сначала от души.. А потом почему-то грустновато стало
   Конструктор1С
 
16 - 03.12.18 - 04:14
Думаю 5.
   rphosts
 
17 - 03.12.18 - 17:30
(6) если речь про упр. режим - 5. разумеется (т.е и 2 и 4)
   Фрэнки
 
18 - 03.12.18 - 17:42
то, что варианты 2 и 4 верные - это без сомнения.

А относительно варианта 1 и 3 просто нет уточнения, для каких именно объектов нужно смотреть. Поэтому может возникнуть, может и не возникнуть. Сказано, что ВСЕГДА, но нет, НЕ всегда. Объекты бывают разные.
   Fragster
 
19 - 03.12.18 - 17:46
в разных релизах ответы разные
   Fragster
 
20 - 03.12.18 - 17:50
например с некоторых пор можно получить ошибку "Нарушение целостности чтения объекта базы данных из-за параллельного изменения объекта другим сеансом" при получении реквизита через точку. Раньше объект с табличными частями читался в транзакции, а теперь нет, и он может измениться в другом сеансе между тем, как прочитана шапка и таб. часть.
   Fragster
 
21 - 03.12.18 - 17:51
возможно правильный ответ в последней платформе - 2
   Fragster
 
22 - 03.12.18 - 17:51
но это не точно
   Kashey
 
23 - 03.12.18 - 18:55
(17),(18) Не могли бы пояснить про вариант 4 поподробнее? Не смог найти инфу про наложение объектной блокировки именно в контексте ПолучитьОбъект(). Насколько понимаю, речь идёт про оптимистическую объектную блокировку. Там идёт сравнение версий данных при записи. Я правильно понял?
   NeoVision
 
24 - 03.12.18 - 19:48
в тесте правильный ответ 5
   Фрэнки
 
25 - 03.12.18 - 19:59
если пытаться выразить свою уверенность в ответе 4 на основе такого описания
https://its.1c.ru/db/metod8dev#content:5839:hdoc

Объектная блокировка при ПолучитьОбъект() возникает всегда. Другое дело, что в зависимости от того, в каком режиме конфигурация, эта объектная будет раскрываться в разделяемую управляемую или разделяемую автоматическую :-)
   Kashey
 
26 - 03.12.18 - 20:24
(25) Статью читал, конечно. В общем вывод сделал такой - если мы считали объект в память, то никакой объектной блокировки на него не накладывается непосредственно. И только при записи механизмы платформы выполняют проверку различия версий, что и реализует оптимистическую объектную блокировку. Могу ошибаться.
По поводу управляемого или автоматического режима -  в этом случае разницы нет. ПолучитьОбъект() будет накладывать shared блокировку СУБД в обоих случаях.
   Конструктор1С
 
27 - 04.12.18 - 05:42
(26) как это не накладывается? Открываешь документ, который раньше открыл другой пользователь, и при попытке изменить любой реквизит вываливается сообщение
"Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено."

если данные были изменены и сохранены другим пользователем, то выдаст сообщение
"Операция не может быть выполнена из за несоответствия версии или отсутствия записи в базе данных"

В первом случае срабатывает пессимистическая объектная блокировка, во втором случае оптимистическая
   Kashey
 
28 - 04.12.18 - 12:45
(27) В обработке помещаю в переменную значение через СпрОбъект = ФизЛицо.ПолучитьОбъект() ставлю точку останова. В параллельном сеансе изменяю и сохраняю реквизит этого же справочника. Новые данные записываются без вопросов. И только потом, когда в обработке продолжаю выполнение СпрОбъект.Записать() в этот момент происходит ругань. В принципе, про что и писал в (26). Сам факт чтения объекта ничего не блокирует, проверка выполняется только при записи.
   Вафель
 
29 - 04.12.18 - 12:47
объектная блокировка и управляемая - это 2 большие разницы
   rs_trade
 
30 - 04.12.18 - 12:48
(20) я так и не осилил смысл чтения в транзакции.
   Kashey
 
31 - 04.12.18 - 12:50
(29) А я и не спорю. Вот с этим пытаюсь разобраться:

4. Получение прикладного объекта через ПолучитьОбъект() всегда происходит с использованием объектной блокировки
   rs_trade
 
32 - 04.12.18 - 12:50
+(30) типа что-бы в рид коммитед читал? но зачем тогда транзакция. это же можно менять уровнем изоляции.
   Kashey
 
33 - 04.12.18 - 12:54
(32) Внутри транзакции с S блокировки можно переключиться на X, но другая транзакция сможет только прочесть, а не изменить прочитанные первой транзакцией данные. ИМХО
 
 
   Вафель
 
34 - 04.12.18 - 12:55
   Вафель
 
35 - 04.12.18 - 12:55
   rs_trade
 
36 - 04.12.18 - 12:56
(3) Чтение через объектную модель всегда приводит к наложению объектной блокировки

ну шаред блокировка вроде всегда присутствует. вопрос что она снимается сразу после чтения данных.
   Вафель
 
37 - 04.12.18 - 12:56
получается что 4 не верен, а значит 5 и 6 не верно
   Вафель
 
38 - 04.12.18 - 12:57
(36) шаред блокировка - это НЕ объектная блокировка
   Kashey
 
39 - 04.12.18 - 12:58
(36) Да, всё верно в (38). Речь идёт про объектные блокировки, а не транзакционные
   Kashey
 
40 - 04.12.18 - 13:03
(37) Получается верный ответ 2?
   rs_trade
 
41 - 04.12.18 - 13:03
угу. развели блин зоопарк блокировок. объектные, управляемые, транзакционные.
   el-gamberro
 
42 - 04.12.18 - 13:04
Тут только вариант 4 можно считать верным. Остальное шлак какой-то.
В случае 4 при записи объекта будет проверяться версия объекта. Если версия не подойдет, то будет отказ. Это оптимистичная объектная блокировка.
Для объектных блокировок нужно использовать метод Заблокировать(). Ни в одном из вариантов об это не говорится.
   Вафель
 
43 - 04.12.18 - 13:08
(40) но 1 и 2 - это же одно и тоже
   rs_trade
 
44 - 04.12.18 - 13:09
(42) а 3 вариант? вроде тоже по смыслу подходит.
   el-gamberro
 
45 - 04.12.18 - 13:17
(44) Так регистры тоже можно читать через такую модель. Но ведь версии записей наборов не ведутся. :)
   el-gamberro
 
46 - 04.12.18 - 13:19
(43) Нет чтение данных регистра не ведет к управляемой блокировке регистра
   rs_trade
 
47 - 04.12.18 - 13:19
(45) да это же просто обертка для сокращения кода. регистры это не объектные данные. вопрос как по мне так с подвохом.

4 вариант.
   Kashey
 
48 - 04.12.18 - 14:44
(43) Вариант 1 неверный.
Платформа НЕ устанавливает блокировок при чтении в объектной технике констант, справочников, документов. А устанавливает при чтении наборов записей регистров в объектной технике.
Это если верить Филлипову (2-е изд.)
   Конструктор1С
 
49 - 04.12.18 - 16:14
(28) первая блокировка срабатывает, когда один пользователь открыл документ, затем второй открывает и пытается его отредактировать
 
 Рекламное место пустует


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует