Имя: Пароль:
1C
 
Чудеса с СКД или "Поле не входит в группу".
0 memogolik
 
18.11.16
14:42
Написал отчет. Отладил в консоле отчетов. Все работает.
Переношу в СКД. Ошибка: https://s.mail.ru/FMPS/x6nRPFZXW
Даже не знаю в какую сторону копать.
Заранее спасибо.
Пытался делать отчет в базе копии. Тоже самое.

Ошибка на строки:
ВЫБРАТЬ
    ПЕРВЫЕ 10000
    КОЛИЧЕСТВО(*) КАК Номер,
    ВТ4.Соглашение,
    ВТ4.Путевой,
    ВТ4.КодировкаДоставки
ПОМЕСТИТЬ ВТ55
ИЗ
    ВТ4 КАК ВТ4,
    ВТ4 КАК ВТ41
ГДЕ
    ВТ4.КодировкаДоставки >= ВТ41.КодировкаДоставки

СГРУППИРОВАТЬ ПО
    ВТ4.Соглашение,
    ВТ4.Путевой,
    ВТ4.КодировкаДоставки    
УПОРЯДОЧИТЬ ПО
    ВТ4.КодировкаДоставки    

Весь отчет:

ВЫБРАТЬ
    АВЭКС_ЗаданияТрейдПойнт.Идентификатор,
    АВЭКС_ЗаданияТрейдПойнт.Соглашение,
    АВЭКС_АвтомобилиТрейдПойнт.ТранспортноеСредство,
    АВЭКС_АвтомобилиТрейдПойнт.НомерТелефона,
    АВЭКС_ЗаданияТрейдПойнт.Регистратор,
    АВЭКС_ЗаданияТрейдПойнт.Период,
    АВЭКС_ЗаданияТрейдПойнт.Статус
ПОМЕСТИТЬ ВТ1
ИЗ
    РегистрНакопления.АВЭКС_ЗаданияТрейдПойнт КАК АВЭКС_ЗаданияТрейдПойнт
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АВЭКС_АвтомобилиТрейдПойнт КАК АВЭКС_АвтомобилиТрейдПойнт
        ПО АВЭКС_ЗаданияТрейдПойнт.Идентификатор = АВЭКС_АвтомобилиТрейдПойнт.ИдентификаторТрейдПойнт
ГДЕ
    АВЭКС_АвтомобилиТрейдПойнт.Работает
    И АВЭКС_АвтомобилиТрейдПойнт.ТранспортноеСредство = &ТранспортноеСредство
    И АВЭКС_ЗаданияТрейдПойнт.Период МЕЖДУ &ДатаНачала И КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
    И АВЭКС_ЗаданияТрейдПойнт.Активность
    И АВЭКС_ЗаданияТрейдПойнт.ТипЗадания = ЗНАЧЕНИЕ(Перечисление.Авэкс_ТипыЗаданийТрейдПойнт.d)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
    ВТ1.Идентификатор,
    ВТ1.Соглашение,
    ВТ1.ТранспортноеСредство
ПОМЕСТИТЬ ВТ2
ИЗ
    ВТ1 КАК ВТ1
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    МАКСИМУМ(ВТ1.Регистратор.ДатаВремяРейсаФактС) КАК ВремяСтарта,
    МАКСИМУМ(ВТ1.Регистратор.ДатаВремяРейсаПланПо) КАК ВремяПрибытия,
    ВТ1.Регистратор
ПОМЕСТИТЬ ДатаСтартаПрибытия
ИЗ
    ВТ1 КАК ВТ1
ГДЕ
    ВТ1.Статус = 0

СГРУППИРОВАТЬ ПО
    ВТ1.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    КОЛИЧЕСТВО(*) КАК КОЛИЧЕСТВО
ПОМЕСТИТЬ К
ИЗ
    ВТ2 КАК ВТ2
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ2.Идентификатор,
    ВТ2.Соглашение,
    ВТ2.ТранспортноеСредство,
    К.КОЛИЧЕСТВО
ПОМЕСТИТЬ ВТ22
ИЗ
    ВТ2 КАК ВТ2
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ К КАК К
        ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ22.Идентификатор,
    ВТ22.Соглашение,
    ВТ22.КОЛИЧЕСТВО,
    ВТ22.ТранспортноеСредство,
    ВТ1.Регистратор.Дата,
    ВТ1.Регистратор,
    ВТ1ПУТЕВОЙ.Регистратор КАК Путевой,
    ВЫБОР
        КОГДА ВТ1.Регистратор ССЫЛКА Документ.АВЭКС_ВыполнениеЗаданийТрейдПойнт
            ТОГДА ВТ1.Регистратор.ДокОснование.ДатаВремяРейсаФактС
        ИНАЧЕ NULL
    КОНЕЦ КАК ВремяСтарта,
    ВЫБОР
        КОГДА ВТ1.Регистратор ССЫЛКА Документ.АВЭКС_ВыполнениеЗаданийТрейдПойнт
            ТОГДА ВТ1.Регистратор.ДокОснование.ДатаВремяРейсаПланПо
        ИНАЧЕ NULL
    КОНЕЦ КАК ВремяПрибытия,
    Партнеры.КодировкаДоставки КАК КодировкаДоставки
ПОМЕСТИТЬ ВТ3
ИЗ
    ВТ22 КАК ВТ22
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1
        ПО (ВТ1.Идентификатор = ВТ22.Идентификатор)
            И (ВТ1.Соглашение = ВТ22.Соглашение)
            И (ВТ1.ТранспортноеСредство = ВТ22.ТранспортноеСредство)
            И (ВТ1.Статус = 1)
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
        ПО ВТ22.Соглашение.Партнер = Партнеры.Ссылка
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ1 КАК ВТ1ПУТЕВОЙ
        ПО (ВТ1ПУТЕВОЙ.Идентификатор = ВТ22.Идентификатор)
            И (ВТ1ПУТЕВОЙ.Соглашение = ВТ22.Соглашение)
            И (ВТ1ПУТЕВОЙ.ТранспортноеСредство = ВТ22.ТранспортноеСредство)
            И (ВТ1ПУТЕВОЙ.Статус = 0)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ3.Соглашение,
    ВТ3.Путевой,
    ВТ3.КодировкаДоставки
ПОМЕСТИТЬ ВТ4
ИЗ
    ВТ3 КАК ВТ3
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПЕРВЫЕ 10000
    КОЛИЧЕСТВО(*) КАК Номер,
    ВТ4.Соглашение,
    ВТ4.Путевой,
    ВТ4.КодировкаДоставки
ПОМЕСТИТЬ ВТ55
ИЗ
    ВТ4 КАК ВТ4,
    ВТ4 КАК ВТ41
ГДЕ
    ВТ4.КодировкаДоставки >= ВТ41.КодировкаДоставки

СГРУППИРОВАТЬ ПО
    ВТ4.Соглашение,
    ВТ4.Путевой,
    ВТ4.КодировкаДоставки    
УПОРЯДОЧИТЬ ПО
    ВТ4.КодировкаДоставки    
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ55.Номер,
    ВТ55.Соглашение,
    ВТ55.Путевой,
    ДатаСтартаПрибытия.ВремяСтарта,
    ДатаСтартаПрибытия.ВремяПрибытия
ПОМЕСТИТЬ ВТ5
ИЗ
    ВТ55 КАК ВТ55
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатаСтартаПрибытия КАК ДатаСтартаПрибытия
        ПО ВТ55.Путевой = ДатаСтартаПрибытия.Регистратор
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ3.Идентификатор,
    ВТ3.Соглашение,
    ВТ3.КОЛИЧЕСТВО,
    ВТ3.ТранспортноеСредство,
    ВТ3.Регистратор,
    ВТ5.Путевой,
    ВТ3.КодировкаДоставки,
    ВТ5.Номер,
    ВТ5.ВремяСтарта,
    ВТ5.ВремяПрибытия,
    ВЫБОР
        КОГДА ВТ3.КОЛИЧЕСТВО <> 0
            ТОГДА ДОБАВИТЬКДАТЕ(ВТ5.ВремяСтарта, СЕКУНДА, ВЫРАЗИТЬ(РАЗНОСТЬДАТ(ВТ5.ВремяСтарта, ВТ5.ВремяПрибытия, СЕКУНДА) / ВТ3.КОЛИЧЕСТВО * ВТ5.Номер КАК ЧИСЛО(15, 0)))
        ИНАЧЕ 0
    КОНЕЦ КАК Шаг
ПОМЕСТИТЬ ВТ6
ИЗ
    ВТ5 КАК ВТ5
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ3 КАК ВТ3
        ПО ВТ5.Соглашение = ВТ3.Соглашение
            И ВТ5.Путевой = ВТ3.Путевой
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
//    ВТ6.Идентификатор,
    ВТ6.Соглашение,
//    ВТ6.КОЛИЧЕСТВО,
    ВТ6.ТранспортноеСредство,
    ВТ6.Регистратор,
    ВТ6.Путевой,
    ВТ6.КодировкаДоставки,
    ВТ6.Номер,
    ВТ6.ВремяСтарта,
    ВТ6.ВремяПрибытия,
    ВТ6.Шаг,
    ВЫБОР
        КОГДА ВТ6.Шаг<&ТекущаяДата ТОГДА ИСТИНА
            И
            ВЫБОР
                КОГДА ЕСТЬNULL(ВТ6.Регистратор,1)=1 ТОГДА ИСТИНА
                ИНАЧЕ ЛОЖЬ
            КОНЕЦ
        
        ИНАЧЕ ЛОЖЬ
    КОНЕЦ КАК ПРОСРОЧЕНО,
    &ТекущаяДата КАК ТекущаяДата
ИЗ
    ВТ6 КАК ВТ6
УПОРЯДОЧИТЬ ПО
    ВТ6.Номер
1 Cyberhawk
 
18.11.16
14:49
ИЗ
    ВТ4 КАК ВТ4,
    ВТ4 КАК ВТ41
2 memogolik
 
18.11.16
14:50
и в чем косяк?
консоль запросов же обычная не ругается и выдает результат
3 kumena
 
18.11.16
14:55
> и в чем косяк?

сначала расскажи нафига так вообще делеаешь?
4 memogolik
 
18.11.16
15:02
(3) а какая разница?
Отчет считает динамику выполнения плана развоза заказов водителем.
5 memogolik
 
18.11.16
15:10
ап
6 memogolik
 
18.11.16
15:14
Часть кода на котором выскакивает ошибка делает нумерацию строк в таблице.
1. Магазин1
2. Магазин2.  етц.
7 memogolik
 
18.11.16
15:25
ап2
8 memogolik
 
18.11.16
15:44
хелп
9 kumena
 
18.11.16
15:45
> а какая разница?
да никакой - один и..т, а другой дразница!


причину тебе русским языком вроде написана!
а портянку твою лень разбирать, убирай по частям и сам увидишь место.
10 memogolik
 
18.11.16
15:48
(9) дело не в портянке. В обычной консоле все же работает. Тут какая то фишка в Скд. И еще: нечего по существу сказать-  не засоряй эфир.
11 memogolik
 
18.11.16
16:26
Знатоки Скд ау)
12 h-sp
 
18.11.16
16:38
(11) поля какие выводишь в отчет? Если какие-то не выводишь, они удаляются из конечного запроса. В курсе?
13 тарам пам пам
 
18.11.16
16:43
Выдерни реально исполняемый запрос и его уже проверяй. Если лень руками выдергивать - то есть ИнструментыРазработчика, там консоль компоновок умеет это делать.
14 memogolik
 
18.11.16
16:50
(12) Спасибо!!!!!!!!!!!!!!!!
(13) Можно поподробнее? Желательно ссылочку)
15 memogolik
 
18.11.16
16:51
(13) разве консоль скд может временные таблицы выводить?