Здравствуйте!
Во-первых, спасибо за ценную информацию - очень помогло.
Во-вторых, хочу добавить небольшую поправку:
Если документ проведен в базе-приемнике, а в базе-источнике снято проведение, то при обмене не произойдет отмена проведения в приемнике (во всяком случае при обмене м/у 7.7->7.7), т.к. в строках:
Если ПустоеЗначение(Проведен) = 0 Тогда
Если Проведен = 1 Тогда
ОбъектБД.Провести();
ИначеЕсли Проведен = 0 Тогда
Если ОбъектБД.Проведен() = 1 Тогда ОбъектБД.СделатьНеПроведенным(); КонецЕсли;
КонецЕсли;
КонецЕсли;
Пустое значение и 0 в 7.7 - одно и тоже (а булево из 8-ки конвертируется в 0/1)
Следовательно если документ не проведен в источнике, и проведен в приемнике - ничего не произойдет, т.к. выражение ПустоеЗначение(Проведен) вернет 1, хотя Проведен не пуст, а равен 0. (7.7 такая 7.7)
Доработка проста. В строках:
ИначеЕсли ИдРеквизита = "Проведен" Тогда
Проведен = Значение;
меняем на
ИначеЕсли ИдРеквизита = "Проведен" Тогда
Проведен = Значение + 1;
И соответственно:
Если ПустоеЗначение(Проведен) = 0 Тогда
Если Проведен = 2 Тогда
ОбъектБД.Провести();
ИначеЕсли Проведен = 1 Тогда
Если ОбъектБД.Проведен() = 1 Тогда ОбъектБД.СделатьНеПроведенным(); КонецЕсли;
КонецЕсли;
КонецЕсли;