Регламентное задание завершается с ошибкой
16.08.2013
11:48
#1
"Платформа: 8.2.17.153
Конфигурация: Бухгалтерия предприятия, редакция 1.6
Режим: Серверный
Здравствуйте!
Создала регламентное задание, которое выполняет выгрузку/загрузку с помощью Обработки УниверсальныйОбменДаннымиXML
Столкнулась с двумя такими проблемами:
1. Задание завершается с ошибкой : {Документ.СчетФактураВыданный(5895,49)}: Переменная не определена (ФормированиеПечатныхФорм)
Но вызов Общего модуля ФормированиеПечатныхФорм осуществляется в СчетФактуре в функции ПечатьСчетаФактуры(). Когда прохожу отладчиком во внешней процедуре, аналогичной Регламентному заданию, туда вообще не попадаю.
2. Поскольку задание завершается с ошибкой, остаются открытыми файлы (файл данных и лог-файл), при попытке их удалить, переименовать..., выдается собщение "...файл занят другим процессом...". Unlocker никаких процессов, которыми они используются, не показывает. Пытаюсь в Регламентном задании обойти эту ситуацию с помощью
Попытка
...
исключение
(здесь пытаюсь закрыть файлы)
КонецПопытки;
Тоже выдает ошибку.
Что-нибудь порекомендуете?"
Конфигурация: Бухгалтерия предприятия, редакция 1.6
Режим: Серверный
Здравствуйте!
Создала регламентное задание, которое выполняет выгрузку/загрузку с помощью Обработки УниверсальныйОбменДаннымиXML
Столкнулась с двумя такими проблемами:
1. Задание завершается с ошибкой : {Документ.СчетФактураВыданный(5895,49)}: Переменная не определена (ФормированиеПечатныхФорм)
Но вызов Общего модуля ФормированиеПечатныхФорм осуществляется в СчетФактуре в функции ПечатьСчетаФактуры(). Когда прохожу отладчиком во внешней процедуре, аналогичной Регламентному заданию, туда вообще не попадаю.
2. Поскольку задание завершается с ошибкой, остаются открытыми файлы (файл данных и лог-файл), при попытке их удалить, переименовать..., выдается собщение "...файл занят другим процессом...". Unlocker никаких процессов, которыми они используются, не показывает. Пытаюсь в Регламентном задании обойти эту ситуацию с помощью
Попытка
...
исключение
(здесь пытаюсь закрыть файлы)
КонецПопытки;
Тоже выдает ошибку.
Что-нибудь порекомендуете?"
19.08.2013
11:05
#2
Ошибка происходит потому что в случае выполнения регламентного задания выгрузка происходит полностью на сервере. В случае когда Вы смотрите отладчиком, модуль исполняется на клиенте. Это разные контексты, то есть не все процедуры и переменные будут доступны.
При выгрузке происходит компиляция модуля объекта на сервере и соответственно происходит ошибка, поскольку общий модуль где расположена процедура ФормированиеПечатныхФорм() компилируется только на клиенте и соответственно при регламентной выгрузке система его не находит и сообщает об ошибке.
Данная ошибка преодолевается путем использования директив компиляции. При помощи этих директив программа определяется когда помпилировать ту или иную процедуру.
То есть выглядит это так
этими директивами можно и отдельные куски кода внутри процедуры ограничивать
напрмиер
Посмотрите модули типовой конфы - там эти директивы обязательно встречаются - ничего сложного
При выгрузке происходит компиляция модуля объекта на сервере и соответственно происходит ошибка, поскольку общий модуль где расположена процедура ФормированиеПечатныхФорм() компилируется только на клиенте и соответственно при регламентной выгрузке система его не находит и сообщает об ошибке.
Данная ошибка преодолевается путем использования директив компиляции. При помощи этих директив программа определяется когда помпилировать ту или иную процедуру.
То есть выглядит это так
#Если НаКлиенте тогда
Процедура
....
конецпроцедуры
#Конецесли
этими директивами можно и отдельные куски кода внутри процедуры ограничивать
напрмиер
продедура
контектнонезависимый код
#Если НаКлиенте тогда
контекстнозасимый код - например Предупреждение()
#конецесли
другой контекстно независимый код
конецпроцедуры
Посмотрите модули типовой конфы - там эти директивы обязательно встречаются - ничего сложного
Читают тему
(гостей: 1)