|
Управляемое приложение, глобальные переменные | ☑ | ||
---|---|---|---|---|
0
perkos
09.11.11
✎
11:10
|
в обработке подбора товаров,
1. подключаюсь к удаленной базе записываю соеденение в глобальную переменную. 2. записываю таблицу значений из удаленной базы глобальную переменную. глобальные переменные определяю в модуле Обычного приложения и управляемого. в обычном работает в управляемом нет. как быть с управляемым? |
|||
1
perkos
09.11.11
✎
11:11
|
где хранить значения подключения и данные в управляемом приложении... чтобы всегда были доступны
|
|||
2
Поручик
09.11.11
✎
11:12
|
Во временное хранилище пихай и оттуда получай.
|
|||
3
GROOVY
09.11.11
✎
11:14
|
1. Глобальных переменных в системе 1С:Предприятие 8 нет. Ни в 8.0, ни в любой другой 8.
2. В модуле управляемого приложения происходит его переинициализация всякий раз когда происходит обращение в его процедурам. |
|||
4
perkos
09.11.11
✎
11:16
|
ухты(= Павел Чистов
ну в модуле обычного приложения все-же я создал переменные, доступные в других объектах |
|||
5
perkos
09.11.11
✎
11:24
|
(2) пихай получай... а как не потерять переменную в других модулях... может параметры сеанса как то нужно использовать?
|
|||
6
EvgeniuXP
09.11.11
✎
11:26
|
(5) в другие модули передавай.
|
|||
7
perkos
09.11.11
✎
11:33
|
(6) я бы хотел через модуль объекта обработки передавать....
|
|||
8
СвинТуз
09.11.11
✎
11:35
|
(3)
"Глобальных переменных в системе 1С:Предприятие 8 нет. Ни в 8.0, ни в любой другой 8." а почему в БП в модуле обычного приложения первая строчка Перем глОбщиеЗначения Экспорт; |
|||
9
СвинТуз
09.11.11
✎
11:50
|
"В модуле управляемого приложения происходит его переинициализация всякий раз когда происходит обращение в его процедурам."
а это вообще не правильная использование модуля ИМХО хотя я безграмотный, но думаю для этого есть другие типы модулей Модуль управляемого приложения Модуль управляемого приложения располагается в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленном в значение "Управляемое приложение" свойства Основной режим запуска. В модуле управляемого приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). Их доступность также обеспечивается для неглобальных общих модулей с установленным свойством Клиент (управляемое приложение). В контексте модуля управляемого приложения доступны |
|||
10
СвинТуз
09.11.11
✎
11:51
|
а вот почему не работает я не знаю
видимо ГРУВИ прав хотя и молчит ? ))) |
|||
11
perkos
09.11.11
✎
11:54
|
(9) тоесть в модуле управляемого нельзя не примитивные типы хранить?
в процедурах &НаКлиенте я не могу работать с ТЗ значениями примитивных типов? |
|||
12
perkos
09.11.11
✎
11:57
|
неохота заниматься ерундой из ТЗ перегонять строки в Массив, как ТЗ передать на клиентскую процедуру?
|
|||
13
СвинТуз
09.11.11
✎
11:58
|
гы
ТЗ на клиенте? это плохо выглядит подозрительно как то |
|||
14
5 Элемент
09.11.11
✎
11:59
|
Храни в глобальной переменной ссылку на временное хранилище
|
|||
15
СвинТуз
09.11.11
✎
11:59
|
как там Павел говорил ?
1 000 рублей в час и я Ваш? согласен на 750 |
|||
16
5 Элемент
09.11.11
✎
12:00
|
(14) А не это бред
|
|||
17
perkos
09.11.11
✎
12:03
|
(14) нету глобальной в управляемом, я впринципе через параметр сеанса типа Хранилище обменялся. правда почему то в него не записывается COM объект...
(13) ну ТЗ из примитивов.... массив можно а тз нет)= |
|||
18
СвинТуз
09.11.11
✎
12:04
|
ладно
я лично ушел книгу Габца читать Павел видимо перед лекцией не готовился или не выспался а сейчас спать пошел ... если вернется от меня ему уважение и респект с извинениями если что не так сказал |
|||
19
perkos
09.11.11
✎
12:07
|
(18) троль(=
|
|||
20
СвинТуз
09.11.11
✎
12:07
|
я?
|
|||
21
СвинТуз
09.11.11
✎
12:09
|
ты с хелпом научись работать
не будешь Чистову за его лекции платить ТЗ у него на клиенте и в глобальных переменных |
|||
22
СвинТуз
09.11.11
✎
12:10
|
ИМХО я бы тех кто ТЗ в глобальные переменные помещает ...
по рукам надо давать короче |
|||
23
EvgeniuXP
09.11.11
✎
12:34
|
(22) смотря в каком случае, например ты собрал инфу, выкинул в ТЗ глобальную переменную, а в обработке на основании этой ТЗ можешь крутить и тестить дальше эти данные, меняя обработку - в противном случае тебе придется каждый раз заполнять ТЗ, которая по времени очень долго заполняется.
Передавай параметрами простые типы, сложные - временное хранилище. |
|||
24
GROOVY
модератор
09.11.11
✎
12:39
|
Под глобальными переменными я понимаю переменные доступные из любого модуля системы. Таких в 8рке нет. Вместо них ввели такую штуку как параметры сеанса, но они типизированные.
(23) Прав, передавать из клиентского модуля в другой клиентский модуль ТЗ напрямую не эффективно, да и не правильно. Следует использовать временное хранилище. |
|||
25
perkos
09.11.11
✎
12:54
|
(24) а как называть экспортные переменные в модуле обычного приложения?
|
|||
26
Starhan
09.11.11
✎
13:05
|
так и называть экспортные переменные модуля обычного приложения :)
|
|||
27
perkos
09.11.11
✎
13:22
|
(= и знай что они вроде-бы глобальные, забыл добавить(=
|
|||
28
perkos
09.11.11
✎
13:22
|
я через параметры сеанса типа хранилища сделал
|
|||
29
СвинТуз
10.11.11
✎
15:48
|
(24)
интересно чему Вы народ за их деньги учите? ну не понимаю я Вас . Видимо старый и тупой и сертификатов не 5 штук по обучению ... как Вы объясните цитату? "В модуле управляемого приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). " Да и профа Вы при таком ответе по платформе не сдадите увы ... Есть там такой вопрос. а второй постулат это вообще выше моего понимания "2. В модуле управляемого приложения происходит его переинициализация всякий раз когда происходит обращение в его процедурам. " что имелось в виду я так и не понял |
|||
30
СвинТуз
10.11.11
✎
15:49
|
если это не про ГЛОБАЛЬНЫЕ переменные :
"Под глобальными переменными я понимаю переменные доступные из любого модуля системы" тогда все я пасс . вопрос снят ... Каждый из нас понимает 1с по своему |
|||
31
СвинТуз
10.11.11
✎
15:53
|
"Под глобальными переменными я понимаю переменные доступные из любого модуля системы. Таких в 8рке нет. Вместо них ввели такую штуку как параметры сеанса, но они типизированные. "
такое ощущение что у того Чистова у которого я учился какой то бот увел логин и глумится над нубами на форуме ... чесное слово |
|||
32
СвинТуз
10.11.11
✎
15:53
|
разочарован
|
|||
33
GROOVY
10.11.11
✎
15:55
|
Если я опишу переменную в модуле приложения, я увижу ее в модуле внешнего соединения?
|
|||
34
СвинТуз
10.11.11
✎
15:55
|
стоп ...
не путайте режимы запуска программы вы ее и в управляемом не увидите если в обычном опишите |
|||
35
GROOVY
10.11.11
✎
15:55
|
Нет. Какая она нафиг глобальня, а если я к ней обращусь из процедуры которая запускается фоновым заданием.
|
|||
36
Астероид
10.11.11
✎
15:56
|
Гляжу Паша под новый год тоже корпоративы проводит. Интересно, как они выглядят в декорациях 1с :)
|
|||
37
СвинТуз
10.11.11
✎
15:56
|
если модуль отработает
увидите |
|||
38
GROOVY
10.11.11
✎
15:56
|
А вот к параметрам сеанса я могу всегда обратиться. Еще раз повторюсь, отчасти их и создавали для использования функционала глобальных переменных.
|
|||
39
GROOVY
10.11.11
✎
15:57
|
(37) модуль приложения? И как мне это гарантировать? ведь команду я могу создать и в сеансе пользователя и через регламентное задание...
|
|||
40
СвинТуз
10.11.11
✎
15:58
|
ладно вопрос снят
я понял позицию имеет место быть а второй пункт все же не понятен ))) |
|||
41
СвинТуз
10.11.11
✎
15:58
|
хоть убейте
|
|||
42
GROOVY
10.11.11
✎
15:58
|
(36) Я их и не под НГ тоже провожу. Летов вообще бум дикий был...
|
|||
43
GROOVY
10.11.11
✎
16:02
|
(40) На примере содуля УФ расскажу, так совсем понятно будет.
Имеем модуль: &НаКлиенте Перем А; &НаКлиенте Процедура ААА() А = 0; КонецПроцедуры &НаСервере ПроцедураБББ() КонецПроцедуры &наКлиенте Процедура ВВВ() Б = а; КонецПроцедуры А = 1; Вызываем последовательно процедуры. Чему будет равна переменная Б? 0? Неа, 1! При вызове серверных процедур модуль компилиться заного, при вызове клиентских то же. |
|||
44
СвинТуз
10.11.11
✎
16:02
|
просто эти переменные Вам надо определять во в тех режимах запуска где они вам нужны
это не значит что их нет |
|||
45
СвинТуз
10.11.11
✎
16:04
|
и что из этого понятно?
то что локальна "А" закрыла грудью паблик "А" |
|||
46
GROOVY
10.11.11
✎
16:04
|
(44) "А" меняется только в клиентских процедурах. Просто вот при вызове сервера она принимает значение 1, и при последующем вызове клиента, так же.
|
|||
47
СвинТуз
10.11.11
✎
16:05
|
Вы не изменили глобальную
у нас НЕЯВНАЯ типизация может снова в школу? |
|||
48
СвинТуз
10.11.11
✎
16:06
|
вообще конечно 1с это что то
|
|||
49
GROOVY
модератор
10.11.11
✎
16:06
|
(47) Спокойнее, либо дискуируем нормально, либо учитесь сами.
Я инициализировал глобальную переменную (ну вы ее так называете) в части основной программы модуля. |
|||
50
GROOVY
модератор
10.11.11
✎
16:07
|
В курсе как интерпретатор модулей работает? Как он создает таблицы переменных и таблицы процедур? Что происходит потом?
|
|||
51
GROOVY
10.11.11
✎
16:07
|
За второго "модера" прошу прощения...
|
|||
52
СвинТуз
10.11.11
✎
16:07
|
&НаКлиенте
Процедура ААА() А = 0; КонецПроцедуры ну тут явно происходит создание переменной? или не так? |
|||
53
GROOVY
10.11.11
✎
16:08
|
Да и неявная типизация это не у меня, а в 1С, у меня Явное описание переменной и присваивание ей значений.
|
|||
54
GROOVY
10.11.11
✎
16:08
|
(52) Нет, А - переменная модуля и я ее явно объявил.
|
|||
55
Mort
10.11.11
✎
16:08
|
(52) Нет.
|
|||
56
GROOVY
10.11.11
✎
16:08
|
А=0; это уже присваивание значения.
|
|||
57
СвинТуз
10.11.11
✎
16:08
|
образуется некоторая неоднозначность
|
|||
58
Mort
10.11.11
✎
16:09
|
(57) Все однозначно. Может снова в школу?
|
|||
59
GROOVY
10.11.11
✎
16:09
|
Вы тут пока посоображайте, я на 20 минут удалюсь...
|
|||
60
СвинТуз
10.11.11
✎
16:10
|
надо проверить
|
|||
61
СвинТуз
10.11.11
✎
16:12
|
ну вообще это конечно интересно
но тогда почему не так? &НаКлиенте Перем А; &НаКлиенте Процедура ААА() А = 0; КонецПроцедуры &НаСервере ПроцедураБББ() КонецПроцедуры &наКлиенте Процедура ВВВ() Б = а; КонецПроцедуры Процедура ПриОткрытии() А = 1; КонецПроцедуры; |
|||
62
GROOVY
10.11.11
✎
16:13
|
Потому что при открытии возможно уже будет хотеть какие то начальные значения переменных.
|
|||
63
СвинТуз
10.11.11
✎
16:13
|
ПередОткрытием() ? )
нет такого? |
|||
64
GROOVY
10.11.11
✎
16:14
|
И перед открытием тоже может хотеть значения переменных.
|
|||
65
GROOVY
10.11.11
✎
16:14
|
Любые события могут ожидать уже инициальзированные переменные.
|
|||
66
GROOVY
10.11.11
✎
16:15
|
Все, точно ушел, прочитаю все через 20 минут....
|
|||
67
СвинТуз
10.11.11
✎
16:15
|
параметры формы
|
|||
68
AAlexandra
10.11.11
✎
16:15
|
(43) А если переменная "А" объявлена в модуле управляемого приложения, а все процедуры ААА, БББ, ВВВ - в любых других модулях?
|
|||
69
СвинТуз
10.11.11
✎
16:20
|
видимо инициализация переменных вне
приделах процедур противоречит методическим рекомендациям 1с ? эта такая фича ? то что было хорошо в 7.7 устарело никогда не понимал тех кто пишет код вне процедур в ПОЛУобъектноориентированном языке |
|||
70
GROOVY
10.11.11
✎
16:40
|
(69) Не противоречит. А вот архитектура клиент-сервер противоречит. Надеюсь что скоро Вы осознаете что пишете по сути приложение которое будет выполняться на физически разных машинах.
ПриСталинеБылоЛучше; (с) |
|||
71
СвинТуз
10.11.11
✎
16:41
|
на самом деле ситуция несколько сложнее
весь этот пример надо осмыслить напоминает на первый взгляд "гнилой код", но как пример поведения системы интересен &НаКлиенте Перем А; &НаКлиенте Процедура ААА() А = 0; КонецПроцедуры &НаСервере Процедура БББ() КонецПроцедуры &наКлиенте Процедура ВВВ() Б = а; Сообщить(""+Б); КонецПроцедуры &НаКлиенте Процедура Команда1(Команда) ААА(); БББ(); ВВВ(); КонецПроцедуры А = 1; Вы не указали подробностей как надо использовать Ваш код поэтому я позволил себе создать команду и кнопку на управляемой форме при отслеживании процесса увидел занятные вещи кое какие выводы получил но результата вашего не увидел |
|||
72
СвинТуз
10.11.11
✎
16:42
|
так и в отладчике просматривается область видимости
это не секрет |
|||
73
СвинТуз
10.11.11
✎
16:43
|
"ПриСталинеБылоЛучше; (с)"
не согласен "Я не дрессирую кошек это кошки дрессируют меня" (Куклачев) |
|||
74
СвинТуз
10.11.11
✎
17:00
|
"При вызове серверных процедур модуль компилиться заного, при вызове клиентских то же."
не удалось воспроизвести Б=0 видимо руки кривые |
|||
75
GROOVY
10.11.11
✎
18:53
|
Это я накосячил... В модуле формы на стороне сервере переинициализация постоянно идет, на клиенте все ОК. Так что в рамках только клиента можно переменные модуля использовать, но они недоступны на сервере. Но я не буду :)
|
|||
76
СвинТуз
11.11.11
✎
10:02
|
&НаКлиенте
Перем А; Она вроде на сервере и не видна хотя такое впечатление что на сервере в отладчике она как раз равна 1 "Это я накосячил... " фигня все мы не боги )) спасибо что признались а то я уже собрался проводить массштабные тесты в клиентсерверном но я все равно погоняю пример интересный ... по любому спасибо за науку |
|||
77
3dice
11.11.11
✎
17:55
|
Прошу прощения за оффтоп. Подскажите пожалуйста, как мне обработать внешнее событие(от сканера штрих-кодов, драйвер атоловский) в управляемом приложении. В обычном приложении ОбработкаВнешнегоСобытия() работает, сканер настроен и работает корректно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |