Добрейшего времени суток! Как перепровести документ?

Пробовал так:

```1c
    КакойтоДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
```

Пробовал сначала отменять, потом опять проводить

Не помогает, пока не залезешь в него и не нажмёшь "провести", в таблице остаются висеть данные до изменения. ОбновитьИнтерфейс() не помогает.
---
Всё, всем спасибо за отклик! Повторно перебрал ссылки

С принципом:

КакойтоДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

И всё получилось. Почему так, не знаю. Но, главное получилось
---
У меня всё работает. Нужно смотреть процедуру ОбработкаПроведения. Либо команда Провести с каким-то параметром выполняется.
---
И у меня, но запись в регистре остаётся висеть
---
Полный код процедуры покажите.
---
Меняется документ, но запись остаётся висеть в реестре

Код процедуры:

```1c
    Процедура Удалить()
    Для каждого Строка Из Объект.Список Цикл
    ПолучитьДокумент = Строка.Ссылка;
    Объект.ДокументСсылка = ПолучитьДок;
    Д = Объект.ДокументСсылка.ПолучитьОбъект();
    ПолучитьДокТовары = Д.Товары;

    Для каждого СтрокаНоменклатура Из ПолучитьДокТовары Цикл
    Если Справочники.Номенклатура.НайтиПоНаименованию(СтрокаНоменклатура.Номенклатура).УникальныйИдентификатор() = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Номенклатура).УникальныйИдентификатор() Тогда

    ПолучитьДокТовары.Удалить(СтрокаНоменклатура);
    Д.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    КонецЕсли;
    КонецЦикла;

    КонецЦикла;
    КонецПроцедуры
```
---
Я бы не удалял строки номенклатуры на прямую. Сделал бы ТЗ с номерами строк и те строки которые надо удалить занес бы в тз а затем перезаполнил исходную таблицу в документе без тех строк что будут удалены.
Сейчас Вы в табличной части обходите по циклу строки, но после первого удаления состав ТЧ уже другой, а цикл об этом ничего не знает.
---
Так я сначала то, что нужно отправляю в таблицу, а потом уже согласно этой выборке удаляю. Но удаление это временно, на самом деле там другие операции. Я просто ещё не доделал.

А если создать таблицу под выгрузку содержимого документа, а потом её обрабатывать, то это не увеличит скорость обработки. А поскольку по плану код должен лопатить большое количество регистров, то я считаю, не стоит
---
ПолучитьДокТовары - это у Вас ТЧ документа и вы непосредственно в ней удаляете строки по условию. Так вот как только удалите одну строку, цикл не получит нужного количества строк.
И вы тут же в цикле сохраняете док с удаленной строкой, и продолжаете цикл, но документ у Вас уже другой.
Логику работы вы сами разрабатываете, я вижу код, который с моей точки зрения не логичен, и показываю вам где не логичность. А как будет у вас работать это вам виднее.
---
Кто создавал и писал модуль документа?
---
кроме обновить интерфейс есть еще отдельные команды для обновления динамического списка. Если после программного проведения, команда списка Еще - Обновить показывает документ с галочкой типа проведен - ищите нужную команду обновления списка.
---
При удалении записи из документа, она остаётся висеть в регистре. Я думаю тут Обновить не поможет
---
Значит, интерактивное проведение чем-то отличается от стандартного. Смотри в модуле формы обработчики кнопки проведения (если есть) и обработчики событий записи. Какая-то хитрость там должна присутствовать.
---
Должна, пробовал по разному, но запись в регистре все равно висит, до тех пор, пока ручками не нажмёшь "Провести"
---
В какой таблице? Может стоит таблицу обновить?)
Данным методом всё должно проводиться
---
нет никаких хитростей. если правильно понял, то дело в оповещении.
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
 Оповестить("Запись_КакойТоДокумент", ПараметрыЗаписи, Объект.Ссылка);
---
Нет, не удаляется соответствующая запись в регистре
---
Поставьте в отладчике остановку после нажатия кнопки Провести и посмотрите какая процедура и с какими параметрами запускается. Сделайте то же самое.
---
Всё, всем спасибо за отклик! Повторно перебрал ссылки

С принципом:

КакойтоДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

И всё получилось. Почему так, не знаю. Но, главное получилось
---
Поделитесь с сообществом - как вам это удалось???
---
Так я же написал:

Для каждого Строка из Объект.Список

Д.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

КонецЦикла;
---
```1c
    Если Справочники.Номенклатура.НайтиПоНаименованию(СтрокаНоменклатура.Номенклатура).УникальныйИдентификатор() = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Номенклатура).УникальныйИдентификатор() Тогда
```

Это вас кто такому научил?
---
Это могло бы срабатывать всегда если бы в справочнике не было одинаковых наименований :)
---
вы понимаете, что

```1c
    Справочники.Номенклатура.НайтиПоНаименованию(СтрокаНоменклатура.Номенклатура).УникальныйИдентификатор() = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Номенклатура).УникальныйИдентификатор()
```

и

```1c
    Справочники.Номенклатура.НайтиПоНаименованию(СтрокаНоменклатура.Номенклатура) = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Номенклатура)
```

тождественны? если вы неправильно нашли ссылку, что даст получение ГУИДа от этой ссылки?
---
Нет не одно!

СтрокаНоменклатура.Номенклатура - строка из таблицы, куда заранее попадает список ссылок

Строка.Номенклатура - строка товаров из выбранного документа

Чем они похожи?
---
Первое, я бы так никогда не написал, второе у НайтиПоНаименованию есть параметр Родитель, вот если Родитель разный а наименование одинаковое, то условие НИКОГДА не сработает.
Гуид позволил бы не проверять родителя. Поэтому если бы выполнялся контроль на наименование - запрет дублей, то условие бы работало.
---
Гуид не для поиска нужного)

А родитель и наименование может быть одинаковым. Лучше по коду
---
Да, я в таких случаях по коду ищу :)
---
Я ж у вас это не спрашивал! Вы не видели откуда это идёт и почему, но при этом пытаетесь меня поправлять?
---
Сообщение было скрыто модератором.