Имя: Пароль:
1C
 
1С8.2 Через веб-сервис пытаюсь изменить документ в другой БД. Мешают глобальные переменные
0 Jackman
 
20.12.19
17:25
Здравствуйте!
Через веб-сервис пытаюсь изменить документ в другой БД. При использовании метода ПолучитьОбъект() выдает ошибку. Причина оказалась в том, что конфигурация, к которой подключаюсь, старая, на обычных формах, в модуле меняемого документа встречаются глобальные переменные, которые были инициализированы в глобальном модуле обычного приложения, поэтому при подключение через http-соединение эти переменные не видны. Можно, конечно, переименовать все эти глобальные переменные в модуле документа и заново их инициализировать в модуле, но может есть какой-то лучший способ?
1 ptiz
 
20.12.19
17:33
Использовать инструкции препроцессора #Если ВнешнееСоединение и т.п.
2 Jackman
 
20.12.19
17:35
(1) Тоже так подумал сначала, но это не считается препроцессором внешним соединением
3 runoff_runoff
 
20.12.19
17:49
попробуйте #Если Сервер
4 Jackman
 
20.12.19
18:15
(3) Так тоже сразу попробовал. В этом случае виден и при http-соединении, и при открытии/изменении в режиме 1С Предприятия в базе этого документа - ошибок не возникает. Однако напрягает, что в режиме конфигуратора, если запустить синтаксическую проверку в модуле документа, вылазят подобные ошибки:

{Документ.ПоступлениеТоваровУслуг.МодульОбъекта(22,7)}: Переменная с указанным именем уже определена (глТекущийПользователь)
Перем <<?>>глТекущийПользователь Экспорт; (Проверка: Толстый клиент (обычное приложение))

Это немного напрягает...

А в каком случае, если я так и оставлю "#Если Сервер ", может отработать эта повторная инициализация переменных? При каких действиях увидятся переменные в глобальном модуле обычного приложения и их же в "#Если Сервер " в модуле самого документа?
5 Jackman
 
20.12.19
18:21
Оставил пока как предложили в (3), спасибо, но интересует: при каких операциях/подключениях будет двойное объявление этих переменных?
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.