Как сделать чтоб запрос выбирал все элементы из справочника, а не по выбранному критерию (помощь с запросом)

1. Shecurok 15.07.19 15:29 Сейчас в теме
Запрос формирует данные по номенклатуре и количеству заказов у неё за опр период и остатки. Суть в том, что номенклатуры у меня 12к, выводит запрос примерно 3к наименований которые либо есть на остатках, либо были заказы. Как изменить, чтоб вся номенклатура выводилась? Да, это будет дольше, но хотят именно так.

Сам запрос на СКД, выглядит так:
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
	Сегменты.Номенклатура КАК Номенклатура,
	Сегменты.Характеристика КАК Характеристика,
	ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
	РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
	Сегменты.Сегмент.* КАК СегментНоменклатуры,
	Сегменты.Номенклатура.* КАК Номенклатура,
	Сегменты.Характеристика.* КАК Характеристика}

ИНДЕКСИРОВАТЬ ПО
	Номенклатура,
	Характеристика,
	ИспользуетсяОтборПоСегментуНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
// Временная таблица "ВтСвободныеОстатки"
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Набор.Номенклатура                         КАК Номенклатура,
	Набор.Характеристика                       КАК Характеристика,
	Набор.Склад                                КАК Склад,

	СУММА(Набор.ВНаличии)                      КАК ВНаличии,
	СУММА(Набор.ВРезервеСоСклада)              КАК ВРезервеСоСклада,
	СУММА(Набор.ВРезервеПодЗаказ)              КАК ВРезервеПодЗаказ,
	СУММА(Набор.КОтгрузке)                     КАК КОтгрузке

ПОМЕСТИТЬ ВтСвободныеОстатки
ИЗ(
	ВЫБРАТЬ

		Таблица.Номенклатура                         КАК Номенклатура,
		Таблица.Характеристика                       КАК Характеристика,
		Таблица.Склад                                КАК Склад,

		Таблица.ВНаличииОстаток                      КАК ВНаличии,
		Таблица.ВРезервеСоСкладаОстаток              КАК ВРезервеСоСклада,
		Таблица.ВРезервеПодЗаказОстаток              КАК ВРезервеПодЗаказ,
		0                                            КАК КОтгрузке

	ИЗ
		РегистрНакопления.СвободныеОстатки.Остатки( , {
			(Номенклатура, Характеристика) В(
				ВЫБРАТЬ
					ТаблицаОтбора.Номенклатура    КАК Номенклатура,
					ТаблицаОтбора.Характеристика  КАК Характеристика
				ИЗ
					ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
				ГДЕ
					ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
			} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

	ВЫБРАТЬ
		Таблица.Номенклатура     КАК Номенклатура,
		Таблица.Характеристика   КАК Характеристика,
		Таблица.Склад            КАК Склад,

		Таблица.КОтгрузкеОстаток КАК ВНаличии,
		0                        КАК ВРезервеСоСклада,
		0                        КАК ВРезервеПодЗаказ,
		Таблица.КОтгрузкеОстаток КАК КОтгрузке
	ИЗ
		РегистрНакопления.ТоварыКОтгрузке.Остатки(, {
			(Номенклатура, Характеристика) В(
				ВЫБРАТЬ
					ТаблицаОтбора.Номенклатура    КАК Номенклатура,
					ТаблицаОтбора.Характеристика  КАК Характеристика
				ИЗ
					ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
				ГДЕ
					ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
			} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица) КАК Набор

СГРУППИРОВАТЬ ПО
	Набор.Номенклатура, Набор.Характеристика, Набор.Склад

ИНДЕКСИРОВАТЬ ПО
	Номенклатура, Характеристика, Склад
;

////////////////////////////////////////////////////////////­////////////////////
// Построение отчета
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ

	Набор.Номенклатура                          КАК Номенклатура,
	Набор.Характеристика                        КАК Характеристика,
	Набор.Склад                                 КАК Склад,
	МАКСИМУМ(&ТекстЗапросаВесНоменклатуры)      КАК Вес,
	МАКСИМУМ(&ТекстЗапросаОбъемНоменклатуры)    КАК Объем,
	МАКСИМУМ(Набор.Номенклатура.ЕдиницаИзмерения)             КАК ЕдиницаХранения,
	МАКСИМУМ(Набор.Номенклатура.ЕдиницаДляОтчетов)            КАК ЕдиницаДляОтчетов,
	МАКСИМУМ(Набор.Номенклатура.КоэффициентЕдиницыДляОтчетов) КАК КоэффициентЕдиницыДляОтчетов,
	
	СУММА(Набор.ВНаличии)                       КАК ВНаличии,
	СУММА(Набор.ПриходОсновной)                 КАК ПриходОсновной,
	СУММА(Набор.РасходОсновной)                 КАК РасходОсновной,
	СУММА(Набор.ВРезервеСоСкладаИПодЗаказ)      КАК ВРезервеСоСкладаИПодЗаказ,
	СУММА(Набор.ВРезервеСоСкладаИПодЗаказ)
		+ СУММА(Набор.ВРезервеГрафика)          КАК ВРезерве,
	СУММА(Набор.Котгрузке)                      КАК Котгрузке

ИЗ(
	// 1) В наличии
	ВЫБРАТЬ

		Таблица.Номенклатура                          КАК Номенклатура,
		Таблица.Характеристика                        КАК Характеристика,
		Таблица.Склад                                 КАК Склад,

		Таблица.ВНаличии                              КАК ВНаличии,
		0                                             КАК ПриходОсновной,
		Таблица.ВРезервеПодЗаказ
			+ Таблица.ВРезервеСоСклада
			+ Таблица.КОтгрузке                       КАК РасходОсновной,

		Таблица.ВРезервеПодЗаказ
			+ Таблица.ВРезервеСоСклада                КАК ВРезервеСоСкладаИПодЗаказ,

		0                                             КАК ВРезервеГрафика,
		Таблица.КОтгрузке                             КАК КОтгрузке

	ИЗ
		ВтСвободныеОстатки КАК Таблица

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

	// 2) Приход по заказам
	ВЫБРАТЬ
		Таблица.Номенклатура                          КАК Номенклатура,
		Таблица.Характеристика                        КАК Характеристика,
		Таблица.Склад                                 КАК Склад,

		0                                             КАК ВНаличии,
		Таблица.КоличествоИзЗаказовОстаток            КАК ПриходОсновной,
		0                                             КАК РасходОсновной,
		0                                             КАК ВРезервеСоСкладаИПодЗаказ,

		0                                             КАК ВРезервеГрафика,
		0                                             КАК КОтгрузке


	ИЗ
		РегистрНакопления.ГрафикПоступленияТоваров.Остатки(,{
			(Номенклатура, Характеристика) В(
				ВЫБРАТЬ
					ТаблицаОтбора.Номенклатура    КАК Номенклатура,
					ТаблицаОтбора.Характеристика  КАК Характеристика
				ИЗ
					ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
				ГДЕ
					ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
			} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

	// 3) Расход по заказам
	ВЫБРАТЬ
		Таблица.Номенклатура                          КАК Номенклатура,
		Таблица.Характеристика                        КАК Характеристика,
		Таблица.Склад                                 КАК Склад,

		0                                             КАК ВНаличии,
		0                                             КАК ПриходОсновной,
		Таблица.КоличествоИзЗаказовОстаток            КАК РасходОсновной,
		0                                             КАК ВРезервеСоСкладаИПодЗаказ,

		0                                             КАК ВРезервеГрафика,
		0                                             КАК КОтгрузке

	ИЗ
		РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(,{
			(Номенклатура, Характеристика) В(
				ВЫБРАТЬ
					ТаблицаОтбора.Номенклатура    КАК Номенклатура,
					ТаблицаОтбора.Характеристика  КАК Характеристика
				ИЗ
					ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
				ГДЕ
					ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
			} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

	// 4) Резерв графика поставок
	ВЫБРАТЬ
		Таблица.Номенклатура                          КАК Номенклатура,
		Таблица.Характеристика                        КАК Характеристика,
		Таблица.Склад                                 КАК Склад,

		0                                             КАК ВНаличии,

		0                                             КАК ПриходОсновной,

		0                                             КАК РасходОсновной,

		0                                             КАК ВРезервеСоСкладаИПодЗаказ,
		-Таблица.Количество                           КАК ВРезервеГрафика,
		0                                             КАК КОтгрузке

	ИЗ
		РегистрСведений.ДоступныеОстаткиПланируемыхПоступлений КАК Таблица
	{ГДЕ
		(Таблица.Номенклатура, Таблица.Характеристика) В(
			ВЫБРАТЬ
				ТаблицаОтбора.Номенклатура    КАК Номенклатура,
				ТаблицаОтбора.Характеристика  КАК Характеристика
			ИЗ
				ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
			ГДЕ
				ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
		}
	{ГДЕ
		Таблица.Склад.* КАК Склад,
		Таблица.Номенклатура.* КАК Номенклатура,
		Таблица.Характеристика.* КАК Характеристика}

	ГДЕ
		Таблица.Количество < 0
		И Таблица.ДатаДоступности = ДАТАВРЕМЯ(1, 1, 1)) КАК Набор

СГРУППИРОВАТЬ ПО
	Набор.Номенклатура, Набор.Характеристика, Набор.Склад
Показать
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. VmvLer 15.07.19 15:32 Сейчас в теме
Вероятно необходимо объединить с
...
Из Справочник.Номенклатура
3. Shecurok 15.07.19 15:39 Сейчас в теме +1 $m
(2) честно говоря не пойму как это сделать. учитывая, что набора данных 3. собственно этот запрос основной, есть ещё доступность по датам и запрос по заказам клиентов. Как объединить не представляю.
4. vadver 39 15.07.19 15:44 Сейчас в теме
(3) Во внутренний запрос добавить 4-й подзапрос - выборка по справочнику, убрать все условия в предложении ГДЕ (т.к. они ограничивают выборку. Вкратце так
5. VmvLer 15.07.19 15:58 Сейчас в теме
можно не трогать основной набор данных, а в СКД
создать дополнительный набор данных с теми же отборами по сегментам

...Из Справочник.Номенклатура
и соединить по элементам набора с остатками и заказами

лично в этом примере сделал бы все в одном наборе.

И как-то я тут писал - не используйте синоним Номенклатура в СКД, предпочтительнее использовать другой, который
не перекликается с измерениями оборотных регистров. На малых базах это по барабану, а вот если записей в регистре
300-800КК+, то это значительно уменьшит выполнение отчета, "зарезав" горе от ума в СКД.
6. Shecurok 15.07.19 16:06 Сейчас в теме
(5) соединять через связи набора данных?
7. VmvLer 15.07.19 16:09 Сейчас в теме
8. Shecurok 15.07.19 16:16 Сейчас в теме
(7) блин, не пойму каким образом можно составить запрос. ну т.е.какие поля выбирать чтоб потом объединить можно. Справочник номенклутра добавить не сложно и через связи в принципе тоже можно понять как объединить. но что с чем...
9. lefthander 15.07.19 16:20 Сейчас в теме
(8)Выбираете весь справочник номенклатуры, затем приклеиваете к нему все нужные действия с номенклатурой и поколоночно все выводите в итоге получите весь список Номенклатуры и колонки остатков, приходов, расходов, резервов и тд

ЗЫ и уберите в запросах РАЗРЕШЕННЫЕ ;)
10. Shecurok 15.07.19 16:26 Сейчас в теме
(9) не могли бы для примера одну связь создать. правда не пойму что с чем связывать. Ну создал набор данных Номенклура со всеми полями... А дальше что хз
Прикрепленные файлы:
остатки и заказы товаров.erf
11. lefthander 15.07.19 16:37 Сейчас в теме
(10)Хм... а зачем пустой отчет прикрепили? ;) могу конечно, минут через 30 будет небольшой перерывчик
13. Shecurok 15.07.19 16:39 Сейчас в теме
(11) так не пустой же) только что проверил, скд присутствует
А так спасибо большое
15. lefthander 15.07.19 16:41 Сейчас в теме
(13) у меня скачивается с 0 длиной
16. Shecurok 15.07.19 16:42 Сейчас в теме
(15) перезалил. попробуйте так, либо на гугл диск залью
Прикрепленные файлы:
остатки и заказы товаров.erf
18. Shecurok 15.07.19 16:51 Сейчас в теме
20. lefthander 15.07.19 16:53 Сейчас в теме
(18)блокируется с подозрением на вирус... ;)
21. пользователь 15.07.19 16:56
Сообщение было скрыто модератором.
...
22. Shecurok 15.07.19 16:57 Сейчас в теме
(20) ахаха. блин. не знаю честно. каспер стоит, ничего не находит.
Прикрепленные файлы:
остатки и заказы товаров.7z
23. lefthander 15.07.19 17:07 Сейчас в теме
(22)Да ладно не парься, в личку отправил ссылку
ЗЫ у меня тоже каспер.
12. VmvLer 15.07.19 16:38 Сейчас в теме
(9) а РАЗРЕШЕННЫЕ зачем убирать?
14. lefthander 15.07.19 16:39 Сейчас в теме
(12)это тоже в некотором смысле отбор, а вам надо все
17. VmvLer 15.07.19 16:43 Сейчас в теме
(14) мне ничего не надо, а пользователю, думаю, надо видеть только разрешенные элементы.

ну, конечно, можно увидеть ошибку исключения при выполнении отчета под пользователем с РЛС и потом корить себя.
19. lefthander 15.07.19 16:51 Сейчас в теме
(17)Сорри, ответил машинально... конечно вам это не надо. ТопикСтартер пока не понимает как ему запрос построить, а РАЗРЕШЕННЫЕ можно и после отладки добавить. ;) ну это так... из опыта, В процессе отладки пытаешься понять куда делись данные, а они под пользователем просто не видны.... ;)
24. dakork 32 15.07.19 17:18 Сейчас в теме
(8)В первом запросе выбери все из Спр.Номенклатура и присоединяй к нему данные из Регистра левым соединением
morgershtern; voha; timurkarimov; +3 Ответить
25. Indgo 337 16.07.19 12:51 Сейчас в теме
вот код запроса - выводит все товары:

ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
    Сегменты.Номенклатура КАК Номенклатура,
    Сегменты.Характеристика КАК Характеристика,
    ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
    РегистрСведений.НоменклатураСегмента КАК Сегменты
{ГДЕ
    Сегменты.Сегмент.* КАК СегментНоменклатуры,
    Сегменты.Номенклатура.* КАК Номенклатура,
    Сегменты.Характеристика.* КАК Характеристика}

ИНДЕКСИРОВАТЬ ПО
    Номенклатура,
    Характеристика,
    ИспользуетсяОтборПоСегментуНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
// Временная таблица "ВтСвободныеОстатки"
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    Набор.Номенклатура                         КАК Номенклатура,
    Набор.Характеристика                       КАК Характеристика,
    Набор.Склад                                КАК Склад,

    СУММА(Набор.ВНаличии)                      КАК ВНаличии,
    СУММА(Набор.ВРезервеСоСклада)              КАК ВРезервеСоСклада,
    СУММА(Набор.ВРезервеПодЗаказ)              КАК ВРезервеПодЗаказ,
    СУММА(Набор.КОтгрузке)                     КАК КОтгрузке

ПОМЕСТИТЬ ВтСвободныеОстатки
ИЗ(
    ВЫБРАТЬ

        Таблица.Номенклатура                         КАК Номенклатура,
        Таблица.Характеристика                       КАК Характеристика,
        Таблица.Склад                                КАК Склад,

        Таблица.ВНаличииОстаток                      КАК ВНаличии,
        Таблица.ВРезервеСоСкладаОстаток              КАК ВРезервеСоСклада,
        Таблица.ВРезервеПодЗаказОстаток              КАК ВРезервеПодЗаказ,
        0                                            КАК КОтгрузке

    ИЗ
        РегистрНакопления.СвободныеОстатки.Остатки( , {
            (Номенклатура, Характеристика) В(
                ВЫБРАТЬ
                    ТаблицаОтбора.Номенклатура    КАК Номенклатура,
                    ТаблицаОтбора.Характеристика  КАК Характеристика
                ИЗ
                    ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
                ГДЕ
                    ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
            } {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

    ВЫБРАТЬ
        Таблица.Номенклатура     КАК Номенклатура,
        Таблица.Характеристика   КАК Характеристика,
        Таблица.Склад            КАК Склад,

        Таблица.КОтгрузкеОстаток КАК ВНаличии,
        0                        КАК ВРезервеСоСклада,
        0                        КАК ВРезервеПодЗаказ,
        Таблица.КОтгрузкеОстаток КАК КОтгрузке
    ИЗ
        РегистрНакопления.ТоварыКОтгрузке.Остатки(, {
            (Номенклатура, Характеристика) В(
                ВЫБРАТЬ
                    ТаблицаОтбора.Номенклатура    КАК Номенклатура,
                    ТаблицаОтбора.Характеристика  КАК Характеристика
                ИЗ
                    ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
                ГДЕ
                    ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
            } {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица) КАК Набор

СГРУППИРОВАТЬ ПО
    Набор.Номенклатура, Набор.Характеристика, Набор.Склад

ИНДЕКСИРОВАТЬ ПО
    Номенклатура, Характеристика, Склад
;

////////////////////////////////////////////////////////////­////////////////////
// Построение отчета
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ

    товары.ссылка                          КАК Номенклатура,
    Набор.Характеристика                        КАК Характеристика,
    Набор.Склад                                 КАК Склад,
    МАКСИМУМ(&ТекстЗапросаВесНоменклатуры)      КАК Вес,
    МАКСИМУМ(&ТекстЗапросаОбъемНоменклатуры)    КАК Объем,
    МАКСИМУМ(Набор.Номенклатура.ЕдиницаИзмерения)             КАК ЕдиницаХранения,
    МАКСИМУМ(Набор.Номенклатура.ЕдиницаДляОтчетов)            КАК ЕдиницаДляОтчетов,
    МАКСИМУМ(Набор.Номенклатура.КоэффициентЕдиницыДляОтчетов) КАК КоэффициентЕдиницыДляОтчетов,
    
    СУММА(Набор.ВНаличии)                       КАК ВНаличии,
    СУММА(Набор.ПриходОсновной)                 КАК ПриходОсновной,
    СУММА(Набор.РасходОсновной)                 КАК РасходОсновной,
    СУММА(Набор.ВРезервеСоСкладаИПодЗаказ)      КАК ВРезервеСоСкладаИПодЗаказ,
    СУММА(Набор.ВРезервеСоСкладаИПодЗаказ)
        + СУММА(Набор.ВРезервеГрафика)          КАК ВРезерве,
    СУММА(Набор.Котгрузке)                      КАК Котгрузке

ИЗ Справочник.Номенклатура как  товары
left join 
(
    // 1) В наличии
    ВЫБРАТЬ

        Таблица.Номенклатура                          КАК Номенклатура,
        Таблица.Характеристика                        КАК Характеристика,
        Таблица.Склад                                 КАК Склад,

        Таблица.ВНаличии                              КАК ВНаличии,
        0                                             КАК ПриходОсновной,
        Таблица.ВРезервеПодЗаказ
            + Таблица.ВРезервеСоСклада
            + Таблица.КОтгрузке                       КАК РасходОсновной,

        Таблица.ВРезервеПодЗаказ
            + Таблица.ВРезервеСоСклада                КАК ВРезервеСоСкладаИПодЗаказ,

        0                                             КАК ВРезервеГрафика,
        Таблица.КОтгрузке                             КАК КОтгрузке

    ИЗ
        ВтСвободныеОстатки КАК Таблица

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

    // 2) Приход по заказам
    ВЫБРАТЬ
        Таблица.Номенклатура                          КАК Номенклатура,
        Таблица.Характеристика                        КАК Характеристика,
        Таблица.Склад                                 КАК Склад,

        0                                             КАК ВНаличии,
        Таблица.КоличествоИзЗаказовОстаток            КАК ПриходОсновной,
        0                                             КАК РасходОсновной,
        0                                             КАК ВРезервеСоСкладаИПодЗаказ,

        0                                             КАК ВРезервеГрафика,
        0                                             КАК КОтгрузке


    ИЗ
        РегистрНакопления.ГрафикПоступленияТоваров.Остатки(,{
            (Номенклатура, Характеристика) В(
                ВЫБРАТЬ
                    ТаблицаОтбора.Номенклатура    КАК Номенклатура,
                    ТаблицаОтбора.Характеристика  КАК Характеристика
                ИЗ
                    ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
                ГДЕ
                    ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
            } {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

    // 3) Расход по заказам
    ВЫБРАТЬ
        Таблица.Номенклатура                          КАК Номенклатура,
        Таблица.Характеристика                        КАК Характеристика,
        Таблица.Склад                                 КАК Склад,

        0                                             КАК ВНаличии,
        0                                             КАК ПриходОсновной,
        Таблица.КоличествоИзЗаказовОстаток            КАК РасходОсновной,
        0                                             КАК ВРезервеСоСкладаИПодЗаказ,

        0                                             КАК ВРезервеГрафика,
        0                                             КАК КОтгрузке

    ИЗ
        РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(,{
            (Номенклатура, Характеристика) В(
                ВЫБРАТЬ
                    ТаблицаОтбора.Номенклатура    КАК Номенклатура,
                    ТаблицаОтбора.Характеристика  КАК Характеристика
                ИЗ
                    ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
                ГДЕ
                    ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
            } {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

    // 4) Резерв графика поставок
    ВЫБРАТЬ
        Таблица.Номенклатура                          КАК Номенклатура,
        Таблица.Характеристика                        КАК Характеристика,
        Таблица.Склад                                 КАК Склад,

        0                                             КАК ВНаличии,

        0                                             КАК ПриходОсновной,

        0                                             КАК РасходОсновной,

        0                                             КАК ВРезервеСоСкладаИПодЗаказ,
        -Таблица.Количество                           КАК ВРезервеГрафика,
        0                                             КАК КОтгрузке

    ИЗ
        РегистрСведений.ДоступныеОстаткиПланируемыхПоступлений КАК Таблица
    {ГДЕ
        (Таблица.Номенклатура, Таблица.Характеристика) В(
            ВЫБРАТЬ
                ТаблицаОтбора.Номенклатура    КАК Номенклатура,
                ТаблицаОтбора.Характеристика  КАК Характеристика
            ИЗ
                ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
            ГДЕ
                ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
        }
    {ГДЕ
        Таблица.Склад.* КАК Склад,
        Таблица.Номенклатура.* КАК Номенклатура,
        Таблица.Характеристика.* КАК Характеристика}

    ГДЕ
        Таблица.Количество < 0
        И Таблица.ДатаДоступности = ДАТАВРЕМЯ(1, 1, 1)) КАК Набор
        по Набор.номенклатура = товары.ссылка

СГРУППИРОВАТЬ ПО
    Набор.Номенклатура, Набор.Характеристика, Набор.Склад
Показать
26. user703966_martynyuknatalia 17.07.19 03:32 Сейчас в теме
ВЫБРАТЬ РАЗРЕШЕННЫЕ РАЗЛИЧНЫЕ
Сегменты.Номенклатура КАК Номенклатура,
Сегменты.Цена КАК Характеристика,
ИСТИНА КАК ИспользуетсяОтборПоСегментуНоменклатуры
ПОМЕСТИТЬ ОтборПоСегментуНоменклатуры
ИЗ
РегистрСведений.яЦениПоКатегориях КАК Сегменты


ИНДЕКСИРОВАТЬ ПО
Номенклатура,
Характеристика,
ИспользуетсяОтборПоСегментуНоменклатуры
;

////////////////////////////////////////////////////////////­////////////////////
// Временная таблица "ВтСвободныеОстатки"
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ
Набор.Номенклатура КАК Номенклатура,
Набор.Характеристика КАК Характеристика,
Набор.Склад КАК Склад,

СУММА(Набор.ВНаличии) КАК ВНаличии,
СУММА(Набор.ВРезервеСоСклада) КАК ВРезервеСоСклада,
СУММА(Набор.ВРезервеПодЗаказ) КАК ВРезервеПодЗаказ,
СУММА(Набор.КОтгрузке) КАК КОтгрузке

ПОМЕСТИТЬ ВтСвободныеОстатки
ИЗ(
ВЫБРАТЬ

Таблица.Номенклатура КАК Номенклатура,
Таблица.ХарактеристикаНоменклатуры КАК Характеристика,
Таблица.Склад КАК Склад,

Таблица.КоличествоОстаток КАК ВНаличии,
Таблица.КоличествоОстаток КАК ВРезервеСоСклада,
Таблица.КоличествоОстаток КАК ВРезервеПодЗаказ,
0 КАК КОтгрузке

ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки( , {
(Номенклатура, Характеристика) В(
ВЫБРАТЬ
ТаблицаОтбора.Номенклатура КАК Номенклатура,
ТаблицаОтбора.Характеристика КАК Характеристика
ИЗ
ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
ГДЕ
ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

ВЫБРАТЬ
Таблица.Номенклатура КАК Номенклатура,
Таблица.ХарактеристикаНоменклатуры КАК Характеристика,
Таблица.Склад КАК Склад,

Таблица.КоличествоОстаток КАК ВНаличии,
0 КАК ВРезервеСоСклада,
0 КАК ВРезервеПодЗаказ,
Таблица.КоличествоОстаток КАК КОтгрузке
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки(, {
(Номенклатура, Характеристика) В(
ВЫБРАТЬ
ТаблицаОтбора.Номенклатура КАК Номенклатура,
ТаблицаОтбора.Характеристика КАК Характеристика
ИЗ
ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
ГДЕ
ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица) КАК Набор

СГРУППИРОВАТЬ ПО
Набор.Номенклатура, Набор.Характеристика, Набор.Склад

ИНДЕКСИРОВАТЬ ПО
Номенклатура, Характеристика, Склад
;

////////////////////////////////////////////////////////////­////////////////////
// Построение отчета
//
ВЫБРАТЬ РАЗРЕШЕННЫЕ

Набор.Номенклатура КАК Номенклатура,
Набор.Характеристика КАК Характеристика,
Набор.Склад КАК Склад,
МАКСИМУМ(&ТекстЗапросаВесНоменклатуры) КАК Вес,
МАКСИМУМ(&ТекстЗапросаОбъемНоменклатуры) КАК Объем,
МАКСИМУМ(Набор.Номенклатура.ЕдиницаИзмерения) КАК ЕдиницаХранения,
МАКСИМУМ(Набор.Номенклатура.ЕдиницаДляОтчетов) КАК ЕдиницаДляОтчетов,
МАКСИМУМ(Набор.Номенклатура.КоэффициентЕдиницыДляОтчетов) КАК КоэффициентЕдиницыДляОтчетов,

СУММА(Набор.ВНаличии) КАК ВНаличии,
СУММА(Набор.ПриходОсновной) КАК ПриходОсновной,
СУММА(Набор.РасходОсновной) КАК РасходОсновной,
СУММА(Набор.ВРезервеСоСкладаИПодЗаказ) КАК ВРезервеСоСкладаИПодЗаказ,
СУММА(Набор.ВРезервеСоСкладаИПодЗаказ)
+ СУММА(Набор.ВРезервеГрафика) КАК ВРезерве,
СУММА(Набор.Котгрузке) КАК Котгрузке

ИЗ(
// 1) В наличии
ВЫБРАТЬ

Таблица.Номенклатура КАК Номенклатура,
Таблица.Характеристика КАК Характеристика,
Таблица.Склад КАК Склад,

Таблица.ВНаличии КАК ВНаличии,
0 КАК ПриходОсновной,
Таблица.ВРезервеПодЗаказ
+ Таблица.ВРезервеСоСклада
+ Таблица.КОтгрузке КАК РасходОсновной,

Таблица.ВРезервеПодЗаказ
+ Таблица.ВРезервеСоСклада КАК ВРезервеСоСкладаИПодЗаказ,

0 КАК ВРезервеГрафика,
Таблица.КОтгрузке КАК КОтгрузке

ИЗ
ВтСвободныеОстатки КАК Таблица

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

// 2) Приход по заказам
ВЫБРАТЬ
Таблица.Номенклатура КАК Номенклатура,
Таблица.Характеристика КАК Характеристика,
Таблица.Склад КАК Склад,

0 КАК ВНаличии,
Таблица.КоличествоОстаток КАК ПриходОсновной,
0 КАК РасходОсновной,
0 КАК ВРезервеСоСкладаИПодЗаказ,

0 КАК ВРезервеГрафика,
0 КАК КОтгрузке


ИЗ
РегистрНакопления.ГрафикПоступленияТоваров.Остатки(,{
(Номенклатура, Характеристика) В(
ВЫБРАТЬ
ТаблицаОтбора.Номенклатура КАК Номенклатура,
ТаблицаОтбора.Характеристика КАК Характеристика
ИЗ
ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
ГДЕ
ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

// 3) Расход по заказам
ВЫБРАТЬ
Таблица.Номенклатура КАК Номенклатура,
Таблица.Характеристика КАК Характеристика,
Таблица.Склад КАК Склад,

0 КАК ВНаличии,
0 КАК ПриходОсновной,
Таблица.КоличествоИзЗаказовОстаток КАК РасходОсновной,
0 КАК ВРезервеСоСкладаИПодЗаказ,

0 КАК ВРезервеГрафика,
0 КАК КОтгрузке

ИЗ
РегистрНакопления.ГрафикОтгрузкиТоваров.Остатки(,{
(Номенклатура, Характеристика) В(
ВЫБРАТЬ
ТаблицаОтбора.Номенклатура КАК Номенклатура,
ТаблицаОтбора.Характеристика КАК Характеристика
ИЗ
ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
ГДЕ
ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
} {Склад.*, Номенклатура.*, Характеристика.*}) КАК Таблица

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

// 4) Резерв графика поставок
ВЫБРАТЬ
Таблица.Номенклатура КАК Номенклатура,
Таблица.Характеристика КАК Характеристика,
Таблица.Склад КАК Склад,

0 КАК ВНаличии,

0 КАК ПриходОсновной,

0 КАК РасходОсновной,

0 КАК ВРезервеСоСкладаИПодЗаказ,
-Таблица.Количество КАК ВРезервеГрафика,
0 КАК КОтгрузке

ИЗ
РегистрСведений.ДоступныеОстаткиПланируемыхПоступлений КАК Таблица
{ГДЕ
(Таблица.Номенклатура, Таблица.Характеристика) В(
ВЫБРАТЬ
ТаблицаОтбора.Номенклатура КАК Номенклатура,
ТаблицаОтбора.Характеристика КАК Характеристика
ИЗ
ОтборПоСегментуНоменклатуры КАК ТаблицаОтбора
ГДЕ
ТаблицаОтбора.ИспользуетсяОтборПоСегментуНоменклатуры = &ИспользуетсяОтборПоСегментуНоменклатуры)
}
{ГДЕ
Таблица.Склад.* КАК Склад,
Таблица.Номенклатура.* КАК Номенклатура,
Таблица.Характеристика.* КАК Характеристика}

ГДЕ
Таблица.Количество < 0
И Таблица.ДатаДоступности = ДАТАВРЕМЯ(1, 1, 1)) КАК Набор

СГРУППИРОВАТЬ ПО
Набор.Номенклатура, Набор.Характеристика, Набор.Склад
27. _Lilka 17.07.19 07:51 Сейчас в теме
хотите сделать отчет и забыть или научиться? Если научиться то начинайте с малого, напишите простой запрос выборки из спр Номенклатуры, потом добавьте к результату запроса остатки на складе и т.д. Идите от малого запроса к большому, не надо угадывать куда что дописать
Оставьте свое сообщение
Вакансии
Программист 1С
Казань
зарплата от 150 000 руб.
Полный день

Разработчик 1С
Москва
зарплата от 200 000 руб. до 300 000 руб.
Полный день

Программист 1С (удаленно)
Самара
зарплата от 230 000 руб. до 230 000 руб.
Полный день

Руководитель группы разработки 1С
Москва
зарплата от 250 000 руб. до 250 000 руб.
Полный день

Специалист техподдержки
Санкт-Петербург
зарплата от 100 руб. до 150 руб.
Полный день