У меня процедура обработки проведения подчиненных документов указанна в модуле проведения ПередЗаписью(), в подчиненном же документе задал условие
Если ЗначениеЗаполнено(ДокументУстановкаЦен) Тогда
Если Не ДокументУстановкаЦен.Проведен Тогда
Сообщить("Для проведения документа необходимо провести документ «Установка цен» !");
Отказ = Истина;
КонецЕсли;
Иначе
Сообщить("Не заполнен документ «Установка цен» !");
//Отказ = Истина;
КонецЕсли;
теперь если не проведен первый документ и ему подчиненные, в этом случае срабатывает ошибка. Нужно это было для того что бы нельзя было перепроводить подчиненные документы если не проведен основной документ.
ВОПРОС: куда поместить код проведения обработки подчиненных документов что бы сам документ уже был проведен основной?
(0) (3)
А что будет с проведением основного документом, когда при одновременном проведении подчиненного документа возникнет исключение?
В случае подписки на событие привязанной к проведению основного документа или в обработке проведения или в обработке при записи основного документа, проведение подчиненных документов делается в одной транзакции с проведением/изменением основного документа.
По-хорошему надо сделать фоновое задание, которому назначить код, анализирующий состояние проведенности основного документа и выполняющему проведение подчиненных документов.
Для уменьшения объема анализируемых основных документов можно сделать регистр сведений, в который при проведении основного документа писать признак необходимости проведения подчиненных документов, а в методе фонового задания работать сбрасывать этот признак.
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан