8.х Запрос для отчета

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dmitrij, 4 май 2010.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите как правильно изменить запрос в отчете
    ошибка в итогах допустим на складе 10 перемещаем 8 возвращают 8 остаток 10 в отчете 12
    Код:
    ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Период КАК Период,
    |	ЕСТЬNULL(ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Регистратор, ТоварыНаСкладахОстаткиИОбороты.Регистратор) КАК Регистратор,
    |	ЕСТЬNULL(ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Номенклатура) КАК Номенклатура,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.МОЛ КАК МОЛ,
    |	ЕСТЬNULL(ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Склад) КАК Склад,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.ВидОперации КАК ВидОперации,
    |	ЕСТЬNULL(ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Качество, ТоварыНаСкладахОстаткиИОбороты.Качество) КАК Качество,
    |	ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
    |	ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток,
    |	ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
    |	ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Исполнитель КАК Исполнитель
    |{ВЫБРАТЬ
    |	Регистратор.* КАК Регистратор,
    |	Номенклатура.* КАК Номенклатура,
    |	Склад.* КАК Склад,
    |	Качество.*,
    |	МОЛ.*,
    |	Исполнитель.*,
    |	ВидОперации.*,
    |	КоличествоНачальныйОстаток,
    |	КоличествоКонечныйОстаток,
    |	КоличествоПриход,
    |	КоличествоРасход}
    |ИЗ
    |	РегистрНакопления.ПДБ_МатериалыВПроизводстве.ОстаткиИОбороты(, , Регистратор, , ) КАК ПДБ_МатериалыВПроизводствеОстаткиИОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
    |		ПО (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Регистратор = ТоварыНаСкладахОстаткиИОбороты.Регистратор)
    |			И (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
    |			И (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад)
    |ГДЕ
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Период МЕЖДУ &ДатаНачала И &ДатаКонца
    |{ГДЕ
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Исполнитель.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.МОЛ.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Номенклатура.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Склад.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.ВидОперации.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Качество.*,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Период,
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Регистратор.*,
    |	ТоварыНаСкладахОстаткиИОбороты.Качество.*,
    |	ТоварыНаСкладахОстаткиИОбороты.Регистратор.*,
    |	ТоварыНаСкладахОстаткиИОбороты.Регистратор.Получил.*,
    |	ТоварыНаСкладахОстаткиИОбороты.Регистратор.Выдал.*,
    |	ТоварыНаСкладахОстаткиИОбороты.Регистратор.ВидОпераций.*}
    |
    |УПОРЯДОЧИТЬ ПО
    |	Период
    |{УПОРЯДОЧИТЬ ПО
    |	Регистратор.* КАК Регистратор,
    |	Номенклатура.* КАК Номенклатура,
    |	МОЛ.*,
    |	Склад.* КАК Склад,
    |	ВидОперации.*,
    |	Качество.*,
    |	КоличествоНачальныйОстаток,
    |	КоличествоКонечныйОстаток,
    |	КоличествоПриход,
    |	КоличествоРасход,
    |	Исполнитель.*}
    |ИТОГИ
    |	СУММА(КоличествоНачальныйОстаток),
    |	СУММА(КоличествоКонечныйОстаток),
    |	СУММА(КоличествоПриход),
    |	СУММА(КоличествоРасход)
    |ПО
    |	ОБЩИЕ
    |{ИТОГИ ПО
    |	Склад.* КАК Склад,
    |	МОЛ.*,
    |	Номенклатура.* КАК Номенклатура,
    |	Регистратор.* КАК Регистратор,
    |	Исполнитель.*,
    |	ВидОперации.*}
    |АВТОУПОРЯДОЧИВАНИЕ
    

    Вложения:

    • отчет.jpg
      отчет.jpg
      Размер файла:
      63,5 КБ
      Просмотров:
      31
  2. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    НА принтскрине Вашей ошибки не видно. Вообще самый легкий способ это взять и в запросе попробывать вместо

    ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток

    написать

    естьNULL((начальный+Приход-Расход),0)
  3. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Верно говорят, любое соединение может породить NULL!
    Поэтому правило первое и главное: ВСЕГДА делать в таких случаях ЕстьNULL!
  4. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    причем тут естьnull? посмотрите ваше условие
    Код:
     |ИЗ
    |	РегистрНакопления.ПДБ_МатериалыВПроизводстве.ОстаткиИОбороты(, , Регистратор, , ) КАК ПДБ_МатериалыВПроизводствеОстаткиИОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(, , Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
    |		ПО (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Регистратор = ТоварыНаСкладахОстаткиИОбороты.Регистратор)
    |			И (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура)
    |			И (ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад)
    |ГДЕ
    |	ПДБ_МатериалыВПроизводствеОстаткиИОбороты.Период МЕЖДУ &;ДатаНачала И &;ДатаКонца
    
    1) почему условие накладываете через "ГДЕ"? это очень медленно
    2) почему условие накладываете только на 1 таблицу?
  5. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Да уже... ГЖЕ - это сильно :)
    Но от ЕстьNULL это не спасет все равно :)
  6. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Да на скрине и нельзя этого отобразить ошибка в следующем отчет не правильно отображает итоговые остатки те есть остаток заготовки 10 передаем 5 на переработку те конечный остаток по складу 5 далее после переработки вернули 5 передаем на следующий этап переработки 4 те кон остаток 6 правильный итоговый остаток 6 в отчете отобразится 11
  7. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Можно ли сделать следующее чтоб в построителе итоги не считались по некоторым полям, а строки по этим полям отображались? Если да то как ?
  8. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Запрос хоть тот? я же говорю попробуйте конечный остаток не вытащить а вычислить?
  9. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    вы выборочно отвечаете на ответы? еще раз вам говорю - вы условие накладываете на ОДНУ таблицу (хоть и коряво :) ), поэтому не верный получаете результат
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    По поводу этих условий я и в прошлой теме отмечал и говорил что надоих отсюда убирать и Переносить вообще в виртуальные таблицы раз их используют.
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Да я и с условием и без них, вычислял все тоже самое? идет сложение кон остатков это можно как нибудь изменить
  12. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
    Покажите в виде ТЗ что у вас запос возвршает хотя бы по 1й номенклатурной позиции, что бы было видно какие строки он складывает когда группирует. уберите группировку
  13. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Она складывает показатель ВидыОпераций если я его убераю то все нормально, тк он есть только в одном регистре. Мне известен остаток на складе, материал передают на обработку, нужен отчет который отобразит какой остаток на какой операции есть. Я брал два регистра остатков и материалов которые связал в регистре материалов хранятся данные по материалу какая операция и какой остаток
    Можно ли сделать чтоб видоперации не включились в итоги, а строка в отчете была

Поделиться этой страницей