Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.69/255: Рейтинг темы: голосов - 255, средняя оценка - 4.69
Дийнеки
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 947
1

Глобальные переменные в 8.2

15.05.2011, 11:44. Просмотров 46052. Ответов 5
Метки нет (Все метки)

Спустя время вынужден опять задуматься над проблемой. 8.2 возненавидела глобальные переменные (ГП). А именно общие модули их не видят. В силу чего я хранил глобальные объекты в "ПараметрыСеанса". Но возникают ситуации, что ПараметрыСеанса не универсальны. И вот, кровь износу, нужны переменная. Получается дурнота:
- Объявленные ГП в Глобальном модуле (ГМ) видят все документы, справочники
- Но их не видят Общие модули. Передавать параметрами все ГП при вызове нереально.
- Думал такое решение: ф-ии работающие с ГП описать в ГМ, но их не вызовут Общие модули.
Засада, обложили по полной. У меня полное непонимание такого ограничения.

А механизм ГП нужен. Многие объекты я хочу инициализировать при старте: OLE внешних компонент, несколько неизменяемых в сеансе ТЗ, особо часто используемые константы (для удобства и скорости).

Еще про переменные. В нормальных языках есть способ объявления переменной процедуры как статический. При каждом очередном вызове процедуры переменная "помнит" старое значение. В 8-ке такого точно нет? А то вот и приходится такую переменную объявлять глобальной.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.05.2011, 11:44
Ответы с готовыми решениями:

Глобальные переменные
Доброго дня всем! Помогите плиз разобраться:-Перем глТекущийПользователь...

Глобальные полезности
Давно хотел такую тему сделать, но руки не доходили А тут повод хороший...

Глобальные изменения: внешние отчеты и обработки
Приветствую! Есть задача по типу: раньше мы брали показатели так то а теперь...

УФ в обычном приложении. Форма списка документа. Глобальные команды
Не объяснит ли кто мне, страдающему пользовательским кретинизмом, принцип...

Глобальные и статические глобальные переменные
Скажите, чем отличаются глобальные переменные от статических глобальных...

5
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
15.05.2011, 13:27 2
Писать в параметры сеанса адрес во временном хранилище не подойдет?
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
15.05.2011, 18:13 3
Засада, обложили по полной. У меня полное непонимание такого ограничения.
А механизм ГП нужен.
В приличном обществе за такое расстреливают
Шучу, конечно, но попытаюсь объяснить...
8.2 - клиент-серверная. Причем, с наличием тонкого клиента. Парадигма этой схемы сводится к тому, что сервер должен работать вне зависимости состояния клиента и просто обязан инкапсулировать собственное состояние.
Иными словами, сервер обязан отдавать данные клиенту только по запросу и не предоставлять возможностей изменения собственных данных напрямую. Клиент же, в свою очередь имеет только те данные, которые получил в результате своего запроса, и тоже обязан скрыть свое состояние от сервера. наличие же глобальной переменной, доступной из общих модулей приведет к тому, что к ней возможен доступ как сервера, так и с клиента, что может привести к определенным коллизиям. Не забывайте, что 8.2 - это фактически n+1 приложений, где n - это количество клиентских приложений.

В общем, если есть желание, можем немного пофлудить на тему кошерности глобальных переменных. Как человек, проникшийся сущностью паттеронов ООП, я могу пару часов изощренно бредить на тему абстракций.
0
Дийнеки
0 / 0 / 0
Регистрация: 15.11.2009
Сообщений: 947
17.05.2011, 08:59 4
Цитата Сообщение от unknown181538
Писать в параметры сеанса адрес во временном хранилище не подойдет?
Вот не думал. А быстродействие временного хранилища? Сопоставимо с переменной.




Цитата Сообщение от vitfil
наличие же глобальной переменной, доступной из общих модулей приведет к тому, что к ней возможен доступ как сервера, так и с клиента, что может привести к определенным коллизиям.
Ну не могу я понять, почему как таковые ГП остались в глобальном модуле. И их область действия не ограничена справочниками и документами. А вот общим модулям - фигу.
0
umkmowm181538
0 / 0 / 0
Регистрация: 24.12.2008
Сообщений: 1,399
17.05.2011, 12:58 5
Цитата Сообщение от Дайнеко
А быстродействие временного хранилища? Сопоставимо с переменной.
Не знаю. Самому пока психологически трудно помещать объекты в хранилище.
0
vytfyt
0 / 0 / 0
Регистрация: 28.03.2004
Сообщений: 1,913
19.05.2011, 12:25 6
Ну не могу я понять, почему как таковые ГП остались в глобальном модуле.
Это баг, а не фича
Глобальные переменные в многопоточных распределенных приложениях - зло. Для таких целей используются синглтоны в качестве хранилища каких-то общих данных в оперативном режиме.
0
19.05.2011, 12:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.05.2011, 12:25

Глобальные переменные
доброго времени суток где можно объявить глобальную переменную? или лучше...

Глобальные переменные
Есть ли способ явно обратиться к глобальной переменной ? Или в чем может быть...

Глобальные переменные
Есть сайт, хочу чтобы была возможность в одном браузере открывая разные вкладки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru