Управляемое приложение, глобальные переменные #579036


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

В этой группе 1С