Имя: Пароль:
1C
1С v8
1с СКД не выбран период
0 skela1c
 
28.07.17
11:44
СКЛ условие если указаны начальная и конечная дата, то выбираем записи за период, если не указаны, то надо вывести все данные. Как написать условие, если начальная и конечная дата не указана, подскажите пожалуйста
1 Numerus Mikhail
 
28.07.17
11:45
ВЫБОР КОГДА &КонечнаяДата= ДАТАВРЕМЯ(0,0,0) Тогда Истина
Иначе ТутТвоеУсловие Конец
2 skela1c
 
28.07.17
11:50
РегСведений.Период МЕЖДУ &НачПериода  И &КонПериода, а теперь как должно быть?
3 Numerus Mikhail
 
28.07.17
11:53
(2)  ВЫБОР КОГДА &КонечнаяДата = ДАТАВРЕМЯ(0,0,0) И &НачальнаяДата = ДАТАВРЕМЯ(0,0,0) Тогда Истина
Иначе РегСведений.Период МЕЖДУ &НачПериода  И &КонПериода, Конец
4 Numerus Mikhail
 
28.07.17
11:54
а, только 1,1,1 надо вместо нулей
5 bodri
 
28.07.17
11:55
(0) В СКД же по умолчанию такое работает или нет?
6 Numerus Mikhail
 
28.07.17
11:55
(5) Если условие жестко задано в запросе, то скд не поможет
7 skela1c
 
28.07.17
11:56
(3) спасибо
8 MrAvPika
 
28.07.17
11:57
Если скд, то можно период отбором  сделать а не параметром
9 MrAvPika
 
28.07.17
11:57
и тогда если стоит галочка в использовании, то отбор работает
10 bodri
 
28.07.17
12:06
(8) и в параметре сойдет, там тоже галочка использования есть
11 skela1c
 
28.07.17
12:14
чет не работает

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

что-то я сделал не так
12 Numerus Mikhail
 
28.07.17
12:16
(11) что не работает? какую ошибку пишет?
13 skela1c
 
28.07.17
12:18
нет, выбирает все данные
14 Numerus Mikhail
 
28.07.17
12:19
(11) а, ну это очевидно, у тебя параметры разные
мог бы и сам заметить)
КонечнаяДата  НачальнаяДата
НачПериода    КонПериода
15 skela1c
 
28.07.17
12:20
(14) спасибо большое еще раз!!!
16 skela1c
 
28.07.17
12:25
еще вопрос, если я снимаю галочки, появляется ошибка

http://joxi.ru/J2bxKVQT4Gw39r
17 Любопытная
 
28.07.17
12:28
(16) Лучше отбором делать, а не параметрами. А так вполне логичная ошибка - параметры не заданы.
18 Numerus Mikhail
 
28.07.17
12:31
(16) Не снимай галочки :)
Поставь использовать всегда, тогда этих галочек вообще не будет
19 skela1c
 
28.07.17
12:52
что то опять не так

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

если дату не выбираю ничего не выводится
20 D3O
 
28.07.17
12:56
в СКД есть расширение языка запросов. в конструкторе самого запроса в СКД для этих целей есть закладка Компоновка данных
именно там можно указать все доп условия действующий не постоянно
21 skela1c
 
28.07.17
12:58
(20) и как мне это пременить?
22 1sanekmaloi1
 
28.07.17
13:08
Например описав так и добавить это в отборы пользователя
{ГДЕ
    (РегСвед.Период > &ДатаНач) КАК ДатаНАч,
    (РегСвед.Период < &ДатаКон) КАК ДатаКон}
23 skela1c
 
28.07.17
16:34
вопрос еще открыт, как можно решить этот вопрос?
24 dezss
 
28.07.17
16:56
(23) тебе уже ответили. В СКД в конструкторе запросов, зайди в компоновку и там закладка Условие. Туда и переноси свое условие с датами. Только делай не МЕЖДУ, а 2 условия, одно на больше-равно, другое на меньше-равно.