Уровень изоляции транзакций внешнего источника данных, при котором операция чтения возвращает данные, не зафиксированные в других транзакциях на момент начала транзакции, операция записи на измененных в других транзакциях данных перезаписывает данные (может быть обеспечено поведение уровня ЧтениеЗафиксированных или выше, зависит от внешнего источника данных).
Полное описание, параметры и ограничения
УровеньИзоляцииТранзакций.ЧтениеНезафиксированных (TransactionsIsolationLevel.ReadUncommitted)
УровеньИзоляцииТранзакций (TransactionsIsolationLevel)
ЧтениеНезафиксированных (ReadUncommitted)
Доступен, начиная с версии 8.3.5.
Описание:
Уровень изоляции транзакций внешнего источника данных, при котором операция чтения возвращает данные, не зафиксированные в других транзакциях на момент начала транзакции, операция записи на измененных в других транзакциях данных перезаписывает данные (может быть обеспечено поведение уровня ЧтениеЗафиксированных или выше, зависит от внешнего источника данных).
Использование в версии:
Доступен, начиная с версии 8.3.5.
Методическая информация
Практические примеры
Прикладной пример: УровеньИзоляцииТранзакций.ЧтениеНезафиксированных
Конкретный собственный регистр / внешний источник / карта маршрута и точное применение системного значения.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
Только собственный локальный SQL Server и отдельная учебная база 1С без рабочих внешних источников. SQL-блок выполните вручную в SSMS своего экземпляра: он создаёт новую GuideExternalBooks и две собственные таблицы. Если имя уже занято, существующую базу не удаляйте и не заменяйте.
В ODBC Data Sources разрядности серверного процесса 1С создайте собственный System DSN GuideOwnBooks: ваш localhost SQL Server, база GuideExternalBooks, Windows-аутентификация. Пользователь серверного процесса 1С должен иметь доступ только к этой учебной базе. Настройте нормальное доверие сертификату драйвера, проверку TLS не отключайте.
В Конфигураторе создайте ВнешниеИсточникиДанных → УчебныеКниги, автоматическое управление блокировками. Таблица Карточки: имя dbo.lesson_items, тип ОбъектныеДанные, ТолькоЧтение Ложь; Код=book_id Строка20, Название=title Строка100, Количество=quantity Число9.0. Null запрещён, ПоляКлюча и ПоляБлокировкиДанных — Код, представление — Название.
Таблица Строки: имя dbo.lesson_lines, тип НеобъектныеДанные, ТолькоЧтение Ложь; Урок=lesson_id Строка20, Номер=line_no Число9.0, Название=title Строка100, Количество=quantity Число9.0. Null запрещён, поля ключа / блокировки — Урок и Номер именно в этом порядке.
Используйте только свой настроенный SQL-источник УчебныеКниги из подготовки, объектную таблицу Карточки и свою BOOK-1 / Учебная книга / количество 3. Это не куб и не таблица обычного справочника 1С.
В собственной обычной форме толстого клиента Windows сначала выполните дополнительный блок соединения с собственным DSN=GuideOwnBooks, затем основной блок в той же процедуре. Пароли в код не вставляются; подключение использует собственную согласованную учётную запись ОС.
Второй параметр НачатьТранзакцию — уровень изоляции, первый — режим блокировок. Не передавайте этот enum глобальной НачатьТранзакцию базы 1С.
Если Источник.ТранзакцияАктивна() Тогда
ВызватьИсключение "У собственного внешнего источника уже есть транзакция";
КонецЕсли;
Источник.НачатьТранзакцию(, УровеньИзоляцииТранзакций.ЧтениеНезафиксированных);
Попытка
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Карточки.Название, Карточки.Количество
|ИЗ ВнешнийИсточникДанных.УчебныеКниги.Таблица.Карточки КАК Карточки
|ГДЕ Карточки.Код = &Код";
Запрос.УстановитьПараметр("Код", "BOOK-1");
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Название + ": " + Строка(Выборка.Количество));
КонецЦикла;
Источник.ОтменитьТранзакцию();
Исключение
Источник.ОтменитьТранзакцию();
Источник.РазорватьСоединение();
ВызватьИсключение;
КонецПопытки;
Источник.РазорватьСоединение();Ранее в той же собственной процедуре: открыть только свой внешний источник
Источник = ВнешниеИсточникиДанных.УчебныеКниги;
Параметры = Источник.ПолучитьПараметрыСоединенияСеанса();
Параметры.СУБД = "MSSQLServer";
Параметры.СтрокаСоединения = "DSN=GuideOwnBooks;";
Параметры.АутентификацияОС = Истина;
Параметры.АутентификацияСтандартная = Ложь;
Параметры.ИмяПользователя = "";
Параметры.Пароль = "";
Источник.УстановитьПараметрыСоединенияСеанса(Параметры);
Источник.УстановитьСоединение();Разбор по шагам
Подготовьте указанную собственную схему и данные.
Разместите основной блок и необходимые дополнительные части в точном модуле.
Сравните фактические строки / точки / режим с указанными ограничениями.
Как проверить результат
Пример только читает свою книгу; затем отменяет транзакцию именно внешнего Источника и закрывает своё соединение.
Авто выбирает изоляцию по режиму блокировок. Если уровень не поддерживается внешней СУБД, платформа автоматически повышает его: запрошенное значение не доказывает фактическую изоляцию.
Один запуск не доказывает отсутствие фантомов / неповторяемого чтения. Для сравнения конкурентных эффектов нужен отдельный согласованный опыт; здесь параллельных записей нет.
Ожидаемый результат
Системное значение применено к документированному вызову или реальному свойству, без фиктивного входного объекта.
На что обратить внимание
Эти самостоятельные опыты не запускаются в рабочей базе.
BSL, транзакции, SQL-соединение и старт процессов при сборке HTML не выполнялись.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.