Имя: Пароль:
1C
1С v8
Что такое в шаблонах ограничений ##
, ,
0 Max1986
 
11.03.12
14:21
Люди, кто в курсе, что такое в шаблонах ограничения прав значит # а что значит ##.
У роли Пользователь было:
##Если &ИспользоватьОграничениеПоФизическиеЛица ##Тогда
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ

а стало

#Если &ИспользоватьОграничениеПоФизическиеЛица #Тогда
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
1 Max1986
 
11.03.12
14:22
Кстати, а что такое &ИспользоватьОграничениеПоФизическиеЛица
т.е. - знак &
Это Параметр сеанса - правильно я понял? В какой момент мы его должны определять? В модуле сеанса или еще где то?
2 FIXXXL
 
11.03.12
15:01
(0) что значит "было-стало"? сам исправил или что?
## - это инструкция для препроцессора (или как там это правильно зовется)
# - параметр в шаблоне запроса
& - Параметр сеанса
3 Max1986
 
11.03.12
15:06
(2)было в старой конфе. Сравнивал с типовой.
4 Max1986
 
11.03.12
15:09
(2) не понял как это команда препрцессору.
вот у меня в старой - переработанной не типовой

##Если &ИспользоватьОграничениеПоКонтрагенты ##Тогда
ТекущаяТаблица
ИЗ
   #ТекущаяТаблица КАК ТекущаяТаблица
       ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
           СоставГруппы.Ссылка КАК ГруппаПользователей
       ИЗ
           Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
       ГДЕ
           СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
       ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
   (НЕ 1 В
               (ВЫБРАТЬ ПЕРВЫЕ 1
                   1
               ИЗ
                   РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                                                               
                   ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
                   ПО Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(1)                
                   
                   ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                       ПО
                           НастройкиПравДоступаПользователей.ОбъектДоступа = ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
                                   
                               И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                               И НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДанные)
                                                                                               
                               И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
               ГДЕ                
                    НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                          И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты))
               
                   И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
##КонецЕсли
5 FIXXXL
 
11.03.12
15:23
(4)в обычном коде встречал
#Если Клиент ..... ?
## - из той же оперы
6 rozer76
 
11.03.12
15:27
2(5) только первое - инструкция препроцессора в второе - так оформляются условия в шаблонах
7 Ненавижу 1С
 
гуру
11.03.12
15:29
итого в 1С я насчитал 4 языка:

- алгоритмический
- запросов
- СКД
- RLS
8 FIXXXL
 
11.03.12
15:32
(6) а я в (2) что написал?
9 Max1986
 
11.03.12
15:34
(6),(8) все же непонятно. туплю.
в каком случае ставится # а когда ##.
А привел пример из УПП старой версии. Сейчас в этой же процедуре только с одно #.
Больше ничего не поменялось
10 rozer76
 
11.03.12
15:40
(8) ... просто "опера" немного это другая
11 rozer76
 
11.03.12
15:44
(9) правильно конечно так ##Если &ИспользоватьОграничениеПоКонтрагенты ##Тогда
12 Max1986
 
11.03.12
15:45
(10)вот! А в чем смысл? Почему в старой версии # а в последней ##
Физический смысл в чем?
13 Max1986
 
11.03.12
15:45
наоборото - в старой ## - а в новой - #
14 Господин ПЖ
 
11.03.12
15:46
"#Если" - это компиляция в "Если"
"##Если" - это компиляция в "#Если"
15 rozer76
 
11.03.12
15:47
(13) посмотрел книжку по 8.2 - там про ## только в случае шаблона
16 FIXXXL
 
11.03.12
15:49
(10) это "опера" языка РЛС, вот и все отличие
отличие есть, "опера" одна и та же
17 ptrtss
 
11.03.12
15:49
(1)
Угу, параметры сеанса. Определяются в модуле сеанса
18 rozer76
 
11.03.12
15:51
(16) в случае препроцессора это когда на стороне сервера/клиента некоторого кода просто нет а в случае с шаблонами -это просто условие которое присутствует везде и всегда
19 Max1986
 
11.03.12
15:51
спасибо всем!
немного стало понятнее
20 rozer76
 
11.03.12
15:52
(13) посмотрел в последнем релизе КА и точно ... одна # ... и в самом деле прикольно :)
21 FIXXXL
 
11.03.12
16:29
(18) ню-ню, "везде и всегда"