Управляемые взаимоблокировки. Подготовка к сдаче экзамена 1С:Эксперт.

Поделиться
HTML-код
  • Опубликовано: 28 ноя 2024

Комментарии • 12

  • @modelist6971
    @modelist6971 3 года назад +8

    А почему в конце ролика при установке ручной блокировки в качестве значения указывается ссылка, а не значение поля «Документ» из строки табличной части? Сам РС независимый, движения в нем создаются вне зависимости от контекста модуля проведения документа поступления на расчетный счет. Не совсем понял этот момент.

    • @elenaskvortsova4478
      @elenaskvortsova4478 3 года назад +7

      Да, вы совершенно правы, спасибо за внимательность. Должно быть так:
      ЭлементБлокировки.УстановитьЗначение("Документ", стр.Документ);
      К сожалению, в видео допущена ошибка. Но основная цель - показать, что перед чтением набора записей необходимо устанавливать исключительную блокировку, мы старались проиллюстрировать именно это.

    • @ВладимирШаров-к5ж
      @ВладимирШаров-к5ж Год назад

      @@elenaskvortsova4478 Спасибо за наглядные примеры. Кстати кажется можно было без проверки на статус и без блокировки всегда писать статус "оплачен".

    • @MrElInfinito
      @MrElInfinito 4 месяца назад

      @@ВладимирШаров-к5ж Набор записей регистра сведений всегда считывается в НЕЯВНОЙ транзакции с наложением S-блокировки, поэтому без X-блокировки нельзя. Статус "оплачен" нельзя всегда ставить, так как записи в наборе может и не быть, что должно быть понятно по коду.

  • @fbulkin
    @fbulkin 3 года назад +1

    Елена, отличные видео, большое спасибо, очень жду следующих. Есть огромная просьба, прикладывать архив с ТЖ, что бы можно было самостоятельно провести анализ.
    Вопрос по первой блокировке, почему не взаимоблокируется еще и поле "ИмяФайла", которое тоже есть измерение и вроде как должно попадать всеми значениями в блок, как неуказанное?

    • @elenaskvortsova4478
      @elenaskvortsova4478 3 года назад +1

      Большое спасибо, рады, что видео показались полезными. По поводу логов с воспроизведением демо-примера - думаю, что чуть позже сможем их выложить.
      По вопросу: ИмяФайла - ресурс, а не измерение.

  • @Nerich83
    @Nerich83 3 года назад

    Спасибо за видео! Очень жду следующие части. Жаль, что так редко выходят.
    Поясните, пожалуйста, момент, озвученный в 13:53. У меня не получается проследить связь указанной взаимоблокировки с захватом ресурсов в разном порядке. По идее, второе соединение не смогло бы установить эксклюзивную блокировку на всё пространство "часть файлов = *", т.к. на это же пространство уже наложена блокировка первым соединением? Напрашивается вывод, что на пространство "часть файлов = *" оба соединения устанавливают разделяемую блокировку. А затем оба пытаются наложить явную эксклюзивную блокировку на конкретные значения: "часть файлов = 1" и "часть файлов = 2", что приводит к взаимоблокировке из-за взаимной попытки повышения уровня изоляции на общий ресурс.

    • @capitan_nemo
      @capitan_nemo Год назад

      В видео все верно. Разделяемых блокировок нигде не накладывается. Если обе транзакции начались примерно одновременно, то они накладывают сначала успешно перед запросом непересекающиеся эксклюзивные блокировки в первом пространстве, потом при записи нз они на первое пространство пытаются наложить эксклюзивную блокировку целиком на все, первая начинает ждать вторую, как только вторая делает то же самое возникает дедлок.

  • @unichkin
    @unichkin 3 года назад

    Добрый день. А можно в каком-то виде воспроизведение выкладывать? Хотя бы только ТЖ в архиве + файл выгрузки .bak из SQL, где будет только пустая база?

  • @alexaliferov6901
    @alexaliferov6901 3 года назад

    Блокировка в цикле это норм? 21:43

    • @elenaskvortsova4478
      @elenaskvortsova4478 3 года назад

      Смутить скорее должно чтение набора записей в цикле, потому что это не что иное, как запрос. Но и это зависит от кейса, точнее, от количества итераций, в данном случае по смыслу их должно быть очень мало.