Имя: Пароль:
1C
1С v8
РазностьДат в запросе набора данных СКД
, ,
0 cons74
 
17.06.16
15:05
Добрый день.
Напидал запрос для отчета, есть строка

Выбрать...
РазностьДат(поле1,поле2, День)>=360 КАК Неликвид


D простом запросе - всё ок.

Копирую этот запрос в СКД - выходит "Операция не разрешена в предложении".
Что за х?
1 aleks_default
 
17.06.16
15:08
это все потому что ты запрос "напидал". Сделай нормально.
2 Зая Бусечка
 
17.06.16
15:08
Есть хорошее правило для получения ответа на вопрос....
Никогда ни в жисть не показывай запрос целиком...
3 cons74
 
17.06.16
15:09
(1) это ж как "нормально"? Через конструктор в модуле обработки делал - работает. А тот же конструктор в СКД - ругается.
4 cons74
 
17.06.16
15:10
(2) да ради бога

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

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Организация,
    ХозрасчетныйОстатки.Счет

ИМЕЮЩИЕ
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) < 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ХозрасчетныйОстатки.Организация,
    ХозрасчетныйОстатки.Субконто1 КАК Контрагент,
    СУММА(-ХозрасчетныйОстатки.СуммаОстаток) КАК СуммаОстаток,
    ХозрасчетныйОстатки.Счет
ПОМЕСТИТЬ ОстаткиНачалоМесяца
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаНачалоМесяца, Счет В ИЕРАРХИИ (&ФильтрСчетов), , ) КАК ХозрасчетныйОстатки

СГРУППИРОВАТЬ ПО
    ХозрасчетныйОстатки.Субконто1,
    ХозрасчетныйОстатки.Организация,
    ХозрасчетныйОстатки.Счет

ИМЕЮЩИЕ
    СУММА(ХозрасчетныйОстатки.СуммаОстаток) < 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ОстаткиНачалоГода.Организация,
    ОстаткиНачалоГода.Контрагент,
    ОстаткиНачалоГода.СуммаОстаток КАК ОстатокНачалоГода,
    0 КАК ОстатокНачалоМесяца,
    ОстаткиНачалоГода.Счет
ПОМЕСТИТЬ ВсеОстатки
ИЗ
    ОстаткиНачалоГода КАК ОстаткиНачалоГода

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    ОстаткиНачалоМесяца.Организация,
    ОстаткиНачалоМесяца.Контрагент,
    0,
    ОстаткиНачалоМесяца.СуммаОстаток,
    ОстаткиНачалоМесяца.Счет
ИЗ
    ОстаткиНачалоМесяца КАК ОстаткиНачалоМесяца
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВсеОстатки.Организация,
    ВсеОстатки.Контрагент,
    СУММА(ВсеОстатки.ОстатокНачалоГода) КАК ОстатокНачалоГода,
    СУММА(ВсеОстатки.ОстатокНачалоМесяца) КАК ОстатокНачалоМесяца,
    ВсеОстатки.Счет
ПОМЕСТИТЬ ВсеОстаткиСгруппированы
ИЗ
    ВсеОстатки КАК ВсеОстатки

СГРУППИРОВАТЬ ПО
    ВсеОстатки.Организация,
    ВсеОстатки.Контрагент,
    ВсеОстатки.Счет
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ДатыОбразованияДолга.Период КАК Период,
    ДатыОбразованияДолга.Контрагент,
    ДатыОбразованияДолга.Оборот,
    ДатыОбразованияДолга.Организация,
    СУММА(ДатыОбразованияДолга1.Оборот) КАК НарастающийОстаток,
    ДатыОбразованияДолга.Счет
ПОМЕСТИТЬ НарастающиеОстатки
ИЗ
    ДатыОбразованияДолга КАК ДатыОбразованияДолга
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ДатыОбразованияДолга КАК ДатыОбразованияДолга1
        ПО ДатыОбразованияДолга.Период <= ДатыОбразованияДолга1.Период
            И ДатыОбразованияДолга.Контрагент = ДатыОбразованияДолга1.Контрагент
            И ДатыОбразованияДолга.Организация = ДатыОбразованияДолга1.Организация
            И ДатыОбразованияДолга.Счет = ДатыОбразованияДолга1.Счет

СГРУППИРОВАТЬ ПО
    ДатыОбразованияДолга.Контрагент,
    ДатыОбразованияДолга.Период,
    ДатыОбразованияДолга.Организация,
    ДатыОбразованияДолга.Оборот,
    ДатыОбразованияДолга.Счет
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВсеОстаткиСгруппированы.Контрагент,
    ВсеОстаткиСгруппированы.Организация,
    МАКСИМУМ(НарастающиеОстатки.Период) КАК Период,
    ВсеОстаткиСгруппированы.Счет
ПОМЕСТИТЬ ДатаПервогоДолга
ИЗ
    НарастающиеОстатки КАК НарастающиеОстатки
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВсеОстаткиСгруппированы КАК ВсеОстаткиСгруппированы
        ПО (ВсеОстаткиСгруппированы.Контрагент = НарастающиеОстатки.Контрагент)
            И (ВсеОстаткиСгруппированы.Организация = НарастающиеОстатки.Организация)
            И НарастающиеОстатки.Счет = ВсеОстаткиСгруппированы.Счет
            И (ВЫБОР
                КОГДА ВсеОстаткиСгруппированы.ОстатокНачалоМесяца <> 0
                    ТОГДА ВсеОстаткиСгруппированы.ОстатокНачалоМесяца
                КОГДА ВсеОстаткиСгруппированы.ОстатокНачалоГода <> 0
                    ТОГДА ВсеОстаткиСгруппированы.ОстатокНачалоГода
            КОНЕЦ <= НарастающиеОстатки.НарастающийОстаток)

СГРУППИРОВАТЬ ПО
    ВсеОстаткиСгруппированы.Контрагент,
    ВсеОстаткиСгруппированы.Организация,
    ВсеОстаткиСгруппированы.Счет
;

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВсеОстаткиСгруппированы.Организация.Представление КАК Организация,
    ВЫБОР
        КОГДА ВсеОстаткиСгруппированы.Контрагент ССЫЛКА Справочник.Контрагенты
            ТОГДА ВсеОстаткиСгруппированы.Контрагент.Представление
        КОГДА ВсеОстаткиСгруппированы.Контрагент ССЫЛКА Справочник.ФизическиеЛица
            ТОГДА ВсеОстаткиСгруппированы.Контрагент.Представление
        ИНАЧЕ ВсеОстаткиСгруппированы.Счет.Наименование
    КОНЕЦ КАК Контрагент,
    ВсеОстаткиСгруппированы.ОстатокНачалоГода КАК ОстатокНачалоГода,
    ВсеОстаткиСгруппированы.ОстатокНачалоМесяца КАК ОстатокНачалоМесяца,
    СпрКонтрагенты.ИНН,
    ВсеОстаткиСгруппированы.Счет.Представление КАК Счет,
    ДатаПервогоДолга.Период КАК ДатаВозникновенияЗадолженности,
    РАЗНОСТЬДАТ(ДатаПервогоДолга.Период, &ДатаНачалоМесяца, ДЕНЬ) >= 360 КАК Неликвид,
    ВЫБОР
        КОГДА ВсеОстаткиСгруппированы.Контрагент В (&ВнутренниеКонтрагенты)
            ТОГДА "Внутренний"
        ИНАЧЕ "Внешний"
    КОНЕЦ КАК ВнешнийВнутренний,
    ВЫБОР
        КОГДА ВсеОстаткиСгруппированы.Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоКраткосрочнымКредитамИЗаймам))
                ИЛИ ВсеОстаткиСгруппированы.Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоДолгосрочнымКредитамИЗаймам))
            ТОГДА "Группа счетов 66,67"
        КОГДА ВсеОстаткиСгруппированы.Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоНалогам))
                ИЛИ ВсеОстаткиСгруппированы.Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.РасчетыПоСоциальномуСтрахованию))
            ТОГДА "Группа счетов 68,69"
        ИНАЧЕ "Группа счетов 58,60,62,76"
    КОНЕЦ КАК ГруппировкаСчетов
ИЗ
    ВсеОстаткиСгруппированы КАК ВсеОстаткиСгруппированы
        ЛЕВОЕ СОЕДИНЕНИЕ СпрКонтрагенты КАК СпрКонтрагенты
        ПО ВсеОстаткиСгруппированы.Контрагент = СпрКонтрагенты.Ссылка
        ЛЕВОЕ СОЕДИНЕНИЕ ДатаПервогоДолга КАК ДатаПервогоДолга
        ПО ВсеОстаткиСгруппированы.Контрагент = ДатаПервогоДолга.Контрагент
            И ВсеОстаткиСгруппированы.Счет = ДатаПервогоДолга.Счет
5 aleks_default
 
17.06.16
15:19
РАЗНОСТЬДАТ(ДатаПервогоДолга.Период, &ДатаНачалоМесяца, ДЕНЬ) >= 360 КАК Неликвид,
врешь ты все, это и в "простом запросе" не разрешено.
6 aleks_default
 
17.06.16
15:21
Это условие а не поле и его можно использовать только внутри оператора ВЫБОР КОГДА
7 cons74
 
17.06.16
15:22
(5) ну кто-то может и врет - а у меня работает
8 Tateossian
 
17.06.16
15:25
(7) Поддерживаю, только я вот так сделал

ВЫБРАТЬ
    РазностьДат(&поле1,&поле2, День)>=360 Поле
9 cons74
 
17.06.16
15:25
10 cons74
 
17.06.16
15:28
Сам нашел: запрос писал в 8.3, а СКД открывал в 8.2
Если открыть СКД в 8.3 - то не ругается.
11 pessok
 
17.06.16
15:29
это от платформы зависит же
12 pessok
 
17.06.16
15:29
в какой-то 8.3.7, кажись, ввели возможность делать такие выражения без ВЫБОР
13 pessok
 
17.06.16
15:30
а, в (10) ты сам уже нашел :)
14 cons74
 
17.06.16
15:33
(12) точно, читал же как-то раз, да забыл...
Закон Брукера: Даже маленькая практика стоит большой теории.