Проблема блокировок при закрытии месяца БП 1.6
Стоит БП 1.6 + SQL Server при проведении документа "Закрытие месяца" пока документ проводится, все остальные пользователи не могут работать, у всех при проведении появляется ошибка "Ошибка при вызове метода контекста (Записать): Конфликт блокировок при выполнении транзакции..."
Были ли у кого нибудь подобные проблемы? Как побороли? Ведь бухгалтерия то типовая и 100% не у одного меня такая проблема.
Были ли у кого нибудь подобные проблемы? Как побороли? Ведь бухгалтерия то типовая и 100% не у одного меня такая проблема.
По теме из базы знаний
- Удаление данных с отбором и построением дерева ссылок в базах 1С 8.1-8.3 УТ 10.3./11, БП 2/3, ЗУП 2.5/3, КА 1.1/2, УНФ 1.6/3.0
- Тест серверного оборудования на допустимое количество пользователей: как это использовать?
- Краткое руководство по внесению изменений в конфигурацию
- Ошибка загрузки большого архива 1Cv8.dt в PostgresSQL на платформе 1С 8.3.19
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Можно придумать много решений. Вот, например:
Вариант 1. Заменить сервер на более мощный. Время проведения документа "закрытие месяца" сократится, соответственно конфликтов будет меньше.
Вариант 2. Закрытие месяца операция регламентная. Если учет правильно настроен, то выполняется 1 раз. Можно попросить всех выйти из программы на некоторое время или запускать по окончании смены.
Вариант 3. Включить разделение итогов. Это позволит несколько повысить параллельность работы с регистрами итогов.
Вариант 4. Разделить документ закрытия месяца на несколько и закрывать месяц поэтапно. Сначала одни счета, потом другие.
Вариант 5. Использовать режим управляемых блокировок. Обычно закрывается прошлый месяц, а документы, вызывающие конфликт блокировок проводятся в текущем. В данном случае это также может повысить параллельность работы пользователей.
Вариант 6. Использовать отложенное проведение документов. Т.е. документы пользователями не проводятся, а лишь регистрируются в регистре сведений "к проведению". Проведение документов выполняется по регламентному заданию на сервере. Успешно проведенные документы из регистра "к проведению" удаляются.
Вариант 1. Заменить сервер на более мощный. Время проведения документа "закрытие месяца" сократится, соответственно конфликтов будет меньше.
Вариант 2. Закрытие месяца операция регламентная. Если учет правильно настроен, то выполняется 1 раз. Можно попросить всех выйти из программы на некоторое время или запускать по окончании смены.
Вариант 3. Включить разделение итогов. Это позволит несколько повысить параллельность работы с регистрами итогов.
Вариант 4. Разделить документ закрытия месяца на несколько и закрывать месяц поэтапно. Сначала одни счета, потом другие.
Вариант 5. Использовать режим управляемых блокировок. Обычно закрывается прошлый месяц, а документы, вызывающие конфликт блокировок проводятся в текущем. В данном случае это также может повысить параллельность работы пользователей.
Вариант 6. Использовать отложенное проведение документов. Т.е. документы пользователями не проводятся, а лишь регистрируются в регистре сведений "к проведению". Проведение документов выполняется по регламентному заданию на сервере. Успешно проведенные документы из регистра "к проведению" удаляются.
(2) Спасибо.
Но:
Вариант 1 не подходит: сервер 8 ядерный, памяти 16 Гб.
Вариант 2. Гл. бух зачастую, только при закрытии месяца видит косяки
Вариант 3. Включено
Вариант 4. Как раз так и делается. Закрытие месяца делается поэтапно...
Вариант 6. Не подходит, все документы проводятся нормально, проблем нет, кроме закрытия месяца
Вот Вариант 5 я думаю подойдет. Я то же о нем думал, но ничего толком по этому поводу не нашел. Есть на сайте 1 статья, как человек перевел конфигурацию на упр блокировки и обработка которая помогает найти связанные регистры для перевода на упр блокировки, но толком о блокировка ничего нет. Нигде нет информации о том, что делать если:
1) В свойствах конфигурации стоит:
Режим управления блокировкой данных в транзакции по умолчанию = Управляемый
2) В документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию = Автоматический
3) Во всех используемых регистрах тоже Автоматический.
Если я поставлю только у документа "Закрытие месяца" управляемый - это поможет? Или надо и у используемых регистров так же?
Да и что будет когда у одного документа стоит Упр блокировка, у регистра Бухгалтерии Упр, а у другого Авто и он использует этот же регистр Бухгалтерии?
Просто я думаю, что Авто блокировки гарантировано дадут правильность получения данных, а если отключить Авто на Упр, то будет ли все работать правильно? Готова ли вообще типовая БП к переводу на Упр блокировки?
В результате хочется чтобы пользователи работали без проблем и еще не было проблем с обновлением...
Спасибо.
Но:
Вариант 1 не подходит: сервер 8 ядерный, памяти 16 Гб.
Вариант 2. Гл. бух зачастую, только при закрытии месяца видит косяки
Вариант 3. Включено
Вариант 4. Как раз так и делается. Закрытие месяца делается поэтапно...
Вариант 6. Не подходит, все документы проводятся нормально, проблем нет, кроме закрытия месяца
Вот Вариант 5 я думаю подойдет. Я то же о нем думал, но ничего толком по этому поводу не нашел. Есть на сайте 1 статья, как человек перевел конфигурацию на упр блокировки и обработка которая помогает найти связанные регистры для перевода на упр блокировки, но толком о блокировка ничего нет. Нигде нет информации о том, что делать если:
1) В свойствах конфигурации стоит:
Режим управления блокировкой данных в транзакции по умолчанию = Управляемый
2) В документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию = Автоматический
3) Во всех используемых регистрах тоже Автоматический.
Если я поставлю только у документа "Закрытие месяца" управляемый - это поможет? Или надо и у используемых регистров так же?
Да и что будет когда у одного документа стоит Упр блокировка, у регистра Бухгалтерии Упр, а у другого Авто и он использует этот же регистр Бухгалтерии?
Просто я думаю, что Авто блокировки гарантировано дадут правильность получения данных, а если отключить Авто на Упр, то будет ли все работать правильно? Готова ли вообще типовая БП к переводу на Упр блокировки?
В результате хочется чтобы пользователи работали без проблем и еще не было проблем с обновлением...
Спасибо.
(9) Даже не знаю, что ответить. Поэтому отвечу так:
Зависит от вашей конфигурации. Проверьте есть ли в вашей конфигурации подобный код
Если есть, то это значит, что в вашей конфигурации уже есть поддежка работы в режиме управляемых блокировок. Вопрос только в том, достаточно того что уже есть или нет?
От версии к версии БП все больше объектов используют данный механизм. В БП 1.6.24.7 в документе ЗакрытиеМесяца используются управляемые блокировки. Чтобы проверить в каких местах вашей конфигурации используются управляемые блокировки выполните глобальный поиск строки "УстановитьУправляемуюБлокировку".
Решит ли это ваши проблемы? Возможно "Да", а может и "Нет". Управляемые блокировки прописаны не по всей конфигурации, а только в некоторых проблемных местах конфигурации.
Зависит от вашей конфигурации. Проверьте есть ли в вашей конфигурации подобный код
Новый БлокировкаДанных
Если есть, то это значит, что в вашей конфигурации уже есть поддежка работы в режиме управляемых блокировок. Вопрос только в том, достаточно того что уже есть или нет?
От версии к версии БП все больше объектов используют данный механизм. В БП 1.6.24.7 в документе ЗакрытиеМесяца используются управляемые блокировки. Чтобы проверить в каких местах вашей конфигурации используются управляемые блокировки выполните глобальный поиск строки "УстановитьУправляемуюБлокировку".
Решит ли это ваши проблемы? Возможно "Да", а может и "Нет". Управляемые блокировки прописаны не по всей конфигурации, а только в некоторых проблемных местах конфигурации.
Та же проблема с блокировками, попробую на счет полных прав. Но с этим и проблема времени проведения закрытия месяца - более часа!!!
sql 2000
бух 1.6.24.
платформа 8.1.15
размер базы 1,6 гиг
и еще, на счет управляемых блокировок в закрытии месяца, модуль объекта весь утыкан этими блокировками
sql 2000
бух 1.6.24.
платформа 8.1.15
размер базы 1,6 гиг
и еще, на счет управляемых блокировок в закрытии месяца, модуль объекта весь утыкан этими блокировками
(11) Да, но установки флажка в параметрах конфигурации не достаточно. Обычно данный флажок используется при создании новых объектов конфигурации, т.е. в процессе конфигурирования. Разработчики фирмы 1С повесили на него дополнительную функцию - включение кусков кода для управляемых блокировок. Но для работы управляемых блокировок этого не достаточно. Необходимо указать, какие объекты работают в режиме управляемых блокировок. Иначе кроме программно наложенных блокировок сработает ещё и стандартная схема блокировок. При закрытии месяца по пессимистическому прогнозу скорее всего ожидаемой облокировки только на уровне записи не произойдет, а будут целиком заблокированы таблицы.
И все таки по моему случаю...
Я правильно понимаю необходимо в документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию установить в Управляемый, и во всех связанных регистрах этого документа (Рег. бух. Налоговый, Хозрасчетный, Рег. накопл. Книга учетов доходов и расходов и т.д.)?
А в свойствах конфигурации:
Режим управления блокировкой данных в транзакции по умолчанию = "Автоматический и управляемый"?
А как будут вести себя блокировки в других объектах связанных с этими регистрами?
Я правильно понимаю необходимо в документе Закрытие месяца
Режим управления блокировкой данных в транзакции по умолчанию установить в Управляемый, и во всех связанных регистрах этого документа (Рег. бух. Налоговый, Хозрасчетный, Рег. накопл. Книга учетов доходов и расходов и т.д.)?
А в свойствах конфигурации:
Режим управления блокировкой данных в транзакции по умолчанию = "Автоматический и управляемый"?
А как будут вести себя блокировки в других объектах связанных с этими регистрами?
Какая версия Бухгалтерии, в 1.6.30 уже написаны какие-то Уб. Сдается галочки Вам не помогут.
Я дописывал во все документы (обработка проведения, обработка удаления) код типа такого
Блокировка = Новый БлокировкаДанных;
УправляемыеБлокировки.УстановитьБлокировки (Ссылка, Блокировка);
Блокировка.Заблокировать();
В Модуле Управляемые Блокировки, для каждого регистра документа, по которому есть движение
Элемент = Блокировка.Добавить(""+Строка+".НаборЗаписей"); //Где строка регистр
Элемент.Режим = РежимБлокировкиДанных.Исключительный;
Элемент.УстановитьЗначение("Регистратор", Ссылка);
Я дописывал во все документы (обработка проведения, обработка удаления) код типа такого
Блокировка = Новый БлокировкаДанных;
УправляемыеБлокировки.УстановитьБлокировки (Ссылка, Блокировка);
Блокировка.Заблокировать();
В Модуле Управляемые Блокировки, для каждого регистра документа, по которому есть движение
Элемент = Блокировка.Добавить(""+Строка+".НаборЗаписей"); //Где строка регистр
Элемент.Режим = РежимБлокировкиДанных.Исключительный;
Элемент.УстановитьЗначение("Регистратор", Ссылка);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот