Здравствуйте, уважаемые форумчане. Столкнулся с одной проблемой. Имеется обработка по переносу данных из 1С7.7 в 1С8. В один "прекрасный" момент при записи документа выходит ошибка "В данной транзакции уже происходили ошибки". Хотя этого же вида документы уже более сотни были успешно записаны. Прошу подсказать в чём может быть проблема. Часть кода прилагаю:

```1c
    ИначеЕсли OLEДокумент.Вид() = "ШтрихкодыДляОтгрузкиДилеру" Тогда
    НомерИзПредыдущейВерсии = "+OLEДокумент.Вид()+" № "+СокрЛП(OLEДокумент.НомерДок)+" ("+Формат(OLEДокумент.ДатаДок,"ДЛФ=Д")+"), "+OLEДокумент.ПолучитьПозицию();
    ИдентификаторОбъектаИзПредыдущейВерсии = OLEДокумент.Вид()+", "+СокрЛП(Прав(OLEДокумент.ПолучитьПозицию(),СтрДлина(СокрЛП(OLEДокумент.ПолучитьПозицию()))-10));
    ВыбДокумент = Документы.ШтрихкодыДляОтгрузкиДилеру.НайтиПоРеквизиту("ИдентификаторОбъектаИзПредыдущейВерсии",ИдентификаторОбъектаИзПредыдущейВерсии);
    Если ВыбДокумент.Пустая() = Ложь Тогда
    Если ОбновитьДанные = Ложь Тогда
    Возврат ВыбДокумент.Ссылка;
    Иначе
    НовыйДокумент = ВыбДокумент.ПолучитьОбъект();
    НовыйДокумент.Штрихкоды.Очистить();
    КонецЕсли;
    Иначе
    НовыйДокумент = Документы.ШтрихкодыДляОтгрузкиДилеру.СоздатьДокумент();
    НовыйДокумент.ИдентификаторОбъектаИзПредыдущейВерсии = ИдентификаторОбъектаИзПредыдущейВерсии;
    КонецЕсли;
    НовыйДокумент.Дата = Дата(Год,Месяц,День,Часы,Минуты,Секунды);
    Если OLEДокумент.Автор.Выбран() = 1 Тогда
    НовыйДокумент.Автор = СозданиеЭлементаСправочника(OLEДокумент.Автор,,OLEБаза);
    КонецЕсли;
    НовыйДокумент.НомерИзПредыдущейВерсии = НомерИзПредыдущейВерсии;
    Если OLEДокумент.Склад.Выбран() = 1 Тогда
    НовыйДокумент.Склад = СозданиеЭлементаСправочника(OLEДокумент.Склад,,OLEБаза);
    КонецЕсли;
    НовыйДокумент.Примечание = ПреобразованиеНаименования(OLEДокумент.Основание);
    OLEДокумент.ВыбратьСтроки();
    Пока OLEДокумент.ПолучитьСтроку() = 1 Цикл
    НоваяСтрока = НовыйДокумент.Штрихкоды.Добавить();
    Если OLEДокумент.Товар.Выбран() = 1 Тогда
    НоваяСтрока.Товар = СозданиеЭлементаСправочника(OLEДокумент.Товар,,OLEБаза);
    КонецЕсли;
    НоваяСтрока.Штрихкод = OLEДокумент.Штрихкод;
    НоваяСтрока.СерийныйНомер = ПреобразованиеНаименования(OLEДокумент.СерийныйНомер);
    Если OLEДокумент.СерийныйНомерСпр.Выбран() = 1 Тогда
    НоваяСтрока.СерийныйНомерСпр = СозданиеЭлементаСправочника(OLEДокумент.СерийныйНомерСпр,НоваяСтрока.Товар,OLEБаза);
    КонецЕсли;
    НоваяСтрока.Количество = OLEДокумент.Количество;
    НоваяСтрока.СтатусСерийногоНомера = ПреобразованиеНаименования(OLEДокумент.СтатусСерийногоНомера);
    КонецЦикла;
    Если OLEДокумент.ДокументОснование.Выбран() = 1 Тогда
    НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
    ДокументОснование = СозданиеДокументов(OLEДокумент.ДокументОснование,,OLEБаза);
    НовыйДокумент.ДокументОснование = ДокументОснование.Ссылка;
    КонецЕсли;
    НовыйДокумент.Записать(РежимЗаписиДокумента.Запись);
    Если OLEДокумент.ПометкаУдаления() = 1 Тогда
    НовыйДокумент.УстановитьПометкуУдаления(Истина);
    ИначеЕсли OLEДокумент.Проведен() = 1 Тогда
    Если ОбновитьДанные Тогда
    Если НовыйДокумент.ПометкаУдаления Тогда
    НовыйДокумент.УстановитьПометкуУдаления(Ложь);
    ИначеЕсли НовыйДокумент.Проведен Тогда
    НовыйДокумент.Записать(РежимЗаписиДокумента.ОтменаПроведения);
    КонецЕсли;
    КонецЕсли;
    Попытка
    НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);
    Исключение
    Сообщить("Непроведенный документ "+НовыйДокумент.Метаданные().Синоним+" № "+НовыйДокумент.Номер+" Дата "+НовыйДокумент.Дата,СтатусСообщения.ОченьВажное);
    ДокНепроведенныеДокументыНоваяСтрока = ДокНепроведенныеДокументы.Документы.Добавить();
    ДокНепроведенныеДокументыНоваяСтрока.Документ = НовыйДокумент.Ссылка;
    ДокНепроведенныеДокументыНоваяСтрока.Статус = "Не проведен";
    ДокНепроведенныеДокументы.Записать(РежимЗаписиДокумента.Запись);
    КонецПопытки
    КонецЕсли;
    Сообщить("Документ "+НовыйДокумент.Метаданные().Синоним+" № "+НовыйДокумент.Номер+" Дата "+НовыйДокумент.Дата);
    Возврат НовыйДокумент.Ссылка;
    КонецЕсли;
```

Ошибка выходит на строке, следующей после строки Если OLEДокумент.ДокументОснование.Выбран() = 1 Тогда. Сама база клиент-серверная, но также проверял на файловой базе. Ошибка та же выходит.
---
Решено. В модуле документа в процедуре ПередЗаписью() был код, который записывал справочник. Он и привёл к ошибке.
---
Решено. В модуле документа в процедуре ПередЗаписью() был код, который записывал справочник. Он и привёл к ошибке.