|
Вопрос профессионал по техвопросам | ☑ | ||
---|---|---|---|---|
0
Kashey
02.12.18
✎
19:45
|
Какой вариант верный на ваш взгляд?
9.8 Выберите верное утверждение: 1. Чтение через объектную модель всегда приводит к наложению управляемой блокировки 2. Чтение наборов записей регистров через объектную модель приводит к наложению управляемой блокировки 3. Чтение через объектную модель всегда приводит к наложению объектной блокировки 4. Получение прикладного объекта через ПолучитьОбъект() всегда происходит с использованием объектной блокировки 5. Верны варианты 2 и 4 6. Верны все варианты |
|||
1
H A D G E H O G s
02.12.18
✎
19:47
|
На экзамене расскажут
|
|||
2
Kashey
02.12.18
✎
19:48
|
(1) Дык проф это и есть допуск к экзамену, разве нет?
|
|||
3
H A D G E H O G s
02.12.18
✎
19:50
|
(2) Аааа, проф, счаст все поменялось.
Госпади, уже 4 года прошло, как сдавал. |
|||
4
Kashey
02.12.18
✎
19:53
|
(3) Насчёт варианта 2 уверен. Но в некоторых источниках пишут что ответ 5. Т.ч. сомневаюсь в варианте номер 4
|
|||
5
rphosts
02.12.18
✎
20:01
|
Как говорит один из преподавателей УЦ№1: есть ответ правильный, а есть ответ лучший.
Если конфигурация работает в режиме автоматических блокировок, то никаких управляемых там быть не должно. С другой стороны, скорее всего проверку теста будет делать программа на основе тго что в неё заложили... если заложили с ошибками - правильным для неё будет не тот ответ что реально правильный. |
|||
6
Kashey
02.12.18
✎
20:05
|
(5) Из контекста я понял что речь про упр. блокировки, про автоматические нигде не упоминается...
А вот насчет объектных блокировок непонятно. |
|||
7
xXeNoNx
02.12.18
✎
20:08
|
Я за ответ N5
|
|||
8
Kashey
02.12.18
✎
20:32
|
(7) А почему?
Я насколько понял, объектные блокировки - это про интерактивное изменение объектов. В коде есть метод объекта Заблокировать(). Т.ч. не думаю что ПолучитьОбъект() ставит объектную блокировку. |
|||
9
Kashey
02.12.18
✎
20:34
|
(3) Часто приходится использовать экспертные навыки в работе? Насколько вообще полезно на твой взгляд получение Эксперта?
|
|||
10
hhhh
02.12.18
✎
22:35
|
(9) ну сертификат дает какие-то преимущества при приеме на работу, например, во франч. В остальном, абсолютно бесполезная бумажка.
|
|||
11
H A D G E H O G s
02.12.18
✎
22:39
|
(9) Нет навыков эксперта.
Ну, в том смысле, что вся эта подготовка тебе никак не поможет, если ты регулярно не сталкиваешься с большими данными. Большие данные прям суко, прямым в печень дают тебе знать, где ты не прав, не досмотрел, ступил. Эксперт лишь приоткрывает некоторые грани. Но вот конкретно твой вопрос - он бесполезен, я ни разу с ним не сталкивался. |
|||
12
H A D G E H O G s
02.12.18
✎
22:40
|
И, я, Эксперт, не знаю ответа на него. И даже не буду запускать тесты, чтобы узнать.
|
|||
13
Kashey
02.12.18
✎
23:12
|
(10) Ну так-то сам серт понятно - бумажка. Насчёт знаний, полученных в процессе подготовки - тут другое немного. Хотя, если практики нет, всё забывается очень быстро.
|
|||
14
hhhh
03.12.18
✎
01:26
|
(13) лучше прямо к утру выбросить эту фигню из головы. Поэтому лучше после сдачи экзамена нажраться как следует, чтобы все эти "знания" сразу выветрились.
|
|||
15
Tonik992
03.12.18
✎
01:48
|
(14) Посмеялся сначала от души.. А потом почему-то грустновато стало
|
|||
16
Конструктор1С
03.12.18
✎
04:14
|
Думаю 5.
|
|||
17
rphosts
03.12.18
✎
17:30
|
(6) если речь про упр. режим - 5. разумеется (т.е и 2 и 4)
|
|||
18
Фрэнки
03.12.18
✎
17:42
|
то, что варианты 2 и 4 верные - это без сомнения.
А относительно варианта 1 и 3 просто нет уточнения, для каких именно объектов нужно смотреть. Поэтому может возникнуть, может и не возникнуть. Сказано, что ВСЕГДА, но нет, НЕ всегда. Объекты бывают разные. |
|||
19
Fragster
гуру
03.12.18
✎
17:46
|
в разных релизах ответы разные
|
|||
20
Fragster
гуру
03.12.18
✎
17:50
|
например с некоторых пор можно получить ошибку "Нарушение целостности чтения объекта базы данных из-за параллельного изменения объекта другим сеансом" при получении реквизита через точку. Раньше объект с табличными частями читался в транзакции, а теперь нет, и он может измениться в другом сеансе между тем, как прочитана шапка и таб. часть.
|
|||
21
Fragster
гуру
03.12.18
✎
17:51
|
возможно правильный ответ в последней платформе - 2
|
|||
22
Fragster
гуру
03.12.18
✎
17:51
|
но это не точно
|
|||
23
Kashey
03.12.18
✎
18:55
|
(17),(18) Не могли бы пояснить про вариант 4 поподробнее? Не смог найти инфу про наложение объектной блокировки именно в контексте ПолучитьОбъект(). Насколько понимаю, речь идёт про оптимистическую объектную блокировку. Там идёт сравнение версий данных при записи. Я правильно понял?
|
|||
24
NeoVision
03.12.18
✎
19:48
|
в тесте правильный ответ 5
|
|||
25
Фрэнки
03.12.18
✎
19:59
|
если пытаться выразить свою уверенность в ответе 4 на основе такого описания
https://its.1c.ru/db/metod8dev#content:5839:hdoc Объектная блокировка при ПолучитьОбъект() возникает всегда. Другое дело, что в зависимости от того, в каком режиме конфигурация, эта объектная будет раскрываться в разделяемую управляемую или разделяемую автоматическую :-) |
|||
26
Kashey
03.12.18
✎
20:24
|
(25) Статью читал, конечно. В общем вывод сделал такой - если мы считали объект в память, то никакой объектной блокировки на него не накладывается непосредственно. И только при записи механизмы платформы выполняют проверку различия версий, что и реализует оптимистическую объектную блокировку. Могу ошибаться.
По поводу управляемого или автоматического режима - в этом случае разницы нет. ПолучитьОбъект() будет накладывать shared блокировку СУБД в обоих случаях. |
|||
27
Конструктор1С
04.12.18
✎
05:42
|
(26) как это не накладывается? Открываешь документ, который раньше открыл другой пользователь, и при попытке изменить любой реквизит вываливается сообщение
"Не удалось заблокировать запись. Действие (изменение, удаление или блокировка записи) не выполнено." если данные были изменены и сохранены другим пользователем, то выдаст сообщение "Операция не может быть выполнена из за несоответствия версии или отсутствия записи в базе данных" В первом случае срабатывает пессимистическая объектная блокировка, во втором случае оптимистическая |
|||
28
Kashey
04.12.18
✎
12:45
|
(27) В обработке помещаю в переменную значение через СпрОбъект = ФизЛицо.ПолучитьОбъект() ставлю точку останова. В параллельном сеансе изменяю и сохраняю реквизит этого же справочника. Новые данные записываются без вопросов. И только потом, когда в обработке продолжаю выполнение СпрОбъект.Записать() в этот момент происходит ругань. В принципе, про что и писал в (26). Сам факт чтения объекта ничего не блокирует, проверка выполняется только при записи.
|
|||
29
Вафель
04.12.18
✎
12:47
|
объектная блокировка и управляемая - это 2 большие разницы
|
|||
30
rs_trade
04.12.18
✎
12:48
|
(20) я так и не осилил смысл чтения в транзакции.
|
|||
31
Kashey
04.12.18
✎
12:50
|
(29) А я и не спорю. Вот с этим пытаюсь разобраться:
4. Получение прикладного объекта через ПолучитьОбъект() всегда происходит с использованием объектной блокировки |
|||
32
rs_trade
04.12.18
✎
12:50
|
+(30) типа что-бы в рид коммитед читал? но зачем тогда транзакция. это же можно менять уровнем изоляции.
|
|||
33
Kashey
04.12.18
✎
12:54
|
(32) Внутри транзакции с S блокировки можно переключиться на X, но другая транзакция сможет только прочесть, а не изменить прочитанные первой транзакцией данные. ИМХО
|
|||
34
Вафель
04.12.18
✎
12:55
|
(31) нет
https://its.1c.ru/db/v8std/content/-2145783157/hdoc/_top/получитьобъект блокировка |
|||
35
Вафель
04.12.18
✎
12:55
|
||||
36
rs_trade
04.12.18
✎
12:56
|
(3) Чтение через объектную модель всегда приводит к наложению объектной блокировки
ну шаред блокировка вроде всегда присутствует. вопрос что она снимается сразу после чтения данных. |
|||
37
Вафель
04.12.18
✎
12:56
|
получается что 4 не верен, а значит 5 и 6 не верно
|
|||
38
Вафель
04.12.18
✎
12:57
|
(36) шаред блокировка - это НЕ объектная блокировка
|
|||
39
Kashey
04.12.18
✎
12:58
|
(36) Да, всё верно в (38). Речь идёт про объектные блокировки, а не транзакционные
|
|||
40
Kashey
04.12.18
✎
13:03
|
(37) Получается верный ответ 2?
|
|||
41
rs_trade
04.12.18
✎
13:03
|
угу. развели блин зоопарк блокировок. объектные, управляемые, транзакционные.
|
|||
42
el-gamberro
04.12.18
✎
13:04
|
Тут только вариант 4 можно считать верным. Остальное шлак какой-то.
В случае 4 при записи объекта будет проверяться версия объекта. Если версия не подойдет, то будет отказ. Это оптимистичная объектная блокировка. Для объектных блокировок нужно использовать метод Заблокировать(). Ни в одном из вариантов об это не говорится. |
|||
43
Вафель
04.12.18
✎
13:08
|
(40) но 1 и 2 - это же одно и тоже
|
|||
44
rs_trade
04.12.18
✎
13:09
|
(42) а 3 вариант? вроде тоже по смыслу подходит.
|
|||
45
el-gamberro
04.12.18
✎
13:17
|
(44) Так регистры тоже можно читать через такую модель. Но ведь версии записей наборов не ведутся. :)
|
|||
46
el-gamberro
04.12.18
✎
13:19
|
(43) Нет чтение данных регистра не ведет к управляемой блокировке регистра
|
|||
47
rs_trade
04.12.18
✎
13:19
|
(45) да это же просто обертка для сокращения кода. регистры это не объектные данные. вопрос как по мне так с подвохом.
4 вариант. |
|||
48
Kashey
04.12.18
✎
14:44
|
(43) Вариант 1 неверный.
Платформа НЕ устанавливает блокировок при чтении в объектной технике констант, справочников, документов. А устанавливает при чтении наборов записей регистров в объектной технике. Это если верить Филлипову (2-е изд.) |
|||
49
Конструктор1С
04.12.18
✎
16:14
|
(28) первая блокировка срабатывает, когда один пользователь открыл документ, затем второй открывает и пытается его отредактировать
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |