Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Символы {} в Запросах 1с

Символы {} в Запросах 1с
Я
   Buzztekk
 
02.06.18 - 14:12
Добрый день. Что означают эти символы {} в запросах 
Пытаюсь понять что это за запрос, но ни как не в курю, что за
странные скобки {}

ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ВЫБОР
            КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме
                ТОГДА "2. Доходы в натуральной форме"
            ИНАЧЕ "1. Начислено"
        КОНЕЦ КАК ВидДвижения,
        ОсновныеНачисленияРаботниковОрганизации.ФизЛицо КАК ФизЛицо,
        ОсновныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        ОсновныеНачисленияРаботниковОрганизации.Организация КАК ГоловнаяОрганизация,
        НАЧАЛОПЕРИОДА(ОсновныеНачисленияРаботниковОрганизации.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации,
        ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.Наименование КАК ВидРасчета,
        ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней КАК ОтработаноДней,
        ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов КАК ОтработаноЧасов,
        ВЫБОР
            КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
                ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
            ИНАЧЕ 0
        КОНЕЦ КАК ОплаченоДней,
        ВЫБОР
            КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидУчетаВремени <> ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
                ТОГДА ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
            ИНАЧЕ 0
        КОНЕЦ КАК ОплаченоЧасов,
        ОсновныеНачисленияРаботниковОрганизации.Результат КАК Результат,
        ОсновныеНачисленияРаботниковОрганизации.ПериодДействия КАК ПериодДействия,
        "А" + ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.Код КАК Порядок,
        ОсновныеНачисленияРаботниковОрганизации.Регистратор КАК Регистратор,
        ОсновныеНачисленияРаботниковОрганизации.Сотрудник
    ПОМЕСТИТЬ ОсновныеНачисления_1
    {ВЫБРАТЬ
        ВидДвижения,
        ФизЛицо.*,
        ПодразделениеОрганизации.*,
        ГоловнаяОрганизация.*,
        ПериодРегистрации,
        ВидРасчета,
        ОтработаноДней,
        ОтработаноЧасов,
        ОплаченоДней,
        ОплаченоЧасов,
        Результат,
        ПериодДействия,
        Порядок,
        Регистратор.*}
    ИЗ
        РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизации
    ГДЕ
        ОсновныеНачисленияРаботниковОрганизации.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
        И (ОсновныеНачисленияРаботниковОрганизации.Результат <> 0
                ИЛИ ОсновныеНачисленияРаботниковОрганизации.ОтработаноДней <> 0
                ИЛИ ОсновныеНачисленияРаботниковОрганизации.ОтработаноЧасов <> 0
                ИЛИ ОсновныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов <> 0)
                 И ОсновныеНачисленияРаботниковОрганизации.Организация = &Организация
    {ГДЕ
        ОсновныеНачисленияРаботниковОрганизации.ФизЛицо.*,
        ОсновныеНачисленияРаботниковОрганизации.Организация.* КАК ГоловнаяОрганизация,
        ОсновныеНачисленияРаботниковОрганизации.Регистратор.*,
        (ВЫБОР
                КОГДА ОсновныеНачисленияРаботниковОрганизации.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме
                    ТОГДА "2. Доходы в натуральной форме"
                ИНАЧЕ "1. Начислено"
            КОНЕЦ) КАК ВидДвижения}
    ;
    
    
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
        ВЫБОР
            КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме
                ТОГДА "2. Доходы в натуральной форме"
            ИНАЧЕ "1. Начислено"
        КОНЕЦ КАК ВидДвижения,
        ДополнительныеНачисленияРаботниковОрганизации.ФизЛицо КАК ФизЛицо,
        ДополнительныеНачисленияРаботниковОрганизации.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
        ДополнительныеНачисленияРаботниковОрганизации.Организация КАК ГоловнаяОрганизация,
        НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизации.ПериодРегистрации, МЕСЯЦ) КАК ПериодРегистрации,
        ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета.Наименование КАК ВидРасчета,
        NULL КАК ОтработаноДней,
        NULL КАК ОтработаноЧасов,
        ВЫБОР
            КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоДням)
                ТОГДА ДополнительныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
            ИНАЧЕ 0
        КОНЕЦ КАК ОплаченоДней,
        ВЫБОР
            КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидУчетаВремени = ЗНАЧЕНИЕ(Перечисление.ВидыУчетаВремени.ПоЧасам)
                ТОГДА ДополнительныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов
            ИНАЧЕ 0
        КОНЕЦ КАК ОплаченоЧасов,
        ДополнительныеНачисленияРаботниковОрганизации.Результат КАК Результат,
        НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизации.ПериодРегистрации, МЕСЯЦ) КАК ПериодДействия,
        "Б" + ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета.Код КАК Порядок,
        ДополнительныеНачисленияРаботниковОрганизации.Регистратор КАК Регистратор,
        ДополнительныеНачисленияРаботниковОрганизации.Сотрудник
    ПОМЕСТИТЬ ДополнительныеНачисления_1
    {ВЫБРАТЬ
        ВидДвижения,
        ФизЛицо.*,
        ГоловнаяОрганизация.*,
        ПодразделениеОрганизации.*,
        ПериодРегистрации,
        ВидРасчета,
        ОтработаноДней,
        ОтработаноЧасов,
        ОплаченоДней,
        ОплаченоЧасов,
        Результат,
        ПериодДействия,
        Порядок,
        Регистратор.*}
    ИЗ
        РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизации
    ГДЕ
        ДополнительныеНачисленияРаботниковОрганизации.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
        И (ДополнительныеНачисленияРаботниковОрганизации.Результат <> 0
                ИЛИ ДополнительныеНачисленияРаботниковОрганизации.ОплаченоДнейЧасов <> 0)
       И ДополнительныеНачисленияРаботниковОрганизации.Организация = &Организация
    {ГДЕ
        ДополнительныеНачисленияРаботниковОрганизации.ФизЛицо.*,
        ДополнительныеНачисленияРаботниковОрганизации.Организация.* КАК ГоловнаяОрганизация,
        (НАЧАЛОПЕРИОДА(ДополнительныеНачисленияРаботниковОрганизации.ПериодРегистрации, МЕСЯЦ)) КАК ПериодРегистрации,
        ДополнительныеНачисленияРаботниковОрганизации.Регистратор.*,
        (ВЫБОР
                КОГДА ДополнительныеНачисленияРаботниковОрганизации.ВидРасчета.ЯвляетсяДоходомВНатуральнойФорме
                    ТОГДА "2. Доходы в натуральной форме"
                ИНАЧЕ "1. Начислено"
            КОНЕЦ) КАК ВидДвижения}
    ;
    
    
    ВЫБРАТЬ
        ВложенныйЗапрос.ВидДвижения,
        ВложенныйЗапрос.ПодразделениеОрганизации,
        ВложенныйЗапрос.ПериодРегистрации,
        ВложенныйЗапрос.ВидРасчета,
        СУММА(ВложенныйЗапрос.Результат) КАК СУММА,
        ВложенныйЗапрос.ФизЛицо.Наименование КАК ФИЗЛИЦО,
       ВложенныйЗапрос.ФизЛицо.РОдитель.код КАК ФИЗЛИЦОРодительКод,
        ВложенныйЗапрос.ГоловнаяОрганизация,
    
        ВложенныйЗапрос.Сотрудник
    ИЗ
        (ВЫБРАТЬ
            ОсновныеНачисления_1.ВидДвижения КАК ВидДвижения,
            ОсновныеНачисления_1.ФизЛицо КАК ФизЛицо,
            ОсновныеНачисления_1.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
            ОсновныеНачисления_1.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
            ОсновныеНачисления_1.ПериодРегистрации КАК ПериодРегистрации,
            ОсновныеНачисления_1.ВидРасчета КАК ВидРасчета,
            ОсновныеНачисления_1.ОтработаноДней КАК ОтработаноДней,
            ОсновныеНачисления_1.ОтработаноЧасов КАК ОтработаноЧасов,
            ОсновныеНачисления_1.ОплаченоДней КАК ОплаченоДней,
            ОсновныеНачисления_1.ОплаченоЧасов КАК ОплаченоЧасов,
            ОсновныеНачисления_1.Результат КАК Результат,
            ОсновныеНачисления_1.ПериодДействия КАК ПериодДействия,
            ОсновныеНачисления_1.Порядок КАК Порядок,
            ОсновныеНачисления_1.Регистратор КАК Регистратор,
            ОсновныеНачисления_1.Сотрудник КАК Сотрудник
        ИЗ
            ОсновныеНачисления_1 КАК ОсновныеНачисления_1
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            ДополнительныеНачисления_1.ВидДвижения,
            ДополнительныеНачисления_1.ФизЛицо,
            ДополнительныеНачисления_1.ПодразделениеОрганизации,
            ДополнительныеНачисления_1.ГоловнаяОрганизация,
            ДополнительныеНачисления_1.ПериодРегистрации,
            ДополнительныеНачисления_1.ВидРасчета,
            ДополнительныеНачисления_1.ОтработаноДней,
            ДополнительныеНачисления_1.ОтработаноЧасов,
            ДополнительныеНачисления_1.ОплаченоДней,
            ДополнительныеНачисления_1.ОплаченоЧасов,
            ДополнительныеНачисления_1.Результат,
            ДополнительныеНачисления_1.ПериодДействия,
            ДополнительныеНачисления_1.Порядок,
            ДополнительныеНачисления_1.Регистратор,
            ДополнительныеНачисления_1.Сотрудник
        ИЗ
            ДополнительныеНачисления_1 КАК ДополнительныеНачисления_1) КАК ВложенныйЗапрос
    
    
    СГРУППИРОВАТЬ ПО
        ВложенныйЗапрос.ВидДвижения,
        ВложенныйЗапрос.ПодразделениеОрганизации,
        ВложенныйЗапрос.ГоловнаяОрганизация,
        ВложенныйЗапрос.ПериодРегистрации,
        ВложенныйЗапрос.ВидРасчета,
    
        ВложенныйЗапрос.ФизЛицо,
        ВложенныйЗапрос.ФизЛицо.Наименование,
        ВложенныйЗапрос.ФизЛицо.Родитель.Код,
        ВложенныйЗапрос.Сотрудник
 
 
   RomanYS
 
1 - 02.06.18 - 14:14
Это расширение языка запросов для построителя
   Mankubus
 
2 - 02.06.18 - 14:16
(0) яндекс поиск фигурные скобки в запросах
   Cyberhawk
 
3 - 02.06.18 - 14:18
"ни как не в курю, что за" // А что ты сделал для этого?
   RomanYS
 
4 - 02.06.18 - 14:27
(3) метод пристального взгляда)
   Buzztekk
 
5 - 02.06.18 - 14:32
(3)Я просмотрел несколько видео-уроков. Прочитал пару статей.
Также искал в гугле по запросу "запросы 1с 8.3 символ {" - ничего не нашел

(2) Спасибо. Щас попробую
   youalex
 
6 - 02.06.18 - 14:49
(5) Яша на запрос "фигурная скобка в запросе 1с" выдает 109 млн ссылок.
   Tankur
 
7 - 02.06.18 - 16:35
(0) Смотря где используется запрос.
ты привел сам текст запроса, но обрабатывать тксты могут многие объекты встроенного языка.

например
1.Запрос,
2.ПостроительОтчета,
3.КопоновщикСхемыКомпоновкиДанных.

Запрос игнорирует содержимое этих скобок, то есть если это ттеккст запросы выполняется наприер так

МойОтличныйЗапрос = Новый Запрос(МойТекстЗапросаСФигурнымиСкобками).
то в нем фигурные скобки не нужны, можешь удалить.

для построителя и для СКД содержимое фигурных скобок определяет указывает построителю отчетов или процессору СКД то как нужно опользователю предоставлять отборы настройки.
   Tankur
 
8 - 02.06.18 - 16:37
Фигурными скобками в запросе выделяются конструкции, предназначенные для обработки построителем отчета.

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

Если в тексте запроса нет специальных указаний построителю отчета, он сформирует список настроек по умолчанию при вызове метода ЗаполнитьНастройки(). Если же разработчик хочет определить собственный состав настроек, отличный от формируемого по умолчанию, он должен вставить в текст запроса специальные указания для построителя отчета, которые и оформляются фигурными скобками.

В частности, разработчик может указать, какие поля сможет выбирать пользователь (конструкция ВЫБРАТЬ), на какие поля он сможет накладывать ограничения (конструкция ГДЕ), какие поля могут быть использованы для сортировки (конструкция УПОРЯДОЧИТЬ ПО) и по каким полям могут быть рассчитаны итоги (конструкция ИТОГИ ПО).

В следующем примере пользователь сможет управлять размещением измерений Номенклатура и Склад в строках или колонках результирующей таблицы:

Копировать в буфер обмена
ПостроительОтчета.Текст =
 "ВЫБРАТЬ
 | ОстаткиТоваровКомпанииОстаткиИОбороты.Номенклатура КАК Номенклатура,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.Номенклатура.Представление,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.СкладКомпании КАК Склад,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.СкладКомпании.Представление,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.Заказ КАК Заказ,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.Заказ.Представление,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.ЦенаВРознице КАК Цена,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.ХарактеристикаНоменклатуры КАК Характеристика,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.ХарактеристикаНоменклатуры.Представление,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
 | ОстаткиТоваровКомпанииОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
 |ИЗ
 | РегистрНакопления.ОстаткиТоваровКомпании.ОстаткиИОбороты КАК ОстаткиТоваровКомпанииОстаткиИОбороты
 |
 |{ИТОГИ ПО Номенклатура, Склад}
 |
 |ИТОГИ СУММА(КоличествоНачальныйОстаток), СУММА(КоличествоПриход), СУММА(КоличествоРасход), СУММА(КоличествоКонечныйОстаток) ПО
 | ОБЩИЕ";
   Tankur
 
9 - 02.06.18 - 16:40
выво дтакой:
если в запросе - то либо игнорировать либо нафиг удалить фигурные скобки. (предпочтительнее не удалять т.к. хороший и большой запрос обрабатываемый объектом "ЗАПРОС" после завтра легко воткнеш в построитеьл отчета или СКД, и там фигурные скобки пригодятся)

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

вот и вся соль.
   Buzztekk
 
10 - 02.06.18 - 17:01
(9) Tankur спасибо. В моем случае мне просто нужны были данные, теперь я понял что эти скобки на сам запрос не влияют и их в принципе можно удалить.
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует