#0
by Gorr
Здравствуйте! В моей обработке выполняется запись довольно большого набора записей в транзакции. Как правильно заблокировать регистр от чтения другими сеансами на время выполнения записи? Пробовал так: Ставил бряк в отладчике после вызова Заблокировать, запускал дополнительный сеанс из него консолью запросов без труда прочитал записи блокируемого регистра. Как заблокировать регистр чтобы у других сеансов вообще доступа не было?
#10
by Жан Пердежон
"исключительный" не дает ставить на ресурс другие блокировки, но никто не мешает читать вообще без установки блокировок, так что не поможет ни разу
#14
by Gorr
существует вероятность получения неверных данных и запись на основании этих неверных данных уже в другие регистры. почему не смогут?
#15
by Spieluhr
Если у вас автоматический режим блокировок в конфигурации, то пытаться наложить управляемую смысла нет, этот код игнорируется. в последних версиях платформы сделали на этот случай ругалку, т.к. люди путаются в транзакции нужно получать данные, если на их основе принимаются решения
#17
by Gorr
поскольку запись обработкой выполняется в транзакции и анализ остатков документами неявно тоже выполняется в транзакции.
#18
by Fragster
если сделаешь - типовые документы не смогут проводиться, пока твоя обработка работает
#23
by Spieluhr
в и в прав. Но это справедливо, пока конфа в автоматическом режиме блокировок работает
#26
by Gorr
пожалуйста без эмоций. Довайте подведем итог. Конструкция "Для изменения" запроса внутри транзакции блокирует всю таблицу не только для записи, но и для чтения другими сессиями при использовании автоматического режима блокировки.
#27
by Fragster
вот что пишет справка: Конфигуратор 1С:Предприятие 8 Предложение ДЛЯ ИЗМЕНЕНИЯ Предложение ДЛЯ ИЗМЕНЕНИЯ предназначено для указания необходимости блокировки считываемых в транзакции данных. Считанные данные становятся недоступными для чтения в других сессиях. Для файлового варианта блокируются указанные таблицы, а для клиент-серверного варианта — только выбранные записи. Блокировка снимается после завершения транзакции.
#31
by Spieluhr
в итоге я так и не понял зачем вам блокировать на чтение весь регистр? Вне транзакции , т.е. из консоли запросов или в любом отчете данные будут прочитаны независимо от установленных блокировок, а параллельные транзакции и так не смогут прочитать те данные, которые вы измените в своей (ваш набор записей). на выходе получите избыточную блокировку и никакой пользы.
#32
by Gorr
вот я же вас спрашивал в и постах, но вы промолчали. вот я и подумал что все же нужно блокировать принудительно
#35
by Gorr
еще непонятно как проверить режим блокировки конфигурации: если Метаданные.РежимУправленияБлокировкойДанных = РежимУправленияБлокировкойДанныхПоУмолчанию.автоматический выдает ошибку переменная РежимУправленияБлокировкойДанныхПоУмолчанию не определена
#37
by Gorr
РежимУправленияБлокировкойДанных (DataLockControlMode) Использование: Только чтение. Описание: Тип: РежимУправленияБлокировкойДанныхПоУмолчанию. Содержит варианты режимов управления блокировкой данных, устанавливаемых по умолчанию. Доступность: Сервер, толстый клиент, внешнее соединение.
#38
by Gorr
я так понимаю РежимУправленияБлокировкойДанныхПоУмолчанию должно быть системное перечисление?
#42
by Gorr
некрасиво. На случай если кто еще сталкнется с необходимостью проверки объектов метаданных на перечислимое свойство, доступ этим "перечислимым" перечислениям можно получить через "Метаданные.СвойстваОбъектов.ПеоечислимоеСвойство.ЗначениеСвойства"
#43
by Fragster
ПеречислимыеСвойстваОбъектовМетаданных (MetadataObjectEnumeratedProperties) Свойства: .... РежимУправленияБлокировкойДанныхПоУмолчанию (DefaultDataLockControlMode) ..... Описание: Предоставляет доступ к системным перечислениям, выступающим в качестве значений свойств объектов метаданных. Состав и описание системных перечислений объектов метаданных описан в разделе "Системные перечисления свойств объектов метаданных". Доступность: Сервер, толстый клиент, внешнее соединение. См. также: ОбъектМетаданныхКонфигурация, свойство СвойстваОбъектов
#44
by Fragster
в общем метаданные.свойстваобъектов.РежимУправленияБлокировкойДанныхПоУмолчанию.Управляемый
#46
by Gorr
я сделал так, что в одном случае осуществляется выборка, в другом используется объект блокировка. таким образом получилось универсально.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Как заблокировать копм от несанкционированного доступа?
- Хранение рег.номеров - регистр сведений или регистр накопления
- Какой регистр сведений лучше? Регистр с одними ресурсами или с одними измерениями?
- v8: не удалось заблокировать таблицу 'SESSIONS'
- Что выбрать: регистр накопления или регистр сведений?
- Как заблокировать горячие клавиши в 1с8?
- Учет количества в разрезе складов регистр сведений или регистр накопления
- УТ 11.2 (УТАП) + ЕГАИС перемещение между регистр 1 и регистр 2 (торговый зал)
В этой группе 1С
- The transaction log for database is full
- УТ11 Нужен отчет по изменению цен товара за период
- Добавить субконто Договора по счету 10.7
- СКД .Найти цену на период в Регистр сведений ЦеныНоменклатурыСрезПоследних
- УПП и кредиторская задолженность.
- Ошибка обмена через COM Переданный пакет данных параметров интерфейса (OBJREF)
- ут 10.3 в документе поступление тов и усл не доступно поле НомерГТД и СтранаПрои
- Договор контрагентов, контроль проведения по Сроку Действия
- ВидыСубконтоХозрасчетные
- УТ 11 детализация расчетов по договорам и этапы оплаты
- 8.3 СКД сброс результатов.
- Проверка на уникальность ПриЗаписи в регистр сведений
- У Вас нет прав на выполнение действия (Полные права)
- Управляемые формы отчета на СКД, окно с настройками пустое.
- УТ 10.3: Событие при нажатии на кнопку "Выбрать"
- Внешний отчет на управляемых формах. Открыть вторую форму
- УТ 11.1.6.17 исправление отрицательных остатков организаций
- УПП 1.3 отчёт ОСВ по счету. Полное наименование контрагента
- v7: Отчет по продажам тмц в ТиС 7.7
- ут 10.3 партионный учет по сериям, если нужно только ГТД и никаких сроков годнос