:: Вопросы по 1С
глЗначениеПеременной()
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
В стандартной конфе 8.1
Что это за функция и где искать ее определение.

Вообще, где определяются объекты, назаваемые по синтаксису "гл..."?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
ssa

Сообщений: 13008
Откуда: Москва
Дата регистрации: 23.03.2005
ama68
В стандартной конфе 8.1
Что это за функция и где искать ее определение.

Вообще, где определяются объекты, назаваемые по синтаксису "гл..."?
гл = глобальный
в глобальном модуле


------------------
Лень - это неосознанная мудрость.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
От же ж, зараза!

Глобальный поиск по конфе - не рулит. Т.е. использование этих функций/переменных в различных местах он показывает, а само определение - фиг!


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
Какая конфа?
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
ama68
От же ж, зараза!
Глобальный поиск по конфе - не рулит. Т.е. использование этих функций/переменных в различных местах он показывает, а само определение - фиг!
Ерунда полная. Поиск по конфе отлично работает. Для нахождения определения функи можно воспользоваться поиском по строке "функция глЗначениеПеременной", дабы отделить зерна от плевел.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
ssa
в глобальном модуле
Как правило эту функу определяют в модуле приложения, который не стОит путать с общими модулями, у которых свойство "глобальный" = Истина. Хотя в некотором смысле действительно модуль приложения в 8.х является аналогом глобального модуля в 7.7.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
ama68
Автор

Сообщений: 5278
Откуда: Кострома
Дата регистрации: 27.04.2006
Предистория:

Купил учебную версию 8.1 В ней конфа Бухгалтерия+Зарплата. Правда все объекты в ней заблокированы разработчиками, т.е. "Только чтение". Просто так читать - бессмысленно. Решил создать новую конфу и постепенно перенести в нее нужные мне объекты, просмативая, как они работают в "Предприятии" (кстати, мышом переносятся легко, при этом становятся открытыми для редактирования).

Так вот. Перенес справочник "АдресныеСокращения". Запускаю в режиме предприятия, начинает ругаться на отсутствие этой ф-ции (т.е. Функция глЗначениеПеременной(Имя)).

По указания Сергея нашел ее в общем модуле "ГлобальныйМодуль". Она там стоит самой первой.
Однако, перед ней есть вот такой оператор

#Если НЕ Клиент И НЕ ВнешнееСоединение Тогда
Функция глЗначениеПеременной(Имя) Экспорт
Кэш = ПараметрыСеанса.ОбщиеЗначения.Получить();
КэшИзменен = Ложь;
ПолученноеЗначение = ОбщегоНазначения.ПолучитьЗначениеПеременной(Имя, Кэш, КэшИзменен);
Если КэшИзменен Тогда
ПараметрыСеанса.ОбщиеЗначения = Новый ХранилищеЗначения(Кэш);
КонецЕсли;
Возврат ПолученноеЗначение;
КонецФункции
#КонецЕсли

Запускаю в режиме "Предприятия", - пишет, что эта ф-ция не определена. Но, если закоментить вот это
]#Если НЕ Клиент И НЕ ВнешнееСоединение Тогда
, тогда выдается ошибка:
Цитата:
{ОбщийМодуль.ГлобальныйМодуль(8)}: Ошибка при получении значения атрибута контекста (ОбщиеЗначения): Попытка получения неинициализированного значения параметра сеанса
Кэш = ПараметрыСеанса.ОбщиеЗначения.Получить();
по причине:
Попытка получения неинициализированного значения параметра сеанса

Что сие означает?


------------------
"Следовательно, разруха не в клозетах, а в головах!"
Михаил Булгаков
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
oleg_km

Сообщений: 487
Откуда: СПб
Дата регистрации: 02.12.2002
Жалко Владимир Максимов не занимается 1С, он очень доходчиво объясняет самые азы и не только.

Тебе нужно почитать мануал, про видимость функций и процедур. Коротко выглядит так.
Функции и процедуры можно размещать в след местах:
- в модулях приложения, сеанса, внешнего соединения
- в общих модулях
- в модулях объектов метаданных (справочников, документов и т.п.)

Функции в модулях объектов метаданных понятное дело видны только в контексте экземпляра объекта:
обДокумент = Документы.МойДокумент.Создать();
обДокумент.МойМетод();

Модули приложения, сеанса, внешнего соединения видны везде, кроме процедур и функций общих модулей. Только в них находятся события приложения, сеанса, внешнего соединения (ПриЗапускеСистемы и т.д.)

Общие модули видны из любого места программы. К функциям глобальных модулей можно обращаться просто по имени: МояПроцедура(), к функциям неглобальных модулей можно обращаться по имени модуля и имени функции: МойМодуль.МояФункция(). В модуле можно определить, где будет выполняться код: на клиенте или на сервере. Имеет только смысл в клиент-серверном варианте. При это если указано только сервер управление всегда будет переходить на сервер, но если указано клиент, то при вызове с сервера будет ошибка не определена функция

Директивы препроцессора #Если Сервер, Клиент и пр. означают только виден ли будет данный код соответственно на сервере или на клиенте.

Короче, писать можно очень долго. Тебе нужно поизучать мануал. Спроси что-нибудь конкретно - попробую объяснить
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
ama68
Цитата:
{ОбщийМодуль.ГлобальныйМодуль(8)}: Ошибка при получении значения атрибута контекста (ОбщиеЗначения): Попытка получения неинициализированного значения параметра сеанса
Кэш = ПараметрыСеанса.ОбщиеЗначения.Получить();
по причине:
Попытка получения неинициализированного значения параметра сеанса
Что сие означает?
Это означает, что параметру сеанса "ОбщиеЗначения" не было присвоено никакого значения.
Вроде все по русски написано ;)
ЗЫ. Поищи в исходной конфе инициализацию этого параметра сеанса. По видимому этот код тоже
будет в обрамлении #Если НЕ Клиент И НЕ ВнешнееСоединение Тогда .... #КонецЕсли.
Надо убрать эту директиву.



Исправлено 1 раз(а). Последнее : medstrax, 23.01.09 07:51
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
есть встроенный так сказать интуитивный поиск: нуна установить курсор на нужную процедуру/функцию и нажать клаву F12
директивы #Если уместны только в случае если обратить внимание на свойства модуля
к примеру привелегированные модули выполняются всегда на стороне сервера
также обратите внимание, что операнд Экспорт задает видимость функции/процедуры


------------------
Мойте ноги, моя ноги вы моете и руки




Исправлено 1 раз(а). Последнее : Foxtrot, 23.01.09 08:29
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
Foxtrot
к примеру привелегированные модули выполняются всегда на стороне сервера
Не всегда. В файл-серверном варианте галочка "Привелегированный" ни на что не влияет. Поэтому
код внутри #Если НЕ Клиент И НЕ ВнешнееСоединение Тогда .... #КонецЕсли никогда не выполнится.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
medstrax
Забанен

Сообщений: 5964
Дата регистрации: 23.03.2007
medstrax
В файл-серверном варианте галочка "Привелегированный" ни на что не влияет.
Поправлюсь. На права доступа влияет, т.е. модуль с этой галочкой будет иметь полные права, вне зависимости от того, где он выполняется (в случае файл-серверного варианта - всегда на стороне клиента)
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
мдя, предполагал, что у нас все по-взрослому ну то есть клиент-сервер
если нравитца геморой с файловым вариантом, то канешна и флаг нам в руки и никакого понятия об сервере речи быть не может по определению
в дагонку: при расчетах не забудьте про точность вычислений, ибо в файловом варианте у мну на практике както были расхождения


------------------
Мойте ноги, моя ноги вы моете и руки




Исправлено 1 раз(а). Последнее : Foxtrot, 26.01.09 10:31
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
piva

Сообщений: 18655
Откуда: Курган
Дата регистрации: 24.03.2004
У нас тоже Сервер - но отладку и тесты всякие делаю на файловой версии ;)


------------------
Часто бывает так, что есть над чем задуматься, а нечем.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
Сергей_Л

Сообщений: 20257
Откуда: Киров(Вятка)
Дата регистрации: 07.02.2005
piva
У нас тоже Сервер - но отладку и тесты всякие делаю на файловой версии ;)
Тоже. Но иногда результаты запроса в файловой версии и скл-сервера отличаются, они зависят еще и от версии сервера. ;)
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
Foxtrot

Сообщений: 3408
Откуда: Куда:
Дата регистрации: 25.04.2003
запросы файлового варианта действительно отличаютца от сиквельного
мало того, регламентные задания выполняютца под учетной записью с которой стартиет агент 1це, а там уже и кодировку нуна смотреть и прочую лабудень..


------------------
Мойте ноги, моя ноги вы моете и руки
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
А что развернуть на серваке отладочную базу ЛЕНЬ


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
Сергей_Л

Сообщений: 20257
Откуда: Киров(Вятка)
Дата регистрации: 07.02.2005
Нет, просто иногда приходится брать работу "на дом".
Ratings: 0 negative/0 positive
Re: глЗначениеПеременной()
AleksM

Сообщений: 17881
Дата регистрации: 11.11.2003
Это не отмазка
Для этого есть SQL Express и MDE


------------------
Лучше переесть, чем недоспать.
Не спеши, а то успеешь.




Исправлено 1 раз(а). Последнее : AleksM, 05.02.09 14:15
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 2 (Гостей: 2)

© 2000-2024 Fox Club 
Яндекс.Метрика