Обмен ЗУП (типовая с доработанной) - ошибка отложенных движений #611977


#0 by Shaitana
Есть две скульные базы ЗУП (релиз последний на данный момент), одна из них на поддержке, немного доработана, другая типовая. Платформа 8.2 естественно. Между базами настроен обмен по загруженным правилам обмена (настроены в конвертации данных), сам обмен работает. Но: отложенные движения выполняются только при запуске вручную в режиме толстого клиента. При выполнении отложенных движений в фоновом режиме (если установить галку "выполнять отложенные движения"), или при нажатии на кнопку "выполнить отложенные движения под полными правами", вылезает ошибка: "документ.БлаБла(любой)(...) значение не является значением объектного типа УдалитьСообщения". Ошибка вылетает в типовой базе, обмен производится односторонний - выгрузка из нетиповой в типовую. Пока добралась примерно до такой вот истины: в документах в обработке проведения сидят такие вот строки: ОбработкаКомментариев.УдалитьСообщения; В случае с вызовом с клиента, всё обрабатывается на ОК, в случае с вызовом с сервера ОбработкаКомментариев в отладчике = Неопределено. И дальше всё упирается в параметры сеанса ОбщиеНастройки, которые в разных режимах запуска по-разному получаются... И здесь уже запуталась. В общем, вопрос: кто-нибудь сталкивался с отложенными движениями в обменах с ЗУП? И как можно победить данную ошибку? Запускать движения каждый раз вручную гемор( В предыдущей мини-ветке была следующая переписка: Ranger_83 2 сталкивался.Но так и не нашел времени разобраться.Что мешает отключить обработку комментариев на #Сервере? Shaitana 3 - Придется редактировать код каждого документа, обработка комментариев в каждом прописана отдельно. А база типовая. Хотелось бы обойтись меньшей кровью, исправив код в одном месте. И еще подозрения, что не всё так просто и возможно обойти без исправления кода...(теплится надежда) ruschel90 5 - up! тоже столкнулся с такой же проблемой, только в последнем релизе Комплексной автоматизации. Изменения в модуль внести могу(закоментить работу с сообщениями если на сервере), ибо конфа нетиповая, но боюсь что вылезут другие праблы. А вообще ИМХО ЗУП реализован только в части Рег.зарплаты, и в основном из-за жестких регламентов и сроков сдачи отчетности бухгалтерами, которые очень злые, когда не успевают по вине программы...). Всё остальное: Обмены, упр. учет - работает через опу. Жутко не продумано и с вечными неисправляемыми косяками.(((
#1 by Zerg
План обмена Полный? По организации?
#2 by Shaitana
План обмена Полный, да.
#3 by Shaitana
up! Ну же, гуру 1С, где вы?
#4 by Shaitana
up
#5 by Shaitana
up '-(
#6 by Shaitana
Разобралась с сервером: на сервере если выполняется, то переменная нужная получается из глобального модуля: А в хранилище значений "Общие значения" нет переменной "глОбработкаСообщений", возвращается значение "неопределено", соответственно у этого Неопределено нет метода "УдалитьСообщения". Пока не приходит в голову как это вылечить.
#7 by kosts
Типа этого #Если ТолстыйКлиентОбычноеПриложение тогда #КонецЕсли
#8 by ZanderZ
#9 by Shaitana
типа этого не получится, потому что придем к тому же - переменной равной "неопределено". Или тогда типа этого придется прописывать в каждом объекте конфы, там где получается переменная. ну в самой процедурке есть получение этой переменной, ибо туда же приходит запрос переменной когда на клиенте. Но на сервере всё заканчивается на первых же строках: Если Кэш = Неопределено Тогда -на клиенте Кэш неопределено возвращает, а на сервере он определен, а в нем нет переменной этой.
#10 by ZanderZ
ну так если нет переменной то условие    КонецЕсли; не выполнится и пойдет дальше....
#11 by Shaitana
В общем, граждане, решила проблему, описываю на случай если кому пригодится: В глобальном модуле в функции вклинила такую вот дописку (закомментированная ДСом): -ну и соответсвенно создала пустую обработку ОбработкаЗаглушкаОтложенногоПроведенияНаСервере, в модуле объекта которой создала две пустых экспортных процедуры: И всё теперь работает на ОК! Всем спасибо за моральную поддержку))))
#12 by Shaitana
Кэш есть, а переменной глОбработкаСообщений в нем нет, условие выполняется и получает "неопределено".
#13 by ZanderZ
ну так значит надо проинициализировать ее
#14 by kosts
Это значит, что типовой механизм теперь не будет работать вообще?
#15 by Shaitana
смотря что подразумевать под типовым механизмом? отложенные движения продолжают работать в типовом режиме. Только без ошибок и независимо от того что в кэше. В принципе обработка сообщений приписана для работы на клиенте, а на сервере,судя по отдельным ограничениям в ней: #Если ТолстыйКлиентОбычноеПриложение тогда #КонецЕсли. Подразумевается что обработки сообщений не должно быть, только этот механизм дает сбой. Если кто знает как этих сбоев избежать, можно продолжить тему.
#16 by kosts
> отложенные движения продолжают работать в типовом режиме. Я имею ввиду, что типовая обработка СообщенияВыполняемыхДействий никогда не будет использована, и пользователь никогда не увидит, что пыталась сказать ему программа.
#17 by Shaitana
Верно. Чуть подкорректировала: вписала не в глобальный модуль а в модуль ОбщегоНазначения, Функция ПолучитьЗначениеПеременной: ... ...
#18 by Shaitana
в таком случае "левая" обработка будет вызываться только при работе на сервере. а пользователю будет показываться прежняя типовая обработка :-)
#19 by Shaitana
*вместо ВРег(Имя): ВРег(ИмяПеременной)...
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С