Написал простенький код для перепроведения документов, где присутствует такие строки:

```1c
    Попытка
    ОбъектДокумент = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    Исключение
    Сообщить("Я хочу сюда попасть!");
    КонецПопытки;
```

Но при ошибке проведения я не попадаю в секцию исключения! А именно так я анализирую то, что документ НЕ перепровелся. Можно, конечно, документ сначала распроводить, а потом проводить и по его проведенности судить о благополучном результате. Но этот способ мне не нравится: потом будет трудно отличить такие документы от ранее непроведенных.

Как мне понять, что документ не хочет проводиться?
---
IvanAlekseev,
```1c
    ВерсияДанных = ";
    Попытка
    ВерсияДанных = Выборка.Ссылка.ВерсияДанных;
    НачатьТранзакцию();
    ОбъектДокумент = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    ЗафиксироватьТранзакцию();

    Исключение
    Сообщить("Я хочу сюда попасть!");
    ОтменитьТранзакцию();
    КонецПопытки;

    Если ВерсияДанных <> Выборка.Ссылка.ВерсияДанных тогда
    Сообщить("Док изменился");
    Иначе
    Сообщить("Док не изменился");
    КонецЕсли;
```

При неудачном проведении на выводе получаю:
Я хочу сюда попасть!
Док не изменился
---
IvanAlekseev,
Конфигурация какая? И где выполняется код на сервере или на клиенте?
---
DeniNikitin, УТ ред 10.3, код выполняется на клиенте из внешней обработки.
---
можете после проведения проверять реквизит документа Проведен. Если нет, тогда что то не так
---
Lenten, все документы изначально проведены. Так что этот реквизит даст всегда истину.
---
При ошибке проведения документ станет непроведенным. Так и смотрите. Или он у вас проведенным остается, что странно
---
Lenten, удаление проведения идет в общей транзакции записи документа, поэтому если транзакцию откатили, то проведение сохранится.
---
Вы можете сделать своеобразный лог в обычном txt файле. До процедуры записать туда представление документа, а после то что документ провелся. Так вы увидите которые не провелись, т.к. второй записи с их представлением не будет.
А в исключение, судя по всему, не попадает из-за транзакции
---
Lenten, я специально перепровожу внешней обработкой, чтобы не править конфигурацию. Поэтому идея об исправлении модулей документов не годится.

Вот думаю, может мне журнал регистрации смотреть? Хотя это очень плохой способ: должен же быть программный инструмент...
---
Вы меня не правильно поняли. Я имею ввиду не в процедуре проведения это писать, а в вашей процедуре.

```1c
    //тут записываем в файл представление документа
    Попытка
    ОбъектДокумент = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    Исключение
    Сообщить("Я хочу сюда попасть!");
    КонецПопытки;
    //и тут
```
---
Lenten, а почему поменяется представление документа? Дата и Номер остаются теми же... Так что не вижу причин измениться представлению.
---
IvanAlekseev,
```1c
    ВерсияДанных = ";
    Попытка
    ВерсияДанных = Выборка.Ссылка.ВерсияДанных;
    НачатьТранзакцию();
    ОбъектДокумент = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
    ЗафиксироватьТранзакцию();

    Исключение
    Сообщить("Я хочу сюда попасть!");
    ОтменитьТранзакцию();
    КонецПопытки;

    Если ВерсияДанных <> Выборка.Ссылка.ВерсияДанных тогда
    Сообщить("Док изменился");
    Иначе
    Сообщить("Док не изменился");
    КонецЕсли;
```

При неудачном проведении на выводе получаю:
Я хочу сюда попасть!
Док не изменился
---
mpudy, у меня такой код выдает только строчки "Док изменился", между которыми из документа в окно сообщений выводятся ошибки.
---
Сравнивать реквизиты ВерсияДанных пробовали?
---
mpudy, попробовал: "ВесрияДанных" отличается у всех документов (и перепроведенных, и НЕперепроведенных).
---
Помнится мне была какая- то конструкция в огибающей транзакции, куда передается управление, если во вложенной транзакции произошел откат. Не напомните?
---
В ЖКК прочитал, что 1с не поддерживает вложенных транзакций и поэтому отмена во вложенной означает отмену всей транзакции.

Написал код, который почему- то тоже не работает:

```1c
    Попытка
    НачатьТранзакцию();

    ОбъектДокумент = Выборка.Ссылка.ПолучитьОбъект();
    ОбъектДокумент.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);

    Если ТранзакцияАктивна() Тогда
    ЗафиксироватьТранзакцию();
    Сообщить("Перепроведен:" + ОбъектДокумент);
    Иначе
    Сообщить("Не перепроведен:" +ОбъектДокумент);
    КонецЕсли;
    Исключение
    ...
    КонецПопытки
```

Все документы оказываются перероведенными. То есть транзакция активна всегда.
---
Попробовал изменить вложенность и запихнул конструкцию попытку/исключение/конецпопытки в рамки транзакции- все равно ошибка...

p.s. расщедрился и добавил 1$ вознаграждения :)))
---
Выяснил и немного шокирован...

Конфигурация на поддержке с замочком (возможность изменения не включена), но документ "Реализация товаров и услуг" проводится даже при ошибках... А я сижу и думаю: как клиент мог такие ошибки в движениях получить? Да легко!

Причем так будет при любых настройках программы. Это видно по коду:

```1c
    УправлениеЗапасамиПартионныйУчет.ДвижениеПартийТоваров(Ссылка, Движения.СписанныеТовары.Выгрузить());
```

никаких отказов не передается...

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

Так что думаю все наши способы работают, но просто документ проводится как- будто все корошо (спасибо 1с). Зря мы пыхтели, выдумывая хитрые способы :)
---
mpudy, лови бакс :)

Твой способ про версию данных был рабочим, хотя фирма 1с умудрилась так написать УТ, что ее же методы не имеют смысла :)
---
А зачем вы транзакцию для 1 документа используете то?