Данная ошибка может возникать при выполнении узлов импорта из 1С или при тестировании настроенного подключения. Диагностируется при интеграции с платформой 1С версии 8.3.10, использующей серверную архитектуру.
В случае если сценарий импорта из 1С выполняется интерактивно в интерфейсе DStudio, решение для данной ошибки следующее:
<Value>1</Value>
:
...
<EnvironmentVariables>
<Version>1</Version>
<Vars>
<Count>2</Count>
<I_0>
<Name>LocaleID</Name>
<DataType>dtInteger</DataType>
<Value>1049</Value>
</I_0>
<I_1>
<Name>DisableFloatExceptions</Name>
<DataType>dtBoolean</DataType>
<Value>1</Value> \\Эта строка добавляется!
</I_1>
</Vars>
</EnvironmentVariables>
...
Значение переменной "DisableFloatExceptions" при правильной правке сценария отразится в настройках Deductor (Рис. 2)
Важно: При изменении и последующем сохранении сценария в DStudio данные изменения могут быть утеряны.
В случае если сценарий используется в пакетном режиме, решение следующее:
Необходимо использовать управляющий сценарий, в котором при помощи узла "Команда ОС" запускать на выполнение DStudio.exe с параметрами запуска сценария импорта из 1С. При этом сам сценарий импорта из 1С править вышеописанным способом не надо, значение переменной DisableFloatExceptions можно передавать в параметрах запуска сценария. В узле "Команда ОС" строка запуска будет примерно такой:
chcp 1251
"C:\Program Files (x86)\BaseGroup\Deductor\Bin\DStudio.exe" "C:\ПутьКФайлу\1c.ded" /DisableFloatExceptions=True /RUN /LOG /LOGFILE="C:\ПутьКФайлу\log.log" /LOGMODE
Важно: Необходимо обратить внимание, что при изменении значения переменной DisableFloatExceptions результат работы узла Калькулятор может поменяться, а именно меняется результат обработки значения NULL.
Пример: при DisableFloatExceptions = True
значение выражения Round(Null()) > 1 возвращает False
. При DisableFloatExceptions = False
это выражение возвращает Null
.
В связи с этим, при применении данного решения необходимо проверить работу сценария.