Работа с управляемыми блокировками в примерах. Новая схема проведения документов 1с 8.2.

Публикация № 144750

Разработка - Решение задач на 1С:Специалист

Много информации есть на тему работы с управляемыми блокировками в 1С 8.2. Но так, как я не нашел статьи, написанной в простых и понятных примерах, то решил написать свою статью. Она будет полезна тем, кто все еще не до конца понимает принципы работы управляемых блокировок и то, чем отличаются блокировки новой схемы проведения от старой.

Будем рассматривать принципы работы управляемых блокировок на некоторой тестовой конфигурации. Учет ведется в разрезе номенклатуры и свойств номенклатуры. Приходная накладная (ПН) ничего не блокирует, но пишет данные в регистр накопления "Остаток товара". На примере документа Расходная накладная (РН) изучим, как работают управляемые блокировки, а затем посмотрим на новую схему проведения документов. В ПН и РН есть одинаковые по структуре табличные части (ТЧ) СписокНоменклатуры, в которых содержится список Номенклатуры, Свойств, Количество, Сумма, Цена:


В Регистре накопления есть соответсвующие измерения: Номенклатура, Свойство и два ресурса - Сумма и Количество. 

Предварительно для работы с управляемыми блокировками установим управляемый режим блокировок для конфигурации в целом и управляемывй режим блокировок отдельно для Приходной накладной, Расходной накладной и для всех регистров, движения по которым эти документы делают. В наших примерах - это один регистр накопления Остаток товара.

Обратим внимание, что в файловой версии можно устанавливать блокировки только на таблицы целиком (см. таблицу ниже), построчные (в разрезе выбранных движений из регистра накопления, например) блокировки в файловом режиме не работают. Примеры тестировались на 1С 8.2 + MS SQL 2008 R2 Express.


Детальнее про поддерживаемые режимы блокировок тут: http://v8.1c.ru/overview/Term_000000642.htm

Примеры рассматриваются на следующих РН и ПН:

ПН - 01

ПН - 02

РН - 01

 

Пример 1. Блокировка по конкретно известной номенклатурной позиции.

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

Движения.ОстаткиНоменклатуры.Записывать = Истина;

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Номенклатура",Справочники.Номенклатура.НайтиПоНаименованию("Ботинки")); //поиск по наименованию в целях примера
Блокировка.Заблокировать(); //установили блокировку по номенклатуре с наименованием "Ботинки"

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по измерению "Номенклатура" с наименованием "Ботинки" и ПН - 02 будет ожидать завершения блокировки регистра накопления по измерению "Номенклатура" с наименованием "Ботинки".


Пример 2. Блокировка по конкретно известной паре номенклатурная позиция - свойство.

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

Движения.ОстаткиНоменклатуры.Записывать = Истина;

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.УстановитьЗначение("Номенклатура", Справочники.Номенклатура.НайтиПоНаименованию("Ботинки")); //поиск по наименованию в целях примера
ЭлементБлокировки.УстановитьЗначение("Свойство", Справочники.Свойства.НайтиПоНаименованию("черные 42 размера")); //поиск по наименованию в целях примера
Блокировка.Заблокировать();

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по паре измерений "Номенклатура" (с наименованием "Ботинки") -"Свойство" (с наименованием "черные 42 размера"), а ПН - 02 проведется без ожидания, так как в ее ТЧ СписокНоменклатуры нет пары  "Номенклатура"-"Свойство", которая будет образовывать соответвствующее движение.

 

Пример 3. Блокировка на всю таблицу регистра накопления.

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки таблицы регистра накопления и ПН - 02 будет ожидать завершения блокировки таблицы регистра накопления.

 

Пример 4. Блокировка по одному полю из источника данных для блокировки (это, например, список движений или список номенклатуры по которой будут движения).

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по измерению "Номенклатура" и значением "Ботинки" из источника СписокНоменклатуры и ПН - 02 будет ожидать завершения блокировки регистра накопления по измерению "Номенклатура" и значением "Ботинки" из источника СписокНоменклатуры (так как именно такое значение реквизита "Номенклатура" в переданной как источник ТЧ).


Пример 5. Блокировка по комбинации полей из источника данных для блокировки (это, например, список движений или список номенклатуры со свойствами по которой будут движения).

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

Блокировка = Новый БлокировкаДанных;

ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Свойство", "Свойство");
Блокировка.Заблокировать();
 

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по паре измерений "Номенклатура" значение "Ботинки" из переданного источника - "Свойство" значение "черные 42 размера" из переданного источника, а ПН - 02 проведется без ожидания, так как в ее ТЧ СписокНоменклатуры нет пары  "Номенклатура"-"Свойство", которая будет образовывать соответвствующее значениям полей источника блокировки движение.


Пример 6. Блокировка по двум полям из источника данных для блокировки.

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

//условие "И" - будут заблокированы и записи для номенклатуры из ТЧ СписокНоменклатуры

// с любыми свойствами и записи для любой номенклатуры со свойствами из ТЧ СписокНоменклатуры
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Свойство", "Свойство");
Блокировка.Заблокировать();

//Далее идет заполнение движений

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по измерению "Номенклатура" значение "Ботинки" с любыми свойствами и отдельно по "Свойству" со значением "черные 42 размера" для любой номенклатуры, в ПН - 01 есть и номенклатура "Ботинки" и номенклатура со свойствами "черные 42 размера". Аналогично ПН - 02 будет ожидать завершения блокировки, так как в ПН - 02 есть номенклатура "Ботинки". 


Пример 7. Новая схема проведения (чем же отличается БлокироватьДляИзменеия = Истина от блокировок при помощи объекта БлокировкаДанных).

Код процедуры ОбработкаПроведения(Отказ, Режим) модуля объекта документа РасходнаяНакладная:

//Новая схема (без механизма контроля остатков)

//Разбор БлокироватьДляИзменения = Истина
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать(); //Набор пустой, нет значений полей пространства блокировки. нечего блокировать.

//очень упрощенный пример создания движений расходной
Для Каждого СтрокаН Из СписокНоменклатуры Цикл
Движение = Движения.ОстаткиНоменклатуры.ДобавитьРасход();
Движение.Период = Дата;
Движение.Номенклатура = СтрокаН.Номенклатура;

Движение.Количество = СтрокаН.Количество;
Движение.Сумма = СтрокаН.Сумма;

Движение.Свойство = СтрокаН.Свойство;
КонецЦикла;

//1
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать(); //Набор не пустой будет выполнена блокировка, источник - ТЧ СписокТоваров


//Далее должен идти механизм контроля остатков

Как это работает:

Если в процессе проведение РН - 01, сделать попытку провести ПН - 01, то она будет ожидать завершения блокировки регистра накопления по паре измерений "Номенклатура" значение "Ботинки" из переданного источника - "Свойство" значение "черные 42 размера" из переданного источника, а ПН - 02 проведется без ожидания, так как в ее ТЧ СписокНоменклатуры нет пары  "Номенклатура"-"Свойство", которая будет образовывать соответвствующее значениям полей источника блокировки движение.

При использовании команды БлокироватьДляИзменения = Истина на регистр накопления по значениям измерений движений установится исключительная блокировка. Никаких конструкций с использованием объекта БлокировкаДанных для этого писать не нужно.

Код под комментарием //1 выше аналогичен следующему коду:

//Работает аналогично, как и 1
Движения.ОстаткиНоменклатуры.Записать();
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить();
ЭлементБлокировки.Область = "РегистрНакопления.ОстаткиНоменклатуры";
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = Движения.ОстаткиНоменклатуры.Выгрузить();
Для Каждого Измерение Из Метаданные.РегистрыНакопления.ОстаткиНоменклатуры.Измерения Цикл
    ЭлементБлокировки.ИспользоватьИзИсточникаДанных(Измерение.Имя, Измерение.Имя);
КонецЦикла;
Блокировка.Заблокировать();


//Далее должен идти механизм контроля остатков


P.S. Отличие исключительных блокировок от разделяемых в изложенных выше примерах в том, что при разделяемом режиме блокировок возможны разделяемые блокировки при параллельном проведении других документов по тем же полям источников данных, что и в заблокированных в данном документе данных. 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Hany 24.07.12 12:42 Сейчас в теме
Движения.ОстаткиНоменклатуры.БлокироватьДляИзменения = Истина;
Движения.ОстаткиНоменклатуры.Записать(); //Набор пустой, нет значений полей пространства блокировки. нечего блокировать.

Вы забыли уточнить, зачем мы блокируем "пустой" набор. Когда пишется "пустой" набор, то:

1) блокируются данные по "очищаемым" записям (т.е. тем, по которым были движения до перепроведения документа, ведь их тоже надо блокировать, чтобы в случае отмены транзакции гарантировать откат (отказ от проведения и возврат к предыдущим проводкам));
2) все записи очищаются



А также хочу добавить, что "БлокироватьДляИзменения" выставлять в значение "Истина" нужно, если у вас в регистре установлено "Разделение итогов", чтобы "временно отключить" это разделение.
Hagaro; Divanoff; user712426; Winstoncuk; rendalina; КДЕ; kolya_tlt; yuraer; lllayka; Intel_Man; vitunchik; it@contlog.ru; ZPGS; Ekovichev; SadrArt; JesteR; AlexBloim; Elvisnya; Spacer; tormozit; mikhailovaew; awk; Invaa; +23 Ответить
24. mihan 115 11.05.13 17:39 Сейчас в теме
(1) Hany,
блокировать старые записи имхо перестраховка, другой документ итоги вроде не должен поменять по нормальному, он же будет считывать остаток чтобы в минус не уйти, а считать не сможет, так как одна из строк таблицы итогов эксклюзивно заблокирована первым документом
42. kuzyara 1059 04.07.17 04:14 Сейчас в теме
(1)
1) блокируются данные по "очищаемым" записям (т.е. тем, по которым были движения до перепроведения документа, ведь их тоже надо блокировать, чтобы в случае отмены транзакции гарантировать * (отказ от проведения и возврат к предыдущим проводкам));

боже, какой бред...
43. nytlenc 19.07.17 14:37 Сейчас в теме
(42) Согласен.... Оптимизм у автора комментария явно страдает.
44. sokir 1 24.07.17 17:45 Сейчас в теме
(42) в чем же бред? Как бы все верно.
(43) тоесть если написано без оптимизма - значит не верно? Странная логика.
45. nytlenc 25.07.17 09:07 Сейчас в теме
(44) оптимизм тут не причем. Читайте про оптимистические блокировки
2. Fruit83 28 26.07.12 22:57 Сейчас в теме
Отличие исключительных блокировок от разделяемых в изложенных выше примерах в том, что при разделяемом режиме блокировок возможны разделяемые блокировки при параллельном проведении других документов по тем же полям источников данных, что и в заблокированных в данном документе данных.


Я читал более простое объяснение. При исключительных блокировках записывать ничего нельзя и читать данные тоже нельзя. При разделяемых читать данные можно.
3. kilokilo 18 27.07.12 01:25 Сейчас в теме
Хотя работа в блокировками мне знакома - большое спасибо, что разместили статью не в скачиваемом файле.
4. erina_valentina 88 27.07.12 04:57 Сейчас в теме
Спасибо! Очень полезная и интересная статья!
5. khaoos 239 27.07.12 10:11 Сейчас в теме
Автор молодец. Хорошо пишешь. Неплохо было бы и первый комментарий от Hany изящно как-нибудь воткнуть в статью :) и добавить к нему, что при записи управляемые блокировки накладываются всегда (конечно, при соответствующем режиме) и БлокироватьДляИзменения нужно, чтобы в блокировках не учитывалось это самое измерение-разделитель. Ну в PS после статьи как-то мысль хитро завернута в слова, что на месте человека впервые разбирающегося с блокировками я бы не понял этой мысли :)
11. mikhailovaew 126 31.07.12 10:54 Сейчас в теме
Спасибо за статью!
Присоединюсь к (5): не все читают комментарии, а замечание из (1) ценное, лучше его разместить в самой статье, хотя бы в комментариях в коде
12. Invaa 366 31.07.12 11:22 Сейчас в теме
(11) mikhailovaew,

добавлю ценные замечания в статью обязательно и спасибо за них :) руки пока не дошли еще...
6. sockor 57 27.07.12 11:04 Сейчас в теме
вот спасибо, никак время не находил это изучить.
7. Altair777 640 27.07.12 11:46 Сейчас в теме
К концу статьи начинает коробить от тавтологий. Копипаст рулит :)
8. tolyan_ekb 176 27.07.12 14:55 Сейчас в теме
спасибо. Полезная статья с примерами и комментариями. Надеюсь, скоро попробую с блокировками поработать.
9. DenisCh 27.07.12 15:08 Сейчас в теме
Спасибо, полезная статья.
13. briz 71 01.08.12 10:33 Сейчас в теме
Вопрос , а как поведет в примере 5 ПН 2, если в РН будет еще такая запись : Ботинки,Со шпильками 37 размера. ?
15. Invaa 366 01.08.12 16:20 Сейчас в теме
(13) briz,

При блокировках РН, устанавливаемых в примере 5, и наличии в РН записи "Ботинки,Со шпильками 37", ПН 2 проведется, так как в этой приходной нет записей соотвествующих блокировкам. Есть записи отдельно по товару "Ботинки", отдельно по свойству "Со шпильками 37", но не с парой "Ботинки"-"Со шпильками 37".
16. briz 71 01.08.12 16:40 Сейчас в теме
(15)есть подозрение что блокируется все комбинации товаров и свойств, поэтому, имхо, ПН 2 будет ждать
17. Invaa 366 01.08.12 17:15 Сейчас в теме
(16) briz,

такая блокировка накладывается в примере 6
18. hogik 433 01.08.12 23:47 Сейчас в теме
(0)
Вызывает сомнение утверждение в первом примере, что приходные накладные будут ожидать завершение проведения расходной накладной, если код управляемых блокировок будет внесен только в расходную накладную.

"Следует помнить, что чтение данных другими транзакциями будет невозможно только в том случае, если в других транзакциях устанавливаются несовместимые управляемые блокировки. Если управляемые блокировки в других транзакциях не устанавливаются, то чтение будет возможно."(с)

http://www.lavelin.ru/index.php/articles/1s/18-razrabotka/93-blokirovki-dannyh-v-1spredpriyatii-8

Или я ошибаюсь?
19. rozer 274 20.10.12 10:52 Сейчас в теме
согласен с (18), только если в ПН прописать блокировки тогда утверждения в статье верны.
21. USER--1C 57 30.12.12 21:37 Сейчас в теме
(18) hogik, Посмотрите дату статьи (2007 г.): http://www.lavelin.ru/index.php/articles/1s/18-razrabotka/93-blokirovki-dannyh-v-1spredpriyatii-8
В конце указано: "Автор: © Белоусов Павел (Альтер Лого, Москва). Данная статья является фрагментом книги П.С.Белоусов, А.В.Островерх "1С:Предприятие: от 8.0 к 8.1". Дата выхода книги: ноябрь 2007.
(Информация с ресурса http://1cexpo.ru)"

На ИТС есть более свежие статьи по блокировкам, в том числе для 8.2. Например: от 18.08.2010 "Анализ и устранение взаимоблокировок" (для имеющих доступ на ИТС: http://www.its.1c.ru/db/metod81#content:4051:1)
22. hogik 433 30.12.12 21:54 Сейчас в теме
(21)
"Посмотрите дату статьи (2007 г.)"(с)
Информация устарела?
Т.е. в (18) сообщении я ошибаюсь? ;-)
39. Sanya2049 35 26.10.15 22:10 Сейчас в теме
Пытаю воспроизвести нечего не выходит
Блокировка = Новый БлокировкаДанных;
	ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ОстаткиНоменклатуры");
	ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
	ЭлементБлокировки.ИсточникДанных = СписокНоменклатуры;
	ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
	Блокировка.Заблокировать(); 

Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.РасходнаяНакладная.МодульОбъекта(18)}: Ошибка при вызове метода контекста (Заблокировать)
Блокировка.Заблокировать();
по причине:
Использование блокировки допустимо только внутри транзакции в режиме управляемых блокировок!
40. azhilichev 29.12.15 06:28 Сейчас в теме
(39) Sanya2049, Проверьте, что у вас документ находится в режиме управляемых блокировок:
Прикрепленные файлы:
20. chemezov 34 29.11.12 12:08 Сейчас в теме
мне очень не хватало этой информации для понимания блокировок. огромное спасибо, +1.
23. rеd80 26.03.13 11:31 Сейчас в теме
Отличие исключительных блокировок от разделяемых в изложенных выше примерах в том, что при разделяемом режиме блокировок возможны разделяемые блокировки при параллельном проведении других документов по тем же полям источников данных, что и в заблокированных в данном документе данных.

Не понял о чем это. Для меня понятна следующая разница:
В режиме разделяемых блокировок блокированные записи остаются доступны для чтения другим пользователям и недоступны для записи.
В режиме исключительных блокировок блокированные записи недоступны для чтения другим пользователям и недоступны для записи.
qwertyranty; marsohod; RailMen; ankorobov; vitunchik; it@contlog.ru; memfree; +7 Ответить
25. zigomodo 26.08.13 11:26 Сейчас в теме
Столкнулся с данной проблемой, статья очень кстати.
26. ZLENKO 27.08.13 13:25 Сейчас в теме
В настоящее время подходы, изложенные в статье, потеряли актуальность. Появились более прогрессивные подходы по использованию управляемых блокировок при проведении документов. Вот это больше соответствует современным реалиям http://infostart.ru/public/195591/
27. mr.Kot 10.01.14 15:55 Сейчас в теме
Хорошо структурирован и подан текст, всё становится понятно. Жаль, что первый комментарий в статье так и не учли. А я как знал, что в коментах обязательно что-нибудь дельное промелькнёт.
28. tiniji 155 03.02.14 17:22 Сейчас в теме
Правильно ли я понимаю?
Если включить управляемые блокировки в УТ 10.3 для всей конфигурации (т.е. будут все объекты с упр. блокировками), то необходимо добавить блокировки на регистр ВзаиморасчетыСКонтрагентами (при контроле долга). На регистры товаров (НТТ, Розница, опт, организаций) при контроле остатков. И Регистры "Партии товаров", т.к. списание происходит по ФИФО. Регистры НДС не беру, т.к. ими не пользуемся.
Нужно ли кроме этого управлять блокировками других объектов? Журналы, последовательность и др.
Спрашиваю заранее, что бы не набивать шишки при переходе.
34. ZLENKO 387 29.04.15 12:09 Сейчас в теме
(28) tiniji, "Спрашиваю заранее, что бы не набивать шишки при переходе."

Чтобы не набить "шишки" Вам необходимо досконально разобраться в вопросах, связанных с управляемыми блокировками. Вам необходимо понимать что у Вас есть сейчас и что Вы хотите получить в результате. Данная статья просто описывает механизмы платформы. К практике использования управляемых блокировок в реальных конфигурациях она отношения не имеет. Поймите что нет "серебряной пули" для борьбы с избыточными блокировками.
29. Alex123456 09.09.14 17:18 Сейчас в теме
Спасибо за статью. Как раз надо решить проблему с блокировками.
30. monstruz 10.09.14 14:30 Сейчас в теме
31. Nigelist 24.09.14 16:14 Сейчас в теме
Подскажите в в каких регистрах можно использовать управляемые блокировки? В регистрах накопления, сведений, бухгалтерии? Периодических и прочих регистрах?
32. nvv1970 28.04.15 22:27 Сейчас в теме
Различные тесты показали, что управляемые блокировки в 8.2 - это полная неадекватность. В 8.3 поведение вполне адекватное, за исключением некоторых особенностей.
33. ZLENKO 387 29.04.15 12:03 Сейчас в теме
(32) nvv1970, "Различные тесты показали, что управляемые блокировки в 8.2 - это полная неадекватность."

Думаю Вы просто не до конца разобрались в вопросе. В последних релизах 8.2 вполне адекватно работают.
С чем именно у Вас возникли сложности ? Просто "полного счастья" с управляемыми блокировками при использовании MS SQL Server можно добиться только при переводе базы в режим версионирования (а не блокировщика), а для 8.2 это не "штатный" режим, хотя все отлично работает.
35. ZLENKO 387 29.04.15 12:12 Сейчас в теме
Цитата из кода статьи: "Движения.ОстаткиНоменклатуры.Записать(); "

Никогда так не поступайте - это прямой путь к взаимоблокировкам !
36. alex44ru 17.06.15 16:08 Сейчас в теме
Спасибо за статью, все понятно написано.

Меня смутил ответ Максим Радченко, 1С на форуме http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=572655&threadtype=0, а именно:
....................

Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.ТоварыНаСкладах");
ЭлементБлокировки.УстановитьЗначение("Качество", Справочники.Качество.НайтиПоКоду("1"));
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
ЭлементБлокировки.ИсточникДанных = ДокументОбъект.ВозвратнаяТара;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Склад", "Склад");
Блокировка.Заблокировать();

....................
Блокировка будет наложена на те записи, в которых:
- есть номенклатура из табличной части ВозвратнаяТара и Качество равно указанному значению,
или
- есть склад из табличной части ВозвратнаяТара и Качество равно указанному значению.
Если нужно блокировать только по сочетанию значений Номенклатура - Склад, которые есть в табличной части, нужно использовать один оператор ИспользоватьИзИсточникаДанных, указывая в нем два поля через запятую.

из его ответа следует что у Вас в пятом примере будет блокировка на номенклатуру или на свойство, помогите разобраться кто прав ?
Ксакеп; +1 Ответить
41. fzt 29.12.15 06:41 Сейчас в теме
(36) alex44ru, возьми да проверь)
37. Firefox27 17.06.15 16:35 Сейчас в теме
Чтоб избавмтса от блокировок чаще используйте запроси для получения данных. И как можна менше получайте реквизиты объектов через точку.
38. ZLENKO 387 18.06.15 12:00 Сейчас в теме
(37) Firefox27, "И как можна менше получайте реквизиты объектов через точку."

Чем быстрее (меньше длительность транзакции) проводятся документы, тем меньше вероятность возникновения блокировки.
46. Xershi 1020 21.10.19 13:20 Сейчас в теме
В справочнике характеристик завели доп. реквизит порядковый номер. Он должен быть уникальный, генерируется вычислением максимального значения этого реквизита с добавлением +1.
Чтобы исключить его дублирование при программном создании элементов написал такую блокировку:
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("Справочник.ХарактеристикиНоменклатуры");
ЭлементБлокировки.Режим = РежимБлокировкиДанных.Исключительный;
Блокировка.Заблокировать();

Если есть решение лучше, то было бы хорошо это озвучить и добавить в статью!
В конфигурации режим управления блокировками управляемый стоит. И данный код должен быть в транзакции, иначе у меня в ошибку выбивало на
Блокировка.Заблокировать()
Оставьте свое сообщение

См. также

Самоучитель языка запросов 1С. Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 v8::Запросы Бесплатно (free)

Сервис для изучения запросов 1С: "Консоль изучения запросов 1С:Предприятие 8". Теперь и с конструктором запросов!

07.05.2013    109967    bpc222    327    

[ERP] Бюджетирование. 1С:Специалист-консультант. Часть 2

Решение задач на 1С:Специалист Финансовый учет и бюджетирование (FRP) v8 ERP2 КА2 Акцизы Бесплатно (free)

Разберем основные подзадачи из билетов экзамена "1С:Специалист-консультант" по внедрению подсистемы "Бюджетирование" в "1С:ERP Управление предприятием 2.4".

25.06.2020    3513    leobrn    13    

[ERP] Бюджетирование. 1С:Специалист-консультант. Часть 1

Решение задач на 1С:Специалист Финансовый учет и бюджетирование (FRP) v8 ERP2 Госбюджет Бесплатно (free)

Решим пример экзаменационного задания экзамена "1С:Специалист-консультант" по внедрению подсистемы "Бюджетирование" в "1С:ERP Управление предприятием 2.4".

01.06.2020    5484    leobrn    34    

Отчеты ЗУП. Решения всех отчетов из сборника задач для подготовки к Специалист-консультант ЗУП с картинками

Решение задач на 1С:Специалист Зарплата Управление персоналом (HRM) Зарплата Управление персоналом (HRM) v8 v8::СПР ЗУП3.x Россия БУ Бесплатно (free)

Когда готовился к сдаче экзамена на Специалист консультант по ЗУП, в процессе решения задач из сборника обнаружил, что те решения отчетов, которые есть в сети и на Инфостарте, недостаточно проиллюстрированы, и для новичка это может быть довольно тяжело и затратно по времени - разобраться, что к чему, с "нуля". Делал как шпаргалку для себя. Экзамен сдал на отлично. Рекомендую тем, кто готовится - прорешать все отчеты.

26.08.2019    15464    user1024932    19    

1С:Специалист по УПП. Рекомендации по правильной подготовке и сдаче Промо

Решение задач на 1С:Специалист v8 УПП1 Россия Бесплатно (free)

Успешно пройдена очередная аттестация от 1С. Какие же, на мой взгляд, рекомендации можно дать тем, кто еще готовится к этому важному событию. На что нужно обратить особое внимание при подготовке.

06.06.2013    40063    kondrp    33    

Как сдать тест 1С:Профессионал по платформе (в 2019 г.). Мой опыт

Решение задач на 1С:Специалист v8 Россия Бесплатно (free)

Мой опыт успешной сдачи теста 1С:Профессионал по платформе с первой попытки.

26.08.2019    23398    user1211995    35    

Анти-оптимизация: как мы ускорили запрос в 4 раза, сделав его неоптимальным

Производительность и оптимизация (HighLoad) Практика программирования Решение задач на 1С:Специалист Разработка v8 Бесплатно (free)

В этой статье приведен пример неочевидной "оптимизации" запроса, которая противоречит всем правилам, описанным в книгах для подготовки к сертификации "1С:Эксперт по технологическим вопросам", а также преподаваемым на курсах подготовки экспертов.

02.07.2019    11287    igordynets    119    

1С УТ 11. Доработка типовых отчетов – пересчет показателей в произвольную валюту. Задачи 2.1 – 2.2 сборника «1С: Специалист»

Решение задач на 1С:Специалист v8 УТ11 Бесплатно (free)

В сборнике задач для подготовки к экзамену «1С: Специалист» по конфигурированию и внедрению 1С: Управление торговлей 11 имеются задачи по доработке типовых отчетов, связанных пересчетом показателей в выбранную валюту на выбранную дату. В статье предлагается альтернативный способ решения, использующий возможности СКД без изменения типового текста запроса. Подход может применяться как при решении экзаменационных задач, так и на практике при доработках типовых отчетов, связанных с пересчетом валют.

16.04.2019    5108    Sergey1CSpb    0    

Сервис для изучения методов платформы 1С:Предприятие 8. Бесплатно! Промо

Практика программирования Решение задач на 1С:Специалист Математика и алгоритмы v8 Бесплатно (free)

Бесплатный ON-Line сервис изучения методов платформы 1С:Предприятие 8. Подготовка к аттестации 1С:Специалист on-line! Тестовые задания по различным видам учета! Подсказки для оптимального решения!

27.06.2013    50043    bpc222    52    

Задача 1.13 1С:Специалист - запрос для отчета по стеллажам

Практика программирования Решение задач на 1С:Специалист v8::ОУ Россия Бесплатно (free)

Описание подводных каменей отчета по стеллажам (задача 1.13 1С:Специалист) и способов их преодоления.

24.12.2018    7359    user913680    1    

Неоптимальный план запросов

Производительность и оптимизация (HighLoad) Решение задач на 1С:Специалист v8 Бесплатно (free)

Шпаргалка к экзамену "Эксперт по технологическим вопросам".

21.04.2018    14512    vasilev2015    11    

Сертификация решения на 1С:Совместимо

Решение задач на 1С:Специалист v8 1cv8.cf Бесплатно (free)

Описываю по шагам, как сертифицировал свое решение.

18.03.2018    18602    wonderboy    37    

1С:Специалист по платформе 8.2. Рекомендации по правильной подготовке и сдаче Промо

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

Только только вернулся со сдачи аттестации 1С:Специалист по платформе 8.2. Можете меня поздравить, теперь одним сертифицированным специалистом стало больше. В связи с этим хотел бы поделиться своими впечатлениями и опытом.

06.08.2012    85689    kondrp    26    

В помощь готовящимся к экзамену 1С:Эксперт по технологическим вопросам

Решение задач на 1С:Специалист v8 Россия Бесплатно (free)

Краткий рассказ о подготовке к экзамену 1С:Эксперт по технологическим вопросам, на что стоит обратить внимание, список литературы и Интернет-источников.

26.12.2017    24803    geron4    34    

Как я сдал экзамен 1С:Эксперт по технологическим вопросам

Решение задач на 1С:Специалист v8 Россия Бесплатно (free)

Касательно содержания предметной области, с которой работает 1С:Эксперт, с точки зрения обычного 1С-ника, это, возможно, выглядит как некие "дебри". Но с точки зрения эксплуатации крупной системы - это никакие не "дебри", а такая же ежедневная привычная работа, как оборотно-сальдовая ведомость в 1С:Бухгалтерии.

17.07.2017    31946    ilya_petrov    79    

Как я доступ на kb.1c.ru получал

Решение задач на 1С:Специалист Математика и алгоритмы v8 Россия Бесплатно (free)

kb.1c - база знаний по технологическим вопросам крупных внедрений и не только. В этой базе знаний собираются методики и решения технологических проблем эксплуатации 1с, check-list'ы и инструкции по настройке ПО на серверах. Какие-то из размещенных статей дублируются на ИТС. Когда я искал пути получения доступа к нему я столкнулся с проблемой: мало кто доподлинно знает как получить доступ к нему, не работая у франчайзи 1с. Я опишу путь, который прошёл я, как физическое лицо.

01.05.2017    26241    ikekoval    34    

1С:Специалист по платформе. Система подготовки к экзамену. Личное мнение (C)

Решение задач на 1С:Специалист v8 Бесплатно (free)

Существует немало статей на тему сдачи экзамена 1С:Специалист по платформе с разным содержанием: решенные билеты, советы и рекомендации по решению отдельных блоков задач, шаблоны для решения задач и т.д. В данной статье наш коллега поделился СИСТЕМОЙ подготовки к экзамену. В статье не найдете решений на отдельно взятые задачи или темы, а лишь МЕТОДИКУ отдельно взятого специалиста, которая принесла результат. Как нам кажется, данная методика показательна и будет полезна коллегам по цеху. Повествование будет от первого лица.

07.12.2015    43446    1Concept    21    

ЗУП 3.0 Специалист. Билет 4.

Решение задач на 1С:Специалист Зарплата Зарплата v8 v8::СПР ЗУП3.x Россия БУ Бесплатно (free)

Пример решения 4-го билета для экзамена на специалиста по ЗУП 3.0. В публикации представлено собственное решение.

25.10.2015    18648    maxdmt    9    

Методика решения задач 4,5 к экзамену 1С:Специалист. Бухгалтерия 8

Решение задач на 1С:Специалист v8 БП2.0 БУ Бесплатно (free)

В публикации: http://infostart.ru/public/186788/ подробно расписаны методики решения задач: 1(24,25,26), 2(27,28,29), 3(30,31,32). Но задачи 4 (ШУБЫ) и 5 (Производство) имеют немного другую постановку и методики решения этих задач, хоть и сильно помогают при подготовке, но не совсем подходят. Очень советую посмотреть видео решения по билетам: http://www.youtube.com/channel/UCU--LZhWkjtidF4UhbS2tAw/videos Готовился по редакции 3.0.18.9.

02.04.2015    16709    Ekovichev    1    

Решения задачи номер 1.13, 1.14 по сборнику для подготовки к экзамену 1С специалист-консультант по внедрению прикладного решения УТ 11 (май 2013).

Решение задач на 1С:Специалист v8 УТ10 Бесплатно (free)

Подробные решения задач со скриншотами из сборника для подготовки к экзамену 1С специалист-консультант по УТ 11 (май 2013). Занимаюсь подготовкой к экзамену. Решил выложить решения некоторых задач. Приведены решения задач номер 1.13, 1.14. Решение каждой задачи реализовано в пустой базе. Статья не содержит условия самих задач, а только авторские решения задач с указанием номера задачи. Критика и указания ошибок в решении приветствуется. Смотрите так же решения других задач: 1.15 и 1.16 http://infostart.ru/public/305689/

23.10.2014    16489    Dima982    2    

Специалист-консультант, УТ 11, решения задач по сборнику для подготовки к экзамену 1С специалист-консультант по внедрению прикладного решения УТ 11 (май 2013).

Решение задач на 1С:Специалист v8 УТ10 Россия Бесплатно (free)

Подробные решения задач со скриншотами из сборника для подготовки к экзамену 1С специалист-консультант по УТ 11 (май 2013). Занимаюсь подготовкой к экзамену. Решил выложить решения некоторых задач. Приведены решения задач номер 1.15, 1.16. Решение каждой задачи реализовано в пустой базе. Статья не содержит условия самих задач, а только авторские решения задач с указанием номера задачи. Критика и указания ошибок в решении приветствуется.

06.10.2014    20566    Dima982    1    

Экзамен "1С:Специалист" по платформе 8.3 - заметки для успешной сдачи (обновлено 20.08.2014)

Решение задач на 1С:Специалист v8 1cv8.cf Бесплатно (free)

Совсем недавно сдал экзамен "1С:Специалист" по платформе 8.3. Экзамен сдал с первого раза. Готовился где-то полгода, за это время изучил много информации по экзамену и прорешал около 100 задач из сборника. В процессе подготовки для себя создал много небольших заметок с готовыми кусками кода для решения определенных подзадач, а также краткими пояснениями сложных моментов. Хочу поделиться этим материалом с людьми, которые сейчас готовятся к сдаче, это должно им очень помочь.

15.07.2014    133041    hame1e00n    97    

1C: Профессионал. Хороший? Плохой? Быстрый!

Решение задач на 1С:Специалист v8 1cv8.cf Бесплатно (free)

Ни для кого не секрет, что успех сдачи экзамена 1С: Профессионал зависит от быстрого запоминания ответов. В этой статье я кратко опишу методы своей подготовки, которые позволят вам более эффективно подготовиться к сдаче экзамена. В подтверждение моих слов, добавлю, эти методы помогли мне получить 6 сертификатов 1С: Профессионал.

24.09.2012    25347    mrdug    24    

Сортировка метаданных с учетом префиксов

Практика программирования Решение задач на 1С:Специалист v8 1cv8.cf Бесплатно (free)

При подготовке конфигурации на 1С:Совместимо имеется такое требование, чтобы объекты метаданных были отсортированы по алфавиту, при этом для новых объектов должны быть добавлены префиксы и в дереве метаданных они должны находится в конце. Для решения данной задачи или просто для организации подобной сортировки пришла следующая простая идея.

18.09.2012    9492    Mavin    5    

Видеокурс: Разработка управляемого приложения 1С

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

1С Разработка управляемого приложения (видео 5 частей)

20.06.2012    58503    ktb    24    

Методические рекомендации по самостоятельной подготовке к сертификации «1С: Профессионал» по платформе «1С:Предприятие 8.2»

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

Рекомендации по эффективной самостоятельной подготовке к сертификации «1С: Профессионал» по платформе «1С:Предприятие 8.2» от первого лица; в настоящее время автор имеет статус сертифицированного специалиста по платформе.

09.06.2012    52552    dimkateo    17    

Несколько рекомендаций готовящимся к 1С:Специалист по Платформе

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

Перед сдачей экзамена начитался в интернете мнений и отзывов, что времени на решение отведено очень мало (а это 4 часа) и что хватает только набить код и чуток отладить. После сдачи с этой точкой зрения не согласен, времени достаточно если вы быстро печатаете и быстро думаете=) Однако в процессе подготовки в голове волей-неволей складывался небольшой набор действий по оптимизации расхода времени и набор часто встречающихся механизмов, присутствующих, в той или иной модификации, в большинстве задач.

19.12.2011    122238    correct_coding    90    

Аттестация "Специалист по УПП". Советы

Решение задач на 1С:Специалист Производство готовой продукции (работ, услуг) Производство готовой продукции (работ, услуг) v8 УПП1 Россия БУ УУ Бесплатно (free)

В статье освещается ряд рекомендаций по сдаче экзамена по методологии "Управление производством" в прикладных решениях "1С:Предприятия 8", в простонародье - "Специалист по УПП".

19.06.2011    30536    1cspecialist    22    

В помощь по подготовке к экзамену Специалист 8.* по платформе (решение задач)

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

Решил и я бросить свой камень на алтарь аттестации по платформе 1С Специалист 8.1. Ко многочисленным публикациям, по решению экзаменационных заданий, решил добавить свою, по следующим причинам: - дополнить список прорешенных заданий; - озвучить методы решений отдельных (часто встречающихся в билетах) моментов экзаменационных заданий. Автор не претендует на непогрешимость, выставляемого на обзор решения заданий. А лишь озвучивает свой взгляд на решение поставленной проблемы.

18.01.2010    26954    director04    54    

Видеолекция: Подготовка к сертификации 1С:Специалист по платформе 8

Решение задач на 1С:Специалист v8 1cv8.cf Россия Бесплатно (free)

Это видеолекция по решению билетов с сайта 1С для подготовки к сертификации 1С:Специалист по платформе 8. Два часа видео с решением первого билета. Снимать видео я не умею, монтировать тоже, но смотреть можно :) В первой трети звук не очень, но я потом исправился. Заранее прошу прощения за слова-паразиты. Задание решено не идеально, я знаю там 3,4 момента как можно оптимальнее его решить.

16.03.2009    23666    GROOVY    40