Имя: Пароль:
1C
1С v8
СКД включить в отбор пустую дату
,
0 komstr
 
20.09.19
10:53
Добрый день собирается отчет на скд, при отсутствии отбора собираются все поля как надо, но если поставить отбор по дате, то исчезают поля должностей, но оно и понятно, работа отбора правильно работает, так как в поле дата у должности пустое значение,может подскажите как сделать, чтобы поля должности тоже отбирались. А нужна возможность отбора по датам для пользователя.
https://prnt.sc/p8k9w4
Отчёт собран объединением по этому так выходит.
Или попробовать прописать туда дату которую пользователь указывает как конец отбираемого периода?
Я ещё не долго программирую, поэтому заранее извиняюсь за дурацкие вопросы
1 komstr
 
20.09.19
11:09
Что-то сегодня нет помощников.(
2 MuxaH
 
20.09.19
11:17
Попробуй не объединением, а соединением. Ну или тот вариант, который сам написал.
3 D_E_S_131
 
20.09.19
11:20
Может лучше сделать так чтобы контрагент и его контакты были вместе в выборке?
4 komstr
 
20.09.19
11:31
(2) Идея есть, не пойму где код написать, чтобы дата отбора если пустая, то заменялась на дату выбранную пользователем
5 komstr
 
20.09.19
11:32
(3) У контрагента есть конт лица, у которых должности и контакты, хотя хм...
6 komstr
 
20.09.19
13:16
Не выходит как-то, в запросе не возможно задать отбор по дате, есть вероятность только задать в полях скд, типа если дата пустое значение, тогда дата = дате конца периода отбора.
Только как это написать не соображу, подскажите пожалуйста кто может.
7 catena
 
20.09.19
13:23
Зависит от того, как вы определяете это поле в запросе.
8 toypaul
 
гуру
20.09.19
13:25
есть такой правильно - если задаешь вопрос по СКД - показывай все свои настройки. тут гадалок нет.

я вот 2 раза прочитал. не понял. соот-но вопрос просто пропускаю и все. пусть другие гадают
9 toypaul
 
гуру
20.09.19
13:25
"такой правильно" - такое правило
10 komstr
 
20.09.19
13:28
(8) с удовольствием покажу(хочу же получить ответ), только что показать?
Запрос? Он большой, настройки скд? как это сделать скриншотом же не получтся,
могу объяснить,
11 komstr
 
20.09.19
13:31
как показано (0) из двух разных таблиц объединяются данные, в одной есть дата, в другой её нет, а дата нужна, так как не могу отобрать по дате, и вот пришла идея, вставить временный костыль, заполнять дату уже в полях скд, датой которую выбрал пользователь концом периода, только не соображу где это правило написать.
12 Фрэнки
 
20.09.19
13:33
сравнивай свою ДАТА из отбора по условию < ДАТАВРЕМЯ(1970,1,1) или с какой-то другой разумной датой, меньше которой руками пользователь точно ставить не должен
13 komstr
 
20.09.19
13:39
(12) А с чем сравнивать, не понял простите
14 Фрэнки
 
20.09.19
13:41
(13) // (2) Идея есть, не пойму где код написать, чтобы дата отбора если пустая, то заменялась на дату выбранную пользователем
15 catena
 
20.09.19
13:44
(11)Что написано в объединении в том пакете, в котором даты нет?
16 Фрэнки
 
20.09.19
13:46
Когда отбор уже установлен - как это выглядит со стороны СКД? Наверное, заполненные Параметры?
Поищи на видео или в уроках каких-то как работать с установками в Параметры периодов дат - там есть поле Выражение и можно в нем условие указать, которое заменит Пустые даты отбора на корректные, с которыми отчет правильно соберется.
17 toypaul
 
гуру
20.09.19
13:47
если у тебя отбор по дате только в одной части, то используй язык расширений запросов для СКД
18 komstr
 
20.09.19
13:49
(15) ////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    CRM_Обслуживание.Ссылка,
    CRM_Обслуживание.Номер,
    CRM_Обслуживание.Дата,
    CRM_Обслуживание.Контрагент КАК Контрагент,
    CRM_Обслуживание.Контрагент.Регион КАК Контрагент_Регион,
    CRM_Обслуживание.Ответственный,
    0 КАК КонтактыКонтрагента,
    0 КАК Должность,
    КонтактнаяИнформация.Тип,
    КонтактнаяИнформация.Вид,
    КонтактнаяИнформация.Представление,
    CRM_Обслуживание.ТипОбслуживания,
    0 КАК ВладелецРегион
ИЗ
    Документ.CRM_Обслуживание КАК CRM_Обслуживание
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
        ПО CRM_Обслуживание.Контрагент = КонтактнаяИнформация.Объект

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

ВЫБРАТЬ
    ВТКонтактыИДолжно.Поле1,
    ВТКонтактыИДолжно.Поле2,
    ВЫБОР
        КОГДА ВТКонтактыИДолжно.Поле3 = 0
            ТОГДА ДАТАВРЕМЯ(2019, 9, 1)
    КОНЕЦ,
    ВТКонтактыИДолжно.НаимКонтрагента,
    ВТКонтактыИДолжно.ВладелецРегион,
    0,
    ВТКонтактыИДолжно.Ответственный,
    ВТКонтактыИДолжно.Должность,
    ВТКонтактыИДолжно.Тип,
    ВТКонтактыИДолжно.Вид,
    ВТКонтактыИДолжно.Представление,
    ВТКонтактыИДолжно.Поле5,
    ВТКонтактыИДолжно.Поле4
ИЗ
    ВТКонтактыИДолжно КАК ВТКонтактыИДолжно
19 komstr
 
20.09.19
13:50
(16) Параметров нет, только потом отбором выбираю строки отчета
20 Марусенька
 
20.09.19
13:50
(0) Возможно, имеет смысл там где нет даты вычислять ее с применением функции ЕстьNULL и передавать параметр нужный через нее
21 komstr
 
20.09.19
13:52
(17) стыдно спросить, но не подскажите как ( не то чтобы прям вот так писать), ну хоть что-то чтобы понятно
22 komstr
 
20.09.19
13:52
(20) кстати, а это идея))
23 toypaul
 
гуру
20.09.19
13:57
24 toypaul
 
гуру
20.09.19
13:59
25 komstr
 
20.09.19
14:22
(23) Прошу прощения, а откуда здесь появилась &ПустаяДата?
https://prnt.sc/p8npko
26 komstr
 
20.09.19
14:34
(24) что-то до меня не доходит
27 komstr
 
20.09.19
15:09
(24) Спасибо, дошло, сделал, с необязательным параметром)