Имя: Пароль:
1C
1С v8
Параметр в запросе ( логически да или нет)
0 Алекс25501
 
13.10.17
13:12
Ребята, помогите разобраться с ошибкой !
есть поле в запросе  ПоступлениеТоваровУслугТовары.Ссылка.Дата
как сделать логический параметр да или нет ?
если  &ТолькоАктуальные = ИСТИНА то выводятся данные где Дата пустая

я делаю ...
ВЫБОР
КОГДА &ТолькоАктуальные ТОГДА ПоступлениеТоваровУслугТовары.Ссылка.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ИНАЧЕ   ПоступлениеТоваровУслугТовары.Ссылка.Дата
КОНЕЦ
но выкидывает с ошибкой!
1 Волшебник
 
модератор
13.10.17
13:13
Какой ошибкой?
2 lubitelxml
 
13.10.17
13:14
ВЫБОР
КОГДА &ТолькоАктуальные ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ИНАЧЕ   ПоступлениеТоваровУслугТовары.Ссылка.Дата
КОНЕЦ

Может так?
3 Fuas4
 
13.10.17
13:15
(2) лучше еще и ссылку убрать
ВЫБОР
КОГДА &ТолькоАктуальные ТОГДА ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
ИНАЧЕ   ПоступлениеТоваровУслугТовары.Дата
КОНЕЦ
4 Алекс25501
 
13.10.17
13:15
Ошибка - Операция не разрешена в предложении ВЫБОР
5 lubitelxml
 
13.10.17
13:15
(3) согласен
6 Алекс25501
 
13.10.17
13:16
Ошибка - Операция не разрешена в предложении <<?>> ВЫБОР
7 Алекс25501
 
13.10.17
13:17
Мне нужен логический параметр
8 Алекс25501
 
13.10.17
13:17
Что бы его разместить в обработке
9 lubitelxml
 
13.10.17
13:17
покажи весь запрос
10 Алекс25501
 
13.10.17
13:18
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ЗаказПокупателяТовары.Ссылка КАК СсылкаЗаказ,
    НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ) КАК ДатаЗаказа,
    ЗаказПокупателяТовары.Ссылка.Номер,
    ЗаказПокупателяТовары.Ссылка.СуммаДокумента,
    ЗаказПокупателяТовары.Ссылка.ВалютаДокумента,
    ЗаказПокупателяТовары.Количество,
    ЗаказПокупателяТовары.Ссылка.Контрагент,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки * 7), ДЕНЬ) КАК ПланируемаяДатаПоставки,
    СчетНаОплатуПоставщикаТовары.СрокПоставки КАК СрокПоставкиНеделя,
    СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт КАК ВремяНаТранспортНеделя,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.СрокПоставки * 7 - СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ) КАК ДатаНачВыпЗаказаНеобх,
    РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.СрокПоставки * 7 - СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ), НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ), ДЕНЬ) КАК КонтрольДатыНачВыпЗаказа,
    СчетНаОплатуПоставщикаТовары.Ссылка.ДатаНачалаВыполненияЗаказа,
    СчетНаОплатуПоставщикаТовары.Ссылка.Статус КАК Статус,
    ВЫБОР
        КОГДА СчетНаОплатуПоставщикаТовары.Ссылка.Статус <> ЗНАЧЕНИЕ(Перечисление.СтатусИнвойса.Готов)
            ТОГДА РАЗНОСТЬДАТ(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.СрокПоставки * 7 - СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ), ДЕНЬ, СчетНаОплатуПоставщикаТовары.СрокПоставки * 7), &ТекущаяДата, ДЕНЬ)
        ИНАЧЕ РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.СрокПоставки * 7 - СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ), НАЧАЛОПЕРИОДА(&ТекущаяДата, ДЕНЬ), ДЕНЬ) - 0
    КОНЕЦ КАК КонтрольГотовностиДней,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ) КАК ДатаОтгрузНеобход,
    РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(ЗаказПокупателяТовары.Ссылка.Дата, ДЕНЬ), ДЕНЬ, ЗаказПокупателяТовары.СрокПоставки), ДЕНЬ), ДЕНЬ, -(СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7)), ДЕНЬ), &ТекущаяДата, ДЕНЬ) КАК КонтрольОтгрузкиДней,
    НАЧАЛОПЕРИОДА(Отгрузка.ДатаВыхода, ДЕНЬ) КАК ДатаОтгрузки,
    СчетНаОплатуПоставщикаТовары.Количество КАК КоличествоИзОтгрузкиОтПоставщика,
    НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(Отгрузка.ДатаВыхода, ДЕНЬ), ДЕНЬ, СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7), ДЕНЬ) КАК ПланДатаПриходаНаСклад,
    РАЗНОСТЬДАТ(НАЧАЛОПЕРИОДА(ДОБАВИТЬКДАТЕ(НАЧАЛОПЕРИОДА(Отгрузка.ДатаВыхода, ДЕНЬ), ДЕНЬ, СчетНаОплатуПоставщикаТовары.ВремяНаТранспорт * 7), ДЕНЬ), &ТекущаяДата, ДЕНЬ) КАК КонтрольДатыПриходаДней,
    НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) КАК ДатаПоступленияНаСклад,
    ПоступлениеТоваровУслугТовары.Количество КАК КоличествоИЗПоступления
ИЗ
    Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетНаОплатуПоставщика.Товары КАК СчетНаОплатуПоставщикаТовары
        ПО ЗаказПокупателяТовары.Ссылка = СчетНаОплатуПоставщикаТовары.ЗаказПокупателя
            И ЗаказПокупателяТовары.Номенклатура = СчетНаОплатуПоставщикаТовары.Номенклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.НоменклатураДляОтгрузкиОтПоставщика.Обороты(, , Регистратор, ) КАК НоменклатураДляОтгрузкиОтПоставщикаОбороты
            ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтгрузкаОтПоставщика КАК Отгрузка
            ПО НоменклатураДляОтгрузкиОтПоставщикаОбороты.Регистратор = Отгрузка.Ссылка
        ПО (НоменклатураДляОтгрузкиОтПоставщикаОбороты.Номенклатура = СчетНаОплатуПоставщикаТовары.Номенклатура)
            И (НоменклатураДляОтгрузкиОтПоставщикаОбороты.СчетНаОплатуПоставщика = СчетНаОплатуПоставщикаТовары.Ссылка)
            И (НоменклатураДляОтгрузкиОтПоставщикаОбороты.Регистратор ССЫЛКА Документ.ОтгрузкаОтПоставщика)
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
        ПО ЗаказПокупателяТовары.Ссылка = ПоступлениеТоваровУслугТовары.Заказ
ГДЕ
    (ЗаказПокупателяТовары.Ссылка = &НужныйЗаказ
            ИЛИ &НужныйЗаказ = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                И (ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата))
11 spiller26
 
13.10.17
13:18
(6) Дай полный код запроса
12 term1t52
 
13.10.17
13:19
НЕ &ТолькоАктуальные ИЛИ ПоступлениеТоваровУслугТовары.Ссылка.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
13 Алекс25501
 
13.10.17
13:20
Мне нужен логический параметр на поле НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) КАК ДатаПоступленияНаСклад,
14 Алекс25501
 
13.10.17
13:21
если да то выводится строки с пустой датой ДатаПоступленияНаСклад
15 Алекс25501
 
13.10.17
13:23
Может использовать <> ЗНАЧЕНИЕ ( )
16 youalex
 
13.10.17
13:23
(6) логично
17 Алекс25501
 
13.10.17
13:26
Дает ошибку

ВЫБОР
КОГДА &ТолькоАктуальные ТОГДА НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = ЗНАЧЕНИЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
ИНАЧЕ   НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ)
КОНЕЦ
18 Алекс25501
 
13.10.17
13:26
я что то не то делаю)
19 Алекс25501
 
13.10.17
13:26
)))
20 azernot
 
13.10.17
13:27
(17) В каком месте запроса используется эта конструкция? в (10) её нет.
Дай текст запроса с этой конструкцией.
21 Алекс25501
 
13.10.17
13:29
консоль запросов не дает добавить в условиях
22 Алекс25501
 
13.10.17
13:29
Это условие которое накладывается на запрос
23 Алекс25501
 
13.10.17
13:29
Т.е. нужно логическое условие да или нет
24 azernot
 
13.10.17
13:30
(22) Вот скажи
НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ)

Это да или нет?
25 spiller26
 
13.10.17
13:30
ВЫБРАТЬ
    ПоступлениеТоваровУслуг.Ссылка КАК Ссылка,
    ПоступлениеТоваровУслуг.Дата КАК Дата
ИЗ
    Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
    ВЫБОР
            КОГДА &ТолькоАктуальные = ИСТИНА
                ТОГДА ПоступлениеТоваровУслуг.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
            ИНАЧЕ ИСТИНА
        КОНЕЦ
26 Алекс25501
 
13.10.17
13:30
если там пустая дата - то ДА !
27 Алекс25501
 
13.10.17
13:31
У Меня в запросе все ок! мне нужно условие на запрос установить !
28 azernot
 
13.10.17
13:32
(26) А если там не пустая дата? То нет?

ВЫБОР
КОГДА &ТолькоАктуальные ТОГДА НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = ЗНАЧЕНИЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
ИНАЧЕ   ЛОЖЬ
КОНЕЦ
29 spiller26
 
13.10.17
13:32
(28) Ну как то так
30 azernot
 
13.10.17
13:32
Точнее так

ВЫБОР
КОГДА &ТолькоАктуальные И НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = ЗНАЧЕНИЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ТОГДА ИСТИНА
ИНАЧЕ   ЛОЖЬ
КОНЕЦ
31 spiller26
 
13.10.17
13:36
(30) Я бы концовку сделал бы так

ГДЕ
    (ЗаказПокупателяТовары.Ссылка = &НужныйЗаказ
            ИЛИ &НужныйЗаказ = ЗНАЧЕНИЕ(Документ.ЗаказПокупателя.ПустаяСсылка)
                И (ЗаказПокупателяТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата))
//моё
И ПоступлениеТоваровУслугТовары.Ссылка В (ВЫБРАТЬ ПоступлениеТоваровУслуг.Ссылка
ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
ВЫБОР
КОГДА &ТолькоАктуальные                 ТОГДА ПоступлениеТоваровУслуг.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИНАЧЕ ЛОЖЬ КОНЕЦ)
32 azernot
 
13.10.17
13:36
А ещё точнее так:

ВЫБОР
КОГДА &ТолькоАктуальные И НЕ НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслугТовары.Ссылка.Дата, ДЕНЬ) = ЗНАЧЕНИЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)) ТОГДА Ложь
ИНАЧЕ   Истина
КОНЕЦ

если имеется в виду, что у актуальных документов пустая дата
33 spiller26
 
13.10.17
13:37
(32) Ну я так и предпологал
34 azernot
 
13.10.17
13:38
(31) В этом запросе, если &ТолькоАктуальные = Ложь, результат будет пустой.
35 Алекс25501
 
13.10.17
13:39
ПИШЕТ ожидается имя датавремя
36 spiller26
 
13.10.17
13:40
(34) вместо ЛОЖЬ ставить

НЕ НАЧАЛОПЕРИОДА(ПоступлениеТоваровУслуг.Дата, ДЕНЬ) = ЗНАЧЕНИЕ(ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))

и всё будет ок
37 spiller26
 
13.10.17
13:41
(35) Убери ЗНАЧЕНИЕ, просто ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
38 spiller26
 
13.10.17
13:43
(36) "Поправка на ветер"

//моё
И ПоступлениеТоваровУслугТовары.Ссылка В (ВЫБРАТЬ ПоступлениеТоваровУслуг.Ссылка
ИЗ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
ВЫБОР
КОГДА &ТолькоАктуальные
ТОГДА
ПоступлениеТоваровУслуг.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИНАЧЕ
НЕ ПоступлениеТоваровУслуг.Дата = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) КОНЕЦ)
39 azernot
 
13.10.17
13:50
В общем, если уж совсем кошерно, то так:

ВЫБОР
КОГДА &ТолькоАктуальные = Истина И НЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата = ДАТАВРЕМЯ(1, 1, 1) ТОГДА Ложь
ИНАЧЕ Истина
КОНЕЦ
40 Алекс25501
 
13.10.17
14:22
azernot

В общем, если уж совсем кошерно, то так:

ВЫБОР
КОГДА &ТолькоАктуальные = Истина И НЕ ПоступлениеТоваровУслугТовары.Ссылка.Дата = ДАТАВРЕМЯ(1, 1, 1) ТОГДА Ложь
ИНАЧЕ Истина
КОНЕЦ

СПАСИБО!