Запрос к документу "Заказы поставщикам"

1. user1304317 29.10.20 20:01 Сейчас в теме
Добрый вечер!
Как мне вывести вторую колонку НК_2020?
ВЫБРАТЬ
	ЗаказПоставщикуТовары.Ссылка КАК Ссылка,
	ЗаказПоставщикуТовары.Ссылка.Менеджер КАК Менеджер,
	ЗаказПоставщикуТовары.Ссылка.Контрагент КАК Контрагент,
	ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2019
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
	ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
	И ЗаказПоставщикуТовары.Ссылка.Дата МЕЖДУ &Дата1 И &Дата2

СГРУППИРОВАТЬ ПО
	ЗаказПоставщикуТовары.Ссылка.Менеджер,
	ЗаказПоставщикуТовары.Ссылка.Контрагент,
	ЗаказПоставщикуТовары.Ссылка
Показать


Пользователь хочет видеть количество строк в таблице "Товары" по отдельности за 2019 и 2020 гг.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Vitaly1C8 29.10.20 21:02 Сейчас в теме
Нам нужен второй запрос - копия нашего с нужными датами;
Затем :
ВЫБРАТЬ // ...
ВторойЗапрос.НК_2020
ЛЕВОЕ СОЕДИНЕНИЕ () КАК ВторойЗапрос ПО 
ЗаказПоставщикуТовары.Ссылка = ВторойЗапрос.Ссылка И
ЗаказПоставщикуТовары.Менеджер = ВторойЗапрос.Менеджер И
ЗаказПоставщикуТовары.Контрагент =ВторойЗапрос.Контрагент
3. user1304317 29.10.20 21:03 Сейчас в теме
(2)
Попробовал так, но у меня все суммируется
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2019,
	ЗаказПоставщикуТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ втКоличество2019
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
	ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
	И ГОД(ЗаказПоставщикуТовары.Ссылка.Дата) = ГОД(ДАТАВРЕМЯ(2019, 12, 31))

СГРУППИРОВАТЬ ПО
	ЗаказПоставщикуТовары.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
	ЕСТЬNULL(КОЛИЧЕСТВО(РАЗЛИЧНЫЕ ЗаказПоставщикуТовары.Номенклатура), 0) КАК НК_2020,
	ЗаказПоставщикуТовары.Ссылка КАК Ссылка
ПОМЕСТИТЬ втКоличество2020
ИЗ
	Документ.ЗаказПоставщику.Товары КАК ЗаказПоставщикуТовары
ГДЕ
	ЗаказПоставщикуТовары.Ссылка.Менеджер.ПометкаУдаления = ЛОЖЬ
	И ГОД(ЗаказПоставщикуТовары.Ссылка.Дата) = ГОД(ДАТАВРЕМЯ(2020, 12, 31))

СГРУППИРОВАТЬ ПО
	ЗаказПоставщикуТовары.Ссылка
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ЗаказПоставщику.Ссылка КАК Ссылка,
	ЗаказПоставщику.Менеджер КАК Менеджер,
	ЗаказПоставщику.Контрагент КАК Контрагент,
	втКоличество2020.НК_2020 КАК НК_2020,
	втКоличество2019.НК_2019 КАК НК_2019
ИЗ
	втКоличество2019 КАК втКоличество2019,
	втКоличество2020 КАК втКоличество2020,
	Документ.ЗаказПоставщику КАК ЗаказПоставщику

Показать
4. user1304317 29.10.20 21:07 Сейчас в теме
(2)
(3)Вот
Прикрепленные файлы:
5. Vitaly1C8 29.10.20 21:09 Сейчас в теме
(3)
ИЗ
    Документ.ЗаказПоставщику КАК ЗаказПоставщику
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2019 
  ПО втКоличество2019.Ссылка = ЗаказПоставщику.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2020
  ПО втКоличество2020.Ссылка = ЗаказПоставщику.Ссылка
6. user1304317 29.10.20 21:12 Сейчас в теме
(5)
ИЗ
Документ.ЗаказПоставщику КАК ЗаказПоставщику
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2019
ПО втКоличество2019.Ссылка = ЗаказПоставщику.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ втКоличество2020
ПО втКоличество2020.Ссылка = ЗаказПоставщику.Ссылка



Вот
Прикрепленные файлы:
7. namazi74 5 29.10.20 21:15 Сейчас в теме
если дата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
Vitaly1C8; +1 Ответить
8. namazi74 5 29.10.20 21:20 Сейчас в теме
(7) у меня в заказах поставщику нет Менеджера. Вот как получилось:
Прикрепленные файлы:
user1304317; +1 Ответить
9. user1304317 29.10.20 21:29 Сейчас в теме
(8) у МЕНЯ НЕ ПОЛУЧАЕТСЯ (
Прикрепленные файлы:
10. namazi74 5 29.10.20 21:31 Сейчас в теме
(9)
у МЕНЯ НЕ ПОЛУЧАЕТСЯ (

&Дата2 - какое значение задаете?
11. user1304317 29.10.20 21:32 Сейчас в теме
12. namazi74 5 29.10.20 21:33 Сейчас в теме
(11) на скрине видны ссылки только на документы 2019 года. они выводятся верно. покажите скрин на документы 2020 года
20. user1304317 30.10.20 08:49 Сейчас в теме
(8) Спасибо, все верно вы сделали.
Теперь новая хотела у пользователя. Хочет по аналогии так
Прикрепленные файлы:
21. namazi74 5 30.10.20 10:58 Сейчас в теме
(20)
Спасибо, все верно вы сделали.
Теперь новая хотела у пользователя. Хочет по аналогии так

в чем сложность? покажите как делаете
22. user1304317 30.10.20 12:04 Сейчас в теме
(21) В сложность в том, что не могу сделать группировку в настройках внешнего отчета. Не могу найти пример похожий, чтобы так мог реализовать.
Я как вижу тут нужно как-то продумывать логику запроса по каждому менеджеру.
30. namazi74 5 31.10.20 06:31 Сейчас в теме
(22)
В сложность в том, что не могу сделать группировку в настройках внешнего отчета. Не могу найти пример похожий, чтобы так мог реализовать.
Я как вижу тут нужно как-то продумывать логику запроса по каждому менеджеру.

помощь ещё нужна?
23. user1304317 30.10.20 12:19 Сейчас в теме
(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

СГРУППИРОВАТЬ ПО
	ЗаказПоставщикуТовары.Ссылка.Контрагент,
	ЗаказПоставщикуТовары.Ссылка.Менеджер,
	ЗаказПоставщикуТовары.Ссылка.Дата,
	ЗаказПоставщикуТовары.Ссылка
Показать
24. user1304317 30.10.20 12:24 Сейчас в теме
13. user1464234 29.10.20 21:33 Сейчас в теме
Внутри выбор желательно добавить ИНАЧЕ 0
14. namazi74 5 29.10.20 21:35 Сейчас в теме
(13)
Внутри выбор желательно добавить ИНАЧЕ 0

для СКД есть смысл?
15. user1464234 29.10.20 21:37 Сейчас в теме
А зачем в скд null вместо итогов?
16. namazi74 5 29.10.20 21:41 Сейчас в теме
(15)
А зачем в скд null вместо итогов?

так он не будет писать null в отчете. будет пустое поле. или я не прав?
user1464234; +1 Ответить
17. tetraren 36 29.10.20 23:55 Сейчас в теме
А вообще, прибивать гвоздями 2019 и 2020 год в корне неверно, в 2021 году бухам тоже придется платить вам за доработку отчета? И в 2022? Они так постоянно вам будут платить, вам это надо?
18. tetraren 36 29.10.20 23:57 Сейчас в теме
(17) Делайте кросс-таблицей, где год в колонках, а остальные поля - дополнительные сведения. https://its.1c.ru/db/pubqlang/content/78/hdoc
19. user1464234 30.10.20 00:00 Сейчас в теме
В скд есть дополнение периода (день, месяц, год). Но как правило бухгалтерские и статистические отчеты делаются именно на гвоздях, что в этом удивительного?
25. bmk74 240 30.10.20 18:21 Сейчас в теме
(19)Ага на костылях пишутся только те отчеты которые...нормальный программист не может сделать, отчет выше можно разложить по Годам как нефиг делать
ЧЕРЕЗ
НАЧАЛОПЕРИОДА(ЗаказПоставщикуТовары.Ссылка.Дата) КАК Год
, и не нужно городить никаких НК_2019 2020 и т.д. так как сама выборка вам разложит все по годам...
26. user1304317 30.10.20 18:22 Сейчас в теме
(25) Благодарю вас за ерничество. куда без этого.
Я уже реализовал отчет и пользователя все устраивает. Всего доброго умник.
27. bmk74 240 30.10.20 18:26 Сейчас в теме
(26) То что вы реализовали..костыль и при том боольшой.
И отвечал я не вам а товарищу который сказал что отчеты такие пишутся через задание константных полей...что в корне неверно...
28. user1304317 30.10.20 18:27 Сейчас в теме
(27) Я знаю, что есть правила и стандарты разработок 1С. Пользователь захотел хотелку - погремушку на время и все.
Он не умеет пользоваться консолью запросов. А через универсальный отчет он эти данные не сможет получить.
29. bmk74 240 30.10.20 18:29 Сейчас в теме
(26)
А для вас
Вот Это уберите ЕСТЬNULL(...,0) Из запроса так как смысла в нем нет вообще никакого, во первых просто потому что Функция КОЛИЧЕСТВО , никогда не выдаст вам NULL, во вторых, данные у вас из одной таблицы, и получть NULL вы просто не сможете...так как нет соединений с другими таблицами, а 1С не может значения NULL иметь в таблицах своих..
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот