Регламентное задание завершается с ошибкой

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

Читают тему

(гостей: 1)

Быстрый переход