8.х Как понять что делает запрос?

Тема в разделе "Система компоновки данных (СКД)", создана пользователем ДядьЛёша, 25 мар 2017.

  1. TopicStarter Overlay
    ДядьЛёша
    Offline

    ДядьЛёша

    Регистрация:
    5 мар 2017
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Добрый день! Просьба сильно не пинать, я в СКД новичок, поэтому вопрос, может быть и выглядит нелепо. Вот типовой отчет (из ЗУП 3.1) - "Образования сотрудников" В нем такой текст запроса:

    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Сотрудники.Ссылка КАК Сотрудник,
    &Период КАК Период
    ПОМЕСТИТЬ ВТСотрудники
    ИЗ
    Справочник.Сотрудники КАК Сотрудники
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК Сотрудник,
    ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо,
    "" КАК ТабельныйНомер,
    ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка) КАК Организация,
    ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
    ЗНАЧЕНИЕ(Справочник.ТерриторииВыполненияРабот.ПустаяСсылка) КАК Территория,
    ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка) КАК Должность,
    ЗНАЧЕНИЕ(Справочник.ШтатноеРасписание.ПустаяСсылка) КАК ДолжностьПоШтатномуРасписанию,
    ЗНАЧЕНИЕ(Справочник.ГрафикиРаботыСотрудников.ПустаяСсылка) КАК ГрафикРаботы,
    0 КАК КоличествоСтавок,
    ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка) КАК ВидЗанятости,
    ЗНАЧЕНИЕ(Справочник.ТарифныеСетки.ПустаяСсылка) КАК ТарифнаяСетка,
    ЗНАЧЕНИЕ(Справочник.РазрядыКатегорииДолжностей.ПустаяСсылка) КАК РазрядКатегория,
    ЗНАЧЕНИЕ(Справочник.ТарифныеСетки.ПустаяСсылка) КАК ТарифнаяСеткаНадбавки,
    ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника) КАК Состояние,
    0 КАК ФОТ,
    0 КАК Надбавка,
    0 КАК Аванс,
    0 КАК ТарифнаяСтавка,
    ДАТАВРЕМЯ(1, 1, 1) КАК ДатаПриема,
    ДАТАВРЕМЯ(1, 1, 1) КАК ДатаУвольнения,
    ВЫРАЗИТЬ("" КАК СТРОКА) КАК Фамилия,
    ВЫРАЗИТЬ("" КАК СТРОКА) КАК Имя,
    ВЫРАЗИТЬ("" КАК СТРОКА) КАК Отчество,
    ВЫРАЗИТЬ("" КАК СТРОКА) КАК ФИОПолные,
    "" КАК ПолученныеОбразования,
    "" КАК Награды,
    "" КАК Документы,
    "" КАК ЗнанияЯзыков,
    "" КАК Профессии,
    "" КАК Специальности,
    "" КАК ТрудоваяДеятельность,
    "" КАК СоставСемьи,
    ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровССотрудниками.ПустаяСсылка) КАК ВидДоговора,
    ДАТАВРЕМЯ(1, 1, 1) КАК ДатаДоговораКонтракта,
    "" КАК НомерДоговораКонтракта,
    ДАТАВРЕМЯ(1, 1, 1) КАК ДатаНачала,
    ДАТАВРЕМЯ(1, 1, 1) КАК ДатаОкончания,
    ЛОЖЬ КАК СрочныйДоговор,
    "" КАК СрокЗаключенияДоговора
    ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
    ИЗ
    ВТСотрудники КАК ВТСотрудники
    ГДЕ
    "ТолькоРазрешенные" = ИСТИНА
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Представления_КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
    Представления_КадровыеДанныеСотрудников.ТабельныйНомер КАК ТабельныйНомер,
    Представления_КадровыеДанныеСотрудников.Организация КАК Организация,
    Представления_КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
    Представления_КадровыеДанныеСотрудников.Должность КАК Должность,
    Представления_КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
    Представления_КадровыеДанныеСотрудников.ГрафикРаботы КАК ГрафикРаботы,
    Представления_КадровыеДанныеСотрудников.КоличествоСтавок КАК КоличествоСтавок,
    Представления_КадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
    Представления_КадровыеДанныеСотрудников.ТарифнаяСетка КАК ТарифнаяСетка,
    Представления_КадровыеДанныеСотрудников.РазрядКатегория КАК РазрядКатегория,
    Представления_КадровыеДанныеСотрудников.ТарифнаяСеткаНадбавки КАК ТарифнаяСеткаНадбавки,
    Представления_КадровыеДанныеСотрудников.Состояние КАК Состояние,
    Представления_КадровыеДанныеСотрудников.ТарифнаяСтавка КАК ТарифнаяСтавка,
    Представления_КадровыеДанныеСотрудников.Надбавка КАК Надбавка,
    Представления_КадровыеДанныеСотрудников.ФОТ КАК ФОТ,
    Представления_КадровыеДанныеСотрудников.Аванс КАК Аванс,
    Представления_КадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
    ВЫБОР
    КОГДА Представления_КадровыеДанныеСотрудников.ДатаУвольнения <= &Период
    ТОГДА Представления_КадровыеДанныеСотрудников.ДатаУвольнения
    ИНАЧЕ ДАТАВРЕМЯ(1, 1, 1)
    КОНЕЦ КАК ДатаУвольнения,
    Представления_КадровыеДанныеСотрудников.Фамилия КАК Фамилия,
    Представления_КадровыеДанныеСотрудников.Имя КАК Имя,
    Представления_КадровыеДанныеСотрудников.Отчество КАК Отчество,
    Представления_КадровыеДанныеСотрудников.ФИОПолные КАК ФИОПолные,
    Представления_КадровыеДанныеСотрудников.ВидДоговора КАК ВидДоговора,
    Представления_КадровыеДанныеСотрудников.ПолученныеОбразования КАК ПолученныеОбразования,
    Представления_КадровыеДанныеСотрудников.Награды КАК Награды,
    Представления_КадровыеДанныеСотрудников.Документы КАК Документы,
    Представления_КадровыеДанныеСотрудников.ЗнанияЯзыков КАК ЗнанияЯзыков,
    Представления_КадровыеДанныеСотрудников.Профессии КАК Профессии,
    Представления_КадровыеДанныеСотрудников.Специальности КАК Специальности,
    Представления_КадровыеДанныеСотрудников.ТрудоваяДеятельность КАК ТрудоваяДеятельность,
    Представления_КадровыеДанныеСотрудников.СоставСемьи КАК СоставСемьи,
    Представления_КадровыеДанныеСотрудников.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
    Представления_КадровыеДанныеСотрудников.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
    Представления_КадровыеДанныеСотрудников.ДатаНачала КАК ДатаНачала,
    Представления_КадровыеДанныеСотрудников.ДатаОкончания КАК ДатаОкончания,
    Представления_КадровыеДанныеСотрудников.СрочныйДоговор КАК СрочныйДоговор,
    Представления_КадровыеДанныеСотрудников.СрокЗаключенияДоговора КАК СрокЗаключенияДоговора,
    Представления_КадровыеДанныеСотрудников.Территория КАК Территория,
    ОбразованиеФизическихЛиц.Ссылка КАК ОбразованиеСотрудника
    ИЗ
    Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.ОбразованиеФизическихЛиц КАК ОбразованиеФизическихЛиц
    ПО Представления_КадровыеДанныеСотрудников.ФизическоеЛицо = ОбразованиеФизическихЛиц.Владелец

    Я никак не могу понять, что тут делается? Второй запрос вроде бы выбирает из списка сторудников, который в ВТСотрудники, а как в него данные по сотрудникам попадают? Ведь там просто задаются типизированные заготовки для полей. Если это все выполнить консоли запросов или в консоли СКД, то получается пустой результат во второй временной таблице и, соответственно, пусто в итоговом запросе. Что я не понимаю? И где про это можно почитать?
  2. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    9.407
    Симпатии:
    973
    Баллы:
    204
    это может быть вообще болванка, а конечный вариант текста запроса формируется при нажатии на кнопку "сформировать".
  3. TopicStarter Overlay
    ДядьЛёша
    Offline

    ДядьЛёша

    Регистрация:
    5 мар 2017
    Сообщения:
    4
    Симпатии:
    0
    Баллы:
    1
    Я хочу понять зачем это шаманство и как оно устроено, это ведь типовой код, он есть везде в тех отчетах, где выбирается список сотрудников (насколько я помню, в ранних версиях платформы этот список формировался огромным пакетом запросов). То есть это написали разработчики 1С не просто так, а с какой-то целью. Вот я и не могу понять понять этот текст. Для ясности прикреплю сам отчет.

    Вложения:

  4. 1с-ник
    Offline

    1с-ник Профессионал в 1С Заблокирован

    Регистрация:
    5 окт 2014
    Сообщения:
    998
    Симпатии:
    162
    Баллы:
    104
    Чтобы понять как он работает достаточно воспользоваться отладкой и желанием.
    При компоновке результата вызывается инициализация отчета и заполняются источники данных.

Поделиться этой страницей