1с 8.3.12.1412, режим совместимости 8.3.4, параметр сеанса ПодключенныеВесы, тип строка, длина 255. При инициализации выдает ошибку загрузки, как я понял, связанную с тем, что подобный объект не может быть размещен во временном хранилище. У меня лимит идей исчерпан, буду благодарен за помощь.
Функция ПодключитьВесы() Экспорт
Попытка
ПодключитьВнешнююКомпоненту(ПутьКомпонентаЭлектронныхВесов,
"ScalesDriver", ТипВнешнейКомпоненты.Native);
ПодключенныеВесы = Новый ("AddIn.ScalesDriver");
УстановитьПривилегированныйРежим(Истина);
ПараметрыСеанса.ПодключенныеВесы =
ПоместитьВоВременноеХранилище(ПодключенныеВесы, Новый УникальныйИдентификатор());
Возврат ПодключенныеВесы;
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось загрузить компоненту для работы с весами");
Возврат Ложь;
КонецПопытки;
КонецФункции
(1) Так не получится, объект компоненты нельзя поместить во временное хранилище, используйте глобальный контекст "ПараметрыПриложения", вот туда и добавляйте, а получать лучше через общий модуль (клиент) с повт. исп. значений на время сеанса. А нельзя поместить потому что объект не есть ссылкой или двоичными данными, это есть ссылка на экземпляр объекта в памяти процесса... А вот и ссылочка http://v8.1c.ru/news/newsAbout.jsp?id=11637
(1) Так не получится, объект компоненты нельзя поместить во временное хранилище, используйте глобальный контекст "ПараметрыПриложения", вот туда и добавляйте, а получать лучше через общий модуль (клиент) с повт. исп. значений на время сеанса. А нельзя поместить потому что объект не есть ссылкой или двоичными данными, это есть ссылка на экземпляр объекта в памяти процесса... А вот и ссылочка http://v8.1c.ru/news/newsAbout.jsp?id=11637
Подозреваю, что весы работают в контексте клиентского рабочего места. Поэтому запихивать компоненту на сервер - довольно дикая идея. Чем не устраивает экспортная переменная в модуле приложения?
(2) а компоненту на сервер вообще нет смысла пихать, если она конечно не работает с каким нибудь модемом на стороне сервера, я сомневаюсь что весы подключены к серверу (если конечно база клиент-серверная) )))
Функция ПодключитьВесы() Экспорт
Попытка
ПодключитьВнешнююКомпоненту(ПутьКомпонентаЭлектронныхВесов,
"ScalesDriver", ТипВнешнейКомпоненты.Native);
ПодключенныеВесы = Новый ("AddIn.ScalesDriver");
Если ПараметрыПриложения = Неопределено Тогда
ПараметрыПриложения = Новый Соответствие;
КонецЕсли;
ПараметрыПриложения.Вставить("ПодключенныеВесы", ПодключенныеВесы);
Возврат ПодключенныеВесы;
Исключение
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не удалось загрузить компоненту для работы с весами");
Возврат Ложь;
КонецПопытки;
КонецФункции
Показать
А получать ее из модуля (клиентского), писал выше...
Компонента первоначально работала через глобальный, клиентский, модуль, переменная Весы инициализировалась на клиенте, передавалась в модуль, который возвращал значение. Теперь встал вопросов запуск процедуры взвешивания через обработчика ожидания, для того чтобы взвешивание и отображение результата длились до тех пор, пока статус не равен стабильный.
Основная цель инициализация весов должна происходить только один раз, при запуске клиента и все последующее время использоваться будет объявленная переменная. Какой смысл инициализировать компоненту при каждом открытии документа?
В глобальном модуле нет возможности объявить переменную, поэтому единственная идея которая пришла в голову – использование хранилища.
(6) Я же Вам написал, вызывайте функцию "ПодключитьВесы" при старте приложения и все, а в модуле повт. исп. переменных создайте функцию которая будет читать из ПараматерыКлиента....
Функция ПолучитьВесы() Экспорт
Если ПараметрыКлиента = Неопределено Тогда
Сообщить("Упс! Весы не подключены!");
Возврат Неопределено;
КонецЕсли;
Возврат ПараметрыКлиента.Получить("ПодключенныеВесы");
КонецФункции
В глобальном - нет, в модуле приложения - да. Выше как раз пример использования такой переменной - соответствия, заботливо декларированной в типовой для таких случаев.
Модуль Клиент(управляемое приложение):
ПараметрыПриложения.Вставить("_Клиент.ПодключенныеВесы", Весы) – «Значение не является значением объектного типа (Вставить)»
Если ПараметрыКлиента = Неопределено – «Переменная не определена (ПараметрыКлиента)»