в базе уже существует документ с таким id транзакции

В данной транзакции уже происходили ошибки 1С 8.3 как исправить?

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

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

Причина появления сообщения о повторных ошибках в 1С 8.3

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

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

Подобная ошибка может произойти при обработки ситуации «Попытка-Исключение». Например, при создании записи «Объект_1» формируется исключительная ситуация, а сама ошибка появляется в «Ссылка_2.Наименование». То есть происходит запрос базы данных объектной модели.

В «Попытке-Исключение» начинается обработка операции, которая также должна быть выполнена в транзакции, которая, в свою очередь, может быть явной или неявной (создается в момент записи объекта).

1С: Предприятие 8.3 не поддерживает транзакций вложенного типа. Однако допускается создание вложенной конструкции сразу нескольких транзакций. Из-за наличия явной и неявной транзакции может возникнуть ошибка. То есть программа запрещает транзакцию 1-го уровня на более низших уровнях.

Есть ли смысл исправлять ошибки транзакции, которые уже происходили

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

При наличие некорректного кода, транзакции будут выполняться с нарушениями или не будут выполняться вовсе. Поэтому при возникновении таких сообщений стоит решить проблему.

Устраняем ошибку транзакции в 1С Предприятие версии 8.3

В первую очередь стоит очистить кэш базы данных. Сделать это можно вручную. Для этого:

Также можно выполнить удаление другим способом:

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

После того, как файл преобразуется, его можно запустить и весь пользовательский кэш удалится автоматически. Пробуем снова запустить программу и выполнить операцию. Если не помогло, то лучше всего обратиться к администратору. Также нужно помнить про основные особенности написания кода с использованием транзакций. Это поможет исключить ряд распространенных ошибок.

Особенности написания кода, которые помогут исключить ошибку в транзакциях

Прежде всего нужно опираться на нюансы корректной обработки исключений:

Решить проблему транзакций, в которых происходят ошибки, самостоятельно получается не всегда. Поэтому стоит попробовать выполнить простейшие действия – перезагрузить программу или очистить кэш. К более серьезным манипуляциям в 1С стоит переходить только при уверенности, что вы обладаете достаточным опытом.

Источник

Ошибки базы данных и транзакции

При работе с базой данных могут происходить ошибки. В 1С:Предприятии 8 ошибки базы данных подразделяются на следующие две категории:

К невосстановимым относятся такие ошибки базы данных, при возникновении которых функционирование 1С:Предприятия 8 может быть серьезно нарушено. Поэтому, во избежание более серьезных неприятностей (например, порчи данных), при возникновении невосстановимой ошибки выполнение 1С:Предприятия 8 прекращается. Если невосстановимая ошибка базы данных произошла в процессе выполнения транзакции, то все изменения сделанные в рамках этой транзакции отменяются.

Если при выполнении оператора Данные.Записать() произойдет восстановимая ошибка базы данных (например, по причине того, что элемент данных был заблокирован другим пользователем), то вызванное этой ошибкой исключение будет перехвачено, но повторное выполнение этого же оператора в цикле уже безусловно приведет к ошибке, так как при выполнении данной транзакции уже имела место ошибка базы данных. Следует заметить, что не всякая ошибка приводит к невозможности продолжения выполнения и фиксации транзакции, а именно ошибка базы данных. Исключения, не имеющие отношения к ошибкам базы данных, никакого влияния на возможность продолжения выполнения транзакции не оказывают.

Как же выйти из такой ситуации? Общее правило состоит в следующем: если при выполнении транзакции имели место ошибки базы данных, то следует отменить всю транзакцию в целом и, в случае необходимости, повторить попытку ее выполнения с самого начала. Таким образом, приведенный выше пример должен быть переработан следующим образом:

В данном варианте, если при выполнении оператора Данные.Записать() произойдет восстановимая ошибка базы данных, то при обработке исключения, вызванного этой ошибкой, транзакция будет отменена и при повторном выполнении цикла транзакция будет начата сначала.

Аналогично, ошибка базы данных, произошедшая при значении счетчика транзакций большем 1, приведет к невозможности продолжения и фиксации всей транзакции в целом.

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

Источник

Как победить ошибку «В данной транзакции уже происходили ошибки»

Уважаемые специалисты, посоветуйте пожалуйста, как правильно в КА2 исправить появление вот такой ошибки:

Добавленный в КА2 2.4.5.86 документ при проведении делает следующее (документ не мой, делали до меня):

Вызывается процедура в которой происходит запись в РС примерно так:

Попытка
НаборЗаписей.Записать(Ложь);
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(«У сотрудника » + ДанныеФизическогоЛица.ФизическоеЛицо + «уже существует ЛС по зарплатному проекту » + ДанныеФизическогоЛица.ЗарплатныйПроект);
КонецПопытки;

ОтменитьТранзакцию();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(«У сотрудника » + ДанныеФизическогоЛица.ФизическоеЛицо + «уже существует ЛС по зарплатному проекту » + ДанныеФизическогоЛица.ЗарплатныйПроект);

Увидел в интернете, что корень зла в том, что во всём виновата обработка исключения сделал вот так:

ЕстьОшибка = Истина;
Попытка

НаборЗаписей.Записать(Ложь);
ЕстьОшибка = Ложь;

Если ЕстьОшибка Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(«У сотрудника » + ДанныеФизическогоЛица.ФизическоеЛицо + «уже существует ЛС по зарплатному проекту » + ДанныеФизическогоЛица.ЗарплатныйПроект);
КонецЕсли;

(4) я вообще не понимаю, зачем надо было так делать, но не могу связаться с разработчиком и вынужден придумывать сам.

Код конфигурации содержит следующий фрагмент:

(57)
> пока не размотаем транзакции, ничего более сделать не получится.
Стандарт не предлагает здесь и сейчас размотать транзакции и продолжить работу, а предлагает эскалировать исключение на верхние вызовы путем выполнения ВызватьИсключение. Т.к. часть записей в БД на верних вызовах уже не будет закомичена, и эти верхние уровни должны об этом знать.

Примера кода есть в типовых, в частности я привел в (19)
А вот что предлагаешь ты разматывая транзакции здесь и сейчас и продолжая работу?

Вроде не тебе задавал вопрос, но если ты внимательно посмотришь на типовые, то 3.6 там применяется совсем не чаще чем не применятся. Другими словами, от такого совета ТС ни холодно ни жарко.
А если есть претензии к подходу, ответь кодом, а не очередными рассуждениями со ссылками. Пока я вижу что все советы ТС заключаются в том, чтобы он проанализировал 100500 вызовов НачатьТранзакцию типовой конфы и завернул их в 3.6

Источник

Тема: РСВ-1 за 6 месяцев 2015 года

Опции темы
Поиск по теме

РСВ-1 за 6 месяцев 2015 года

Здравствуйте!
По Такскому пришла рассылка

Отчитаться за полугодие нужно будет по новой форме РСВ-1

Это установлено Постановлением Правления ПФР России от 04.06.2015 № 194п «О внесении изменений в постановление Правления Пенсионного фонда Российской Федерации от 16 января 2014 года № 2п», в соответствии с которым в новой редакции утверждена форма РСВ-1 ПФР. Документ находится на регистрации в Минюсте России.
В настоящее время разработан и электронный формат новой РСВ-1 ПФР.

Есть ссылка на ПФР http://www.pfrf.ru/info/order/proekti_aktov

Это опять какая-то новая форма или я чего-то не понимаю?

Похоже, новая Форма в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции
С I полугодия 2015 года территориальные органы ПФР будут принимать отчетность по новой форме РСВ-1 и соответствующим форматам. Об этом сообщает ПФР России.
Специалисты обращают внимание, что в настоящее время Постановление Правления ПФР России от 04.06.2015 № 194п, которым утверждена новая форма РСВ-1 и порядок её заполнения, находится на регистрации в Минюсте России.

Как всегда, очень вовремя.

хорошо хоть срок до 15 августа.

это точно в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

и 6 раз поменяет до 15 авг.

хорошо хоть срок до 15 августа.

это точно в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

ну электронно то вообще до 20 августа =)

А я хотела уже в первых числах отправить(( в отпуск хочууууууу

Так и я хотела 1 июля отправить.

Имхо 1го должны по старой принимать. Отчетная кампания началась, старая форма действует, пока новая не вступила в силу.

Попробую по Такскому отправить, может быть пройдет.

Все люди, как люди, а я королева )

У меня два недостатка: плохая память и что-то еще.

Статус: На согласовании в Минтруде
Отправила сейчас действующую форму, пока только Квитанция от ПФР пришла, посмотрю, какой Протокол придет.

Я тоже отправила по старой (действующей) форме. Пришел отказ, типа со 2 квартала 2015г новая форма, ищите на сайте ПФР. Придется ждать.

А я вообще теперь в непонятном состоянии! Закрываем фирму, уже в который раз сдаем все доки. Опять отказ, т.к. в этот раз нашли пени упавшие не на тот КБК. Перекинули.2 квартал закончился, нужно заново сдавать всю отчетность и ехать сдаваться в 46 ИФНС. А сдачу отчетности в ПФР затормозили, 2 квартал они ещё принимают на старой форме до конца недели, но мне же нужно сдавать ещё и текущий по 3 кварталу.а его уже не принимают, а когда появится новая форма-непонятно. И опять все подвисает с закрытием, ну так надоело(

Неверный статус. Постановление ПФ на регистрации в Минюсте

Добрый день!
У меня нулевая фирма и з/п не начисляется на сотрудников.
Как теперь отчитываться? Программа не проходит проверку, т.к. при количестве застрахованных лиц =1 база для начисления страховых взносов должна быть больше ноля.

Статус: На согласовании в Минтруде.
после обновляшки в 1с протокол пришел отрицательный, не удалось определить тип файла

правильно.
или «лиц=0», или по вашему «1» что-то показывайте.

Э*ле*ме*нт «*Ко*ли*че*ство за*стра*хо*ва*нных ли*ц» до*лжен бы*ть бо*ль*ше ну*ля.
если ставить «0» то в проверке пишут: О*ши*бка ра*збо*ра »» как ти*па да*нных p*o*s*i*t*i*v*e*I*n*t*e*g*e*r. Не у*да*ло*сь про*а*на*ли*зи*ро*ва*ть э*ле*ме*нт «Ко*ли*че*ство» со зна*че*ни*ем «».

отчет ПФР и декрет

Здравствуйте! Нужна помощь! Сотрудница вышла в декрет 22 июня. Подскажите, где отражать сумму больничного по беременности и родам в новой форме?
раздел 2 строки 210-212?
а в 200-202?

И надо ли пока показывать где то сумму выплат в 6 разделе на эту работницу? Ни разу не подавали подобного отчета

Кто пишет?
CheckPfr 1.1.20 от 29.06.2015г. дает по нулевке предупреждение с кодом 20.

Да, предупреждение выдает CheckPfr 1.1.20 от 29.06.2015г. с кодом 20

Кроме предупреждения, еще три ошибки с кодом 30

1.1. Ошибка
a. СТРУКТУРА 30

Да, предупреждение выдает CheckPfr 1.1.20 от 29.06.2015г. с кодом 20

Кроме предупреждения, еще три ошибки с кодом 30

1.1. Ошибка
a. СТРУКТУРА 30

в какой программе отчет делал?
снеси его и попробуй сделать новый с «0» в числе застрахованных, + пустые разделы 1 и 2.

Источник

Ошибка «В данной транзакции уже происходили ошибки» в программах 1С:Предприятие 8

Довольно часто пользователи программы 1С Предприятие 8 сталкиваются с ошибкой «В данной транзакции уже происходили ошибки».

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

В данной транзакции уже происходили ошибки

Документ не записывается, а понять, в чем причина невозможно, т.к. текст сообщения об ошибке ни чего конкретного не сообщает.

Давайте разберемся в чем причина.

1. Причина ошибки в 1С Предприятие 8.3

С технической точки зрения эта ошибка в 1С:Предприятие 8.3 возникает в транзакции в момент первого обращения к базе данных после обработки исключительной ситуации операторами (Попытка-Исключение).

Ниже на рисунке продемонстрирован пример, когда при записи объекта «Объект_1» вызывается исключительная ситуация, при этом ошибка возникает в строке «Ссылка_2.Наименование», т.к. осуществляется запрос к базе данных в объектной модели данных. И не важно, запись это или чтение.

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

Возникновение ошибки в 1С Предприятие 8.3 при записи объекта

Причем в попытке-исключении обрабатываться операция, которая также выполняется в транзакции. Чаще всего это сочетание явных и неявных транзакций, т.е. транзакций, вызванных оператором НачатьТранзакцию явно и транзакций, вызванных платформой неявно (например, при записи объекта).

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

В чем же здесь проблема?

2. Почему ошибку «В данной транзакции уже происходили ошибки» надо устранить

Во-первых, пользователь никогда не поймет в чем причина, т.к. формулировка сообщения об ошибке для него не информативна.

Во-вторых, воспроизведение ошибки и ее отладка администратором тоже будет не простым занятием. Дело в том, что ошибка возникает в момент первого обращения к базе данных, т.е. в журнале регистрации будет зафиксирована именно эта строка. Хотя сама причина этой ошибки находиться в коде на самом нижнем уровне. В нашем примере «Объект_1» может содержать различные проверки перед записью, «завернутые» в конструкцию «Попытка-Исключение», которые, в свою очередь, могут также иметь глубокую иерархию вызовов процедур и функций. Попробуй разберись.

В-третьих, суть этой ошибки – некорректный код. А если быть более точным – несоблюдение требований к написанию кода с использованием транзакций.

Как решить эту проблему в 1С:Предприятие?

3. Как устранить ошибку в программе 1С Предприятие 8

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

1. Метод НачатьТранзакцию должен находиться за пределами блока Попытка-Исключение;

2. Все действия, выполняемые после вызова метода НачатьТранзакцию, должны находиться в одном блоке Попытка, в том числе чтение, блокировка и обработка данных;

3. Метод ЗафиксироватьТранзакцию должен идти последним в блоке Попытка перед оператором Исключение;

4. В блоке Исключение нужно сначала вызвать метод ОтменитьТранзакцию, а затем выполнять другие действия;

5. При использовании вложенных транзакций в конце блока Исключение рекомендуется добавить оператор ВызватьИсключение. Это позволит перенаправить исключение выше по стеку. В этом случае в журнале регистрации мы получим именно ту строку, которая привела к ошибке;

6. В блоке исключения рекомендуется сделать запись об ошибке средствами встроенного языка.

Общая схема во вложенной транзакции:

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

Схема вложенной транзакции в системе 1С:Предприятие 8.3

в базе уже существует документ с таким id транзакции. Смотреть фото в базе уже существует документ с таким id транзакции. Смотреть картинку в базе уже существует документ с таким id транзакции. Картинка про в базе уже существует документ с таким id транзакции. Фото в базе уже существует документ с таким id транзакции

Пример вложенной транзакции для решения ошибки «В данной транзакции уже происходили ошибки»

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *