![]() |
![]() |
![]() |
|
Фоновое задание и директивы компиляции | ☑ | ||
---|---|---|---|---|
0
Viktorilia
17.09.15
✎
08:43
|
Есть задача.При открытии списка документа выполнять соединение с другой базой. Пока что это реализовано из формы списка, остальные действия при записи документа выполняются в подписке на событие(перенос документа).сейчас есть глобальная переменная глV21Object, модуль фоновых заданий со сл. свойствами: на сервере, вызов сервера, на клиенте(обычное приложение), внешнее соединение.Вопрос как разбить все процедуры по созданию фонового задания чтобы все процедуры и переменные виделись.
Модуль обычного соединения: перем глV21Object Экспорт; Модуль внешнего соединения: перем глV21Object Экспорт; Модуль списка документа: МассивЗаданий=Новый Массив(); Задание=ФоновыеЗадания.Выполнить("МодульФоновыхЗаданий.COMСоединение"); МассивЗаданий.Добавить(Задание); Попытка ФоновыеЗадания.ОжидатьЗавершения(МассивЗаданий); Исключение КонецПопытки; МассивЗаданий.Очистить(); Модуль фоновых заданий: Процедура COMСоединение() Экспорт ///-- если константа заполнена то создаем соеденение Если ЗначениеЗаполнено(Константы.ПутьКБазеАвтовесов.Получить()) Тогда Если глV21Object=Неопределено Тогда СтруктураПодключения = МодульРегламентныхЗаданий.ПолучитьСтруктуруПодключения_Авто(ПутьКБазе) ; глV21Object = МодульРегламентныхЗаданий.ПодключитсяКИнформационнойБазе2(СтруктураПодключения); Если глV21Object = Неопределено Тогда Сообщить( "Ошибка подключения к базе данных!!!", СтатусСообщения.Важное ) ; Возврат ; КонецЕсли; Сообщить( ""+ТекущаяДата() + " - Подключение к конфигурации "+глV21Object.Метаданные.Synonym+" выполнено успешно!" ) ; КонецЕсли; КонецЕсли; КонецПроцедуры В данный момент не видится константа. |
|||
1
Viktorilia
17.09.15
✎
08:45
|
{ОбщийМодуль.МодульФоновыхЗаданий(10,89)}: Переменная не определена (ПутьКБазе)
СтруктураПодключения = МодульРегламентныхЗаданий.ПолучитьСтруктуруПодключения_Авто(<<?>>ПутьКБазе) ; |
|||
2
ДенисЧ
17.09.15
✎
08:47
|
обогиядумне.
Ну не увидит она твои переменные.... Разберись с видимостями различных модулёв.. И вообще - за глобальные переменные в клиент-сервере нужно бить не линейкой. И не по рукам. |
|||
3
Viktorilia
17.09.15
✎
08:47
|
извиняюсь, ПутьКБазе = Константы.ПутьКБазеАвтовесов.Получить();
видимо удалила сама |
|||
4
Viktorilia
17.09.15
✎
08:49
|
(2)ну у меня всего одна переменная ,объясните мне пожалуйста как это правильно реализовать?
|
|||
5
ДенисЧ
17.09.15
✎
08:51
|
(4) параметры сеанса или модуль с повторно возвращаемыми значениями.
А то, что переменная только одна - это значит, что ударов возжами на конюшне будет только 10. За каждую следующую - кличество увеличивается в геометрической прогрессии |
|||
6
ДенисЧ
17.09.15
✎
08:51
|
Да и вообще - в последних версиях платформы ком-соединение живёт сохранённым 3-4 минуты. Оно тебе надо?
|
|||
7
Viktorilia
17.09.15
✎
08:52
|
(5) при создании параметра сеанса переменная будет видна во внешнем соединении?
|
|||
8
Viktorilia
17.09.15
✎
09:02
|
(6)загрузка списка документов долго проходит
|
|||
9
Viktorilia
17.09.15
✎
09:05
|
и как будет выглядеть параметр сеанса в данном случае?
//Если ПараметрыСеанса.COMСоединениеСАвтовесовой=Истина Тогда // // перем глV21Object Экспорт; // //КонецЕсли; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |