В чем подвох с управляемыми блокировками 1С? Как правильно их применять?

  Рет қаралды 15,715

Веселый1С

Веселый1С

3 жыл бұрын

Вы наверняка знаете, что такое управляемые блокировки и зачем они нужны. Но в их применении есть небольшой подвох. Дело в том, что ими надо уметь пользоваться правильно. Одно из таких правил применения блокировок мы и рассмотрим!

Пікірлер: 175
@Vladimir_Erovenko
@Vladimir_Erovenko Ай бұрын
Отличный преподаватель, Андрей Овсянкин, учился у него на курсах 1С: Разработчик с нуля от Нетологии
@assadtb153
@assadtb153 3 жыл бұрын
Просто,кратко и понятно. Огромное спасибо за информацию
@chekmarevyv9395
@chekmarevyv9395 3 жыл бұрын
В каждом видео надо добавлять длительную операцию чтобы побрынчать на гитаре.
@user-xy1ru4zy2t
@user-xy1ru4zy2t 3 жыл бұрын
Отличный материал, у меня в голове некоторые пробелы заполнились. Спасибо.
@v.saveliev
@v.saveliev 3 жыл бұрын
Спасибо, интересно было узнать. Очень доступно!
@chekmarevyv9395
@chekmarevyv9395 3 жыл бұрын
Видос как всегда ОГОНЬ!!!
@user-cv4ub3sg5z
@user-cv4ub3sg5z 3 ай бұрын
Спасибо! Прояснили!
@RootOfLife
@RootOfLife 7 ай бұрын
Классное видео, огромное спасибо!
@user-tw2zl4cq4u
@user-tw2zl4cq4u 10 ай бұрын
Благодарю! Наконец-то стало понятно
@shootnicktm9445
@shootnicktm9445 3 жыл бұрын
И это тот случай когда комменты под видосом тоже важны )
@maksimnetkachev4148
@maksimnetkachev4148 3 жыл бұрын
Отличный материал. Информация об этом есть, но ее может быть тяжело найти. Например, стандарт 460 говорит "Чтение данных другими транзакциями будет невозможно только в том случае, если в текущей и других транзакциях устанавливаются несовместимые управляемые блокировки". Чем как бы намекает, что при чтении тоже хорошо бы установить блокировку. Но лучше всего это можно понять на практике. Самому или посмотрев, как практикуются другие :-) Тем, кто не хочет сам, теперь можно давать ссылку на это видео.
@user-hw7tq2iv1n
@user-hw7tq2iv1n 6 ай бұрын
Блин, вот вся и проблема доков по 1с, что они как-бы и намекают. Проработал в 1с 5 лет, сейчас учу python и там совсем другая история, конечно везде есть исключения, но все же, в основном, там все четко. Никто не на что не намекает, а прямо пишут, что так можно, так нельзя и почему так все работает, по крайней мере инфо найти в разы проще. Одна дока по FastAPI чего стоит, это же просто песня. Я, если что не в ваш огород камень, исключительно в сторону доки 1с. А по видосу - просто пушка.
@helen4616
@helen4616 Жыл бұрын
Отличное видео!
@yellow_club
@yellow_club 3 жыл бұрын
Четенько!
@AlekseiAstahov
@AlekseiAstahov Жыл бұрын
Спасибо огромное!!! Чистая правда про документацию.
@Одинокий_Гитарист
@Одинокий_Гитарист 3 жыл бұрын
А вообще, на подобные тонкие вопросы отвечаю, что проверяю как это работает для конкретных условий (платформа, субд) тестом как у вас. И если этот мой ответ считается не правильным, если возможный работодатель считает, что нужно зазубрить набор догм и эти догмы не могут меняться с течением времени (самой же фирмой 1С в новых версиях платформы), то и отлично, мне с таким работодателем не по пути.
@user-mb3km2te8i
@user-mb3km2te8i 3 жыл бұрын
Отличное видео. Но вот если бы можно было скачать dt-ник от демо базы, было бы еще лучше
@user-jt1xr7vi5n
@user-jt1xr7vi5n 8 ай бұрын
Вот видео в точку, теория теорией, но я тут решил поэкспериментировать с этими блокировками и тоже наткнулся на этот подвох и не понимаю - почему в другом сеансе у меня прекрасно всё читается . Спасибо за разъяснение, только тут это нашёл, подписался
@user-jt1xr7vi5n
@user-jt1xr7vi5n 8 ай бұрын
Добавлю, что это как бы и логично (спрашивать разрешение разделяемой блокировкой) , иначе как бы формировались отчёты, когда работало бы одновременно много пользователей с исключительными блокировками
@g240596448
@g240596448 3 жыл бұрын
1. Андрей однозначно молодец, что занимается просветительской деятельностью. Впрочем, по новому закону эта лавочка прикроется и нужно будет получать согласования на просвещение (то ли юмор, то ли слезы). 2. Ошибочно сформулированная фраза из статьи Белоусова - ну это же не документация, а фрагмент книги. Поэтому претензия к автору книги. Но это по прежнему лучшее объяснение блокировок для новичков. А уж сколько там неточностей - не важно. Перестанут быть джунами - разберутся как там на самом деле )) Претензия засчитана ) PS: А вдруг в 2007 году так оно и было ??? ))
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Статья хорошая про блокировки, да. Одна из лучших. Но она КАТАСТРОФИЧЕСКИ недостаточно информативна. А все что более глубоко - оно очень технически сложно написано. Сходу очень тяжело понять неподготовленному мозгу
@You2Ber42
@You2Ber42 3 жыл бұрын
@@user-nd9cv4pd5m Базовые моменты легко понять если знать базовые принципы и внутреннее устройство управляемых блокировок, и иметь хоть немного развитое абстрактное мышление. Как я выше писал: "Знание нескольких принципов освобождает от знания множества фактов". Человек который знает как устроены УБ поймет что с запросом они работать не смогут. Поймет ограничение и преимущества такого подхода. Дальше уже могут остаться вопросы по особенностям реализации, но это уже уровень senior разработчиков. А Jun/Mid достаточно знать как устроено а "не как выглядит".
@g240596448
@g240596448 3 жыл бұрын
@@user-nd9cv4pd5m все, что не понятно - "оно вам не нужно" ))
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Согласен по всем пунктам. Все так и есть.
@user-fz1cv8fq6w
@user-fz1cv8fq6w 3 жыл бұрын
Неужели всем ютуб каналам и сайтам, где есть образовательный контент нужно будет получать согласование?
@akrynetsky
@akrynetsky 2 жыл бұрын
Тайм-коды: 00:00 Начало 00:30 Нигде! Нигде толком не написано как правильно 02:05 Зачем нужны блокировки(с примерами)? 02:15 Пример с одним розовым Айфоном 03:35 Что было до Управляемых блокировок 04:05 Недостатки Автоматических блокировок 04:30 Что такое Управляемые блокировки 05:00 Цитата статьи ИТС. Управляемые блокировки не действуют при чтении запросом 06:05 Как работает менеджер управляемых блокировок 1С 06:40 Обычный запрос не работает с управляемыми блокировками 07:10 Обзор тестовой конфигурации 08:00 Воспроизведение примера 10:10 Чтение без наложения блокировки - все читается 10:50 Чтение с установленной блокировкой по регистру - ждем 11:55 Мораль 12:10 Для чего нужны разделяемые управляемые блокировки
@Garik_Vorota
@Garik_Vorota 7 ай бұрын
Даже не понимаю какой больной на голову человек придумал контролировать остатки перед проведением, тем самым создав геморрой с блокировкой.
@alexflanker25
@alexflanker25 2 жыл бұрын
Да, мух от котлет отделить очень важно сразу, особенно начинающему специалисту, а в большинстве литературы написано так, будто ее должен читать уже знающий механизмы СУБД человек. Да и ошибок в литературе в именно выборе формулировок полно, позволяют себе вольности в поименовании, что недопустимо в таких точных вещах, как СУБД
@krutoyinfo
@krutoyinfo 6 ай бұрын
начинающему это нах не надо
@Одинокий_Гитарист
@Одинокий_Гитарист 3 жыл бұрын
Добрый день! А какой смысл второму сеансу просто читать данные? Чтобы что? Ведь целью схемы является возможность продажи вторым сеансом, а для продажи он заблокировать не сможет. Ну отчетики по остаткам в момент продажи будут работать, не более.
@QVRJ
@QVRJ 3 жыл бұрын
Какие все начитанные! Постоянно поясняю коллегам, что управляемая блокировка блокирует только другую упр блокировку. Реально часто народ ошибается.
@Das.Kleine.Krokodil
@Das.Kleine.Krokodil 3 жыл бұрын
если тестировать свои блокировки то это проявится на первом же тесте
@alexeibelousov3279
@alexeibelousov3279 3 жыл бұрын
очень годно, реально про такое инфы практически нет в доступном виде. Благодарю. Наверное на ИТС эта спорная фраза имела ввиду в запросах если блокировать для изменения если таблицы ставишь, это же исключительная блокировка этих таблиц насколько я понимаю, вот ее менеджер и обрабатывает
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Нет. ДЛЯ ИЗМЕНЕНИЯ обрабатывает сама СУБД, а не менеджер. Про это как раз говорится в середине видео
@alexeibelousov3279
@alexeibelousov3279 3 жыл бұрын
@@user-nd9cv4pd5m по сути блокировать для изменения в запросе это аналог автоматической блокировки всей таблицы, теперь все встало на свои места, спасибо. Тогда действительно непонятно что имелось ввиду на итс
@nixel2007
@nixel2007 3 жыл бұрын
@@alexeibelousov3279 мало того, если на конфигурации/таблице стоит режим управляемых блокировок, то инструкция "для изменения" вообще игнорируется :)
@user-xp8iq4od3g
@user-xp8iq4od3g 3 жыл бұрын
@@alexeibelousov3279 для изменения, это решение проблемы появления дедлока вида повышения уровня блокировки ресурса, в конфах на автоматических блокировках. и блокировка ставится не исключительная (X), а блокировка обновления (U) и не на всю таблицу
@You2Ber42
@You2Ber42 3 жыл бұрын
А ещё в доступном виде нет инфы о том как ходить, как умываться. Просто попробуйте понять а как иначе чем через мьютекс (таблицу в памяти) могут работать платформенные УУ если в СУБД нет такого функционала? СУБД (поддерживаемые 1с) не умеют блокировать абстрактные "пространства" они умеют блокировать конкретные Таблицы, Страницы, Строки. Когда вы пишете УстановитьУУ на измерение №1, как по вашему платформа это может транслировать в СУБД. Есть отличное выражение: "Знание нескольких принципов освобождает от знания многих фактов" В мире разработки изначально подразумевается что Программист имеет базовое понимание принципов работы СУБД, этому учат в институте и не один курс. (если что фронтендеров я к программистам не отношу) И люди которые 90% времени занимаются тем что работают с СУБД (1С ники) уж как минимум базовые моменты понимать должны.
@user-ir8ge7uq5t
@user-ir8ge7uq5t Жыл бұрын
Материал отличный! Сколько я читал в ИТС про блокировки, только путаешься. А тут все по полочкам и понятно, как действовать в случае управляемых блокировок. Только вот встает вопрос, как накладывать блокировку, когда в твоем запросе около 10 таблиц)
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
Спасибо за отзыв! А ваш вопрос про 10 таблиц в запросе говорит о том, что вы невнимательно смотрели. Запрос не имеет отношения к управляемым блокировкам. Хоть сто там таблиц пусть будет, он выполнится все равно. Блокировки "блокируют" только другие блокировки, а запросы вообще не при чем.
@user-ir8ge7uq5t
@user-ir8ge7uq5t Жыл бұрын
@@user-zr4uw5ng3r Я понял, что механизм блокировок отдельно от выполняемых запросов) Похоже неправильно сформулировал вопрос, получается, что на все таблицы в пакете запросе тоже стоит накладывать блокировки управляемые (если у объекта метаданных стоит управляемый режим блокировок)?
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
@@user-ir8ge7uq5t нет, ни в коем случае. Только на те запросы, в которых требуется (а как понять в каких требуется - тут инструкции нет.) Если накладывать на все - будут сплошные тормоза. В большинстве случаев достаточно блокировок СУБД без дополнительных управляемых.
@user-ir8ge7uq5t
@user-ir8ge7uq5t Жыл бұрын
@@user-zr4uw5ng3r Благодарю вас за ответ!
@user-sf2qg5hk9d
@user-sf2qg5hk9d 3 жыл бұрын
Также явно стоило упомянуть для усиления эффекта, что управляемые блокировки можно наложить на не существующие данные. и им в принципе всё равно на данные, там главное области блокировки, но это уже в следующем видео ликбеза
@Crisis2424
@Crisis2424 3 жыл бұрын
печаль, но если только эти данные в будущем не создадутся...хотя не знаю даже, имеет ли смысл)
@leemuar
@leemuar Жыл бұрын
Совершенно верно. Именно поэтому аналогия с мьютексом такая точная: мьютексу тоже все равно есть данные или нет, он существует, блокируется и разблокируется отдельно от данных
@user-ql3tm3ff4c
@user-ql3tm3ff4c 2 жыл бұрын
А в случае с записью, схема блокировок какая-то более сложная? Попробовал наложить блокировку на регистр, а потом провести (с наложенной блокировкой) два документа: один на "Расход", а второй на "Приход". "Приход" провелся спокойно (хотя в теории, попадал под блокировку), а "Расход" не провёлся. Это стандартное поведение, что на "Приход" блокировки не влияют?
@user-zr4uw5ng3r
@user-zr4uw5ng3r 2 жыл бұрын
"Стандартного" поведения никакого нет. Зависит от того, что именно у вас в коде написано и как наложены блокировки. Без конкретного фрагмента кода ничего сказать нельзя, почему у вас работает так, а не иначе.
@user-xs2wd8cn8r
@user-xs2wd8cn8r 3 жыл бұрын
Андрей, если ты стал обозревать всякие сложные штуки, замути плз видос про потоки) Для чего они вообще нужны и как с ними работать
@user-zr4uw5ng3r
@user-zr4uw5ng3r 3 жыл бұрын
В 1С нет потоков. Непонятна просьба: что именно рассказать?
@VladFrost
@VladFrost 3 жыл бұрын
@@user-zr4uw5ng3r возможно, имелись ввиду файловые потоки?
@user-xs2wd8cn8r
@user-xs2wd8cn8r 3 жыл бұрын
​@@user-zr4uw5ng3r у меня ютуб уже раз 5-ый стирает коммент. Речь о ветке в синтаксис-помощнике "Работа с двоичными данными", хотелось бы более подробно раскрыть тему, по аналогии со статьей из зазеркалье "Развитие средств работы с двоичными данными". Для чего нужно, в каких реальных задачах нужно применить, как с этим работать и т.д.
@user-dv2bc9qy3i
@user-dv2bc9qy3i 3 жыл бұрын
Расправленный диван, гитара в углу намекают нам на интимность подымаемой темы в топике.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
прочел как "расплавленный". долго думал :)
@alexeysosnoviy200
@alexeysosnoviy200 3 жыл бұрын
@@user-nd9cv4pd5m +1
@Vas9Petrov
@Vas9Petrov 3 жыл бұрын
@@user-nd9cv4pd5m +1
@1C8Dancer
@1C8Dancer 3 жыл бұрын
Честно говоря, ожидал что в конце отсчета будет взрыв.
@YuriyAlexandrovich
@YuriyAlexandrovich 3 жыл бұрын
Доброго, по "занудничаем" немного, материал "Профессиональная разработка в системе "1С:Предприятие" Том 1, стр. 112 - "Механизм управляемых блокировок", стр. 113 - "Уровни изоляции транзакций", табл. 4.20
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Не понимаю, как эта таблица связана с установкой управляемой блокировки. В главе речь про то, что при использовании *режима* управляемых блокировок, при выполнении запросов используется описанный в таблице уровень изоляции транзакций, а на сами таблицы/записи накладываются описанные в таблице блокировки на стороне СУБД. Но на установку разделяемых/исключительных управляемых блокировок через объект БлокировкаДанных это абсолютно никак не влияет.
@alexramov4165
@alexramov4165 Жыл бұрын
ДОбрый вечер. Ролик конечно старый. Если можно вопрос? Все отлично Вы показываете на файловой базе? Как это будет работать на любом SQL? На СУБД SQL эти блокировки отработают также или немного иначе??? Это вопрос я сам не знаю полного ответа?
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
Добрый день. Ролик как раз про то, что управляемые блок ровеи отрабатывают не на СУБД и от СУБД не должны зависеть.
@alexramov4165
@alexramov4165 Жыл бұрын
@@user-zr4uw5ng3r Получается если в нетиповом приложении часть обращений к регистрам сделаны через блокировки, а я не установил блокировки, то запрос пройдет и чтобы исправить ситуацию нужно всегда обращаться через блокировки как в ролике показывается. Нужно переписать прямое обращение запросом на обращение через блокировки тогда мы будем ждать когда освободится база? Примерно правильно понял?
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
@@alexramov4165 да. Запрос пройдет, независимо от того стоит где-то блокировка или нет
@user-nd9cv4pd5m
@user-nd9cv4pd5m Жыл бұрын
Добавлю, что блокирвоку можно словить и на уровне СУБД, если читать/писать в транзакции
@Crisis2424
@Crisis2424 3 жыл бұрын
Мораль: Мораль - это большой костыль от 1С получается)))
@LDO6
@LDO6 4 ай бұрын
Зачем они этот косяк "В результате любой запрос к данным прежде всего обрабатывается собственным менеджером транзакционных блокировок" в статье оставляют? Все что написано в оф документации надо перепроверять.
@user-cb2yf6xw1b
@user-cb2yf6xw1b 3 жыл бұрын
Так то да. Но вопрос - где можно применять ответственное чтение? Для контроля остатков в транзакции - там уже всё заблокировано. А если получать остатки для отображения менеджеру - добавление блокировки увеличит время формирования остатков, а остатки по товару могут измениться уже после формирования отчета.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
На этот вопрос нельзя ответить в рамках одного лишь комментария на ютубе. Тема очень большая и тянет на курс. Такие курсы уже есть
@user-bj6tg4vh3d
@user-bj6tg4vh3d 8 ай бұрын
Усе написано в главе 9 работа с данными. Разделяемый режим блокировки подразумевает, что заблокированные данные не могут быть изменены другой транзакцией до окончания текущей транзакции. Исключительный режим блокировки подразумевает, что заблокированные данные не могут быть изменены другой транзакцией до окончания текущей транзакции, а также не могут быть прочитаны ! другой транзакцией, устанавливающей разделяемую блокировку на эти данные.
@user-ni4jk9gv6b
@user-ni4jk9gv6b 3 жыл бұрын
Я это знал. Ещё подумал: в чём может быть подвох? Возможно, я просто с блокировками познакомился не из разрозненных источников, а из курса курсы-по-1с.рф/1c-v8/optimization/ несколько лет назад. Там так же всё разжевали понятно. Это видео несомненно полезно, буду его рекомендовать тем, кто "не в теме".
@alexeysosnoviy200
@alexeysosnoviy200 3 жыл бұрын
Не поверите, но одного оооочень опытного 1сника бомбило на пол телеграмма, когда он это осознал...
@You2Ber42
@You2Ber42 3 жыл бұрын
@@alexeysosnoviy200 что заставляет задуматься о его опытности именно в качестве 1С разработчика. Допустим он не знал этого, но он же как то в голове представлял как это работает? Вроде Никита не из тех кто такие важные механизмы использует как черный ящик, понятно что досконально можно не знать, но самое базовое представление нужно же иметь. И как по вашему УУ в принципе могли бы работать с запросами (на уровне СУБД) ?
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Если начать думать о том "КАК ОНИ МОГЛИ БЫ РАБОТАТЬ", то обязательно придет вывод: "НИКАК". Однако для этого нужно в своей голове самому написать менеджер блокировок, который понимает текстовые запросы, для чего обладать худо-бедно осязаемым бэкграундом в низкоуровневой разработке. А есть статья на ИТС, которая говорит: "чувак, у нас все запросы проходят через блокировки, не парься" на второй чаше весов. Поверьте, очень многие слишком заняты рутинными задачами 1С-кодинга, чтобы задаваться вопросом "А как бы я написал такие блокировки?"
@You2Ber42
@You2Ber42 3 жыл бұрын
​@@user-nd9cv4pd5m "как я бы написал" и "как оно примерно может работать" на мой взгляд достаточно далеко друг от друга. Для меня толчком к "задуматься" много лет назад стала ситуация когда я заблокировал не существующий "Склад0" (записей по нему не было в базе), а потом попытался заблокировать существующий товар (без указания склада). Тогда и возник вопрос, а как это в принципе может работать? Мы же когда пишем запрос понимаем что наш запрос транслируется в СУБД, что наши временные таблицы аналоги временных таблиц, понимаем что измерения это кластерный индекс и.т.п. По УБ должны быть такие же знания.
@nguninb
@nguninb 3 жыл бұрын
Ха-ха-ха. С 1 апреля!
@PTolkachev
@PTolkachev 3 жыл бұрын
На ИТС в разделе "Ответственное чтение данных" про это всё написано.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
"Впервые я услышал об этом, когда пришел рабочий. Замечу: это было вчера. Я решил, что он пришел вымыть окна, а он сказал, что пришел снести мой дом. -Мистер Дент, маршрут нового шоссе был выставлен для всеобщего ознакомления в местном бюро планирования и висел там девять месяцев. - Ага, как только я узнал, то сразу же помчался прямо в бюро. Это было вчера в полдень. Вы ведь не особенно утруждали себя предупреждениями? Я имею в виду: никому ни слова, ни одной душе, правда? - Но маршрут был обнародован для… - Обнародован? В конце концов мне пришлось спуститься в подвал, чтобы отыскать его! - Верно, там у нас находится отдел информации. - С фонариком! - Наверное, света не было. - И ступенек тоже! - Но послушайте, вы ведь нашли план!" (С) Автостопом по галактике
@user-nq9ip8qf1q
@user-nq9ip8qf1q 3 жыл бұрын
@@user-nd9cv4pd5m Материалы из раздела "Система стандартов и методик разработки..." надёжнее, чем "обычные" статьи на ИТС. Это связано с происхождением материалов для разных разделов ИТС. Так что лучше начинать с подвала ;-) стандартов и методик. Чаще всего глубже можно и не копать.
@vladyan01
@vladyan01 Жыл бұрын
Кроме списания остатков где ещё полезно применять блокировки?
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
Везде, где вы изменяете данные, и до окончания изменения никто не должен прочитать даже старую версию. Как правило, это изменения связанные с физическими объектами, их количеством, местонахождением и существованием.
@krutoyinfo
@krutoyinfo 6 ай бұрын
Для коррекции остатков есть человек-товаровед
@user-lt1it1cu6m
@user-lt1it1cu6m 2 жыл бұрын
Хахаха, А = 2, я думал я один такой))))
@user-fl1ni4hb9n
@user-fl1ni4hb9n 2 жыл бұрын
Всегда делаю А = 1. А = 2 это ересь какая-то.
@nikolosmiron1481
@nikolosmiron1481 9 ай бұрын
Жаль не показали какой режим блокировок установлен для конфигурации. Возможно в автоматическом режиме это будет работать по другому. Ведь если установлен управляемый режим, автоматические блокировки не работают и наоборот в автоматическом режиме управляемые блокировки не должны иметь эффекта.
@user-zr4uw5ng3r
@user-zr4uw5ng3r 9 ай бұрын
Автоматические блокировки устаревший режим, оставленный для совместимости со старыми (около 10 лет) версиями платформы. Актуальность особенностей этого режима сомнительна
@AlexanderZdanevich
@AlexanderZdanevich 3 жыл бұрын
В документации к платформе, расписано более корректно.
@nikolaygunin5360
@nikolaygunin5360 3 жыл бұрын
Ух ты)
@You2Ber42
@You2Ber42 3 жыл бұрын
там без яблок и ёжиков, не все 1С Программисты способны воспринимать.
@Alexey_Bous
@Alexey_Bous Жыл бұрын
@@You2Ber42, у тебя что-то все комментарии под этим видео какой-то ненавистью "попахивают"....
@Crisis2424
@Crisis2424 3 жыл бұрын
Где же ты был раньше))Блиииин, фига се
@g240596448
@g240596448 3 жыл бұрын
А рассказать экспертам какую цепочку действий с блокировками выполняет MSSQL при изменении данных (хотя бы в RCSI) никто не хочет ? )) Как устанавливаются и снимаются U/IU, как они конвертируются в X/IX. Каких именно объектов это касается и в каком случае (кучи, кластерные/некластерные индексы, строки, страницы, таблицы). В чем разница между сиками и сканами в части блокировок.
@user-em7wb5ct2x
@user-em7wb5ct2x 3 жыл бұрын
Да ты что, они только что управляемые блокировки освоили. Куда им до таких глубин.
@krutoyinfo
@krutoyinfo 6 ай бұрын
да хуй забей вобще на эти блокировки
@rjoker6270
@rjoker6270 2 жыл бұрын
Итог примера: если нужен контроль остатков - тогда нужно ставить блокировку перед чтением остатков, но не разделяемую, как говорит автор, а исключительную. Если сделать как говорит автор, и установить разделяемую блокировку перед чтением остатков, вы получите дедлок, или неустранимый конфликт блокировок. И вот почему - первый кассир установит разделяемую блокировку перед своим чтением, второй кассир установит такую же разделяемую блокировку перед своим чтением остатков, так как разделяемые блокировки между собой совместимы - все будет хорошо, оба смогут прочитать остатки. Все хорошо, но до того момента, как первый кассир не начнет списывать товар, а при списании - он попытается установить уже исключительную блокировку, но сделать это не сможет, так как ему будет мешать разделяемая блокировка второго кассира. При списании товара вторым кассиром - ситуация будет аналогичная, только мешать уже будет разделяемая блокировка первого кассира. И вот чтобы такой проблемы не было, перед чтением остатков - нужно ставить не разделяемую блокировку, а исключительную. Само собой если товар не пересекается, проблемы не будет и так)
@akrynetsky
@akrynetsky 2 жыл бұрын
Как я понял из видео на 08:05 Управляемая блокировка накладывается установкой Исключительной блокировки, а разделяемая, как бы проверяет наложена ли блокировка на значение измерения объекта или нет. Поправьте если не так понял.
@rjoker6270
@rjoker6270 2 жыл бұрын
@@akrynetsky а для каких целей проверять наложена блокировка или нет? Ведь если вы устанавливаете блокировку - вы и так это знаете, это не черный ящик. Запросы не накладывают блокировку только в 1С 8.3 (rcsi=on), а вот в режиме 8.2 при таком же запросе будет S блокировка (заблокировал запись, прочитал запись, разблокировал).
@Alexey_Bous
@Alexey_Bous Жыл бұрын
​@@rjoker6270, а вот своим комментарием вы так и не ответили на вопрос от Александра выше. Цель блокировки - это запретить другим сеансам, т.е. пользователям, читать или записывать изменяемые в текущий момент данные в базе. От вашей фразы "вы устанавливаете блокировку - вы и так это знаете" у меня какое-то недоумение сложилось. Вы вообще в курсе, что в базе работают ещё и пользователи, а не только программисты? Каким образом, к примеру, сотрудник склада Василий должен знать, что его коллега Иван уже проводит документы на тот же товар, что и он сейчас?!
@user-dk2xt8zh8i
@user-dk2xt8zh8i 2 жыл бұрын
О, гитарка ))) сам гоняю, что за палка?
@user-zr4uw5ng3r
@user-zr4uw5ng3r 2 жыл бұрын
Конкретно эта - ямаха какая-то, марку забыл. Страт s-s-h. Купил на авито, чтобы делать дждждж
@user-dk2xt8zh8i
@user-dk2xt8zh8i 2 жыл бұрын
@@user-zr4uw5ng3r красота ))) спасибо за видосы.
@user-xh5hd3my4t
@user-xh5hd3my4t 2 жыл бұрын
то есть простые запросы на чтение не блокируют данные и могут читать заблокированные данные. Логично)
@user-nd9cv4pd5m
@user-nd9cv4pd5m 2 жыл бұрын
Блокируют, но только на уровне СУБД по принципу READ COMMITTED (без грязного чтения)
@user-xh5hd3my4t
@user-xh5hd3my4t 2 жыл бұрын
@@user-nd9cv4pd5m спасибо за уточнение. Запомню.
@k12370rty
@k12370rty 3 жыл бұрын
айфоны, samsung.. лучше бы уже пепси и кола)))
@alexandr9426
@alexandr9426 Жыл бұрын
Спасибо за видео. Не реклама, но для тех, кто интересуется блокировками и отличием управляемых от автоматических, очень рекомендую видео от Виктора Богачева. На примере очень хорошо рассказывает различную применимость каждой kzfaq.info/get/bejne/iKyKp9hyndCUfn0.html Всем добра!
@MakcNmyc
@MakcNmyc 3 жыл бұрын
У вас чтение идет вне транзакции. "Менеджер ТРАНЗАКЦИОННЫХ блокировок" не работает вне транзакции.
@user-zr4uw5ng3r
@user-zr4uw5ng3r 3 жыл бұрын
В каком месте у меня чтение идет вне транзакции?
@MakcNmyc
@MakcNmyc 3 жыл бұрын
​@@user-zr4uw5ng3r Не увидел, что выше по стеку есть. Можете кинуть конфу на облако? Смотреть на видео не удобно конечно
@MakcNmyc
@MakcNmyc 3 жыл бұрын
@@user-zr4uw5ng3r Короче поборол свою лень и накидал сам. Дело виртуальной таблице остатков. Если обращаться к ней без периода то данные вытаскиваются напрямую из таблицы остатков, которая не заблокирована. Т.е. если делать запрос к таблице движений или добавить дату в параметры виртуальной таблицы, то механизм отработает.
@MakcNmyc
@MakcNmyc 3 жыл бұрын
@@user-zr4uw5ng3r вот такая вот фича (косяк). Но в общем случае механизм работает. Т.е. утверждение о том, что блокировка не работает, если не ввести блокировку неправильно.
@user-zr4uw5ng3r
@user-zr4uw5ng3r 3 жыл бұрын
@@MakcNmyc попробую проверить и отпишусь
@user-xp8iq4od3g
@user-xp8iq4od3g 3 жыл бұрын
не уже ли более-менее опытные 1С программист не понимает, что запрос (1Сный селект) никак не пересекается с управляемыми блокировками? даже не думал, что это проблема для кого-то. в курсах, в которых про блокировки рассказывают, четко дают понять, что запрос на стороне 1С никаких блокировок не накладывает. Статью с яблоками читал, но эту строчку бредовую никогда не замечал
@Lebowski84
@Lebowski84 3 жыл бұрын
Тоже самое читал ее 3- 4 раза, за эту фразу глаз не зацепился
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Да, все так и есть. Тема блокировок с одной стороны раскрыта много где, а с другой - все ещё туманна. Мы полагаем, что нужно больше материалов на эту тему. Чем и занимаемся :)
@Alexey_Bous
@Alexey_Bous Жыл бұрын
АБ, как это управляемые блокировки и запрос не связаны? Вот в транзакции, т.е. в неделимой операции, ты их связываешь, когда сначала создаешь блокировку, а только потом выполняешь запрос.
@user-vu5kp5om1r
@user-vu5kp5om1r Жыл бұрын
Сам случайно выяснил что после наложения управляемой блокировки, запрос свободно читает якобы заблокированные данные. Был не приятно удивлен.
@SergeyMazurkin
@SergeyMazurkin 3 жыл бұрын
мютекс?! т.е. "управляемые блокировки" - это mutex на уровне 1С, а не lock на уровне базы?!
@AlexanderZdanevich
@AlexanderZdanevich 3 жыл бұрын
Именно так. На уровне серверов 1С. Там много вопросов к этому механизму.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Ну вот видите, кто-то знал, кто-то не знал. Повторить полезно
@SergeyMazurkin
@SergeyMazurkin 3 жыл бұрын
а в кластере 1С серверов как этот мьютекс работает?
@AlexanderZdanevich
@AlexanderZdanevich 3 жыл бұрын
@@SergeyMazurkin как-то хранит между элементами кластера :)
@AlexanderZdanevich
@AlexanderZdanevich 3 жыл бұрын
Как я понял, там при достижении определенного количества блокировок, начинаются эскалации.
@user-ru7kz3rq5x
@user-ru7kz3rq5x Жыл бұрын
Мне кажется ,что на ИТС как раз все правильно написано, без всяких подвохов... Автор в этом видео ни разу не упомянул про истинное предназначение Управляемых блокировок, уж точно не что бы айфоны без драки списывать - с этим справлялись и автоматические блокировки. Главную задачу , которую решают управляемые блокировки - это борьба с взаимоблокировками... То что запрос выполняется на блокированные записи - это абсолютно логично, может просто дело в транзакции !?
@user-zr4uw5ng3r
@user-zr4uw5ng3r Жыл бұрын
Лолшто?
@g240596448
@g240596448 3 жыл бұрын
Или еще тема: почему упр.блокировка документов/справочников по дополнительным полям - говно ?
@Lebowski84
@Lebowski84 3 жыл бұрын
Зачем вообще ставить упр. блокировку на документы и справочники? Сама идея гавно
@g240596448
@g240596448 3 жыл бұрын
@@Lebowski84 Смотря где и почему. Идея ровно такая же и такого же цвета, что и с наборами. Речь о возможности, а не необходимости. Соглашусь, что ситуация редкая, но бывает (в основном при изъянах архитектуры). Можно вместо этого сделать РС с измерением "документ" и его блокировать. А если такого РС нету и пишем именно документ? PS: вне от вашего желания блокировка на ключ будет всегда. Дело не в "зачем", а "когда".
@Lebowski84
@Lebowski84 3 жыл бұрын
@@g240596448 на уровне юзера на справочниках и документах работает объектная блокировка, которая пессимистичная ) я все время путаю что там оптимистичное что пессимистичное )
@g240596448
@g240596448 3 жыл бұрын
@@Lebowski84 при чем тут пользователи вообще? Про них тут речи нигде не было )
@ivperivm10
@ivperivm10 Жыл бұрын
@@Lebowski84 все, удаляю erp, идея говно. Блокировка справочников нужна для резрешения проблем дублей, только блокируются несуществующие данные
@You2Ber42
@You2Ber42 3 жыл бұрын
Вроде совсем очевидные вещи, по моему проблема на ровном месте. Да есть неточность в документации, но прям так драматизировать я бы не стал. Нужно быть очень начинающим разработчиком что бы не понимать что запрос будет читать не зависимо от управляемых. Плюс есть подробная методика контроля остатков с примерами и начинающий разработчик будет действовать по ней. Я если честно ожидал более глубокого взгляда, рассказать как устроенны блокировки (что это обычная табличка в ОЗУ) рассмотреть не очевидные моменты их работы. Например: Склад1 Самсунг Склад2 Самсунг Склад3 Айфон Вы ставите эксклюзивную УБ на "Самсунг", сможете ли вы поставить эксклюзивную управляемую блокировку (в другой транзакции) на Склад1? Склад3? Если на склад 1 не сможете то почему? Как платформа узнает что нельзя ставить на склад 1 имея информацию только о "Самсунг". Будет ли она делать запрос к СУБД? Когда она будет делать? Когда вы ставите на "Самсунг" или когда ставите на "склад1". Или например сможете ли поставить на "Склад3" + "Самсунг" ? Как работает поглощение управляемых блокировок, в одной транзакции. Сможете ли вы в одной транзакции сначала поставить блокировку на Самсунг, а потом поставить: Склад2 Самсунг Склад3 Айфон Сможете ли вы после Склад2 Айфон в другой транзакуии поставить блокировку на Склад3 Айфон, просто на Айфон и.т.п.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Как раз такой информации-то много. А просто и понятно, про то, как неправильно делать - мало. Кроме того, я опрашивал реальных не юных 1сников, мало кто знает, что запросы не учитывают блокировки
@You2Ber42
@You2Ber42 3 жыл бұрын
​@@user-nd9cv4pd5m как думаете сколько людей правильно ответит на вопросы выше? Даже если погуглят / задумаются. Работа с пространствами требует определенного абстрактного мышления и четкого понимания как это устроено. С ваших слов полно информации об особенности работы УБ и все понимают как устроена блокировка пространства , но при этом не понимают что это не влияет на запросы? Не сходится.
@You2Ber42
@You2Ber42 3 жыл бұрын
@@user-nd9cv4pd5m не хотите сделать видео про это? Было бы очень познавательно и полезно. Особенно для тех кто думал что УБ с запросами работает. Если уж такие очевидные вещи мир им перевернули, то подробная информация о том как в реальности работает им мозг взорвет. Я в свое время очень удивился тому как 1С накладывает УБ и что и сколько она читает из ИБ при этом. Если подумать то по другому и не сделать но есть и моменты которые на мой делитантский взгляд можно было бы сделать оптимальным (то самое массовое считывание даных из ИБ при установке УБ). И эти моменты я кстати не нашел где описаны, увидел только в ТЖ в тот момент когда озадачился вопросом "Как они это делают?"
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Еще бы где-нибудь была эта подробная информация о технической реализации. Большинство механизмов платформы вообще не описаны с технической точки зрения, поэтому рассказать о том, как оно там "в реальности" можно только потратив дофигища времени на реверс-инжиниринг. ну, либо устроиться в 1С и словить NDA на всё.
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
@@You2Ber42 вы приписываете мне то, чего я не говорил. Смотрите: вы говорите, что я говорю "информации полно И все понимают", а я же на самом деле говорю: "информации полно". Таким образом, а говорю А=true, но не говорю А and Б = true. Вторая часть выражения вами выдумана
@Aleks-jm3kg
@Aleks-jm3kg Жыл бұрын
Я уж думал автор расскажет, как несмотря на блокировки можно продать два Айфона имея только один. Сам по себе механизм блокировок отрабатывает в исключительно редких случаях. Как при этом можно еще и умудриться как-то неправильно использовать эту самую блокировку вообще непонятно.
@krutoyinfo
@krutoyinfo 6 ай бұрын
ставь не ставь эти блокировки, если начало тупить - ничего не поможет
@user-fz2xt9vv7y
@user-fz2xt9vv7y 3 жыл бұрын
Супер, всегда считал что писатели в 1с слабые. А то что ты показал - просто вредительство с их стороны
@You2Ber42
@You2Ber42 3 жыл бұрын
Одна ошибка в одном из множества текстов это слабые писатели? Почитайте материалы по PG SQL, и сравните с тем как вам всё разжёвывают в материалах по 1С. Очень много текстов у 1С написанных как для умственно отсталых, с яблоками, коровами и.т.п. Возьмите Oracle, возьмите PG SQL там вам сразу становится понятно что перед тем как читать документацию нужно подтянуть базовые знания. Никто вам на зайчиках там примеры расписывать не будет.
@user-fz2xt9vv7y
@user-fz2xt9vv7y 3 жыл бұрын
@@You2Ber42 да, лучшие материалы для обучения 1с появились вне 1с. Как справочник я их отлично использую, и понимаю что там тоже есть ошибки.
@user-iw1ie7tn6j
@user-iw1ie7tn6j 3 жыл бұрын
тема не раскрыта. вообще, делать блокировку перед чтением это как-то костыльно. Правильнее говорить о чтение в транзакции или не в транзакции. А тут уже пойдут нюансы связанные с версией платформы, с типом базы (файловая или нет) и даже с типом сервера баз данных
@user-nd9cv4pd5m
@user-nd9cv4pd5m 3 жыл бұрын
Чтение в транзакции может быть как с управляемой блокировкой так и без нее. Про блокировки на уровне субд в видео речь не идёт.
@user-zr4uw5ng3r
@user-zr4uw5ng3r 3 жыл бұрын
Вы намешали в кучу. Чтение, оно всегда в транзакции, даже если вы не вызывали НачатьТранзакцию. Далее, чтение в явной транзакции может быть как с УБ, так и без нее, поскольку, см. ролик, операции с БД не связаны с упр.блокировками. И да, тема раскрыта только в той части, которая говорит, что УБ не связаны с базой данных. А полное раскрытие темы, с рассмотрением дедлоков, уровней изоляции и кейсов проведения тянет на платный курс часов на десять. В 15 минут ну никак не уложить.
@user-iw1ie7tn6j
@user-iw1ie7tn6j 3 жыл бұрын
вам нужно "курить" уровни изоляции read uncommitted, read committed, READCOMMITTED SNAPSHOT. Поведение запроса к базе разное в 8.2 и 8.3 на ms sql
@user-zr4uw5ng3r
@user-zr4uw5ng3r 3 жыл бұрын
@@user-iw1ie7tn6j все равно не понимаю , извините. Как уровни изоляции базы связаны с менеджером управляемых блокировок? Я прекрасно знаю, что такое read committed и rcsi, но при чем тут тема ролика?
@user-iw1ie7tn6j
@user-iw1ie7tn6j 3 жыл бұрын
@@user-zr4uw5ng3r в ролике основная суть это выполнение запроса к данным которые в данный момент заблокированы в базе с управляемыми блокировками. верно? так вот не блокировку надо перед запросом ставить, а НачатьТранзакцию() или без нее, если говорим про запрос вне транзакции. Вне транзакции запрос выполняется с уровнем read uncommitted, т.е. позволяет прочитать заблокированное. Если поместить перед запросом НачатьТранцакцию() то запрос будет уже с другим уровнем и НЕ прочитает заблокированное. Так было в 8.2. А в 8.3 если ты работаешь на mssql 2005 появился уровень READCOMMITTED SNAPSHOT, он позволяет читать заблокированное всегда (вне зависимости от транзакции), причем поддерживается версионирование и если данные не зафиксированы, то прочитается версия объекта до начала транзакции.
ОДИН ДЕНЬ ИЗ ДЕТСТВА❤️ #shorts
00:59
BATEK_OFFICIAL
Рет қаралды 8 МЛН
OMG🤪 #tiktok #shorts #potapova_blog
00:50
Potapova_blog
Рет қаралды 18 МЛН
Секреты 1С Эксперта  09-02.  Транзакция и блокировки 1С.
56:27
Ожидания на управляемых блокировках. Подготовка к сдаче экзамена 1С:Эксперт
21:18
Курсы 1С и экзамены (1С:Учебный центр №1)
Рет қаралды 10 М.
Секреты 1С Эксперта  09-01.  Блокировки СУБД.
55:57
Константин Ефимов
Рет қаралды 1,9 М.
iPhone 16 с инновационным аккумулятором
0:45
ÉЖИ АКСЁНОВ
Рет қаралды 3,5 МЛН
Игровой Комп с Авито за 4500р
1:00
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 1,9 МЛН
ОБСЛУЖИЛИ САМЫЙ ГРЯЗНЫЙ ПК
1:00
VA-PC
Рет қаралды 355 М.
Что не так с яблоком Apple? #apple #macbook
0:38
Не шарю!
Рет қаралды 475 М.