Дословно: Операция не может быть выполнена из за несоответствия версии или отсутствия записи в базе данных. Искал нашел что такое присходит при двойной записи документа. Такого нет. Проверил все процедуры документы, сохранение его не происходит внеочередное. Что может быть такое?
Бывает такое периодически. Означает что в базе данных объект был изменен, а у Вас считаны старые данные до изменения, поэтому 1С мешает Вам затереть новые данные. Сверху в менюшке есть кнопка "Перечитать данные объекта".
Пример: У тебя открыт документ РТУ №0001 и у твоего друга в это же время открыт тот же документ (версия документа 005), вы оба его правите...далее твой друг записывает свою версию документа версия документа становится 006, а ты уже свою версию записать не можешь так как ты тоже попытаешься записать версию 006, а она уже есть. Выход: ты должен перечитать заново этот документ чтоб получить последние изменения(уже версию 006)
либо при получении объекта документа его нужно блокировать, чтоб никто другой не смог его записать пока ты его не отпустишь. Ну как-то так. :)
Тоже была такая ошибка решилась перепроведением документов, благо документы пришлось перепроводить только одного месяца!!! Отладчиком можно смотреть, но проще попробуй сначала перепровести или "Тестирование и исправление" со всеми галочками. может где-то есть ссылки пустые???
Не сказал сразу. Проблема возникает при создании нового документа. Т.е. забили новый заказ покупателя, а записать его не дает. Операторов это напрягает. Приходится закрывать несохранившись и перезабивать заново документ. Возникает такое часто.
(7) igorka_69, что-то с блокировками. может одновременно два оператора жмут кнопку создать документ. кстати, какая субд? и еще при записи проверяется ли какая-нибудь константа? если в один промежуток времени были созданы два документа, но записан один из них и при записи одного из доков идет изменение константы, тогда другой документ не сможет провестись, т.к. во-первых, константы при начале транзакции блокируются все, и соответственно меняются.
могу предположить, что есть некая константа дата изменения последнего документа, которая при изменении меняется.
где в базе знаний 1с эта ошибка была описана, советую туда глянуть.
Перенесла данные из ЗИК 7.7 в ЗУП 3.1. Уволенный в списке физ.лиц., создаю сотрудника и возникает то "Не заполнено Имя", то "Операция не может быть выполнена из-за несоответствия версии или из-за отсутствия записи в базе данных(возможно запись была изменена или удалена)
Уже бьюсь столько, ничего не выходит.
Данная проблема возникает когда мы пытаемся получить объект для записи на основании выборки как пример вот рабочий код
&НаСервере
Процедура ПеренестиНаСервере()
СписНом = Новый СписокЗначений;
Выборка = Справочники.Номенклатура.Выбрать(Объект.ГруппаОткуда);
Счетчик = 0;
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Продолжить;
Иначе
СписНом.Добавить(Выборка.Ссылка);
Счетчик = Счетчик + 1;
Если Счетчик >= КоличествоЭлементов Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого ВыбЭлем ИЗ СписНом Цикл
Номенклатура = ВыбЭлем.Значение.ПолучитьОбъект();
Номенклатура.Родитель = Объект.ГруппаКуда;
Попытка
Номенклатура.Записать();
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
КонецПроцедуры
Показать
А вот если заменить кусок СписНом.Добавить(Выборка.Ссылка); //тип - СправочникСсылка на СписНом.Добавить(Выборка); //тип - СправочникВыборка то будет происходить данная ошибка. Большинство делают перебор объектов через запрос, а там как правило только тип элементов ссылки.
Столкнулся тоже. При закрытии Задачи исполнителя, при некоторых условиях идет перебор всех связанных последовательностей бизнес-процессов и Задач исполнителя и потом в обработчике текущего БП при завершении пытаюсь записать дату завершения и получаю эту ошибку.
В итоге всего-то надо добавить: ЭтотОбъект.Прочитать();
Процедура ЗавершениеПриЗавершении(ТочкаМаршрутаБизнесПроцесса, Отказ)
ЭтотОбъект.Прочитать();
Если ДатаЗавершения = Дата(1,1,1) Тогда
ДатаЗавершения = ТекущаяДатаСеанса();
Записать();
КонецЕсли;
КонецПроцедуры
Был код вызывающий такую ошибку (упрощенный вариант):
Пока Выборка.Следующий() Цикл
Задача = Выборка.Задача.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(Задача, Выборка);
НачатьТранзакцию();
//здесь был код по созданию и записи документов на основании задачи
Задача.Выполнена = Истина;
Задача.Записать();
ЗафиксироватьТранзакцию();
КонецЦикла;
Показать
После того, как перенес начало транзакции до чтения объекта все заработало:
Пока Выборка.Следующий() Цикл
НачатьТранзакцию();
Задача = Выборка.Задача.ПолучитьОбъект();
ЗаполнитьЗначенияСвойств(Задача, Выборка);
//здесь был код по созданию и записи документов на основании задачи
Задача.Выполнена = Истина;
Задача.Записать();
ЗафиксироватьТранзакцию();
КонецЦикла;
У меня случился такой казус: на сервере запустилась обработка, которая перепроводила документы. клиента закрыл, а на сервере процесс остался. и вот из-за него при программной записи вылетала ошибка
Я завершил процесс на сервере, ошибка пропала.
Такая ошибка "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!" в ЗУП и ЗГУ в документе начисление зарплаты и взносов до сих пор появляется. Когда проводишь документ "Провести и закрыть", затем в списке этих документов тут же пытаешься отменить проведение - ошибка появляется. Если второй раз в контекстном меню нажать отмену проведения, то отменяет нормально.