|
"ВЫРАЗИТЬ" в языке запросов 1С 8.1 | ☑ | ||
---|---|---|---|---|
0
Сергей-88
03.11.11
✎
11:58
|
Не очень понятна функция "Выразить" в языке запросов 1С, вот такая строчка что значит может кто подскажет?
ВЫРАЗИТЬ(СохраненныеНастройки.Пользователь КАК Справочник.ГруппыПользователей).ПользователиГруппы.Пользователь = &Пользователь |
|||
1
MatrosoV AleXXXand_R
03.11.11
✎
11:59
|
СохраненныеНастройки.Пользователь - составной тип?
|
|||
2
Fragster
гуру
03.11.11
✎
12:00
|
Если СохраненныеНастройки.Пользователь не составного типа - то нафиг не нада. а вообще - через 2 точки в запросе условия писать - жесть
|
|||
3
Jstunner
03.11.11
✎
12:00
|
(0) ВЫРАЗИТЬ приводит значение к заданному типу
|
|||
4
izekia
03.11.11
✎
12:01
|
(2) а как посоветуешь, если там составной тип?
|
|||
5
izekia
03.11.11
✎
12:01
|
(1) да, пользователь или группа
|
|||
6
Сергей-88
03.11.11
✎
12:02
|
я не знаю составной или нет
|
|||
7
izekia
03.11.11
✎
12:02
|
я бы по-другому проверку сделал, но это неважно
|
|||
8
izekia
03.11.11
✎
12:02
|
(6) => (5)
|
|||
9
Сергей-88
03.11.11
✎
12:02
|
я вообще эту строчку не пойму... объясните ее пожалуйста?
|
|||
10
izekia
03.11.11
✎
12:11
|
у СохраненныеНастройки.Пользователи.Пользователь составной тип данных: СправочникСсылка.Пользователи, СправочникСсылка.ГруппыПользователей
так доступно? |
|||
11
Сергей-88
03.11.11
✎
12:31
|
да. получается мы переводим тип данных ссылки пользователя МИХАИЛ с типа - справочник.пользователи на тип Справочник.ГруппыПользователей и обращанемся через точку к полю-пользователь....вроде так.?
|
|||
12
Wobland
03.11.11
✎
12:32
|
составной, не составной... на кой ВЫРАЗИТЬ в(0) вообще? и так же будет работать?
|
|||
13
izekia
03.11.11
✎
12:33
|
а мне вообще запрос в (0) не нравится, точнее условие
|
|||
14
Defender aka LINN
03.11.11
✎
12:34
|
(11) Нет, не так.
|
|||
15
Сергей-88
03.11.11
✎
12:34
|
это из типовой УТ =)
|
|||
16
Сергей-88
03.11.11
✎
12:34
|
Defender aka LINN а как?
|
|||
17
izekia
03.11.11
✎
12:55
|
(16) мы в этом случае джойним только одну таблицу вместо двух
|
|||
18
Defender aka LINN
03.11.11
✎
13:14
|
(16) Пользователь превратится в NULL.
|
|||
19
izekia
03.11.11
✎
13:28
|
(18) я прямо представил это
|
|||
20
Fragster
гуру
03.11.11
✎
13:50
|
в полночь
|
|||
21
Ахиллес
03.11.11
✎
13:52
|
(20) В полночь всё станет Неопределено.
|
|||
22
Сергей-88
03.11.11
✎
13:52
|
ни чего не понял=)
|
|||
23
Ахиллес
03.11.11
✎
13:54
|
Если ничего не получается, прочтите наконец инструкцию.
|
|||
24
Сергей-88
03.11.11
✎
13:58
|
ведь нет ее)
|
|||
25
izekia
03.11.11
✎
14:06
|
о, а кстати, вообще в (0) условие работать не будет
(24) дай текст запроса целиком? |
|||
26
Сергей-88
03.11.11
✎
14:09
|
izekia как это не будет это типовая конфигурация УТ 10.3 =)
|
|||
27
izekia
03.11.11
✎
14:10
|
(26) текст всего запроса покажи?
|
|||
28
Сергей-88
03.11.11
✎
14:10
|
izekia можешь объяснить что значит эта строка несложным языком?)
|
|||
29
Сергей-88
03.11.11
✎
14:10
|
Функция ПолучитьНастройкуИспользоватьПриОткрытии(СтруктураНастройки) Экспорт
Если ТипЗнч(СтруктураНастройки) <> Тип("Структура") Тогда Возврат Ложь; КонецЕсли; Запрос = Новый Запрос( "ВЫБРАТЬ ПЕРВЫЕ 1 | ВложенныйЗапрос.НаименованиеНастройки КАК НаименованиеНастройки, | ВложенныйЗапрос.СохраненнаяНастройка КАК СохраненнаяНастройка, | ВложенныйЗапрос.СохранятьАвтоматически КАК СохранятьАвтоматически |ИЗ | (ВЫБРАТЬ ПЕРВЫЕ 1 | СохраненныеНастройки.НаименованиеНастройки КАК НаименованиеНастройки, | СохраненныеНастройки.СохраненнаяНастройка КАК СохраненнаяНастройка, | СохраненныеНастройки.СохранятьАвтоматически КАК СохранятьАвтоматически, | 0 КАК ВидНастройки | ИЗ | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки | ГДЕ | СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта | И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА | И СохраненныеНастройки.Пользователь = &Пользователь | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | СохраненныеНастройки.НаименованиеНастройки, | СохраненныеНастройки.СохраненнаяНастройка, | СохраненныеНастройки.СохранятьАвтоматически, | 1 | ИЗ | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки | ГДЕ | СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта | И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА | И ВЫРАЗИТЬ(СохраненныеНастройки.Пользователь КАК Справочник.ГруппыПользователей).ПользователиГруппы.Пользователь = &Пользователь | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ ПЕРВЫЕ 1 | СохраненныеНастройки.НаименованиеНастройки, | СохраненныеНастройки.СохраненнаяНастройка, | СохраненныеНастройки.СохранятьАвтоматически, | 2 | ИЗ | РегистрСведений.СохраненныеНастройки КАК СохраненныеНастройки | ГДЕ | СохраненныеНастройки.ИмяОбъекта = &ИмяОбъекта | И СохраненныеНастройки.Пользователь = НЕОПРЕДЕЛЕНО | И СохраненныеНастройки.ИспользоватьПриОткрытии = ИСТИНА) КАК ВложенныйЗапрос | |УПОРЯДОЧИТЬ ПО | ВложенныйЗапрос.ВидНастройки"); Если СтруктураНастройки.Свойство("Пользователь") И ЗначениеЗаполнено(СтруктураНастройки.Пользователь) Тогда Запрос.УстановитьПараметр("Пользователь", СтруктураНастройки.Пользователь); Иначе Запрос.УстановитьПараметр("Пользователь", ПараметрыСеанса.ТекущийПользователь); КонецЕсли; Запрос.УстановитьПараметр("ИмяОбъекта", СтруктураНастройки.ИмяОбъекта); РезультатЗапроса = Запрос.Выполнить(); Если РезультатЗапроса.Пустой() Тогда Возврат Ложь; Иначе ВыборкаИзРезультатаЗапроса = РезультатЗапроса.Выбрать(); ВыборкаИзРезультатаЗапроса.Следующий(); СтруктураНастройки.Вставить("НаименованиеНастройки", ВыборкаИзРезультатаЗапроса.НаименованиеНастройки); СтруктураНастройки.Вставить("СохраненнаяНастройка", ВыборкаИзРезультатаЗапроса.СохраненнаяНастройка.Получить()); СтруктураНастройки.Вставить("ИспользоватьПриОткрытии", Истина); СтруктураНастройки.Вставить("СохранятьАвтоматически", ВыборкаИзРезультатаЗапроса.СохранятьАвтоматически); КонецЕсли; Возврат Истина; КонецФункции // ПолучитьНастройкуИспользоватьПриОткрытии() |
|||
30
izekia
03.11.11
✎
14:11
|
по идее то что она для условия делает джойн только с одной таблицей, вместо двух
|
|||
31
Сергей-88
03.11.11
✎
14:11
|
джойн -это что?
|
|||
32
Сергей-88
03.11.11
✎
14:12
|
izekia кинь аську свою)
|
|||
33
izekia
03.11.11
✎
14:12
|
забавно, не знал что так можно
джойн - это соединение, аську кинуть не могу, извини |
|||
34
izekia
03.11.11
✎
14:14
|
то есть у тебя там составной тип, каждый раз когда ты обращаешься (здесь не надо понимать меня неправильно) к реквизиту - делается соединение с теми таблицами, которые учавствуют в составном типе, соответственно когда ты пишешь конструкцию выразить, то ты тем самым отсекаешь ненужные тебе таблицы
|
|||
35
Сергей-88
03.11.11
✎
14:19
|
понятно... а вот дальше через точку .ПользователиГруппы.Пользователь =
это получается я обращаюсь к справочнику - группы пользователей, но ведь там нет реквизита - ПользователиГруппы.. |
|||
36
izekia
03.11.11
✎
14:23
|
(35) это табличная часть, я поэтому написал, что не думал, что такое возможно
|
|||
37
Fram
03.11.11
✎
14:32
|
(33) это догадки или проверено?
|
|||
38
Fram
03.11.11
✎
14:32
|
(37) -> (34)
|
|||
39
izekia
03.11.11
✎
14:35
|
(38) скажем так, это та информация которую я услышал не из официальных источников, но сам не проверял
считаю, что логически это и должно быть так ... |
|||
40
izekia
03.11.11
✎
14:36
|
(38) при запросах к бухрегистрам применение выразить оптимизирует выполнение запроса именно за счет сокращения таблиц участвующих в запросе
|
|||
41
Inform
03.11.11
✎
14:41
|
||||
42
izekia
03.11.11
✎
14:41
|
(41)можно выдержку краткую из ссылки?
|
|||
43
Inform
03.11.11
✎
14:44
|
(42) http://bit.ly/t2rejM
|
|||
44
izekia
03.11.11
✎
14:52
|
(43) ну да, спасибо
кстати, получил ответ на свой вопрос относительно временных таблиц и вложенных запросов |
|||
45
Сергей-88
03.11.11
✎
15:13
|
izekia точно табличная часть!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |