Ребят,уже неделю с этим мучаюсь. Может кто поможет? Не выводится сумма.
мТекстЗапроса = "ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| ВЫБОР
| КОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) = 0
| ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
| КОНЕЦ КАК Цена
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| И ВариантИсполнения <> ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| И ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)) КАК ЦеныНоменклатурыСрезПоследних1
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
|ГДЕ
| ЦеныНоменклатурыСрезПоследних.ТипЦен = &ТипЦен
| И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
|
|ИНДЕКСИРОВАТЬ ПО
| Фирма,
| Номенклатура,
| ВариантИсполнения
|;
|
|//////////////////////////////////////////////////////////// ////////////////////
|ВЫБРАТЬ
| ТаблОстаткиИОбороты.Филиал,
| ТаблОстаткиИОбороты.Фирма,
| ТаблОстаткиИОбороты.Склад,
| ТаблОстаткиИОбороты.Номенклатура,
| ТаблОстаткиИОбороты.ВариантИсполнения,
| ТаблОстаткиИОбороты.КПриемкеОТК,
| СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоНачальныйОстаток,
| СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоКонечныйОстаток,
| СУММА(ТаблОстаткиИОбороты.КолПриход / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоПриход,
| СУММА(ТаблОстаткиИОбороты.КолРасход / ТаблОстаткиИОбороты.Коэффициент) КАК КоличествоРасход,
| СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ВесНачальныйОстаток,
| СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ВесКонечныйОстаток,
| СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолПриход) КАК ВесПриход,
| СУММА(ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолРасход) КАК ВесРасход,
| СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ОбъемНачальныйОстаток,
| СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ОбъемКонечныйОстаток,
| СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолПриход) КАК ОбъемПриход,
| СУММА(ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолРасход) КАК ОбъемРасход,
| ТаблОстаткиИОбороты.Вес,
| ТаблОстаткиИОбороты.Объем,
| ТаблОстаткиИОбороты.Коэффициент,
| ТаблОстаткиИОбороты.Период,
| ТаблОстаткиИОбороты.Регистратор,
| СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток * ВТ_СтоимостьТМЦ.Цена) КАК СуммаНачальныйОстаток,
| СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток * ВТ_СтоимостьТМЦ.Цена) КАК СуммаКонечныйОстаток,
| СУММА(ТаблОстаткиИОбороты.КолПриход * ВТ_СтоимостьТМЦ.Цена) КАК СуммаПриход,
| СУММА(ТаблОстаткиИОбороты.КолРасход * ВТ_СтоимостьТМЦ.Цена) КАК СуммаРасход
|{ВЫБРАТЬ
| Филиал.*,
| Фирма.*,
| Склад.*,
| Номенклатура.*,
| ВариантИсполнения.*,
| КПриемкеОТК,
| ВесНачальныйОстаток,
| ВесКонечныйОстаток,
| ВесПриход,
| ВесРасход,
| ОбъемНачальныйОстаток,
| ОбъемКонечныйОстаток,
| ОбъемПриход,
| ОбъемРасход,
| Вес,
| Объем,
| Коэффициент,
| Период,
| Регистратор.*,
| КоличествоНачальныйОстаток,
| КоличествоКонечныйОстаток,
| КоличествоПриход,
| КоличествоРасход,
| ТаблОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.* КАК ЕдИзм,
| ТаблОстаткиИОбороты.ПериодДень,
| ТаблОстаткиИОбороты.ПериодНеделя,
| ТаблОстаткиИОбороты.ПериодДекада,
| ТаблОстаткиИОбороты.ПериодМесяц,
| ТаблОстаткиИОбороты.ПериодКвартал,
| ТаблОстаткиИОбороты.ПериодПолугодие,
| ТаблОстаткиИОбороты.ПериодГод,
| СуммаНачальныйОстаток,
| СуммаКонечныйОстаток,
| СуммаПриход,
| СуммаРасход}
|ИЗ
| (ВЫБРАТЬ
| ОстаткиТМЦОстаткиИОбороты.Филиал КАК Филиал,
| ОстаткиТМЦОстаткиИОбороты.Фирма КАК Фирма,
| ОстаткиТМЦОстаткиИОбороты.Склад КАК Склад,
| ОстаткиТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ОстаткиТМЦОстаткиИОбороты.КПриемкеОТК КАК КПриемкеОТК,
| ОстаткиТМЦОстаткиИОбороты.КолНачальныйОстаток КАК КолНачальныйОстаток,
| ОстаткиТМЦОстаткиИОбороты.КолКонечныйОстаток КАК КолКонечныйОстаток,
| ОстаткиТМЦОстаткиИОбороты.КолПриход КАК КолПриход,
| ОстаткиТМЦОстаткиИОбороты.КолРасход КАК КолРасход,
| ВЫБОР
| КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес = 0
| ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Вес
| ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес
| КОНЕЦ КАК Вес,
| ВЫБОР
| КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем = 0
| ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Объем
| ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем
| КОНЕЦ КАК Объем,
| ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.Коэффициент КАК Коэффициент,
| ОстаткиТМЦОстаткиИОбороты.Период КАК Период,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ДЕНЬ) КАК ПериодДень,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, НЕДЕЛЯ) КАК ПериодНеделя,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ДЕКАДА) КАК ПериодДекада,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, МЕСЯЦ) КАК ПериодМесяц,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, КВАРТАЛ) КАК ПериодКвартал,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
| НАЧАЛОПЕРИОДА(ОстаткиТМЦОстаткиИОбороты.Период, ГОД) КАК ПериодГод,
| ОстаткиТМЦОстаткиИОбороты.Регистратор КАК Регистратор
| ИЗ
| РегистрНакопления.ОстаткиТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор {(&Периодичность)}, , {(Филиал).*, (Фирма).*, (Склад).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК ОстаткиТМЦОстаткиИОбороты
| {ГДЕ
| ОстаткиТМЦОстаткиИОбороты.Филиал.*,
| ОстаткиТМЦОстаткиИОбороты.Фирма.*,
| ОстаткиТМЦОстаткиИОбороты.Склад.*,
| ОстаткиТМЦОстаткиИОбороты.Номенклатура.*,
| ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.*,
| ОстаткиТМЦОстаткиИОбороты.КПриемкеОТК,
| (ВЫБОР
| КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес = 0
| ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Вес
| ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Вес
| КОНЕЦ) КАК Вес,
| (ВЫБОР
| КОГДА ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем = 0
| ТОГДА ОстаткиТМЦОстаткиИОбороты.Номенклатура.Объем
| ИНАЧЕ ОстаткиТМЦОстаткиИОбороты.ВариантИсполнения.Объем
| КОНЕЦ) КАК Объем,
| ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.Коэффициент КАК Коэффициент,
| ОстаткиТМЦОстаткиИОбороты.Регистратор.*,
| ОстаткиТМЦОстаткиИОбороты.Номенклатура.БазоваяЕдИзм.* КАК ЕдИзм}) КАК ТаблОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СтоимостьТМЦ КАК ВТ_СтоимостьТМЦ
| ПО ТаблОстаткиИОбороты.ВариантИсполнения = ВТ_СтоимостьТМЦ.ВариантИсполнения
| И ТаблОстаткиИОбороты.Номенклатура = ВТ_СтоимостьТМЦ.Номенклатура
| И ТаблОстаткиИОбороты.Фирма = ВТ_СтоимостьТМЦ.Фирма
|{ГДЕ
| (СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоНачальныйОстаток,
| (СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоКонечныйОстаток,
| (СУММА(ТаблОстаткиИОбороты.КолПриход / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоПриход,
| (СУММА(ТаблОстаткиИОбороты.КолРасход / ТаблОстаткиИОбороты.Коэффициент)) КАК КоличествоРасход,
| (ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ВесНачальныйОстаток,
| (ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ВесКонечныйОстаток,
| (ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолПриход) КАК ВесПриход,
| (ТаблОстаткиИОбороты.Вес * ТаблОстаткиИОбороты.КолРасход) КАК ВесРасход,
| (ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолНачальныйОстаток) КАК ОбъемНачальныйОстаток,
| (ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолКонечныйОстаток) КАК ОбъемКонечныйОстаток,
| (ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолПриход) КАК ОбъемПриход,
| (ТаблОстаткиИОбороты.Объем * ТаблОстаткиИОбороты.КолРасход) КАК ОбъемРасход,
| (СУММА(ТаблОстаткиИОбороты.КолНачальныйОстаток * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаНачальныйОстаток,
| (СУММА(ТаблОстаткиИОбороты.КолКонечныйОстаток * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаКонечныйОстаток,
| (СУММА(ТаблОстаткиИОбороты.КолПриход * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаПриход,
| (СУММА(ТаблОстаткиИОбороты.КолРасход * ВТ_СтоимостьТМЦ.Цена)) КАК СуммаРасход}
|
|СГРУППИРОВАТЬ ПО
| ТаблОстаткиИОбороты.Филиал,
| ТаблОстаткиИОбороты.Фирма,
| ТаблОстаткиИОбороты.Склад,
| ТаблОстаткиИОбороты.Период,
| ТаблОстаткиИОбороты.Регистратор,
| ТаблОстаткиИОбороты.Номенклатура,
| ТаблОстаткиИОбороты.ВариантИсполнения,
| ТаблОстаткиИОбороты.КПриемкеОТК,
| ТаблОстаткиИОбороты.Вес,
| ТаблОстаткиИОбороты.Объем,
| ТаблОстаткиИОбороты.Коэффициент
|{УПОРЯДОЧИТЬ ПО
| Филиал.*,
| Фирма.*,
| Склад.*,
| Номенклатура.*,
| ВариантИсполнения.*,
| КПриемкеОТК,
| Вес,
| Объем,
| Период,
| Регистратор.*,
| ТаблОстаткиИОбороты.ПериодДень,
| ТаблОстаткиИОбороты.ПериодНеделя,
| ТаблОстаткиИОбороты.ПериодДекада,
| ТаблОстаткиИОбороты.ПериодМесяц,
| ТаблОстаткиИОбороты.ПериодКвартал,
| ТаблОстаткиИОбороты.ПериодПолугодие,
| ТаблОстаткиИОбороты.ПериодГод}
|ИТОГИ
| СУММА(КоличествоНачальныйОстаток),
| СУММА(КоличествоКонечныйОстаток),
| СУММА(КоличествоПриход),
| СУММА(КоличествоРасход),
| СУММА(ВесНачальныйОстаток),
| СУММА(ВесКонечныйОстаток),
| СУММА(ВесПриход),
| СУММА(ВесРасход),
| СУММА(ОбъемНачальныйОстаток),
| СУММА(ОбъемКонечныйОстаток),
| СУММА(ОбъемПриход),
| СУММА(ОбъемРасход),
| СУММА(СуммаНачальныйОстаток),
| СУММА(СуммаКонечныйОстаток),
| СУММА(СуммаПриход),
| СУММА(СуммаРасход)
|ПО
| ОБЩИЕ
|{ИТОГИ ПО
| Филиал.*,
| Фирма.*,
| Склад.*,
| Номенклатура.*,
| ВариантИсполнения.*,
| КПриемкеОТК,
| Период,
| Регистратор.*,
| ТаблОстаткиИОбороты.ПериодДень,
| ТаблОстаткиИОбороты.ПериодНеделя,
| ТаблОстаткиИОбороты.ПериодДекада,
| ТаблОстаткиИОбороты.ПериодМесяц,
| ТаблОстаткиИОбороты.ПериодКвартал,
| ТаблОстаткиИОбороты.ПериодПолугодие,
| ТаблОстаткиИОбороты.ПериодГод}"
ПоказатьПрикрепленные файлы:
ОстаткиТМЦ1.erf
По теме из базы знаний
- Анализ деятельности компании. Универсальный отчет для обычного приложения (УТ10.3, КА1, УПП и пр.)
- Учет и сверка Z-Отчетов ККМ в 1С
- Отчеты ЗУП. Решения всех отчетов из сборника задач для подготовки к Специалист-консультант ЗУП с картинками
- Попытки обвеса покупателей: отчет для Розницы 2.3
- Доработка типового отчета на СКД с помощью расширения
Найденные решения
(100)
Я же вам написал как надо делать, и про задвоение написал в 40 посту...
Примерно то что ван надо...
Я же вам написал как надо делать, и про задвоение написал в 40 посту...
Примерно то что ван надо...
ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| СУММА( ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ТОГДА
| ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ 0
| КОНЕЦ) как ЦенаОсновная
| СУММА( ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) ТОГДА
| ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ 0
| КОНЕЦ КАК )Цена_Пустая
|ПОМЕСТИТЬ ВТ_ЦеныТМЧ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка))
|
| СГРУППИРОВАТЬ ПО
| СтоимостьТМЦОстаткиИОбороты.Фирма ,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен)
|;
|//////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// //////////
|ВЫБРАТЬ
| ЦеныТМЦ.Фирма КАК Фирма,
| ЦеныТМЦ.Номенклатура КАК Номенклатура,
| ЦеныТМЦ.ВариантИсполнения КАК ВариантИсполнения,
| ЦеныТМЦ.ТипЦен КАК типЦен,
| ВЫБОР
| КОГДА ЦеныТМЦ.ЦенаОсновная > 0
| ТОГДА ЦеныТМЦ.ЦенаОсновная
| ИНАЧЕ
| ЦеныТМЦ.ЦенаПустая
| КОНЕЦ как Цена
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| ВТ_ЦеныТМЧ КАК ЦеныТМЦ
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1)
Это поле добавленное, в стандартной ЕРП нет такого ?
И вот это, вы в общем то исключаете все где вариант исполнения не равно ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
а до этого выбираете эти цены
Взаимисключение так как у вас в результирующей таблице либо NULL будет либо заполнен вариантИсполнения...
Уберите его
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
Это поле добавленное, в стандартной ЕРП нет такого ?
И вот это, вы в общем то исключаете все где вариант исполнения не равно ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
а до этого выбираете эти цены
ВариантИсполнения <> ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Взаимисключение так как у вас в результирующей таблице либо NULL будет либо заполнен вариантИсполнения...
Уберите его
| И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
(9)Попробуйте так, если я вас правильно понял
ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| )) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
|
|ИНДЕКСИРОВАТЬ ПО
| Фирма,
| Номенклатура,
| ВариантИсполнения
|;
Показать
(14) Может
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения=Неопределено)
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения=Неопределено)
круто. Просто небольшой совет:
1) осознать, в какой конифгурации это делается
2) взять консоль запросов и посмотреть, что возвращают промежуточные запросы
3) ну и конечно понять, что значит "не выводится", вполне вероятно, что проблема вовсе не в запросе, а до или после него.
1) осознать, в какой конифгурации это делается
2) взять консоль запросов и посмотреть, что возвращают промежуточные запросы
3) ну и конечно понять, что значит "не выводится", вполне вероятно, что проблема вовсе не в запросе, а до или после него.
(22)Так это не тот регистр или вам нужно если в данном регистре пустое ?, блин тогда поменяйте просто
На
Я думал у вас в регистре ТМЦ поля есть незаполненные
| ИЛИ СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
На
| ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Я думал у вас в регистре ТМЦ поля есть незаполненные
(34) Еще как вариант, возможно где то ошибки в запросе
ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| СУММА( ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ТОГДА
| ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ 0
| КОНЕЦ) как ЦенаОсновная
| СУММА( ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| ТОГДА 0
| КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) ТОГДА
| ЦеныНоменклатурыСрезПоследних.Цена
| ИНАЧЕ 0
| КОНЕЦ КАК )Цена_Пустая
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| ) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
|СГРУППИРОВАТЬ ПО
| СтоимостьТМЦОстаткиИОбороты.Фирма ,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура ,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения ,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен)
Показать
(32)Тэкс, вам тогда надо сначала сделать запрос, к ценам и получить цены с вариантами и соответственно с пустыми вариантами, что бы исключить те у которых есть варианты... Можно попробовать вот этот вариант
|ВЫБРАТЬ РАЗЛИЧНЫЕ
|Цены.Номенклатура,
|МАКСИМУМ(Цены.ВариантИсполнения) КАК ВариантИсполнения,
|Цены.ТипЦен
|ПОМЕСТИТЬ ВТ_ПустыеЦены
|РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| ) КАК Цены
|Сгруппировать ПО
|Цены.Номенклатура,
|Цены.ТипЦен
|ИМЕЮЩИЕ МАКСИМУМ(Цены.ВариантИсполнения) = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
;
|//////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////// /
ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| ВЫБОР
| КОГДА ЦеныНоменклатурыСрезПоследних.Цена ЕСТЬ NULL
| ТОГДА ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних1.Цена, 0)
| ИНАЧЕ ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0)
| КОНЕЦ КАК Цена
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| ) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
| &ДатаКон,
| ТипЦен = &ТипЦен
| И Номенклатура В ( ВЫБРАТЬ ВТ_ПустыеЦены.Номенклатура ИЗ ВТ_ПустыеЦены)
| ) КАК ЦеныНоменклатурыСрезПоследних1
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних1.Номенклатура
|
|ИНДЕКСИРОВАТЬ ПО
| Фирма,
| Номенклатура,
| ВариантИсполнения
Показать
Вот этот запрос выдает что либо разумное?
Лучше выбрать период поменьше...
Лучше выбрать период поменьше...
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
(41) Отлично!
А так должен показывать все цены
А так должен показывать все цены
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Объединить все
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И НЕ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения=ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
Показать
(49) Попробуйте - если ничего не выдаст вообще , значит у вас в принципе нет стоимости , если Вариант не заполнен.
И значит предыдущий запрос работает корректно ибо "считает только для тех у кого вариант исполнения заполнен", поскольку если вариант не заполнен , то нет стоимости и сумма будут 0.
И значит предыдущий запрос работает корректно ибо "считает только для тех у кого вариант исполнения заполнен", поскольку если вариант не заполнен , то нет стоимости и сумма будут 0.
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
И СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
(54) Во первых не сумму - в этом запросе нет суммы. Мы смотрим просто наличие записей стоимости.
И то что он не показал ее именно и говорит, что НЕТУ у вас в регистре СтоимостьТМЦ нету никкаких записей при вариенте отсутствующем ВариантИсполнения
То есть сумма будет равна 0 по любому
И то что он не показал ее именно и говорит, что НЕТУ у вас в регистре СтоимостьТМЦ нету никкаких записей при вариенте отсутствующем ВариантИсполнения
То есть сумма будет равна 0 по любому
Попробовал проанализировать изменения в конфигурацию под ВариантыИсполнения.
И в голове не укладывается , зачем было столько переписывать, вместо того чтобы создать Характеристику Номенклатуры ВариантИсполнения, которая бы принимала значения те же что в справочнике.
Может я совершенно туплю?
И в голове не укладывается , зачем было столько переписывать, вместо того чтобы создать Характеристику Номенклатуры ВариантИсполнения, которая бы принимала значения те же что в справочнике.
Может я совершенно туплю?
(39)Хуже всего что это в виды цен еще добавили, и теперь виды цен должны быть обязательно заполнено это поле
т.е по срезу последних по идее мы должны полуичить либо Номенклатура, ТипЦены,ВариантИсполнения И вот здесь если мы ставим отбор на тип цены , мы можем получит дофига записей( номенклатура, ВариантИсполнения ), почему или не срабатывает ? ,вот что удивляет т.е соединение идеТ по номенклатуре, но следующее условие должно отработать соеденить должно либо по варианту ВариантИсполнения равен, ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) хотя по идее в ЦеныНоменклатурыСрезПоследних мы можем получить как и наш вариант так и пустую ссылку,и соединит по двум записям как минимум(А ТАК И БУДЕТ потому как если раньше цены заполняли без варианта то в любом случае он получит пустую ссылку), но все равно не понятно почему памяти не хватает ну максимум задвоит записи ( возможно нужно просто скобками обрамить условие
И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)). да а то без скобок он скорее всего считает два первых условия должны выполняться, ИЛИ последнее, что не правильно...
Так мысли вслух
И Посему, в принципе если поставить скобки то запрос отработает, но записи как минимум будут задвоены, и поэтому нужно будет еще условие ВЫБОР ставить и делить цену на два поля, типа как в последнем запросе, и далее вытяшивать если первое поле не нуль то его иначе второе поле...блин гемор еще тот
т.е по срезу последних по идее мы должны полуичить либо Номенклатура, ТипЦены,ВариантИсполнения И вот здесь если мы ставим отбор на тип цены , мы можем получит дофига записей( номенклатура, ВариантИсполнения ), почему или не срабатывает ? ,вот что удивляет т.е соединение идеТ по номенклатуре, но следующее условие должно отработать соеденить должно либо по варианту ВариантИсполнения равен, ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка) хотя по идее в ЦеныНоменклатурыСрезПоследних мы можем получить как и наш вариант так и пустую ссылку,и соединит по двум записям как минимум(А ТАК И БУДЕТ потому как если раньше цены заполняли без варианта то в любом случае он получит пустую ссылку), но все равно не понятно почему памяти не хватает ну максимум задвоит записи ( возможно нужно просто скобками обрамить условие
И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)). да а то без скобок он скорее всего считает два первых условия должны выполняться, ИЛИ последнее, что не правильно...
Так мысли вслух
И Посему, в принципе если поставить скобки то запрос отработает, но записи как минимум будут задвоены, и поэтому нужно будет еще условие ВЫБОР ставить и делить цену на два поля, типа как в последнем запросе, и далее вытяшивать если первое поле не нуль то его иначе второе поле...блин гемор еще тот
(40)Все хорошо,но только у данной номенклатуры задваивается количество.
В этой номенклатуре он должен брать 2 строку,т.е.Цены нет
ВЫБРАТЬ
| СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
| СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
| СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
| ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
|ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
|ИЗ
| РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатаКон, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
| ПО СтоимостьТМЦОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
| И (СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения
| ИЛИ ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка))
|
ПоказатьВ этой номенклатуре он должен брать 2 строку,т.е.Цены нет
Прикрепленные файлы:
(40) Будьте оптимистом!
И как минимум радуйтесь, что не в ваших базах такой "гемор"...
Одно дело помогать на этом форуме, и совсем другое - разгребать чужие бредовые писалки.
Я попробовал у себя в тестовой базе добавить справочник, и т д и тп. чтобы удобнее было на своей базе настраивать запрос.
Так ведь надо еще всю логику проведения изменять! Плюнул.
Хоть посмотреть бы на того деятеля, кто все это придумал там.
И как минимум радуйтесь, что не в ваших базах такой "гемор"...
Одно дело помогать на этом форуме, и совсем другое - разгребать чужие бредовые писалки.
Я попробовал у себя в тестовой базе добавить справочник, и т д и тп. чтобы удобнее было на своей базе настраивать запрос.
Так ведь надо еще всю логику проведения изменять! Плюнул.
Хоть посмотреть бы на того деятеля, кто все это придумал там.
(48) Если бы надо было брать цены только по типу цен - то да левым соединение все достается . но тут есть условия по заполненности или незаполненности варианта заполнения см. (44) , поэтому имеет смысл подготовить таблицу с финальными ценами , а не использовать объединение со сложным условием по соединению
(58) А вот язвить не надо , вроде все культурные люди , и пытаемся помочь , и тут же ловлю претензию от Вас что я что-то должен . Я что-то предложил - Вы возразили - я ответил - не согласны Ок - переживу , Не вам оценивать мои знания. Я написал то, что считал нужным.
Трудно конечно при отсутствии у себя подобной конфигурации что-то оперативно менять...
Пожалуйста покажите что вот этот выдаст
Пожалуйста покажите что вот этот выдаст
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Упорядочить по
Номенклатура
Показать
Очень странный результат , хочу посмотреть , совпадают ли у вас варианты в 2 регистрах
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
(62) может последнее условие В соединении переделать
ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения <> Значение (Справочник. ВариантыИсполнения.ПустаяСсылка) ТОГДА
СтоимостьТМЦОстаткиОбороты.вариантИсполнения = ЦеныНоменклатурыСрезПоследних.ВариантИсполнения)
ИНАЧЕ
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = Значение (Справочник. ВариантыИсполнения.ПустаяСсылка)
КОНЕЦ
(63) нет - в последнем 2 вариантаисполнения - из каждого регистра
И видно что мы по прежднему не можем составить нормальную таблицу цен...
Варианты исполнений должны совпадать
Пробуем так
И видно что мы по прежднему не можем составить нормальную таблицу цен...
Варианты исполнений должны совпадать
Пробуем так
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, &ТипЦен) КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиИОбороты.ВариантыИсполнения
Где ЦеныНоменклатурыСрезПоследних.ВариантИсполнения=ЗНАЧЕНИЕ(Справочник.ВариантыИсполнения.ПустаяСсылка)
Показать
Покажте вот тут что задваивает?
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолНачальныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения <> Значение (Справочник. ВариантыИсполнения.ПустаяСсылка) ТОГДА
ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ИНАЧЕ
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = Значение (Справочник. ВариантыИсполнения.ПустаяСсылка)
КОНЕЦ
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолНачальныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ВЫБОР КОГДА ЦеныНоменклатурыСрезПоследних.ВариантИсполнения <> Значение (Справочник. ВариантыИсполнения.ПустаяСсылка) ТОГДА
ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ИНАЧЕ
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = Значение (Справочник. ВариантыИсполнения.ПустаяСсылка)
КОНЕЦ
Задвоенность однозначно по причине добавки с "выбором"
Добавку убрал...
Показывайте
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
Упорядочить по
Номенклатура
Добавку убрал...
Показывайте
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ТипЦен=СтоимостьТМЦОстаткиИОбороты.ТипЦен
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
Упорядочить по
Номенклатура
У вас у большлго количества товаров установлены цены БЕЗ ВариантаИсполнения, при том что остатки существуют именно с Вариантами...
Мы пытаемся сейчас связать по ходу несвязываемое...
Сами посудите есть Шкаф скажем зеленый 3 шт и красный 2 шт (по варианту) , а цены установлены на Шкаф 1000рублей (А вариант не указан)
Что по вашему вы должны получить?
Мы пытаемся сейчас связать по ходу несвязываемое...
Сами посудите есть Шкаф скажем зеленый 3 шт и красный 2 шт (по варианту) , а цены установлены на Шкаф 1000рублей (А вариант не указан)
Что по вашему вы должны получить?
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
Упорядочить по
Номенклатура
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.КолКонечныйОстаток ,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.ВариантИсполнения Как ВариантИсполненияЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.ТипЦен, "Нет цены. Совсем НЕТ!") КАК типЦен,
ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , ) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен
) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних .вариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
Упорядочить по
Номенклатура
Вот абсолютно корректные данные!
Вы согласны?
Попробуйте сами проанализировать...
Там где цена не установлена для конкретного ВариантаИсполнения - ее естественно и НЕТ .
Присутствует надпись - что Цены нет, Совсем нет.
То есть для всех этих товаров смысл стоимости не существует...
В формулу вычисления стоимости нечего подставить кроме 0
Вы согласны?
Попробуйте сами проанализировать...
Там где цена не установлена для конкретного ВариантаИсполнения - ее естественно и НЕТ .
Присутствует надпись - что Цены нет, Совсем нет.
То есть для всех этих товаров смысл стоимости не существует...
В формулу вычисления стоимости нечего подставить кроме 0
Дальше можно этот запрос вставить в свою обработку - вы получите корректные данные.
То есть получите стоимость только того товара на который установлены цены
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ГДЕ НЕ ЦеныНоменклатурыСрезПоследних.ТипЦен ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Фирма,
Номенклатура,
ВариантИсполнения
;
То есть получите стоимость только того товара на который установлены цены
ВЫБРАТЬ
СтоимостьТМЦОстаткиИОбороты.Фирма КАК Фирма,
СтоимостьТМЦОстаткиИОбороты.Номенклатура КАК Номенклатура,
СтоимостьТМЦОстаткиИОбороты.ВариантИсполнения КАК ВариантИсполнения,
ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
ПОМЕСТИТЬ ВТ_СтоимостьТМЦ
ИЗ
РегистрНакопления.СтоимостьТМЦ.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , {(Фирма).*, (Номенклатура).*, (ВариантИсполнения).*}) КАК СтоимостьТМЦОстаткиИОбороты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(
&ДатаКон,
ТипЦен = &ТипЦен ) КАК ЦеныНоменклатурыСрезПоследних
ПО ЦеныНоменклатурыСрезПоследних.Номенклатура=СтоимостьТМЦОстаткиИОбороты.Номенклатура
И ЦеныНоменклатурыСрезПоследних.ВариантИсполнения = СтоимостьТМЦОстаткиОбороты.ВариантИсполнения
ГДЕ НЕ ЦеныНоменклатурыСрезПоследних.ТипЦен ЕСТЬ NULL
ИНДЕКСИРОВАТЬ ПО
Фирма,
Номенклатура,
ВариантИсполнения
;
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот