Сумма в отчете

1. user1008893 15.10.18 15:28 Сейчас в теме
Ребят,уже неделю с этим мучаюсь. Может кто поможет? Не выводится сумма.
мТекстЗапроса = "ВЫБРАТЬ
	                |	СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
	                |	СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
	                |	СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
	                |	ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
	                |	ВЫБОР
	                |		КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) = 0
	                |			ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0)
	                |		ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
	                |	КОНЕЦ КАК Цена
	                |ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
	                |ИЗ
	                |	РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
	                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
	                |				&ДатаКон,
	                |				ТипЦен = &ТипЦен
	                |					И ВариантИсполнения <> ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних
	                |		ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
	                |			И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
	                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
	                |				&ДатаКон,
	                |				ТипЦен = &ТипЦен
	                |					И ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних1
	                |		ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
	                |ГДЕ
	                |	ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
	                |	И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
	                |
	                |ИНДЕКСИРОВАТЬ ПО
	                |	Фирма,
	                |	Номенклатура,
	                |	ВариантИсполнения
	                |;
	                |
	                |////////////////////////////////////////////////////////////­////////////////////
	                |ВЫБРАТЬ
	                |	ТаблОстаткиИОбороты.Филиал,
	                |	ТаблОстаткиИОбороты.Фирма,
	                |	ТаблОстаткиИОбороты.Склад,
	                |	ТаблОстаткиИОбороты.Номенклатура,
	                |	ТаблОстаткиИОбороты.ВариантИсполнения,
	                |	ТаблОстаткиИОбороты.КПриемкеОТК,
	                |	СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоНачальныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоКонечныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.КолПриход / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоПриход,
	                |	СУММА(ТаблОстаткиИОбороты.КолРасход / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоРасход,
	                |	СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ВесНачальныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ВесКонечныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолПриход) КАК ВесПриход,
	                |	СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолРасход) КАК ВесРасход,
	                |	СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ОбъемНачальныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ОбъемКонечныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолПриход) КАК ОбъемПриход,
	                |	СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолРасход) КАК ОбъемРасход,
	                |	ТаблОстаткиИОбороты.Вес,
	                |	ТаблОстаткиИОбороты.Объем,
	                |	ТаблОстаткиИОбороты.Коэффициент,
	                |	ТаблОстаткиИОбороты.Период,
	                |	ТаблОстаткиИОбороты.Регистратор,
	                |	СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток * ВТ_СтоимостьТМЦ.Цена) КАК СуммаНачальныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток * ВТ_СтоимостьТМЦ.Цена) КАК СуммаКонечныйОстаток,
	                |	СУММА(ТаблОстаткиИОбороты.КолПриход * ВТ_СтоимостьТМЦ.Цена) КАК СуммаПриход,
	                |	СУММА(ТаблОстаткиИОбороты.КолРасход * ВТ_СтоимостьТМЦ.Цена) КАК СуммаРасход
	                |{ВЫБРАТЬ
	                |	Филиал.*,
	                |	Фирма.*,
	                |	Склад.*,
	                |	Номенклатура.*,
	                |	ВариантИсполнения.*,
	                |	КПриемкеОТК,
	                |	ВесНачальныйОстаток,
	                |	ВесКонечныйОстаток,
	                |	ВесПриход,
	                |	ВесРасход,
	                |	ОбъемНачальныйОстаток,
	                |	ОбъемКонечныйОстаток,
	                |	ОбъемПриход,
	                |	ОбъемРасход,
	                |	Вес,
	                |	Объем,
	                |	Коэффициент,
	                |	Период,
	                |	Регистратор.*,
	                |	КоличествоНачальныйОстаток,
	                |	КоличествоКонечныйОстаток,
	                |	КоличествоПриход,
	                |	КоличествоРасход,
	                |	ТаблОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.* КАК ЕдИзм,
	                |	ТаблОстаткиИОбороты.ПериодДень,
	                |	ТаблОстаткиИОбороты.ПериодНеделя,
	                |	ТаблОстаткиИОбороты.ПериодДекада,
	                |	ТаблОстаткиИОбороты.ПериодМесяц,
	                |	ТаблОстаткиИОбороты.ПериодКвартал,
	                |	ТаблОстаткиИОбороты.ПериодПолугодие,
	                |	ТаблОстаткиИОбороты.ПериодГод,
	                |	СуммаНачальныйОстаток,
	                |	СуммаКонечныйОстаток,
	                |	СуммаПриход,
	                |	СуммаРасход}
	                |ИЗ
	                |	(ВЫБРАТЬ
	                |		ОстаткиТМЦОстаткиИОбороты.Филиал КАК Филиал,
	                |		ОстаткиТМЦОстаткиИОбороты.Фирма КАК Фирма,
	                |		ОстаткиТМЦОстаткиИОбороты.Склад КАК Склад,
	                |		ОстаткиТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
	                |		ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
	                |		ОстаткиТМЦОстаткиИОбороты.КПриемкеОТК КАК КПриемкеОТК,
	                |		ОстаткиТМЦОстаткиИОбороты.КолНачальныйОстаток КАК КолНачальныйОстаток,
	                |		ОстаткиТМЦОстаткиИОбороты.КолКонечныйОстаток КАК КолКонечныйОстаток,
	                |		ОстаткиТМЦОстаткиИОбороты.КолПриход КАК КолПриход,
	                |		ОстаткиТМЦОстаткиИОбороты.КолРасход КАК КолРасход,
	                |		ВЫБОР
	                |			КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес = 0
	                |				ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Вес
	                |			ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес
	                |		КОНЕЦ КАК Вес,
	                |		ВЫБОР
	                |			КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем = 0
	                |				ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Объем
	                |			ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем
	                |		КОНЕЦ КАК Объем,
	                |		ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.Коэффициент КАК Коэффициент,
	                |		ОстаткиТМЦОстаткиИОбороты.Период КАК Период,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ДЕНЬ) КАК ПериодДень,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ДЕКАДА) КАК ПериодДекада,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
	                |		НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ГОД) КАК ПериодГод,
	                |		ОстаткиТМЦОстаткиИОбороты.Регистратор КАК Регистратор
	                |	ИЗ
	                |		РегистрНакопления.ОстаткиТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Филиал).*, (Фирма).*, (Склад).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК ОстаткиТМЦОстаткиИОбороты
	                |	{ГДЕ
	                |		ОстаткиТМЦОстаткиИОбороты.Филиал.*,
	                |		ОстаткиТМЦОстаткиИОбороты.Фирма.*,
	                |		ОстаткиТМЦОстаткиИОбороты.Склад.*,
	                |		ОстаткиТМЦОстаткиИОбороты.Номенклатура.*,
	                |		ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.*,
	                |		ОстаткиТМЦОстаткиИОбороты.КПриемкеОТК,
	                |		(ВЫБОР
	                |				КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес = 0
	                |					ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Вес
	                |				ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес
	                |			КОНЕЦ) КАК Вес,
	                |		(ВЫБОР
	                |				КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем = 0
	                |					ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Объем
	                |				ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем
	                |			КОНЕЦ) КАК Объем,
	                |		ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.Коэффициент КАК Коэффициент,
	                |		ОстаткиТМЦОстаткиИОбороты.Регистратор.*,
	                |		ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.* КАК ЕдИзм}) КАК ТаблОстаткиИОбороты
	                |		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СтоимостьТМЦ КАК ВТ_СтоимостьТМЦ
	                |		ПО ТаблОстаткиИОбороты.ВариантИсполнения = ВТ_СтоимостьТМЦ.ВариантИсполнения
	                |			И ТаблОстаткиИОбороты.Номенклатура = ВТ_СтоимостьТМЦ.Номенклатура
	                |			И ТаблОстаткиИОбороты.Фирма = ВТ_СтоимостьТМЦ.Фирма
	                |{ГДЕ
	                |	(СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоНачальныйОстаток,
	                |	(СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоКонечныйОстаток,
	                |	(СУММА(ТаблОстаткиИОбороты.КолПриход / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоПриход,
	                |	(СУММА(ТаблОстаткиИОбороты.КолРасход / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоРасход,
	                |	(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ВесНачальныйОстаток,
	                |	(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ВесКонечныйОстаток,
	                |	(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолПриход) КАК ВесПриход,
	                |	(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолРасход) КАК ВесРасход,
	                |	(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ОбъемНачальныйОстаток,
	                |	(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ОбъемКонечныйОстаток,
	                |	(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолПриход) КАК ОбъемПриход,
	                |	(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолРасход) КАК ОбъемРасход,
	                |	(СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаНачальныйОстаток,
	                |	(СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаКонечныйОстаток,
	                |	(СУММА(ТаблОстаткиИОбороты.КолПриход * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаПриход,
	                |	(СУММА(ТаблОстаткиИОбороты.КолРасход * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаРасход}
	                |
	                |СГРУППИРОВАТЬ ПО
	                |	ТаблОстаткиИОбороты.Филиал,
	                |	ТаблОстаткиИОбороты.Фирма,
	                |	ТаблОстаткиИОбороты.Склад,
	                |	ТаблОстаткиИОбороты.Период,
	                |	ТаблОстаткиИОбороты.Регистратор,
	                |	ТаблОстаткиИОбороты.Номенклатура,
	                |	ТаблОстаткиИОбороты.ВариантИсполнения,
	                |	ТаблОстаткиИОбороты.КПриемкеОТК,
	                |	ТаблОстаткиИОбороты.Вес,
	                |	ТаблОстаткиИОбороты.Объем,
	                |	ТаблОстаткиИОбороты.Коэффициент
	                |{УПОРЯДОЧИТЬ ПО
	                |	Филиал.*,
	                |	Фирма.*,
	                |	Склад.*,
	                |	Номенклатура.*,
	                |	ВариантИсполнения.*,
	                |	КПриемкеОТК,
	                |	Вес,
	                |	Объем,
	                |	Период,
	                |	Регистратор.*,
	                |	ТаблОстаткиИОбороты.ПериодДень,
	                |	ТаблОстаткиИОбороты.ПериодНеделя,
	                |	ТаблОстаткиИОбороты.ПериодДекада,
	                |	ТаблОстаткиИОбороты.ПериодМесяц,
	                |	ТаблОстаткиИОбороты.ПериодКвартал,
	                |	ТаблОстаткиИОбороты.ПериодПолугодие,
	                |	ТаблОстаткиИОбороты.ПериодГод}
	                |ИТОГИ
	                |	СУММА(КоличествоНачальныйОстаток),
	                |	СУММА(КоличествоКонечныйОстаток),
	                |	СУММА(КоличествоПриход),
	                |	СУММА(КоличествоРасход),
	                |	СУММА(ВесНачальныйОстаток),
	                |	СУММА(ВесКонечныйОстаток),
	                |	СУММА(ВесПриход),
	                |	СУММА(ВесРасход),
	                |	СУММА(ОбъемНачальныйОстаток),
	                |	СУММА(ОбъемКонечныйОстаток),
	                |	СУММА(ОбъемПриход),
	                |	СУММА(ОбъемРасход),
	                |	СУММА(СуммаНачальныйОстаток),
	                |	СУММА(СуммаКонечныйОстаток),
	                |	СУММА(СуммаПриход),
	                |	СУММА(СуммаРасход)
	                |ПО
	                |	ОБЩИЕ
	                |{ИТОГИ ПО
	                |	Филиал.*,
	                |	Фирма.*,
	                |	Склад.*,
	                |	Номенклатура.*,
	                |	ВариантИсполнения.*,
	                |	КПриемкеОТК,
	                |	Период,
	                |	Регистратор.*,
	                |	ТаблОстаткиИОбороты.ПериодДень,
	                |	ТаблОстаткиИОбороты.ПериодНеделя,
	                |	ТаблОстаткиИОбороты.ПериодДекада,
	                |	ТаблОстаткиИОбороты.ПериодМесяц,
	                |	ТаблОстаткиИОбороты.ПериодКвартал,
	                |	ТаблОстаткиИОбороты.ПериодПолугодие,
	                |	ТаблОстаткиИОбороты.ПериодГод}"
Показать
Прикрепленные файлы:
ОстаткиТМЦ1.erf
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
118. bmk74 234 17.10.18 12:18 Сейчас в теме +1 $m
(100)
Я же вам написал как надо делать, и про задвоение написал в 40 посту...
Примерно то что ван надо...
ВЫБРАТЬ
                    |    СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
                    |    СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
                    |    СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
                    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
                   |   СУММА( ВЫБОР
                    |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                    |            ТОГДА 0
                    |      КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ТОГДА 
                    |         ЦеныНоменклатурыСрезПоследних.Цена
                    |       ИНАЧЕ 0
                    |      КОНЕЦ) как ЦенаОсновная
                    |   СУММА( ВЫБОР
                    |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                    |            ТОГДА 0
                    |      КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) ТОГДА
                    | ЦеныНоменклатурыСрезПоследних.Цена
                    |        ИНАЧЕ 0
                    |    КОНЕЦ КАК )Цена_Пустая
                    |ПОМЕСТИТЬ ВТ_ЦеныТМЧ
                    |ИЗ
                    |    РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
                    |        ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                    |            И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
                    |                ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка))
                    |
                    | СГРУППИРОВАТЬ ПО
                    |    СтоимостьТМЦОстаткиИОбороты.Фирма ,
                    |    СтоимостьТМЦОстаткиИОбороты.Номенклатура,
                    |    СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения,
                    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен)
|;
|////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­//////////
|ВЫБРАТЬ
                    |    ЦеныТМЦ.Фирма КАК Фирма,
                    |    ЦеныТМЦ.Номенклатура КАК Номенклатура,
                    |    ЦеныТМЦ.ВариантИсполнения КАК ВариантИсполнения,
                    |    ЦеныТМЦ.ТипЦен КАК типЦен,
                   |   ВЫБОР
                    |        КОГДА ЦеныТМЦ.ЦенаОсновная > 0 
                    |            ТОГДА ЦеныТМЦ.ЦенаОсновная
                    |      ИНАЧЕ
                    |         ЦеныТМЦ.ЦенаПустая
                    |      КОНЕЦ как Цена
                    |ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
                    |ИЗ
                    |    ВТ_ЦеныТМЧ КАК ЦеныТМЦ
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. bmk74 234 15.10.18 16:10 Сейчас в теме
(1)
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения

Это поле добавленное, в стандартной ЕРП нет такого ?
И вот это, вы в общем то исключаете все где вариант исполнения не равно ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
а до этого выбираете эти цены
ВариантИсполнения <> ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)

Взаимисключение так как у вас в результирующей таблице либо NULL будет либо заполнен вариантИсполнения...

Уберите его
|    И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
7. user1008893 15.10.18 16:13 Сейчас в теме
10. bmk74 234 15.10.18 16:17 Сейчас в теме
(7)Выше написал, условие неправильное наложено
9. user1008893 15.10.18 16:17 Сейчас в теме
(5)Убрала,теперь считается сумма,но только для тех у кого вариант исключения заполнен
14. bmk74 234 15.10.18 16:23 Сейчас в теме
(9)Попробуйте так, если я вас правильно понял

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

                    |
                    |ИНДЕКСИРОВАТЬ ПО
                    |    Фирма,
                    |    Номенклатура,
                    |    ВариантИсполнения
                    |;
Показать
25. YannikAlx 43 15.10.18 16:40 Сейчас в теме
(14) Кто-то рассказывал про супервредность ИЛИ.... ;-)))))))
27. YannikAlx 43 15.10.18 16:48 Сейчас в теме
(14) Может

ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения=Неопределено)
2. starjevschik 15.10.18 15:46 Сейчас в теме
круто. Просто небольшой совет:
1) осознать, в какой конифгурации это делается
2) взять консоль запросов и посмотреть, что возвращают промежуточные запросы
3) ну и конечно понять, что значит "не выводится", вполне вероятно, что проблема вовсе не в запросе, а до или после него.
3. user1008893 15.10.18 15:51 Сейчас в теме
(2)проблема в запросе,уже все перепробовала. В ERP. У некоторой номенклатуры в цене не заполнен вариант исполнения. Поэтому он не берет цену. Не знаю как решить эту проблему.
4. YannikAlx 43 15.10.18 15:58 Сейчас в теме
6. YannikAlx 43 15.10.18 16:11 Сейчас в теме
Неужели думаете , что новая тема-двойник - решит проблему?
8. user1008893 15.10.18 16:14 Сейчас в теме
(6)Я же говорю уже все перепробовала,не получается и все
11. bmk74 234 15.10.18 16:18 Сейчас в теме
Скажите что нужно получить ?
12. user1008893 15.10.18 16:21 Сейчас в теме
(11)Надо получить сумму. Взять из регистра сведений цену и умножить на количество. Но бывает так,что Вариант исполнения не заполнен,но цену надо взять
Прикрепленные файлы:
16. bmk74 234 15.10.18 16:24 Сейчас в теме
(12)
Взять из регистра сведений цену и умножить на количество. Но бывает так,что Вариант исполнения не заполнен,но цену надо взять

А ну так запрос повыше вам привел..вроде то что нужно
17. user1008893 15.10.18 16:27 Сейчас в теме
(16)так тоже считается сумма,но только у тех у кого вариант исполнения заполнен
15. user1008893 15.10.18 16:24 Сейчас в теме
(11)А сейчас считается только у тех,у кого вариант исполнения заполнен
Прикрепленные файлы:
19. bmk74 234 15.10.18 16:35 Сейчас в теме
(15)
сейчас считается только у тех,у кого вариант исполнения заполнен


С моим запросом ? только у тех у кого заполнено ?
20. user1008893 15.10.18 16:35 Сейчас в теме
24. bmk74 234 15.10.18 16:39 Сейчас в теме
(20)Добавте в запрос
|             ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = НЕОПРЕДЕЛЕНО

У вас либо это поле составного типа в регистре, так как если бы там была пустая ссылка то он бы показал цену
21. bmk74 234 15.10.18 16:36 Сейчас в теме
(15)У вас в регистре это поле не составное ?,
22. user1008893 15.10.18 16:38 Сейчас в теме
(21)нет
Прикрепленные файлы:
26. bmk74 234 15.10.18 16:42 Сейчас в теме
(22)Так это не тот регистр или вам нужно если в данном регистре пустое ?, блин тогда поменяйте просто
 |             ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)

На
  |             ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)


Я думал у вас в регистре ТМЦ поля есть незаполненные
28. user1008893 15.10.18 16:48 Сейчас в теме
29. user1008893 15.10.18 16:51 Сейчас в теме
(26)завис на получении данных,жду теперь
30. user1008893 15.10.18 16:59 Сейчас в теме
(26)блин,не может выполнить Виснет и все. О.Написал Недостаточно памяти
31. user1008893 15.10.18 17:03 Сейчас в теме
(26)Вот цену не берет,потому что вариант исполнения не равен
Прикрепленные файлы:
32. user1008893 15.10.18 17:05 Сейчас в теме
(26)ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка))
Если так,то недостаточно памяти
33. bmk74 234 15.10.18 17:06 Сейчас в теме
(32)
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения

У вас ВариантыИсполнения Это Измерение ?
34. user1008893 15.10.18 17:07 Сейчас в теме
38. bmk74 234 15.10.18 17:59 Сейчас в теме
(34) Еще как вариант, возможно где то ошибки в запросе
ВЫБРАТЬ
                    |    СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
                    |    СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
                    |    СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
                    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
                    |   СУММА( ВЫБОР
                    |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                    |            ТОГДА 0
                    |      КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ТОГДА 
                    |         ЦеныНоменклатурыСрезПоследних.Цена
                    |       ИНАЧЕ 0
                    |      КОНЕЦ) как ЦенаОсновная
                    |   СУММА( ВЫБОР
                    |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                    |            ТОГДА 0
                    |      КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) ТОГДА
                    | ЦеныНоменклатурыСрезПоследних.Цена
                    |        ИНАЧЕ 0
                    |    КОНЕЦ КАК )Цена_Пустая
                    |ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
                    |ИЗ
                    |    РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    |                &ДатаКон,
                    |                ТипЦен = &ТипЦен
                    |                  ) КАК ЦеныНоменклатурыСрезПоследних
                    |        ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
|СГРУППИРОВАТЬ ПО
 |    СтоимостьТМЦОстаткиИОбороты.Фирма ,
                    |    СтоимостьТМЦОстаткиИОбороты.Номенклатура ,
                    |    СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ,
                    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен)
Показать
42. user1008893 16.10.18 08:09 Сейчас в теме
(38)Так задваивает количество
36. bmk74 234 15.10.18 17:30 Сейчас в теме
(32)Тэкс, вам тогда надо сначала сделать запрос, к ценам и получить цены с вариантами и соответственно с пустыми вариантами, что бы исключить те у которых есть варианты... Можно попробовать вот этот вариант

|ВЫБРАТЬ РАЗЛИЧНЫЕ
|Цены.Номенклатура,
|МАКСИМУМ(Цены.ВариантИсполнения) КАК ВариантИсполнения,
|Цены.ТипЦен
|ПОМЕСТИТЬ ВТ_ПустыеЦены
|РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    |                &ДатаКон,
                    |                ТипЦен = &ТипЦен
                    |                    ) КАК Цены
|Сгруппировать ПО
|Цены.Номенклатура,
|Цены.ТипЦен
|ИМЕЮЩИЕ  МАКСИМУМ(Цены.ВариантИсполнения) = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
;
|////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­/
ВЫБРАТЬ
                    |    СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
                    |    СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
                    |    СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
                    |    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
                    |    ВЫБОР
                    |        КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
                    |            ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0)
                    |        ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
                    |    КОНЕЦ КАК Цена
                    |ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
                    |ИЗ
                    |    РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
                    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    |                &ДатаКон,
                    |                ТипЦен = &ТипЦен
                    |                  ) КАК ЦеныНоменклатурыСрезПоследних
                    |        ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                    |            И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
                    |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                    |                &ДатаКон,
                    |               ТипЦен = &ТипЦен
                    |               И Номенклатура В ( ВЫБРАТЬ ВТ_ПустыеЦены.Номенклатура ИЗ ВТ_ПустыеЦены)
                    |                  ) КАК ЦеныНоменклатурыСрезПоследних1
                    |        ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура

                    |
                    |ИНДЕКСИРОВАТЬ ПО
                    |    Фирма,
                    |    Номенклатура,
                    |    ВариантИсполнения
Показать
43. user1008893 16.10.18 09:04 Сейчас в теме
13. YannikAlx 43 15.10.18 16:21 Сейчас в теме
18. bmk74 234 15.10.18 16:31 Сейчас в теме
(13)Деньги зарабатывете ?
23. YannikAlx 43 15.10.18 16:38 Сейчас в теме
нет. Пишу эмоциональные тексты, потом понимаю, что написал лишнего... Удалить невозможно - пытаюсь менять в безобидные по тексту...
35. YannikAlx 43 15.10.18 17:10 Сейчас в теме
Вот этот запрос выдает что либо разумное?
Лучше выбрать период поменьше...


ВЫБРАТЬ           
                       СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
                       СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
                       ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
                       ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)  КАК Цена
                    ИЗ
                         РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
                            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
                                   &ДатаКон,
                                    ТипЦен = &ТипЦен
                                         ) КАК ЦеныНоменклатурыСрезПоследних
                            ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                                И  ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
37. user1008893 15.10.18 17:59 Сейчас в теме
41. user1008893 16.10.18 07:56 Сейчас в теме
(35)ваш запрос работает,но считает сумму только для тех у кого не заполнен вариант исполнения
46. YannikAlx 43 16.10.18 12:31 Сейчас в теме
(41) Отлично!
А так должен показывать все цены


ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) 

Объединить все

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И НЕ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения=ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) 
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
Показать
49. user1008893 16.10.18 12:48 Сейчас в теме
(46)а вот и нет,теперь считает только для тех у кого вариант исполнения заполнен
53. YannikAlx 43 16.10.18 14:11 Сейчас в теме
(49) Попробуйте - если ничего не выдаст вообще , значит у вас в принципе нет стоимости , если Вариант не заполнен.
И значит предыдущий запрос работает корректно ибо "считает только для тех у кого вариант исполнения заполнен", поскольку если вариант не заполнен , то нет стоимости и сумма будут 0.

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
54. user1008893 16.10.18 14:14 Сейчас в теме
(53) вообще сумму не считает
55. YannikAlx 43 16.10.18 14:23 Сейчас в теме
(54) Во первых не сумму - в этом запросе нет суммы. Мы смотрим просто наличие записей стоимости.
И то что он не показал ее именно и говорит, что НЕТУ у вас в регистре СтоимостьТМЦ нету никкаких записей при вариенте отсутствующем ВариантИсполнения
То есть сумма будет равна 0 по любому
57. user1008893 16.10.18 14:33 Сейчас в теме
(55)да, не выдает цену.
Прикрепленные файлы:
39. YannikAlx 43 15.10.18 18:23 Сейчас в теме
Попробовал проанализировать изменения в конфигурацию под ВариантыИсполнения.
И в голове не укладывается , зачем было столько переписывать, вместо того чтобы создать Характеристику Номенклатуры ВариантИсполнения, которая бы принимала значения те же что в справочнике.

Может я совершенно туплю?
40. bmk74 234 15.10.18 18:43 Сейчас в теме
(39)Хуже всего что это в виды цен еще добавили, и теперь виды цен должны быть обязательно заполнено это поле
т.е по срезу последних по идее мы должны полуичить либо Номенклатура, ТипЦены,ВариантИсполнения И вот здесь если мы ставим отбор на тип цены , мы можем получит дофига записей( номенклатура, ВариантИсполнения ), почему или не срабатывает ? ,вот что удивляет т.е соединение идеТ по номенклатуре, но следующее условие должно отработать соеденить должно либо по варианту ВариантИсполнения равен, ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) хотя по идее в ЦеныНоменклатурыСрезПоследних мы можем получить как и наш вариант так и пустую ссылку,и соединит по двум записям как минимум(А ТАК И БУДЕТ потому как если раньше цены заполняли без варианта то в любом случае он получит пустую ссылку), но все равно не понятно почему памяти не хватает ну максимум задвоит записи ( возможно нужно просто скобками обрамить условие
И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)). да а то без скобок он скорее всего считает два первых условия должны выполняться, ИЛИ последнее, что не правильно...
Так мысли вслух
И Посему, в принципе если поставить скобки то запрос отработает, но записи как минимум будут задвоены, и поэтому нужно будет еще условие ВЫБОР ставить и делить цену на два поля, типа как в последнем запросе, и далее вытяшивать если первое поле не нуль то его иначе второе поле...блин гемор еще тот
44. user1008893 16.10.18 10:23 Сейчас в теме
(40)Все хорошо,но только у данной номенклатуры задваивается количество.
ВЫБРАТЬ
	                |	СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
	                |	СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
	                |	СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
	                |	ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
	                |	ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
	                |ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
	                |ИЗ
	                |	РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
	                |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
	                |		ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
	                |			И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
	                |				ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка))
	                |
Показать

В этой номенклатуре он должен брать 2 строку,т.е.Цены нет
Прикрепленные файлы:
45. YannikAlx 43 16.10.18 11:52 Сейчас в теме
(40) Будьте оптимистом!
И как минимум радуйтесь, что не в ваших базах такой "гемор"...
Одно дело помогать на этом форуме, и совсем другое - разгребать чужие бредовые писалки.

Я попробовал у себя в тестовой базе добавить справочник, и т д и тп. чтобы удобнее было на своей базе настраивать запрос.
Так ведь надо еще всю логику проведения изменять! Плюнул.

Хоть посмотреть бы на того деятеля, кто все это придумал там.
72. YannikAlx 43 16.10.18 15:42 Сейчас в теме
(40) а откуда вы сделали вывод про виды цен? я не нашел ...
47. vadim1011985 100 16.10.18 12:33 Сейчас в теме
Не легче ли сделать отдельно временную таблицу с ценами номенклатуры ?

,
48. YannikAlx 43 16.10.18 12:45 Сейчас в теме
(47) таблица ТОЛЬКО с ценами смысла не имеет - ибо они прекрасно берутся из регистра, а вот цены со стоимостью мы и пытаемся сделать
так вот ее то и делаем в (46)
Ее тоже не так-то просто в этой конфе сделать...
50. vadim1011985 100 16.10.18 13:09 Сейчас в теме
(48) Если бы надо было брать цены только по типу цен - то да левым соединение все достается . но тут есть условия по заполненности или незаполненности варианта заполнения см. (44) , поэтому имеет смысл подготовить таблицу с финальными ценами , а не использовать объединение со сложным условием по соединению
51. user1008893 16.10.18 13:27 Сейчас в теме
(50) в (36) ведь есть. Но количество задваивается.
52. YannikAlx 43 16.10.18 14:05 Сейчас в теме
(50) Ну так где же ваша таблица?
56. vadim1011985 100 16.10.18 14:27 Сейчас в теме
(52) я разве говорил , что ее предоставлю ? Я предложил вариант, что нужна таблица с уже подготовленными ценами. В (36) возможно задваивает из -за двойного левого соединения и надо проверять через консольку запросов.
58. YannikAlx 43 16.10.18 14:33 Сейчас в теме
(56) ааа ну ясно, чистый теоретик...
тут нужны практики.
64. vadim1011985 100 16.10.18 15:05 Сейчас в теме
(58) А вот язвить не надо , вроде все культурные люди , и пытаемся помочь , и тут же ловлю претензию от Вас что я что-то должен . Я что-то предложил - Вы возразили - я ответил - не согласны Ок - переживу , Не вам оценивать мои знания. Я написал то, что считал нужным.
59. YannikAlx 43 16.10.18 14:38 Сейчас в теме
Трудно конечно при отсутствии у себя подобной конфигурации что-то оперативно менять...
Пожалуйста покажите что вот этот выдаст

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура 
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)

Упорядочить по
Номенклатура
Показать
60. user1008893 16.10.18 14:41 Сейчас в теме
(59)Цена для тех у кого вариант исполнения не заполнен
Прикрепленные файлы:
61. YannikAlx 43 16.10.18 14:56 Сейчас в теме
Очень странный результат , хочу посмотреть , совпадают ли у вас варианты в 2 регистрах

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
62. user1008893 16.10.18 15:01 Сейчас в теме
(61)также,только для тех у кого вариант исполнения не заполнен
Прикрепленные файлы:
65. vadim1011985 100 16.10.18 15:21 Сейчас в теме
(62) может последнее условие В соединении переделать
ВЫБОР КОГДА  ЦеныНоменклатурыСрезПоследних.ВариантИсполнения <> Значение (Справочник. ВариантыИсполнения.ПустаяСсылка) ТОГДА 
СтоимостьТМЦОстаткиОбороты.вариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения) 
ИНАЧЕ 
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = Значение (Справочник. ВариантыИсполнения.ПустаяСсылка)
КОНЕЦ
68. user1008893 16.10.18 15:31 Сейчас в теме
71. vadim1011985 100 16.10.18 15:39 Сейчас в теме
(68) соединение по условию в (62) у вас пример запроса так вот вместо последний строки напишите этот код (после союза И)
73. user1008893 16.10.18 15:44 Сейчас в теме
(71)Не могу понять из за чего
Прикрепленные файлы:
76. YannikAlx 43 16.10.18 15:55 Сейчас в теме
(71) вы поймите, проще привести запрос целиком , чем рассказывать на словах что и где заменить...
63. user1008893 16.10.18 15:04 Сейчас в теме
66. YannikAlx 43 16.10.18 15:21 Сейчас в теме
(63) нет - в последнем 2 вариантаисполнения - из каждого регистра
И видно что мы по прежднему не можем составить нормальную таблицу цен...
Варианты исполнений должны совпадать
Пробуем так

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

Где ЦеныНоменклатурыСрезПоследних.ВариантИсполнения=ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
67. user1008893 16.10.18 15:30 Сейчас в теме
69. YannikAlx 43 16.10.18 15:36 Сейчас в теме
Может вы скажете, ГДЕ тот программист, который все ЭТО придумал?
Ему точно будет плохо спаться.....
Проще наверное вернуть к нормальному варианту с Характеристиками Номенклатуры...
70. user1008893 16.10.18 15:37 Сейчас в теме
(69)не знаю этого программиста,К сожалению(((
74. vadim1011985 100 16.10.18 15:47 Сейчас в теме
скобку в конце убрать
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения ) - эту скобку убрать
75. user1008893 16.10.18 15:55 Сейчас в теме
(74)Считает у всех,но у тех у кого 2 записи цены,то задваивает количество
77. vadim1011985 100 16.10.18 16:07 Сейчас в теме
(75) а можно результат в консоли увидеть
78. user1008893 16.10.18 16:14 Сейчас в теме
(77)вот
Прикрепленные файлы:
79. YannikAlx 43 16.10.18 16:18 Сейчас в теме
Покажте вот тут что задваивает?

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолНачальныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения <> Значение (Справочник. ВариантыИсполнения.ПустаяСсылка) ТОГДА
ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ИНАЧЕ
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = Значение (Справочник. ВариантыИсполнения.ПустаяСсылка)
КОНЕЦ
80. user1008893 16.10.18 16:20 Сейчас в теме
(79) вот эта номенклатура
Прикрепленные файлы:
81. YannikAlx 43 16.10.18 16:24 Сейчас в теме
(80) забыли пристегнуть....
Мне еще пожалуйста результат моего запроса также
82. user1008893 16.10.18 16:31 Сейчас в теме
(81)
Прикрепленные файлы:
83. user1008893 16.10.18 16:35 Сейчас в теме
(81)Вот где задваивает
Прикрепленные файлы:
84. YannikAlx 43 16.10.18 16:39 Сейчас в теме
Спасибо - вот последняя даст мощный прирост мыслительному процессу!
Думаем....
85. YannikAlx 43 16.10.18 16:48 Сейчас в теме
Задвоенность однозначно по причине добавки с "выбором"
Добавку убрал...
Показывайте

ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения


Упорядочить по
Номенклатура
86. YannikAlx 43 16.10.18 16:50 Сейчас в теме
Цель последнего запроса выяснить есть ли у вас в регистре СтоимостьТМЦОстаткиОбороты типцен...
Подозреваю что будет ругаться...
87. user1008893 16.10.18 16:59 Сейчас в теме
88. YannikAlx 43 16.10.18 17:00 Сейчас в теме
У вас у большлго количества товаров установлены цены БЕЗ ВариантаИсполнения, при том что остатки существуют именно с Вариантами...
Мы пытаемся сейчас связать по ходу несвязываемое...
Сами посудите есть Шкаф скажем зеленый 3 шт и красный 2 шт (по варианту) , а цены установлены на Шкаф 1000рублей (А вариант не указан)

Что по вашему вы должны получить?
90. user1008893 16.10.18 17:03 Сейчас в теме
93. YannikAlx 43 16.10.18 17:05 Сейчас в теме
(90) с чего это вдруг?
Мы связываем по ВариантуИсполнения и если в остатках НЕТУ Шкафа без вариантов - зачем вам цена несуществующего шкафа?
89. YannikAlx 43 16.10.18 17:00 Сейчас в теме
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения

Упорядочить по
Номенклатура
91. YannikAlx 43 16.10.18 17:04 Сейчас в теме
там где цен нету для каждого варианта вы и увидите либо 0 в стоимости , потому как 3х0=0 и 2х0=0

Покажите последний запрос
92. user1008893 16.10.18 17:05 Сейчас в теме
(91)
Прикрепленные файлы:
94. YannikAlx 43 16.10.18 17:11 Сейчас в теме
Вот абсолютно корректные данные!
Вы согласны?
Попробуйте сами проанализировать...

Там где цена не установлена для конкретного ВариантаИсполнения - ее естественно и НЕТ .
Присутствует надпись - что Цены нет, Совсем нет.
То есть для всех этих товаров смысл стоимости не существует...
В формулу вычисления стоимости нечего подставить кроме 0
95. user1008893 16.10.18 17:14 Сейчас в теме
(94)понятно,но с меня хотят,чтобы если варианта исполнения нет,тогда цена берется без варианта исполнения
97. YannikAlx 43 16.10.18 17:20 Сейчас в теме
(95) давайте для начала добьемся КОРРЕКТНОЙ работы!
А потом уже будем думать КАК сделать так как они хотят...
98. YannikAlx 43 16.10.18 17:21 Сейчас в теме
(95) а вашу задачу я понял в деталях - справимся!
96. YannikAlx 43 16.10.18 17:19 Сейчас в теме
Дальше можно этот запрос вставить в свою обработку - вы получите корректные данные.
То есть получите стоимость только того товара на который установлены цены



ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ГДЕ НЕ ЦеныНоменклатурыСрезПоследних.ТипЦен ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Фирма,
Номенклатура,
ВариантИсполнения
;
99. YannikAlx 43 16.10.18 17:24 Сейчас в теме
Я исправил небольшую ошибку в последнем запросе
100. user1008893 16.10.18 17:29 Сейчас в теме
(99)это запрос выводит просто нереальное количество у той номенклатуры которая с вариантом исполнения. а для других ничего не считает
Оставьте свое сообщение

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