Имя: Пароль:
1C
1С v8
1c 8.3 СКД и реальный запрос
0 zvivla
 
10.08.17
14:44
Здравствуйте.
Есть рабочий запрос, который находит сумму по определенному принципу.
В СКД он отрабатывает не верно только из-за того что, если в выводе поле не используется то СКД автоматом обрезает запрос на это поле.
Есть-ли какое то решение не выводить поле в отчет, но и чтоб из группировки в запросе оно не вылетало?
1 kev789
 
10.08.17
14:47
Сделать это поле обязательным (в ролях)
2 zvivla
 
10.08.17
14:50
(1) http://SSMaker.ru/808c627b/

Сделала, эффекта ноль. Или как-то по-другому нужно
3 zvivla
 
10.08.17
15:00
Дело в том, что это поле используется в одной из виртуальных таблиц. Для вывода это поле в реультирующей вобще не нужно
4 Гипервизор
 
10.08.17
15:02
(3) Как один из вариантов: переделать ВТ на вложенный запрос. А вообще надо логику запроса смотреть.
5 zvivla
 
10.08.17
15:05
(4) Вложенные запросы скд не режет по полям?
6 LordCMEPTb
 
10.08.17
15:07
Отключение автозаполнение и заполнение нужных полей компоновки через конструктор запроса не помогает?
7 zvivla
 
10.08.17
15:07
(6) сейчас попробую
8 zvivla
 
10.08.17
15:18
(6) Если убрать автозаполнение и во вкладке Компановка данных-поля отметить нужное мне поле, то оно не появляется в Наборе данных ну и соответственно запрос тоже не верно считает
9 zvivla
 
10.08.17
16:02
как вариант вместо вирт таблиц использовать набор данных-объект, но с этим еще не разбиралась
10 Mraque
 
10.08.17
16:34
Тот запрос, в котором используется исключаемое поле, обернуть во вложенный запрос.
11 Вафель
 
10.08.17
16:37
(8) А в запросе {} прописала?
12 GANR
 
10.08.17
16:46
(0) Если что, вот так можно посмотреть запрос, который формируется с заданной схемой и настройками http://ximage.ru/data/imgs/1364297082.jpg -
13 LordCMEPTb
 
10.08.17
17:07
(8) Нужен полный текст запроса, чтобы сказать, что сделано не так.
Пальцем в небо уже ткнул, не помогло.
14 zvivla
 
11.08.17
05:41
(12) я смотрела запрос который формируется Консолью Системы компоновки данных. Поле из группировки вылетало
15 zvivla
 
11.08.17
05:42
(13) Не знаю что он вам скажет, это ведь не типовая бухгалтерия=)))

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    НаборыВступительныхИспытанийПредметы.Ссылка КАК Ссылка,
    НаборыВступительныхИспытанийПредметы.Предмет КАК Предмет,
    НаборыВступительныхИспытанийПредметы.ФормаИспытания КАК ФормаИспытания,
    ЗаявленияПоступающихСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
    НаборыВступительныхИспытанийПредметы.НомерСтроки КАК НомерСтроки,
    ЗаявленияПоступающихСрезПоследних.Регистратор КАК Регистратор
ПОМЕСТИТЬ Наборы
ИЗ
    РегистрСведений.ЗаявленияПоступающих.СрезПоследних КАК ЗаявленияПоступающихСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыВступительныхИспытаний.Предметы КАК НаборыВступительныхИспытанийПредметы
        ПО ЗаявленияПоступающихСрезПоследних.НаборВступительныхИспытаний = НаборыВступительныхИспытанийПредметы.Ссылка
ГДЕ
    НаборыВступительныхИспытанийПредметы.ФормаИспытания = &ФормаИспытанияЕГЭ
    И ЗаявленияПоступающихСрезПоследних.ПриемнаяКампания = &ПриемнаяКампания
;

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

СГРУППИРОВАТЬ ПО
    РезультатыВступительныхИспытанийСрезПоследних.Предмет,
    РезультатыВступительныхИспытанийСрезПоследних.ФормаИспытания,
    Наборы.Ссылка,
    Наборы.ФизическоеЛицо,
    Наборы.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    резНабор.ФизическоеЛицо КАК ФизическоеЛицо,
    резНабор.Ссылка КАК Ссылка,
    СУММА(резНабор.ОценкаПриоритетОценки) КАК ОценкаПриоритетОценки,
    резНабор.Регистратор КАК Регистратор
ИЗ
    резНабор КАК резНабор
ГДЕ
    резНабор.ФизическоеЛицо = &ФизическоеЛицо

СГРУППИРОВАТЬ ПО
    резНабор.ФизическоеЛицо,
    резНабор.Ссылка,
    резНабор.Регистратор


Вот запрос который в чистом виде отрабатывает нормально
16 TormozIT
 
гуру
11.08.17
06:57
Консоль компоновки с ИТС конечно неплоха. Но намного удобнее отлаживать компоновку в консоли компоновки (ИР) http://devtool1c.ucoz.ru/index/konsol_komponovki_dannykh/0-20
Сэкономишь много времени, т.к. там можно сразу и выполнять запросы из макета компоновки в консоли запросов.
17 GANR
 
11.08.17
18:04
(16) хорошая вещь
18 echo77
 
11.08.17
18:18
(5) нет, не режет, т.е. не оптимизирует в плане количества выбранных полей
19 Franchiser
 
гуру
11.08.17
18:36
Как вариант сделать разыменование полей, или как предлагали вложенный запрос
20 LordCMEPTb
 
11.08.17
18:37
(15) А в таком виде с отключенными автополями режет нужное?

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    НаборыВступительныхИспытанийПредметы.Ссылка КАК Ссылка,
    НаборыВступительныхИспытанийПредметы.Предмет КАК Предмет,
    НаборыВступительныхИспытанийПредметы.ФормаИспытания КАК ФормаИспытания,
    ЗаявленияПоступающихСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
    НаборыВступительныхИспытанийПредметы.НомерСтроки КАК НомерСтроки,
    ЗаявленияПоступающихСрезПоследних.Регистратор КАК Регистратор
{ВЫБРАТЬ
    ФизическоеЛицо.* КАК ФизическоеЛицо,
    Ссылка.* КАК Ссылка,
    Регистратор.* КАК Регистратор}
ПОМЕСТИТЬ Наборы
ИЗ
    РегистрСведений.ЗаявленияПоступающих.СрезПоследних({&Период}, ) КАК ЗаявленияПоступающихСрезПоследних
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.НаборыВступительныхИспытаний.Предметы КАК НаборыВступительныхИспытанийПредметы
        ПО ЗаявленияПоступающихСрезПоследних.НаборВступительныхИспытаний = НаборыВступительныхИспытанийПредметы.Ссылка
{ГДЕ
    НаборыВступительныхИспытанийПредметы.ФормаИспытания = &ФормаИспытанияЕГЭ
    И ЗаявленияПоступающихСрезПоследних.ПриемнаяКампания = &ПриемнаяКампания}
;

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

СГРУППИРОВАТЬ ПО
    РезультатыВступительныхИспытанийСрезПоследних.Предмет,
    РезультатыВступительныхИспытанийСрезПоследних.ФормаИспытания
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    РезультатыВступительныхИспытанийСрезПоследних.Предмет КАК Предмет,
    РезультатыВступительныхИспытанийСрезПоследних.ФормаИспытания КАК ФормаИспытания,
    Наборы.Ссылка КАК Ссылка,
    Наборы.ФизическоеЛицо КАК ФизическоеЛицо,
    РезультатыВступительныхИспытанийСрезПоследних.ОценкаПриоритетОценки КАК ОценкаПриоритетОценки,
    Наборы.Регистратор КАК Регистратор
{ВЫБРАТЬ
    ФизическоеЛицо.* КАК ФизическоеЛицо,
    Ссылка.* КАК Ссылка,
    Регистратор.* КАК Регистратор}    
ПОМЕСТИТЬ резНабор
ИЗ
    Наборы КАК Наборы
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_РезультатыВступительныхИспытанийСрезПоследних КАК РезультатыВступительныхИспытанийСрезПоследних
        ПО Наборы.Предмет = РезультатыВступительныхИспытанийСрезПоследних.Предмет
            И Наборы.ФормаИспытания = РезультатыВступительныхИспытанийСрезПоследних.ФормаИспытания
            И Наборы.ФизическоеЛицо = РезультатыВступительныхИспытанийСрезПоследних.ФизическоеЛицо
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    резНабор.ФизическоеЛицо КАК ФизическоеЛицо,
    резНабор.Ссылка КАК Ссылка,
    СУММА(резНабор.ОценкаПриоритетОценки) КАК ОценкаПриоритетОценки,
    резНабор.Регистратор КАК Регистратор
{ВЫБРАТЬ
    ФизическоеЛицо.* КАК ФизическоеЛицо,
    Ссылка.* КАК Ссылка,
    ОценкаПриоритетОценки КАК ОценкаПриоритетОценки,
    Регистратор.* КАК Регистратор}    
ИЗ
    резНабор КАК резНабор
{ГДЕ
    резНабор.ФизическоеЛицо = &ФизическоеЛицо}

СГРУППИРОВАТЬ ПО
    резНабор.ФизическоеЛицо,
    резНабор.Ссылка,
    резНабор.Регистратор
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший