Имя: Пароль:
1C
1С v8
Обозначение переменных в 1С вер.8
0 Ring
 
05.01.12
17:39
Подскажите,пожалуйства.
В документах. В программном коде модуля документа-есть описание переменных- первые строки, начинаются с м.
Например:Перем мТекущаяДатаДокумента;
и так во всех документах. Что означает такое обозначение переменных?
Глобальные в этом  модуле? Спасибо.
1 GROOVY
 
05.01.12
17:40
Локальные переменные модуля. По контексту же понятно.
2 zak555
 
05.01.12
17:41
(1) глобальные с г ?
3 Reaper_1c
 
05.01.12
17:42
(2) Та с "г" в 1С надо любую переменную именовать...
4 GROOVY
 
05.01.12
17:42
(2) В 8.* нет глобальных переменных.
5 ДенисЧ
 
05.01.12
17:43
(3) начиная с самой 1с :-)
6 GROOVY
 
модератор
05.01.12
17:43
(3) (5) : Не засоряйте форум бессмысленными сообщениями (вандализм).
7 zak555
 
05.01.12
17:43
(4) переменные глобального контекста ?
8 vmv
 
05.01.12
17:47
префикс "м" как правило означет, чтог это массив.

это правильно, я так какждую переменную массив префиксую
9 GROOVY
 
05.01.12
17:48
(8) Да ты что?! А ребята то не знают...
10 GROOVY
 
05.01.12
17:48
Хранилище значений ты в префиксе ХЗ_ объявляешь?
11 zak555
 
05.01.12
17:50
(4) а что эскортируемые переменные модулей простого/управляемого приложений не подкласс "глобальности" ?
12 vmv
 
05.01.12
17:52
(4) неужели, а это что тогда в конексте клиента

начало модуля управляемого приложения

// Система электронного документооборота (СЭД) "Документооборот Проф"
// Разработчик Компания "Аналитика. Проекты и решения" +7 (343) 222-01-50, www.analitica.ru


&НаКлиенте      
Перем аСписокСоединенийСВнешнимиБазами Экспорт; //analitica.ru Используется для доступа к внешим базам данных по dcom

&НаКлиенте      
Перем аКомпонентаМгновенныхСообщений Экспорт; // analitica.ru Компонента мгновенных сообщений

эти переменные видны глобально на клиенте и позволяют не итнициализировать комы повторно, т.к. эта инициализация действительно долгая
13 GROOVY
 
05.01.12
17:54
Еще раз (уже надоедает...) в 8.* нет модуля в котором объявленная переменная будет гарантированно видна в других модулях.
14 GROOVY
 
05.01.12
17:55
Регламентные задачи, модули сеанса, управляемого и обычного приложения.
15 bazvan
 
05.01.12
17:56
(12) а вот у поделкоделателей и спроси.
16 vmv
 
05.01.12
17:57
(14) как правило глобальные переменные нужны на клиенте, ибо если мы используем серверный вызов, то это совсем другая история
17 zak555
 
05.01.12
17:59
(16) 8ка как бы всегда работает в клиент-серверном варианте
18 vmv
 
05.01.12
18:00
(15) я не спрашивал а проверил, содал в справочнике 10 описаний внешних баз. И допустим, обработкой иницициализировал соедининение к каждой, этот список глобален для всех модулей клинета из любой формы нехитрым иструментом я могу открыть любые заданные мной в другом справочнике объекты как родные, пользователь даже не понимает, что это "чужие" - тормозов нету с комами)
19 Новиков
 
05.01.12
18:00
Система стандартов и методик разработки конфигураций для платформы 1С:Предприятие 8. Почитать можно тут: http://its.1c.ru
20 vmv
 
05.01.12
18:00
(17) да пусть работает, но когда с ней работает пользователь, для чего она и нужна собственно(для человека), то это клиент)
21 zak555
 
05.01.12
18:02
(20) пусть клиенту нужны данные
где они должны обрабатываться ?
22 Reaper_1c
 
05.01.12
18:04
А теперь представь, что твой пользователь сейчас в Праге и ему до зарезу вот понадобилось поработать через веб...
23 GROOVY
 
05.01.12
19:21
(18) Гонишь. Сделай мелкую базу и выложи. Я зайду клиентом и посмотрим как оно отработает.
24 Inform
 
05.01.12
19:57
(4) выдержка из справки конфигуратора:

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

Помимо процедур и функций, в модуле приложения могут размещаться глобальные переменные, доступные из любых модулей конфигурации.
25 zak555
 
05.01.12
20:00
(24) и из модуля внешнего соединения ?

+ он запсукается на стороне клиента
26 Inform
 
05.01.12
20:02
(25) для внешнего соединения - свой модуль и свои переменные
27 Inform
 
05.01.12
20:03
+ (26) но тоже глобальные для внешнего соединения
28 zak555
 
05.01.12
20:03
вот СП :

Модули
Модулем называется программа на встроенном языке системы 1С:Предприятие.


Модули располагаются в заданных точках конфигурации и вызываются для выполнения в заранее известные моменты работы системы 1С:Предприятие.

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


Модуль формы. Каждая форма имеет модуль, в котором описывается ее поведение.

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


Помимо модулей, "привязанных" к формам и объектам, существуют особые модули.

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

Модуль внешнего соединения предназначен для размещения в них текстов функций и процедур, которые могут вызываться в сессии внешнего соединения (требуется использовать ключевое слово "Экспорт").

Модулем сеанса называется модуль, который автоматически выполняется при старте системы 1С:Предприятие 8 в момент загрузки конфигурации.

Модуль сеанса предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы. Модуль сеанса всегда исполняется в привилегированном режиме в кластере серверов 1С:Предприприятия 8.
Модуль сеанса не содержит экспортируемых процедур и функций и может использовать процедуры из общих модулей конфигурации.

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

Помимо процедур и функций, в модуле приложения могут размещаться глобальные переменные, доступные из любых модулей конфигурации.

Общие модули предназначены для размещения в них текстов функций и процедур, которые могут вызываться из любого другого модуля конфигурации (требуется использовать ключевое слово "Экспорт"). Для работы с общими модулями предназначена ветвь "Общие модули" дерева объектов конфигурации.

Экспортируемые переменные, процедуры и функции модуля приложения недоступны в общих модулях.

Экспортируемые процедуры и функции общих модулей доступны в других общих модулях и модуле приложения.

В общих модулях нельзя располагать переменные.
29 Inform
 
05.01.12
20:05
(28) ну и в 8.2 как видим тоже есть "глобальные переменные" или не?
30 zak555
 
05.01.12
20:08
(29) там только процедуры =)
31 Inform
 
05.01.12
20:10
Вот это из (28):

"Помимо процедур и функций, в модуле приложения могут размещаться глобальные переменные, доступные из любых модулей конфигурации."

то ли мне мерещется...
32 Reaper_1c
 
05.01.12
20:26
(31) Буквоед. Ошибка в документации - нету у 8.2 модуля приложения.
33 zak555
 
05.01.12
20:29
(32) ты точно снеговик ?
34 andrewks
 
05.01.12
20:29
(32) да ну!
35 Reaper_1c
 
05.01.12
20:33
(34) Точно. Модуль обычного приложения есть. Модуль управляемого приложения есть. Модуля приложения нет. Поэтому пусть формулирует сначала сам правильно.
36 zak555
 
05.01.12
20:36
(35) в данном контексте было написано про два модуля : обычный и управляемый
37 Reaper_1c
 
05.01.12
20:37
Отлично. Если это так - пусть товарищ обратится из тонкого клиента к переменной определенной в модуле обычного приложения...
38 zak555
 
05.01.12
20:38
и == или
т.е. это обобщение
39 Inform
 
05.01.12
20:40
(37) объяви переменную в 2-х модулях и обращайся к ней откуда угодно, кто мешает то?
40 andrewks
 
05.01.12
20:42
(37) давай мешай салат с тараканами
41 Reaper_1c
 
05.01.12
20:42
(39) Откуда угодно? С сервера обратись к ней, ага.
42 GROOVY
 
05.01.12
20:44
(39) Это будут две абсолютно разных переменных.

Вообще все кто поддерживает теорию о том что в 8рке могут быть глобальные процедуры и переменные въезжают в тему контекстной зависимости исполняемого приложения?!

Единого контекста исполнения в 8рке нет. Вообще. Смиритесь.
43 Reaper_1c
 
05.01.12
20:47
(42) И это хорошо!
44 Inform
 
05.01.12
20:49
(41) нечего опять таки мешать глобальные переменные и контекст исполнения, если судить по этим критериям, то где вообще есть настолько глобальные переменные, которые будут видны при передаче управления серверу?
45 GROOVY
 
05.01.12
20:56
(44) В 1С ни где.
Но опять таки не надо мешать мокрое с теплым. В чем проблема глобальных переменных в 1С? в основном в том что клиент может инициализировать вызов серверных (внеконтекстных) механизмов, например вызов фонового здания. И при этом контекст окружения туда передан не будет.
46 Reaper_1c
 
05.01.12
21:02
(44) В том то и дело, что нет глобальных переменных. И это хорошо. И нечего пудрить мозги начинающим. Нужно сразу учить отличиям между глобальными переменными из 7.7 и переменными уровня модуля управляемого приложения на 8.2
47 andrewks
 
05.01.12
21:03
параметры сеанса чем не угодили?
48 Reaper_1c
 
05.01.12
21:05
(47) Вызовом сервера.
49 andrewks
 
05.01.12
21:06
(48) и чо?
50 zak555
 
05.01.12
21:21
(48)

Самое интересное, что параметры сеанса хранятся на сервере (чтобы их можно было использовать в запросе), но в версии 8.1 ещё кэшируются и на клиенте (чтобы ускорить доступ к ним из встроенного языка).

v8: Параметры сеанса - что это?
51 Inform
 
05.01.12
21:44
(46) как по-твоему называются переменные, которые 1С называет "глобальными"?
52 GROOVY
 
05.01.12
21:45
(51) Локальные
53 andrewks
 
05.01.12
21:47
хорошо, горячие финские парни. давайте определение: что есть глобальная переменная? а локальная?
54 GROOVY
 
05.01.12
21:49
"Глобальные" видно из любого другого модуля системы.
"Локальные" видно только из контекста исполнения текущего модуля.

Есть еще переменные модуля и переменные процедур. Ну мы можем называть их по разному.
55 andrewks
 
05.01.12
21:51
""Локальные" видно только из контекста исполнения текущего модуля. "

а меня всю жизнь учили, что область видимости локальной переменной - текущая процедура/функция

""Глобальные" видно из любого другого модуля системы. "
ну так повторю свой вопрос - чем параметры сеанса не угодили?
56 GROOVY
 
05.01.12
21:54
(55) Про параметры сеанса не ко мне был вопрос... Они как раз и предназначены для замены глобальных переменных, да еще и типизированы и имеют события как объекты!

Про все остальное - мы в терминологию уйдем... и увязнем там. Я надеюсь моя мысль понятна. Если нет то подробнее распишите....
57 1с-кин
 
06.01.12
03:22
(56) а вообще четкую таблицу области видимости переменных можно увидеть? или только вот так - кто что нарыл?
58 Reaper_1c
 
06.01.12
12:36
(57) Какую еще таблицу? Руководство разработчика прочитай да и дело с концом.
59 Быдлокодер 80 lvl
 
06.01.12
12:44
Больше всего запомнилось мУдалятьДвижения, когда прочитал ее однажды не так, как всегда.
60 Jaffar
 
06.01.12
13:25
(55) это смотря где эта локальная переменная определена - в самой процедуре или в начале модуля.
61 vmv
 
06.01.12
13:40
классическое понятие глобальности просто устарело.

раньше лет 15-20 назад системы программирования было и просты и можно было объявить "нечто", которое имело область видимости "везде и всюду".

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

Очевидный пример "глобальные общие модули", ну какие же они глобальные, если уже в свойствах имеют признаки дифференцирования.
62 1с-кин
 
07.01.12
02:15
(58) именно что нужна четкая таблица. А в руководстве вперемежку все.
А мне нужно конкретно знать - где я увижу переменную, а где - нет. Все варианты.
63 FiftyStars
 
07.01.12
02:37
(0)Объявленная в модуле таким образом переменная видна в любой процедуре или функции данного модуля
если дописать Перем АБВ экспорт
то к переменной можно обратиться из любой части кода