Проблема "грязного чтения" в запросах (1С-SQL) |
Те, кто часто строит отчеты в Но данный эффект имеет простое и логичное объяснение. Если исследовать в Итак, отчего в отчете получаются неверные данные. Это происходит при многопользовательской работе в моменты, когда один пользователь запускает отчет, а другой проводит документы, причем не создает новые, а когда перепроводит документы, бывшие проведенными. То есть – при операции перепроведения документа. Рассмотрим процесс перепроведения документа более подробно. В момент проведения получает управления модуль документа – его процедура Проверить описываемый эффект очень легко. Нужно модифицировать один из документов в конфигурации таким образом, чтобы в самом начале модуля проведения выдавалось предупреждение, с последующим ожиданием нажатия кнопки. Надо запустить два сеанса в базе данных, в одном выполнить перепроведение документа, а в момент, когда будет выдано предупреждение, во втором сеансе снять отчет, который зависит от движений регистров перепроводимого документа. Если предупреждение стоит в самом начале документа, в конфигураторе для этого документа используется отметка «автоматическое удаление движений», то отчет покажет нам, что документ не оставил в регистрах записей. То есть, налицо факт нарушения достоверности данных. Какой может быть выход из данной ситуации? Вариантов несколько – не перепроводить документы в момент построения важных отчетов, использовать разделение баз данных на транзакционную и аналитическую, либо писать отчеты с помощью методов прямого доступа к базе данных и позаботиться при этом о необходимом уровне блокировок.
Перепечатка, воспроизведение в любой форме, распространение, в том числе в переводе, любых материалов с сайта www.softpoint.ru возможны только с письменного разрешения компании "СофтПоинт". Это правило действует для всех без исключения случаев, кроме тех, когда в материале прямо указано разрешение на копирование (основание: Закон Российской Федерации "Об авторском праве и смежных правах"). |
Статья: Проблема "грязного чтения" в запросах (1С-SQL) |
Перейти на главную страницу компании "Софтпоинт" |