Всем доброго времени суток. В общем пытаюсь научиться программировать на 1С, создал обработку которая при попытке удаления строки из ТЧ справочника уточняет его намерение и удаляет те же данные в РС. Все вроде бы как должно отрабатывать но при попытке записать данные (нажатие кнопки "записать" или "записать и закрыть") начинает выдавать ошибку "Данные были изменены или удалены другим пользователем". При этом при любых других изменениях справочника и регистра никаких проблем нет. Подскажите пожалуйста в какую сторону копать или в чем может быть причина-решение?
---
Ну как и говорил, ты программно изменил и записал объект, который пытаешься записать интерактивно.
Не знаю, зачем это все нужно, наверное в качестве эксперимента.
Ты в объекте, который получил на сервере, поменял только родителя и записал, в объекте ты строки ТЧ не менял.
ЭФО_Объект = СтруктураЗаписи.Изделие.ПолучитьОбъект();
ЭФО_Объект.Родитель = Справочники.ЭФО.ПустаяСсылка();
   ....
ЭФО_Объект.Записать();

Этот код и приводит к ошибке, что данные уже изменены.
Либо удаляй строки в Объекте, либо записывай его интерактивно.
---
Код покажите.
---
Не уверен в чем именно проблема

```1c
    &НаКлиенте
    Процедура ТаблицаРесурсыИзделияПередУдалением(Элемент, Отказ)
    ДанныеСтроки = Элемент.ТекущиеДанные;

    СтруктураЗаписи = Новый Структура("Изделие,РесурсИзделия", ДанныеСтроки.НаименованиеИзделия, ДанныеСтроки.НаименованиеИзделия);
    ТекущаяСтрока = Элемент.ТекущаяСтрока;

    Оповещение = Новый ОписаниеОповещения("ТаблицаРесурсыИзделияПередУдалениемЗавершение", ЭтотОбъект, Новый Структура("СтруктураЗаписи,ТекущаяСтрока", СтруктураЗаписи, ТекущаяСтрока));

    ТекстВопроса = "Ресурс изделия будет удален из табличной части.
    |Продолжить?";

    Отказ = Истина;
    ПоказатьВопрос(Оповещение, ТекстВопроса, РежимДиалогаВопрос.ДаНет, 30, КодВозвратаДиалога.Нет);

    КонецПроцедуры

    &НаКлиенте
    Процедура ТаблицаРесурсыИзделияПередУдалениемЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт

    Ответ = РезультатВопроса;
    Если Ответ <> КодВозвратаДиалога.Да Тогда
    Возврат;
    КонецЕсли;

    СтруктураЗаписи = ДополнительныеПараметры.СтруктураЗаписи;
    Отказ = Ложь;
    ТаблицаРесурсыИзделияПередУдалениемНаСервере(СтруктураЗаписи, Отказ);

    Если Отказ = Истина Тогда
    Возврат;
    КонецЕсли;

    ТекущаяСтрока = ДополнительныеПараметры.ТекущаяСтрока;
    СтрокаТаблицы = Объект.ТаблицаРесурсыИзделия.НайтиПоИдентификатору(ТекущаяСтрока);
    Объект.ТаблицаРесурсыИзделия.Удалить(СтрокаТаблицы);

    КонецПроцедуры

    &НаСервереБезКонтекста
    Процедура ТаблицаРесурсыИзделияПередУдалениемНаСервере(СтруктураЗаписи, Отказ)

    НаборЗаписей = РегистрыСведений.Ресурсы.СоздатьНаборЗаписей();

    НаборЗаписей.Отбор.РесурсИзделия.Установить(СтруктураЗаписи.РесурсИзделия);
    НаборЗаписей.Отбор.Изделие.Установить(СтруктураЗаписи.Изделие);

    ЭФО_Объект = СтруктураЗаписи.Изделие.ПолучитьОбъект();
    ЭФО_Объект.Родитель = Справочники.ЭФО.ПустаяСсылка();

    Попытка
    НачатьТранзакцию();
    НаборЗаписей.Записать();
    ЭФО_Объект.Записать();
    ЗафиксироватьТранзакцию();

    Исключение
    ОтменитьТранзакцию();

    Сообщение = Новый СообщениеПользователю;
    Сообщение.Текст = "Произошла ошибка при удалении табличной части";
    Сообщение.Сообщить();

    ЗаписьЖурналаРегистрации("Произошла ошибка при удалении табличной части ресурсов изделия");

    Отказ = Истина;

    КонецПопытки;

    КонецПроцедуры
```
---
Ну так написано же что данные были изменены, то есть ты программно изменил и записал объект, который пытаешься записать интерактивно.
---
Тогда код совсем не работает, так как при повторном открытии удаленные данные остаются на месте.
---
Ну как и говорил, ты программно изменил и записал объект, который пытаешься записать интерактивно.
Не знаю, зачем это все нужно, наверное в качестве эксперимента.
Ты в объекте, который получил на сервере, поменял только родителя и записал, в объекте ты строки ТЧ не менял.
ЭФО_Объект = СтруктураЗаписи.Изделие.ПолучитьОбъект();
ЭФО_Объект.Родитель = Справочники.ЭФО.ПустаяСсылка();
   ....
ЭФО_Объект.Записать();

Этот код и приводит к ошибке, что данные уже изменены.
Либо удаляй строки в Объекте, либо записывай его интерактивно.
---
ы в объекте, который получил на сервере, поменял только родителя и записал, в объекте ты строки ТЧ не менял.
Спасибо большое.
А каким образом их можно удалить?
Как понимаю тоже через ЭФО_Объект?
---
Сообщение было скрыто модератором.
---
Правильно, через ЭФО_Объект.
А вообще старайся сразу программировать правильно. Любые записи в регистр должны происходить в "Обработке проведения".
При удалении строки табличной части никаких удалений записей в регистре происходить не должно.
Все, пошел обедать.
---
Понял, спасибо за помощь, попробую сделать)