Несколько мер, которые можно предпринять для предотвращения грязного чтения в 1С:
- Использовать управляемый режим блокировок. 12 В этом режиме 1С применяет уровень изоляции транзакций Read Committed, который позволяет читать данные из завершённых транзакций. 1
- Устанавливать управляемые блокировки. 2 Разделяемая блокировка защищает данные от изменения другими транзакциями, а исключительная — запрещает не только изменение, но и чтение данных другими транзакциями. 2
- Использовать ключевое слово «Для изменения» в запросе. 1 С его помощью 1С позволяет заблокировать таблицы от изменений на время выполнения запроса. 1 При этом запрос необходимо выполнять в транзакции. 1
- Перевести базу SQL в режим read commited snaphot. 4 В этом режиме за пределами изменяющей транзакции данные читаются из snapshot-а базы, и изменения данных внутри транзакции не вызывают блокировку на чтение этих данных вне этой транзакции. 4
В версии 1С 8.3 версионирование включено «из коробки», и грязное чтение не происходит. 1