недавно столкнулся с такой проблеммой. в общем работа программы заключается в следующем: при формировании продок документа оплаты создается другой документ, а при удалении или распроведении документа созданный документ должен удаляться… оно так и работает при ручном формировании документов оплаты и распроведении, все удаляется. Вопрос: почему не выполняется команда ПриРаспроведении из глобального модуля при попытки распровести из внешнего файла обработки?
Дополнение автора от 18.06.09 13:23:22 версия программы 7.7 своя конфигурация, в главном модуле написано,Процедура ПриОтменеПроведенияДокумента(Докум) Если Докум.ДатаДок <= Константа.ДатаЗапретаРедактирования Тогда Предупреждение(«Нельзя отменять проведение документов с датой, более ранней, чем дата запрета редактирования документов!»); СтатусВозврата(0); Возврат; КонецЕсли; Если (Докум.вид() = «Выписка») ИЛИ (Докум.вид() = «ПриходныйОрдер») Тогда счФактура = СоздатьОбъект(«Документ.СчетФактура»); счФактура.ВыбратьДокументы(Докум.ДатаДок, Докум.ДатаДок); Пока счФактура.ПолучитьДокумент() = 1 Цикл Если счФактура.ДокументОснование = Докум.ТекущийДокумент() Тогда счФактура.Удалить(1); КонецЕсли; КонецЦикла; КонецЕсли;КонецПроцедурыпроцедура не выполняется если из внешней обработки. вот код Процедура Сформировать() выписка = СоздатьОбъект(«Документ.Выписка»); выписка.ВыбратьДокументы(Дата1, Дата2); Пока выписка.ПолучитьДокумент() = 1 Цикл выписка.СделатьНеПроведенным(); Сообщить(«распроведен » + выписка.ТекущийДокумент()); КонецЦикла; прихордер = СоздатьОбъект(«Документ.ПриходныйОрдер»); прихордер.ВыбратьДокументы(Дата1, Дата2); Пока прихордер.ПолучитьДокумент() = 1 Цикл прихордер.СделатьНеПроведенным(); Сообщить(«распроведен » + прихордер.ТекущийДокумент()); КонецЦикла;КонецПроцедуры
Дополнение автора от 03.07.09 18:31:09 спасибо ребята вы очень сильно помогли особенно «O-Planet», O-Planet как те добавить бал?
Потому чта процедура ПриРаспроведении не является предопределенной процедурой, которая вызывается по умолчанию, когда отменяется проведение документа. Таковой является процедура ОбработкаУдаленияПроведения(), которая размещается в модуле документа.Назначение:Предопределенная процедура обработки удаления проведения документа или удаления проведенных документов в любом режиме.
Добрый день. Меня заинтересовал ваш ответ "Потому чта процедура ПриРаспроведении не является предопределенной процедурой, которая вызывается по..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
какая версия платформы? вообще обработчик события называется ПриОтменеПроведенияесли я правильно помню
Добрый день. Меня заинтересовал ваш ответ "какая версия платформы? вообще обработчик события называется ПриОтменеПроведенияесли я правильно пом..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
Добрый день!Сообщите версию платформы, название и версию конфигурации.С каким документом проблемы?Это типовое решение или внедренная конфигурация?
Добрый день. Меня заинтересовал ваш ответ "Добрый день!Сообщите версию платформы, название и версию конфигурации.С каким документом проблемы?Эт..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
По скольку при проведении/распроведении делаются манипуляции с другими документами, то это явно не типовое решениепростое решение — пройтись отладчиком и поглядеть на ошибкуобратить внимания на права доступа к оъектами лучше покажи часть кода с ошибкой выполнения
Добрый день. Меня заинтересовал ваш ответ "По скольку при проведении/распроведении делаются манипуляции с другими документами, то это явно не т..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
1. Попробуйте в глобальнике указатьПроцедура ПриОтменеПроведенияДокумента(Докум) ЭКСПОРТЕсли не помежет, то нужно в обработке перед строкой Выписка.СделатьНеПроведенным();добавить строку ПриОтменеПроведенияДокумента(Выписка);
Добрый день. Меня заинтересовал ваш ответ "1. Попробуйте в глобальнике указатьПроцедура ПриОтменеПроведенияДокумента(Докум) ЭКСПОРТЕсли не поме..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
также и перед строкой Прихордер.СделатьНеПроведенным();добавьте Процедура ПриОтменеПроведенияДокумента(Прихордер)
Добрый день. Меня заинтересовал ваш ответ "также и перед строкой Прихордер.СделатьНеПроведенным();добавьте Процедура ПриОтменеПроведенияДокумен..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
Вот не знаю! Наверное, в моем профайле можно что-то написать просто
Добрый день. Меня заинтересовал ваш ответ "Вот не знаю! Наверное, в моем профайле можно что-то написать просто" на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?
а) Распроведение сч/ф при распроведении документа-основания — совершенно логичное решение, применяется во всех типовых конфигурацияхб) В семерке обработчики событий НЕ ВЫЗЫВАЮТСЯ при ПРОГРАММНОЙ инициализации событий. Т.е. если Вы из внешней обработки (или любого другого места) производите программные манипуляции с объектом, то Вы должны САМОСТОЯТЕЛЬНО вызывать обработчики тех событий, которые автоматически вызываются при интерактивной работе.Решение.а) Процедуру глабального модуля сделать экспортируемой, как тут уже указывалось.Процедура ПриОтменеПроведенияДокумента(Докум) ЭКСПОРТб) В том месте, где Вы распроводите документ, после того, как он записан в новом статусе, вызвать программно обработчик:выписка.СделатьНеПроведенным();ПриОтменеПроведенияДокумента(выписка.ТекущийДокумент());Замечу: в восьмерке все обработчики вызываются одинаково как при интерактивных, так и при программных действиях над объектом (есть исключения, но в данном вопросе это не актуально)
Добрый день. Меня заинтересовал ваш ответ "а) Распроведение сч/ф при распроведении документа-основания — совершенно логичное решение, применяет..." на вопрос http://www.liveexpert.org/topic/view/11173-. Можно с вами обсудить этот ответ?