Программа 1С является самой популярной и наиболее удобной при автоматизации предприятия. В ней предусмотрены решения, созданные на базе одной платформы, соответственно, функционируют они по одному принципу, что значительно упрощает использование ПО. Нередко пользователи сталкиваются с сообщением «В данной транзакции уже происходили ошибки». Рассмотрим как в 1С 8.3 исправить подобную проблему.

Содержание
- Причина появления сообщения о повторных ошибках в 1С 8.3
- Есть ли смысл исправлять ошибки транзакции, которые уже происходили
- Устраняем ошибку транзакции в 1С Предприятие версии 8.3
- Также можно выполнить удаление другим способом:
- Особенности написания кода, которые помогут исключить ошибку в транзакциях
Причина появления сообщения о повторных ошибках в 1С 8.3
Главная проблема заключается в том, что сообщение об ошибке «В данной транзакции уже происходили ошибки» неинформативно, нет никакой конкретики. Поэтому будем опираться на проблемы, с которыми чаще всего сталкиваются пользователи. Например, с технической стороны ошибка такого рода может возникнуть при первой транзакции, то есть и при первичном обращении к базе данных.

Подобная ошибка может произойти при обработки ситуации «Попытка-Исключение». Например, при создании записи «Объект_1» формируется исключительная ситуация, а сама ошибка появляется в «Ссылка_2.Наименование». То есть происходит запрос базы данных объектной модели.
В «Попытке-Исключение» начинается обработка операции, которая также должна быть выполнена в транзакции, которая, в свою очередь, может быть явной или неявной (создается в момент записи объекта).
1С: Предприятие 8.3 не поддерживает транзакций вложенного типа. Однако допускается создание вложенной конструкции сразу нескольких транзакций. Из-за наличия явной и неявной транзакции может возникнуть ошибка. То есть программа запрещает транзакцию 1-го уровня на более низших уровнях.
Читайте также: Значение не является значением объектного типа 1С.
Есть ли смысл исправлять ошибки транзакции, которые уже происходили
При работе с 1С 8.3 не стоит оставлять подобные вещи без внимания. Прежде всего, другой пользователь также может столкнуться с ней, но не поймет причин её возникновения. Если не выполнить отладку системы, то в дальнейшем могут возникнуть дополнительные проблемы. Так как оповещение «В данной транзакции уже происходили ошибки» появляется при первом обращении, то в журнале регистрации данная строка обязательно зафиксируется, но, опять же, без подробного пояснения. Хоть ошибка и располагается на нижнем уровне кода, она нарушит необходимую иерархию. Это приведет к сбою других функций и только еще больше запутает администратора.
При наличие некорректного кода, транзакции будут выполняться с нарушениями или не будут выполняться вовсе. Поэтому при возникновении таких сообщений стоит решить проблему.
Устраняем ошибку транзакции в 1С Предприятие версии 8.3
В первую очередь стоит очистить кэш базы данных. Сделать это можно вручную. Для этого:
- Переходим на диск, на котором расположена база 1С.
- Переходим в папку с базой (путь может отличаться, но по умолчанию она установлена в той директории, которая показана на фото ниже).

- Удаляем кэш вручную.

- То же самое делаем с кэшем в папке 1с8.2.
Также можно выполнить удаление другим способом:
- Создаем на рабочем столе пустой документ. Назовем его «Удаление пользовательского кэша».

- Указываем в нем следующую строчу и сохраняем документ в формате .bat.

После того, как файл преобразуется, его можно запустить и весь пользовательский кэш удалится автоматически. Пробуем снова запустить программу и выполнить операцию. Если не помогло, то лучше всего обратиться к администратору. Также нужно помнить про основные особенности написания кода с использованием транзакций. Это поможет исключить ряд распространенных ошибок.
Также вам будет интересно: Ошибка в 1С 7.7 «Порядок сортировки, установленный для базы данных, отличается от системного».
Особенности написания кода, которые помогут исключить ошибку в транзакциях
Прежде всего нужно опираться на нюансы корректной обработки исключений:
- Метод «Начать транзакцию» должен быть вынесен за пределы «Попытка-Исключение».
- Действия, осуществляемые после вызова «Начать транзакцию» должны быть в пределах блока «Попытка». К этом также относится чтение, обработка или блокировка данных.
- Метод «Зафиксировать транзакцию» необходимо прописывать последним в блоке «Попытка» и до «Исключение».
- В блоке «Исключение» необходимо сначала обратиться к методу «Отменить транзакцию» и уже потом выполнять прочие действия.
- Если применяются вложенные транзакции, то в конце «Исключение» не лишним будет добавить оператора «Вызвать исключение».
- В «Исключения» следует добавить соответствующую запись об ошибке.
- Если транзакция неявная, то нет никакого смысла переходить к методу «Начать транзакцию». Некоторые также пробуют «обернуть» в явную транзакцию те операции, которые и вовсе не нуждаются в согласовании.
Решить проблему транзакций, в которых происходят ошибки, самостоятельно получается не всегда. Поэтому стоит попробовать выполнить простейшие действия – перезагрузить программу или очистить кэш. К более серьезным манипуляциям в 1С стоит переходить только при уверенности, что вы обладаете достаточным опытом.
1c. Ошибки с онлайн кассами.
1c Управление небольшой фирмой, 1С Управление торговлей 10.3, 1C Предприятие, 1С Бухгалтерия, Мобильная касса и ККТ АТОЛ 11Ф, 1с Розница ошибка фн 212, 1с и атол ошибка 231

Не работает сканер, весы, ККТ и эквайринг, оставляйте заявку в комментариях, либо
— Пишите в
WhatsApp +7(987)-268-84-37
1C Розница 2.3. Принтер этикеток АТОЛ BP21 не печатает, что делать?
1с Розница 2.2 печать кассира в чеке.
Пишите в support@kasselect.ru, +7(987)-268-84-37 WhatsApp
1. Ошибка программирования реквизита
Недопустимое сочетание реквизитов — Нужно проверить передаваемые реквизиты на соответствие с параметрами регистрации. Узнать на каком реквизите выходит ошибка.
148 Ошибка программирования реквизита 1002 — Нужно проверить параметры регистрации ККТ и настройки подключения кассы в 1с.
148 Ошибка программирования реквизита 1162 — Нужно обновить 1с, чтобы программа передавала этот реквизит.
1с Розница -4025 Ошибка программирования реквизита 1008 — Проверьте отчет о регистрации ККТ. Касса зарегистрирована с параметрами расчета в Интернете.
АТОЛ 30Ф: Ошибка программирования реквизита (1021) — Решение: выкл. и вкл. ККТ. Если проблема не устраняется, возможно нужно обновить драйвер ккт и 1с.
1с комиссионная торговля ошибка ккт недопустимое сочетание реквизитов
Ошибка программирования реквизита 1057 — Вы может продаете комиссионный товар? Нужно проверить параметры регистрации ККТ.
Ошибка программирования реквизита 1109 — Проверьте отчет о регистрации ККТ. Касса зарегистрирована с признаком расчетов за услуги.
АТОЛ 30Ф -4025 Ошибка программирования реквизита 1173 — Выберите тип коррекции: самостоятельно или по предписанию.
148 Ошибка программирования реквизита 1205 — Коды причин изменения сведений о ККТ
Ошибка программирования реквизита 1207 — признак торговли подакцизными товарами. Проверьте параметры регистрации.
Ошибка программирования реквизита 1226 — Нужно проверить параметры регистрации ККТ. Перерегистрировать с признаком «Изменение настроек ККТ»
Ошибка программирования реквизита 1227 — не заполнен признак покупателя (название организации, ФИО покупателя).
Ошибка программирования реквизита 1228 — Проверьте ИНН покупателя, исправьте некорректные данные.
2. Ошибка ФН
При выполнении операции произошла ошибка: Ресурс хранения ФД исчерпан. — нужно проверить связь с ОФД и отправить чеки.
Ошибка обмена с ФН на уровне интерфейса I2C — выкл. ККТ и переподключите ФН, если не помогает, то обратитесь в сервис.
1c Розница базовая 2.2 и АТОЛ 55ф при печати чека произошла ошибка 231 Некорректное значение параметров команды ФН
1с Розница ошибка фн 212 — Пояснение: чаще всего это ошибка выходит, когда ФН не фискализирована или архив ФН закрыт. Например: ФН не фискализирована, а кассир пытается снять Отчет о состоянии расчетов.
Закрытие фискального накопителя.
Случай в практике: У 1С Предприятие есть возможность закрыть архив ФН. И один клиент случайно воспользовался этой функцией. Закрытие архива – процедура, завершающая функционирование ФН. Он очень огорчился. Я бы все таки доверил все операции с ФН утилите Мастеру регистраций. У каждого ККТ она своя. И закрывайте архив только по необходимости.

При выполнении операции произошла ошибка 14h, Ограничение ресурса ФН. Отчет на фискальном регистраторе не сформирован.
3. Ошибки при открытии смены
1с Розница. При открытие смены произошла ошибка. При выполнении операции произошла ошибка 01h. Неизвестная команда, неверный формат посылки или неизвестные параметры — нужно проверить состояние ФН.

1c Розница. Ошибка Деление 0 — зайти в настройке РМК и выставить галочки настроек.
Неверный формат хранилища данных file://C:/Users/…
ККТ не отвечает или недоступна.
Не смогли определить доступные кассы ККМ. — требуется настройка Рабочего места в 1с и Подключаемое оборудование.
С момента открытия кассовой смены истекло более 24 часов. — закройте смену в ККТ и откройте смену в 1с.
Кассовая смена уже открыта.
Ошибка открытия смены. Нет касс с закрытыми сменами.
При открытии смены произошла ошибка. Смена не открыта на фискальном устройстве. Дополнительное описание. —
Нужно прочитать дополнительное описание и проверить состояние ККТ
Атол 91Ф не удается открыть смену из 1с — Нужно проверить состояние ККТ
1с Розница. Ошибка определения доступных касс ККМ. Не смогли определить доступные кассы ККМ.

Ошибка кассы COM порт недоступен — нужно проверить состояние ККТ, восстановить или настроить связь с онлайн кассой.
Пишите в support@kasselect.ru, +7(987)-268-84-37 WhatsApp
4. Ошибки при сканировании
Текст XML содержит недопустимый символ в позиции 0⁴ — проверьте настройки сканера.
РМК: при сканировании открывается справочник Номенклатура — требуется настройка сканера.
1с Розница. Сканирование кода маркировки. Код маркировки не соответствует номенклатуре.

1С Розница. Некорректный код при сканировании маркировки.

1С Розница. 1с Розница. Недопустимый формат штрихкода.
Невозможно обработать отсканированный штрихкод по причине: Статус: Неопределен.
Ошибки маркировки. Строка №1: код маркировки.
5. При печати чека произошла ошибка:
Чек не напечатан на устройстве для печати чеков. Описание ошибки: Тэг Признак предмета расчета в строке №1 не заполнен. — нужно в справочнике Вид номенклатуры/ Тип номенклатуры/ Товар, указать Признак предмет расчета Товар.
При выполнении операции произошла ошибка: Контрольная марка не проверена.
Ошибка не удалось создать чеки 1с 8.3 2.3 Розница Меркурий 185ф
При выполнении операции произошла ошибка: Некорректная сумма налога — нужно обновить ПО ККТ.
В 1с маркировка сканируется, но на чеке буква [M] не печатается — если ккт прошита под маркировку, то обновите драйвер ккт.
При выполнении операции произошла ошибка: Нет связи. — с помощью драйвера проверьте связь с ккт.
Не удалось подключить устройство АТОЛ ККТ с передачей данных в ОФД. Порт недоступен (999). — правильно настройте подключение.
1с версия 2.3.1.30 драйвер ККТ АТОЛ 10.6.00 почему не печатает чек. Зависает при печати чека — обновите ПО ККТ, перейдите на платформу 5.0.
Розница 2.2. Чек не напечатан на устройстве для печати чеков. Дополнительное описание: Сумма товарных позиций больше суммы оплат
Текст XML содержит недопустимый символ в позиции 10: Чек от…¹
Значение 0000-000003 поля Номер не уникально²
Некорректный формат или параметр команды услуга ффд 1.1 не активирована
Сбились настройки НДС после замены ФН
(после обновления ПО) — Нужно настроить НДС в программе кассира или в учетной программе.
Не удалось инициализировать фискальный принтер shtrih m drvfr epf — Проверьте драйвера на данный ККТ
Ошибка вызова метода.Объект драйвера. Открыть чек.

(-4048) Ошибка реквизита: Печать фискального отчета прервана, необходим повтор команды печати отчета с ККТ АТОЛ — Решение:Вариант 1 — Повторить операцию. Вариант 2 — Сделать техобнуление. Вариант 3 — Обновить прошивку на 4555 и выше
Ошибка»-3933, Вход в режим заблокирован» — Попробуйте отменить чек.
Не печатать чек на ККТ при отправке электронного чека — 1С Комплексная автоматизация 2 (2.4.3.137). Отправка работает только при наличии галочки в настройках.
АТОЛ30Ф заменить сно на патент — Требуется перерегистрация ККТ без замены ФН и обновление драйвера ккт до 10 версии.
Управление торговлей 10.3.+ Штрих М ККТ. FFFFFFF8h, No XML attribute ElectronicPayment — при настройке нужно использовать старую обработку ShtrihMkkt.epf, она укажет на нужную версию драйвера ккт.
Внимание! Текущая версия драйвера отличается от поддерживаемой. Корректная работа драйвера не гарантируется — проверьте в обработке оборудования версию поддерживаемого драйвера и установите нужную версию.
Не удалось загрузить драйвер устройства.
Мобильная касса и ККТ АТОЛ 11Ф с прошивкой 4555 Ошибка «Неверный формат или значение». — Решение: Обновить мобильное приложение. Нужно проверить, при печати какой строки выводит данную ошибку. Возможно потребуется настройка через Тест драйвер АТОЛ.
6. Ошибки при закрытие смены
При закрытие смены на фискальном регистраторе произошла ошибка. При выполнении операции произошла ошибка: Смена закрыта-операция невозможна. Отчет на фискальном регистраторе не сформирован.
Кассовая смена в системе не закрыта: Отчет о розничных продажах не сформирован. Выемка :Не смогли произвести выемку руб.
При снятии отчета на фискальном регистраторе произошла ошибка. Отчет с гашением прерван. Устраните неисправность и повторите печать отчета.
1с Управление торговлей 10. За кассовую смену не продано ни одного товара по выбранной кассе ККМ. Слишком большое расхождение времени! — закройте смену через драйвер, исправьте время и откройте смену через 1с.
7. Тэг не заполнен
Тэг Система налогообложения не заполнен
Tэг Наименование организации не заполнен
Tэг Кассира не заполнен
1с Управление торговлей 11, 1с Розница 2.2 при печати чека…

Решение: 1С Управление торговлей. Заполнить учетную политику. В справочнике «Организация» или «Реквизиты организации», нужно указать систему налогооблажения (скорее всего есть кнопка «Перейти»). Указать «Специальную систему налогооблажения».
Не известная ошибка 238d|00eeh
Решение:
1. Нужно определить СНО в настройках ККТ. Распечатайте отчет о регистрации.
2. В 1С кликните Справочники / Предприятия / Организации. Нажимаете на нужную организацию к которой привязана касса онлайн. Перейти в раздел Учетная политика (налоговый учет). Если отчетный период закрыт, то создаете новый иначе Вам не даст изменить политику СНО. Создав новую учетную политику переходите во вкладку — «налогообложение», указываете галочки, как в настройках ККТ , Общая/Упрощенная (Доход/Доход минус расход), сохраняете и закрываете все.
При выполнении операции произошла ошибка. ККТ не зарегистрирована с указанной СНО.
8. Иные ошибки
Драйвер устройства на текущем рабочем месте не установлен. Весы Штрих Принт.⁵
Устройство: ШТРИХ-М: Весы с печатью этикеток ШТРИХ-ПРИНТ. Выгрузить товары не удалось: При подключении устройства произошла ошибка. Не удалось подключить устройство. — нужно проверить связь с весами и восстановить связь.
При выгрузке данных в оборудование произошла ошибка. Нельзя сделать выгрузку. — нужно проверить связь с кассовым компьютером.
Неправильный путь к файлу — нужно проверить связь с кассовым компьютером. Возможно у этого компьютера проблемы с локальной сетью.
Операция прервана. Ошибка при загрузке транзакции — нужно проверить корректность файла загрузки.
Устройство подключено. Перед выполнением операции устройство должно быть отключено. — закройте все окна и повторите настройку оборудования.
Ошибка доступа к файлу C:…Отказано в доступе. — ошибка выходит при попытке сохранить документ в pdf файле. Причина была в антивирусе. Антивирус блокировал операции 1с.
Сертификаты, которые могут быть использованы для этой операции ограничены. Ни один из следующих разрешенных сертификатов не установлен на компьютере:
Сертификат просрочен или не вступил в силу
Ошибка при отправке/ получении документов. Нет доступного сертификата для отправки или получения документов. — нужно установить и добавить сертификат.
1С:Enterprise 8. Filesystem extension for Chrome and Firefox — ошибка выходит при попытке сохранить документ в папке. Проверьте антивирус, возможно блокирует действия 1с. Очистите кэш 1с.
1с Далион. Ошибка обмена с ККМ. Для налоговой ставки 20% не найдено соответствия номера налога в ККМ в элементе справочника АТОЛ³.
1с Далион. В данный момент загрузку выполняет пользователь. Пожалуйста ждите… — Нужно удалить в каталоге обмена файл-флаг.

Список информационных баз.пуст. Добавить в список информационную базу? — укажите правильный путь к базе 1с.
Файл базы данных поврежден.
Ошибка при выполнении файловой операции. Файл или папка повреждены. Чтение невозможно.
Тест не пройден [3] Порт занят
Тест не пройден [94] Некорректный код защиты / лицензия или номер.
При выполнении операции произошла ошибка 12h, Заводской номер уже введен — Проверьте состояние ФН. Проверьте версию прошивки ККТ.
АТОЛ 11ф Ошибка неверный номер регистра — Решение: Необходимо обновить прошивку кассового аппарата и обновить драйвер, поставляемый с программами 1С на драйвер с сайта АТОЛ
bitrix atol — онлайн код ошибки 10 bitrix ошибка при печати чека #26707: не распознан токен запроса.
bitrix атол ошибка при печати чека
Полезные заметки:
Фискальный накопитель
Регистрация онлайн касс
Здравствуйте! Работаю в 1С:Предприятие 8.3 (8.3.9.2233), конфигурация Бухгалтерия предприятия, редакция 3.0 (3.0.49.21). При создании документа либо создании документа копированием выходит сообщение «В данной транзакции уже происходили ошибки!» Помогите, пожалуйста, работа в программе стала невозможной.

Цитата (MarinaMorskaya):При создании документа либо создании документа копированием выходит сообщение «В данной транзакции уже происходили ошибки!»
Вы копируете еще открытый документ?
Закрывайте все окна.
Заполнить и подать уведомление об исчисленных суммах налогов и взносов

г. Новосибирск3 487 баллов
Здравствуйте!
у Вас типовая конфигурация, т.е. без изменений, или же вносились изменения в конфигурацию?

Цитата (Kamushek):Вы копируете еще открытый документ?
Закрывайте все окна.
Нет, я не копирую открытый документ. И окна закрыла. И из программы выходила. И новый документ создаю. А сохранять начинаю — лезет это сообщение…
Цитата (nsk1C):у Вас типовая конфигурация, т.е. без изменений, или же вносились изменения в конфигурацию?
Да, типовая конфигурация, без изменений.

Цитата (MarinaMorskaya):Нет, я не копирую открытый документ. И окна закрыла. И из программы выходила. И новый документ создаю. А сохранять начинаю — лезет это сообщение…
Администрирование — Поддержка и обслуживание — Активные пользователи — сколько человек?
У вас база находится на этом компьютере или на сервере? В файловом режиме или клиент-серверном работаете?
Используете ли терминальный сервер?

Цитата (Kamushek):Администрирование — Поддержка и обслуживание — Активные пользователи — сколько человек?
Татьяна, может быть в фоновом задании дело? Кажется, один человек всегда числился, а сейчас ещё строка… Посмотрите скрин, пожалуйста.
Заполняйте платежки с актуальными на сегодня КБК, кодами дохода и другими обязательными реквизитами

Цитата (MarinaMorskaya):Татьяна, может быть в фоновом задании дело?
Фоновое задание не должно мешать, на то оно и фоновое.
Но проверить можно
Администрирование — Поддержка и обслуживание — Регламентные операции — Регламентные и фоновые задания — закладка Фоновые задания — что там?

Цитата (Kamushek):закладка Фоновые задания — что там?
там много записей (скрин)

Оставьте только флажок выполняется.

«
Цитата (Kamushek):Оставьте только флажок выполняется.
Все обновления новостей» — осталась 1 строка
Формируйте электронные реестры и сдавайте их в ФСС через интернет

У вас есть расчеты с валютой?
Если да, то как часто вам нужно загружать ее?
У вас валюты загружаются каждые 2 часа. Мне кажется и раз в день при начале работы достаточно?
Оптимизируйте регламентные задания.

Цитата (Kamushek):Оптимизируйте регламентные задания.
Вы подскажете как это сделать, Татьяна?
Расчетов с валютой нет. В программе ведётся простой учет: приход, расход, банк, отчеты, всё.
Цитата (Kamushek):Оптимизируйте регламентные задания.
Татьяна, оптимизировала, сняв все галки. Теперь сообщение не выходит. Вы снова меня выручили, чудесная палочка-выручалочка, спасибо!💐

Администрирование — Интернет-поддержка пользователей — посмотрите настройки управлениями новостями.
Обновление версии программы — указано при запуске?
Что касается Валюты.
Администрирование — Поддержка и обслуживание — Регламентные операции — Регламентные и фоновые задания — закладка Регламентные задания — Загрузка курсов валют
Если расчетов в валюте вообще нет, то можно снять флажок Включено.
Если редко, но расчеты в валюте бывают, то Расписание
Общие — Повторять 1
Дневное время начала — например 13-00 (время перерыва)
Недельное — кроме выходных
Месячное — пусто
В результате настроек внизу на закладке Общие должно быть написано
типа каждый день с 13-00, один раз в день.
Но это не решение проблемы.
Цитата (Kamushek):У вас база находится на этом компьютере или на сервере? В файловом режиме или клиент-серверном работаете?
Используете ли терминальный сервер?
Ответьте на эти вопросы, если проблема повторяется.

Цитата (Kamushek):Ответьте на эти вопросы, если проблема повторяется.
Сообщение больше не выходит, но всё же на будущее… я отвечу на поставленные вопросы. База находится на этом компьютере, терминальный сервер не используется, работаю в файловом режиме (я так полагаю, поскольку 1С нелицензионная).
СЭДО с ФСС
Готовьте и сдавайте в ФСС сведения о застрахованных лицах
Содержание:
1. Причина ошибки в 1С Предприятие 8.3
2. Почему ошибку «В данной транзакции уже происходили ошибки» надо устранить
3. Как устранить ошибку в программе 1С Предприятие 8
Довольно часто пользователи программы 1С Предприятие 8 сталкиваются с ошибкой «В данной транзакции уже происходили ошибки».
В данной транзакции уже происходили ошибки
Документ не записывается, а понять, в чем причина невозможно, т.к. текст сообщения об ошибке ни чего конкретного не сообщает.
Давайте разберемся в чем причина.
1. Причина ошибки в 1С Предприятие 8.3
С технической точки зрения эта ошибка в 1С:Предприятие 8.3 возникает в транзакции в момент первого обращения к базе данных после обработки исключительной ситуации операторами (Попытка-Исключение).
Ниже на рисунке продемонстрирован пример, когда при записи объекта «Объект_1» вызывается исключительная ситуация, при этом ошибка возникает в строке «Ссылка_2.Наименование», т.к. осуществляется запрос к базе данных в объектной модели данных. И не важно, запись это или чтение.
Возникновение ошибки в 1С Предприятие 8.3 при записи объекта
Причем в попытке-исключении обрабатываться операция, которая также выполняется в транзакции. Чаще всего это сочетание явных и неявных транзакций, т.е. транзакций, вызванных оператором НачатьТранзакцию явно и транзакций, вызванных платформой неявно (например, при записи объекта).
Как известно, система 1С:Предприятие 8.3 не поддерживает вложенных транзакций, но допускает организацию вложенной конструкции нескольких транзакций. В нашем примере явный вызов транзакции оператором НачатьТранзакцию – транзакция 1 уровня, а неявная транзакция записи – транзакция 2 уровня и т.д. Возникновение ошибки на нижних уровнях запрещает успешное завершение транзакции 1 уровня. Другими словами, откатывается все «дерево транзакций».
В чем же здесь проблема?
2. Почему ошибку «В данной транзакции уже происходили ошибки» надо устранить
Во-первых, пользователь никогда не поймет в чем причина, т.к. формулировка сообщения об ошибке для него не информативна.
Во-вторых, воспроизведение ошибки и ее отладка администратором тоже будет не простым занятием. Дело в том, что ошибка возникает в момент первого обращения к базе данных, т.е. в журнале регистрации будет зафиксирована именно эта строка. Хотя сама причина этой ошибки находиться в коде на самом нижнем уровне. В нашем примере «Объект_1» может содержать различные проверки перед записью, «завернутые» в конструкцию «Попытка-Исключение», которые, в свою очередь, могут также иметь глубокую иерархию вызовов процедур и функций. Попробуй разберись.
В-третьих, суть этой ошибки – некорректный код. А если быть более точным – несоблюдение требований к написанию кода с использованием транзакций.
Как решить эту проблему в 1С:Предприятие?
3. Как устранить ошибку в программе 1С Предприятие 8
Основным требованием к написанию кода с использованием транзакций, непосредственно связанным с ошибкой «В данной транзакции уже происходили ошибки» в 1С:Предприятие, являются правила использования обработки исключения:
1. Метод НачатьТранзакцию должен находиться за пределами блока Попытка-Исключение;
2. Все действия, выполняемые после вызова метода НачатьТранзакцию, должны находиться в одном блоке Попытка, в том числе чтение, блокировка и обработка данных;
3. Метод ЗафиксироватьТранзакцию должен идти последним в блоке Попытка перед оператором Исключение;
4. В блоке Исключение нужно сначала вызвать метод ОтменитьТранзакцию, а затем выполнять другие действия;
5. При использовании вложенных транзакций в конце блока Исключение рекомендуется добавить оператор ВызватьИсключение. Это позволит перенаправить исключение выше по стеку. В этом случае в журнале регистрации мы получим именно ту строку, которая привела к ошибке;
6. В блоке исключения рекомендуется сделать запись об ошибке средствами встроенного языка.
Общая схема во вложенной транзакции:
Схема вложенной транзакции в системе 1С:Предприятие 8.3
Пример:
Пример вложенной транзакции для решения ошибки «В данной транзакции уже происходили ошибки»
Не следует использовать метод НачатьТранзакцию внутри неявной транзакции, вызванной платформой. В этом нет никакого смысла. Не стоит также «оборачивать» в явную транзакцию операцию записи коллекции объектов, которые не требуют согласованной записи. Если в блоке исключения, вложенной транзакции не используется оператор ВызватьИсключение, а используется, например, сообщение или запись в журнал регистрации, то нужно избегать явного или неявного обращения к базе данных после обработки исключения в конфигурациях 1С Предприятие 8.
Специалист компании «Кодерлайн»
Игорь Торба