И
Истребитель
Добрый день.
Есть код внешенй обработки, который при помощи com объекта обращается из базы данных (приёмник) 1С 8.1 в другую базу данных (источник) 1С 8.1 .
Считывает из неё список документов (конкретных, счета на оплату покупателя) и что-то с ними делает и пишет в текущую базу.
Источник находится на 1С 8.1 СЕРВЕРНОЙ
Приёмник находился на 1С 8.1 ФАЙЛОВОЙ
В коде существует место, где аттрибут документа, полученного из ком объекта, передаётся в функцию
То есть:
Док - это ссылка на документ, полученный через Com объект представляющий собой базу на севрере 1С 8.1
Есть функция:
Дальше вызывается функция от аттрибута документа:
Так вот, пока база Приёмник была ФАЙЛОВАЯ, всё работало нормально!
Перенесли базу Приёмник на СЕРВЕР. Перенос путём создания новой пустой базы и загрузки базы из файла dt. После этого то место в коде, где переданному параметру присваивается значение, стало выдавать ошибку!
Ошибка при установке значения атрибута контекста Строка1 Метод не найден
Посмотрел код - тип значения Строка1 - строка. Обычная такая строка. Однако ошибка. Какого хрена? И почему она появилась после переноса кода на сервер?
Сделал так, что убирает ошибку:
Внимание вопрос(Ы)!
1) Правильно ли я сделал, что так убрал эту ошибку? Не утопил ли я крысу в колодце, так что она затем сгниёт и всё умрёт от чумы?
2) Почему вообще возникает эта ошибка?
3) Почему она возникла только после перехода на сервеную базу?
4) Почему добавление одного присваивания исправляет ошибку?
И финальный вопрос:
Правильно ли я понимаю, что оператор = присваивает значение, а не ссылку, всегда, то есть:
Но в функцию передаётся ссылка? То есть:
Но тогда почему раньше эта ошибка не вылазила?
И вылезла только после переноса?
Поясните плиз...
Есть код внешенй обработки, который при помощи com объекта обращается из базы данных (приёмник) 1С 8.1 в другую базу данных (источник) 1С 8.1 .
Считывает из неё список документов (конкретных, счета на оплату покупателя) и что-то с ними делает и пишет в текущую базу.
Источник находится на 1С 8.1 СЕРВЕРНОЙ
Приёмник находился на 1С 8.1 ФАЙЛОВОЙ
В коде существует место, где аттрибут документа, полученного из ком объекта, передаётся в функцию
То есть:
Док - это ссылка на документ, полученный через Com объект представляющий собой базу на севрере 1С 8.1
Есть функция:
Код:
Функция Тест (Строка1)
Если Строка1="" Тогда
Строка1="Значение_По_Умолчанию";
КонецЕсли;
...
Возврат Найденное_Значение;
КонецФункции
Код:
НайденныйСклад = Тест(Док.Склад.Наименование);
Перенесли базу Приёмник на СЕРВЕР. Перенос путём создания новой пустой базы и загрузки базы из файла dt. После этого то место в коде, где переданному параметру присваивается значение, стало выдавать ошибку!
Ошибка при установке значения атрибута контекста Строка1 Метод не найден
Посмотрел код - тип значения Строка1 - строка. Обычная такая строка. Однако ошибка. Какого хрена? И почему она появилась после переноса кода на сервер?
Сделал так, что убирает ошибку:
Код:
Функция Тест (Строка2)
Строка1=Строка2;
Если Строка1="" Тогда
Строка1="Значение_По_Умолчанию";
КонецЕсли;
...
Возврат Найденное_Значение;
КонецФункции
1) Правильно ли я сделал, что так убрал эту ошибку? Не утопил ли я крысу в колодце, так что она затем сгниёт и всё умрёт от чумы?
2) Почему вообще возникает эта ошибка?
3) Почему она возникла только после перехода на сервеную базу?
4) Почему добавление одного присваивания исправляет ошибку?
И финальный вопрос:
Правильно ли я понимаю, что оператор = присваивает значение, а не ссылку, всегда, то есть:
Код:
Х="А";
У=Х;
Х="Б"
У будет равно по прежнему "А"
Код:
Функция Ф(Х)
Х="Б";
КонецФункции;
Х="А"
Ф(Х);
Х будет равно "Б"
Но тогда почему раньше эта ошибка не вылазила?
И вылезла только после переноса?
Поясните плиз...