Добрый вечер!
Как мне вывести вторую колонку НК_2020?
ВЫБРАТЬ
ЗаказПоставщикуТовары.Ссылка КАК Ссылка,
ЗаказПоставщикуТовары.Ссылка.Менеджер КАК Менеджер,
ЗаказПоставщикуТовары.Ссылка.Контрагент КАК Контрагент,
ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2019
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
И ЗаказПоставщикуТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2
СГРУППИРОВАТЬ ПО
ЗаказПоставщикуТовары.Ссылка.Менеджер,
ЗаказПоставщикуТовары.Ссылка.Контрагент,
ЗаказПоставщикуТовары.Ссылка
Показать
Пользователь хочет видеть количество строк в таблице "Товары" по отдельности за 2019 и 2020 гг.
Нам нужен второй запрос - копия нашего с нужными датами;
Затем :
ВЫБРАТЬ // ...
ВторойЗапрос.НК_2020
ЛЕВОЕ СОЕДИНЕНИЕ () КАК ВторойЗапрос ПО
ЗаказПоставщикуТовары.Ссылка = ВторойЗапрос.Ссылка И
ЗаказПоставщикуТовары.Менеджер = ВторойЗапрос.Менеджер И
ЗаказПоставщикуТовары.Контрагент =ВторойЗапрос.Контрагент
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2019,
ЗаказПоставщикуТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ втКоличество2019
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
И ГОД(ЗаказПоставщикуТовары.Ссылка.Дата) = ГОД(ДАТАВРЕМЯ(2019, 12, 31))
СГРУППИРОВАТЬ ПО
ЗаказПоставщикуТовары.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2020,
ЗаказПоставщикуТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ втКоличество2020
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
И ГОД(ЗаказПоставщикуТовары.Ссылка.Дата) = ГОД(ДАТАВРЕМЯ(2020, 12, 31))
СГРУППИРОВАТЬ ПО
ЗаказПоставщикуТовары.Ссылка
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ЗаказПоставщику.Ссылка КАК Ссылка,
ЗаказПоставщику.Менеджер КАК Менеджер,
ЗаказПоставщику.Контрагент КАК Контрагент,
втКоличество2020.НК_2020 КАК НК_2020,
втКоличество2019.НК_2019 КАК НК_2019
ИЗ
втКоличество2019 КАК втКоличество2019,
втКоличество2020 КАК втКоличество2020,
Документ.ЗаказПоставщику КАК ЗаказПоставщику
ИЗ
Документ.ЗаказПоставщику КАК ЗаказПоставщику
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2019
ПО втКоличество2019.Ссылка = ЗаказПоставщику.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2020
ПО втКоличество2020.Ссылка = ЗаказПоставщику.Ссылка
ИЗ
Документ.ЗаказПоставщику КАК ЗаказПоставщику
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2019
ПО втКоличество2019.Ссылка = ЗаказПоставщику.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2020
ПО втКоличество2020.Ссылка = ЗаказПоставщику.Ссылка
если дата1 и дата2 - это 01.01.2019 и 31.12.2020, то можно так:
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата <= ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0)
КОНЕЦ КАК НК_2019,
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата > ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0)
КОНЕЦ КАК НК_2020
(21) В сложность в том, что не могу сделать группировку в настройках внешнего отчета. Не могу найти пример похожий, чтобы так мог реализовать.
Я как вижу тут нужно как-то продумывать логику запроса по каждому менеджеру.
В сложность в том, что не могу сделать группировку в настройках внешнего отчета. Не могу найти пример похожий, чтобы так мог реализовать.
Я как вижу тут нужно как-то продумывать логику запроса по каждому менеджеру.
ВЫБРАТЬ
ЗаказПоставщикуТовары.Ссылка.Контрагент КАК Контрагент,
ЗаказПоставщикуТовары.Ссылка.Менеджер КАК Менеджер,
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата <= ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Ссылка), 0)
КОНЕЦ КАК Количество_2019,
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата <= ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0)
КОНЕЦ КАК НК_2019,
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата <= ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Ссылка), 0)
КОНЕЦ КАК Количество_2020,
ВЫБОР
КОГДА ЗаказПоставщикуТовары.Ссылка.Дата > ДАТАВРЕМЯ(2020, 1, 1, 0, 0, 0)
ТОГДА ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0)
КОНЕЦ КАК НК_2020
ИЗ
Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
ЗаказПоставщикуТовары.Ссылка.Подразделение = &Подразделение
И ЗаказПоставщикуТовары.Ссылка.Дата МЕЖДУ &ДАТА1 И &ДАТА2
СГРУППИРОВАТЬ ПО
ЗаказПоставщикуТовары.Ссылка.Контрагент,
ЗаказПоставщикуТовары.Ссылка.Менеджер,
ЗаказПоставщикуТовары.Ссылка.Дата,
ЗаказПоставщикуТовары.Ссылка
А вообще, прибивать гвоздями 2019 и 2020 год в корне неверно, в 2021 году бухам тоже придется платить вам за доработку отчета? И в 2022? Они так постоянно вам будут платить, вам это надо?
В скд есть дополнение периода (день, месяц, год). Но как правило бухгалтерские и статистические отчеты делаются именно на гвоздях, что в этом удивительного?
(19)Ага на костылях пишутся только те отчеты которые...нормальный программист не может сделать, отчет выше можно разложить по Годам как нефиг делать
ЧЕРЕЗ
НАЧАЛОПЕРИОДА(ЗаказПоставщикуТовары.Ссылка.Дата) КАК Год
, и не нужно городить никаких НК_2019 2020 и т.д. так как сама выборка вам разложит все по годам...
(26) То что вы реализовали..костыль и при том боольшой.
И отвечал я не вам а товарищу который сказал что отчеты такие пишутся через задание константных полей...что в корне неверно...
(27) Я знаю, что есть правила и стандарты разработок 1С. Пользователь захотел хотелку - погремушку на время и все.
Он не умеет пользоваться консолью запросов. А через универсальный отчет он эти данные не сможет получить.
(26)
А для вас
Вот Это уберите ЕСТЬNULL(...,0) Из запроса так как смысла в нем нет вообще никакого, во первых просто потому что Функция КОЛИЧЕСТВО , никогда не выдаст вам NULL, во вторых, данные у вас из одной таблицы, и получть NULL вы просто не сможете...так как нет соединений с другими таблицами, а 1С не может значения NULL иметь в таблицах своих..