Проблема блокировок при закрытии месяца БП 1.6

1. Diversus 2312 14.04.10 15:56 Сейчас в теме
Стоит БП 1.6 + SQL Server при проведении документа "Закрытие месяца" пока документ проводится, все остальные пользователи не могут работать, у всех при проведении появляется ошибка "Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции..."

Были ли у кого нибудь подобные проблемы? Как побороли? Ведь бухгалтерия то типовая и 100% не у одного меня такая проблема.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alexk-is 6534 14.04.10 22:42 Сейчас в теме
(1) Можно придумать много решений. Вот, например:

Вариант 1. Заменить сервер на более мощный. Время проведения документа "закрытие месяца" сократится, соответственно конфликтов будет меньше.

Вариант 2. Закрытие месяца операция регламентная. Если учет правильно настроен, то выполняется 1 раз. Можно попросить всех выйти из программы на некоторое время или запускать по окончании смены.

Вариант 3. Включить разделение итогов. Это позволит несколько повысить параллельность работы с регистрами итогов.

Вариант 4. Разделить документ закрытия месяца на несколько и закрывать месяц поэтапно. Сначала одни счета, потом другие.

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

Вариант 6. Использовать отложенное проведение документов. Т.е. документы пользователями не проводятся, а лишь регистрируются в регистре сведений "к проведению". Проведение документов выполняется по регламентному заданию на сервере. Успешно проведенные документы из регистра "к проведению" удаляются.
3. Diversus 2312 15.04.10 08:58 Сейчас в теме
(2) Спасибо.

Но:
Вариант 1 не подходит: сервер 8 ядерный, памяти 16 Гб.
Вариант 2. Гл. бух зачастую, только при закрытии месяца видит косяки
Вариант 3. Включено
Вариант 4. Как раз так и делается. Закрытие месяца делается поэтапно...
Вариант 6. Не подходит, все документы проводятся нормально, проблем нет, кроме закрытия месяца

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


1) В свойствах конфигурации стоит:
Режим управления блокировкой данных в транзакции по умолчанию = Управляемый
2) В документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию = Автоматический
3) Во всех используемых регистрах тоже Автоматический.

Если я поставлю только у документа "Закрытие месяца" управляемый - это поможет? Или надо и у используемых регистров так же?
Да и что будет когда у одного документа стоит Упр блокировка, у регистра Бухгалтерии Упр, а у другого Авто и он использует этот же регистр Бухгалтерии?

Просто я думаю, что Авто блокировки гарантировано дадут правильность получения данных, а если отключить Авто на Упр, то будет ли все работать правильно? Готова ли вообще типовая БП к переводу на Упр блокировки?

В результате хочется чтобы пользователи работали без проблем и еще не было проблем с обновлением...

Спасибо.
4. anig99 2843 15.04.10 10:31 Сейчас в теме
(3) Несмотря на все заверения франчей и самой 1с проблемы с блокировками БУДУТ ПРИ ЛЮБЫХ УСЛОВИЯХ. Вопрос только в том как их сократить. По этому поводу написано очень много. Читайте. Например, Гилева.
5. alexk-is 6534 15.04.10 13:49 Сейчас в теме
(3) Вариант 7. Закрывать месяц под пользователем с полными правами. База работать будет быстрее.
6. anig99 2843 15.04.10 14:02 Сейчас в теме
(5) ага... RLS до добра не доведет (:
7. Diversus 2312 15.04.10 14:16 Сейчас в теме
Ну а все таки как начет просто поставить упр блокировку на один документ?
8. alexk-is 6534 15.04.10 15:55 Сейчас в теме
(7) Проблема не в документе, а в регистрах. Именно с их блокировками нужно бороться.
9. Diversus 2312 15.04.10 17:18 Сейчас в теме
(8) Хорошо, но как все таки решить проблему? Если я у регистров установлю Упр блокировку, В типовой БП не нужно будет ничего дописывать?
10. alexk-is 6534 15.04.10 21:52 Сейчас в теме
(9) Даже не знаю, что ответить. Поэтому отвечу так:

Зависит от вашей конфигурации. Проверьте есть ли в вашей конфигурации подобный код
Новый БлокировкаДанных


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

От версии к версии БП все больше объектов используют данный механизм. В БП 1.6.24.7 в документе ЗакрытиеМесяца используются управляемые блокировки. Чтобы проверить в каких местах вашей конфигурации используются управляемые блокировки выполните глобальный поиск строки "УстановитьУправляемуюБлокировку".

Решит ли это ваши проблемы? Возможно "Да", а может и "Нет". Управляемые блокировки прописаны не по всей конфигурации, а только в некоторых проблемных местах конфигурации.
11. Vladimir_D 119 22.04.10 07:25 Сейчас в теме
Та же проблема с блокировками, попробую на счет полных прав. Но с этим и проблема времени проведения закрытия месяца - более часа!!!
sql 2000
бух 1.6.24.
платформа 8.1.15
размер базы 1,6 гиг

и еще, на счет управляемых блокировок в закрытии месяца, модуль объекта весь утыкан этими блокировками
12. alexk-is 6534 22.04.10 22:11 Сейчас в теме
(11) Да, но установки флажка в параметрах конфигурации не достаточно. Обычно данный флажок используется при создании новых объектов конфигурации, т.е. в процессе конфигурирования. Разработчики фирмы 1С повесили на него дополнительную функцию - включение кусков кода для управляемых блокировок. Но для работы управляемых блокировок этого не достаточно. Необходимо указать, какие объекты работают в режиме управляемых блокировок. Иначе кроме программно наложенных блокировок сработает ещё и стандартная схема блокировок. При закрытии месяца по пессимистическому прогнозу скорее всего ожидаемой облокировки только на уровне записи не произойдет, а будут целиком заблокированы таблицы.
13. Vladimir_D 119 23.04.10 06:31 Сейчас в теме
Сделал замер производительности - больше всего 97% времени выполнялся запрос расчета спецодежды... буду копать почему так долго...
14. Diversus 2312 27.04.10 10:48 Сейчас в теме
И все таки по моему случаю...

Я правильно понимаю необходимо в документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию установить в Управляемый, и во всех связанных регистрах этого документа (Рег. бух. Налоговый, Хозрасчетный, Рег. накопл. Книга учетов доходов и расходов и т.д.)?

А в свойствах конфигурации:
Режим управления блокировкой данных в транзакции по умолчанию = "Автоматический и управляемый"?

А как будут вести себя блокировки в других объектах связанных с этими регистрами?
15. Endrews 13.12.11 12:20 Сейчас в теме
Какая версия Бухгалтерии, в 1.6.30 уже написаны какие-то Уб. Сдается галочки Вам не помогут.

Я дописывал во все документы (обработка проведения, обработка удаления) код типа такого

Блокировка = Новый БлокировкаДанных;
УправляемыеБлокировки.УстановитьБлокировки (Ссылка, Блокировка);
Блокировка.Заблокировать();

В Модуле Управляемые Блокировки, для каждого регистра документа, по которому есть движение

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот