8.х СКД: Как заставить правильно считать колонку вес?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем LexaDF, 22 май 2013.

  1. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Доброго времени суток, делаю не сложный отчет на скд. Отчет отрабатывает по документу (поскольку документов за год будет не более 15-16, не вижу смысла делать под них регистр накопления). Выкладываю сам запрос:
    Код:
    ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Наименование,
    СУММА(ВЫБОР
    КОГДА ЗаявкаСнабженияЗаявка.НомерСтроки > 0
    ТОГДА ЗаявкаСнабженияЗаявка.Тоннаж
    ИНАЧЕ 0
    КОНЕЦ) КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Исполнение,
    СправочникИсполненийИнгредиенты.Ингредиент,
    СУММА(СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж) КАК Поле1,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    СУММА(СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж) КАК Поле2,
    ЗаявкаСнабженияЗаявка.НомерСтроки,
    СУММА(ВложенныйЗапрос.Тоннаж) КАК Тоннаж1
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СправочникИсполнений.Ингредиенты КАК СправочникИсполненийИнгредиенты
    ПО ЗаявкаСнабженияЗаявка.Исполнение.Наименование = СправочникИсполненийИнгредиенты.Ссылка.Наименование
    И ЗаявкаСнабженияЗаявка.Исполнение.Номенклатура = СправочникИсполненийИнгредиенты.Ссылка.Номенклатура
    И ЗаявкаСнабженияЗаявка.Исполнение.Код = СправочникИсполненийИнгредиенты.Ссылка.Код
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Тоннаж КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Наименование КАК Наименование,
    ЗаявкаСнабженияЗаявка.НомерСтроки КАК НомерСтроки,
    ЗаявкаСнабженияЗаявка.Исполнение КАК Исполнение
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка) КАК ВложенныйЗапрос
    ПО ЗаявкаСнабженияЗаявка.Исполнение = ВложенныйЗапрос.Исполнение
    И ЗаявкаСнабженияЗаявка.Наименование = ВложенныйЗапрос.Наименование
    И ЗаявкаСнабженияЗаявка.НомерСтроки = ВложенныйЗапрос.НомерСтроки
    СГРУППИРОВАТЬ ПО
    ЗаявкаСнабженияЗаявка.Исполнение,
    ЗаявкаСнабженияЗаявка.Наименование,
    СправочникИсполненийИнгредиенты.Ингредиент,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    ЗаявкаСнабженияЗаявка.НомерСтроки
    Не обращайте внимание на его замудренность(тут чутка дебрей добавил, что бы попробовать все :).
    И вот такая беда уже 2 день ломаю голову как его заставить правильно просуммировать колонку Тоннаж. В данный момент получается вот так: [​IMG][/URL][/img]

    [​IMG]

    Красными квадратами я обвел что нужно сложить, в ресурсах сложение по Наименованию и исполнению не прокатывают. Связи настроил все которые только можно. Как заставить правильно складывать колонку Тоннаж. Спасибо!
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Если у Вас отчет на СКД зачем вы при получении резултата делаете группирову и суммирование
    СУММА(ВложенныйЗапрос.Тоннаж) КАК Тоннаж1

    В СКД вы просто указыываете что является ресурсами и по каким группировкам Вам надо расчитывать итоги.
  3. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Ну группировку я сделал, потому что строки задваивались :/ А вложенный запрос, это я пробовал как нибудь вырвать тоннаж по строке, сделать связь по наименованию и сделать суммирование, но мой коварный план провалился :(
    Попробуем ваш совет.
  4. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Попробуйте, отпишитесь
  5. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Убрал группировки, сделал как вы говорите. Получилось что идет задвоение вот код:
    Код:
    ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Наименование,
    ВЫБОР
    КОГДА ЗаявкаСнабженияЗаявка.НомерСтроки > 0
    ТОГДА ЗаявкаСнабженияЗаявка.Тоннаж
    ИНАЧЕ 0
    КОНЕЦ КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Исполнение,
    СправочникИсполненийИнгредиенты.Игредиент,
    СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж КАК Поле1,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж КАК Поле2,
    ЗаявкаСнабженияЗаявка.НомерСтроки,
    ВложенныйЗапрос.Тоннаж КАК Тоннаж1
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СправочникИсполнений.Ингредиенты КАК СправочникИсполненийИнгредиенты
    ПО ЗаявкаСнабженияЗаявка.Исполнение.Наименование = СправочникИсполненийИнгредиенты.Ссылка.Наименование
    И ЗаявкаСнабженияЗаявка.Исполнение.Номенклатура = СправочникИсполненийИнгредиенты.Ссылка.Номенклатура
    И ЗаявкаСнабженияЗаявка.Исполнение.Код = СправочникИсполненийИнгредиенты.Ссылка.Код
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Тоннаж КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Наименование КАК Наименование,
    ЗаявкаСнабженияЗаявка.НомерСтроки КАК НомерСтроки,
    ЗаявкаСнабженияЗаявка.Исполнение КАК Исполнение
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка) КАК ВложенныйЗапрос
    ПО ЗаявкаСнабженияЗаявка.Исполнение = ВложенныйЗапрос.Исполнение
    И ЗаявкаСнабженияЗаявка.Наименование = ВложенныйЗапрос.Наименование
    И ЗаявкаСнабженияЗаявка.НомерСтроки = ВложенныйЗапрос.НомерСтроки
    ГДЕ
    ЗаявкаСнабженияЗаявка.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

    Вот скрин шот
    [​IMG]
    Красным и бирюзовым отмечены разные документы =/
    Без группировок они раскладываются на разные документы, т.е. номенклатурно не объединяются хотя связи есть =/
  6. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    А в первом Варианте. Наименование у Вас строка? Можете всместо него сделать ЗаявкаСнабженияЗаявка.Ссылка. т.е наименование заменит на ссылку. и покажите что получается. Просто по строке группировать не всегда может
  7. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Ну результат получился не утешительным.
    [​IMG]

    Фиолетовым отметил что он считает не правильно. Как бы получается что у документа есть тоннаж, он присвоил его каждой позиции и складывает их по кол-ву позиций.
    Ну и соответственно красным видим не группирует =/

    Но я взял ссылку документа, еще брал ссылку номенклатуры.

    [​IMG]
  8. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Покажите свой запрос, который сейчас
  9. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Код:
    ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Наименование,
    ВЫБОР
    КОГДА ЗаявкаСнабженияЗаявка.НомерСтроки > 0
    ТОГДА ЗаявкаСнабженияЗаявка.Тоннаж
    ИНАЧЕ 0
    КОНЕЦ КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Исполнение,
    СправочникИсполненийИнгредиенты.Игредиент,
    СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж КАК Поле1,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж КАК Поле2,
    ЗаявкаСнабженияЗаявка.НомерСтроки КАК НомерСтроки,
    ЗаявкаСнабженияЗаявка.Ссылка,
    СправочникИсполненийИнгредиенты.Ссылка КАК Ссылка1
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СправочникИсполнений.Ингредиенты КАК СправочникИсполненийИнгредиенты
    ПО ЗаявкаСнабженияЗаявка.Исполнение.Наименование = СправочникИсполненийИнгредиенты.Ссылка.Наименование
    И ЗаявкаСнабженияЗаявка.Исполнение.Номенклатура = СправочникИсполненийИнгредиенты.Ссылка.Номенклатура
    И ЗаявкаСнабженияЗаявка.Исполнение.Код = СправочникИсполненийИнгредиенты.Ссылка.Код
    ГДЕ
    ЗаявкаСнабженияЗаявка.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
  10. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Попробуйте вот так, что выдает?
    Код:
    ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Ссылка,
    СУММА(ВЫБОР
    КОГДА ЗаявкаСнабженияЗаявка.НомерСтроки > 0
    ТОГДА ЗаявкаСнабженияЗаявка.Тоннаж
    ИНАЧЕ 0
    КОНЕЦ) КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Исполнение,
    СправочникИсполненийИнгредиенты.Ингредиент,
    СУММА(СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж) КАК Поле1,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    СУММА(СправочникИсполненийИнгредиенты.Количество * ЗаявкаСнабженияЗаявка.Тоннаж) КАК Поле2,
    ЗаявкаСнабженияЗаявка.НомерСтроки,
    СУММА(ВложенныйЗапрос.Тоннаж) КАК Тоннаж1
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка
    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СправочникИсполнений.Ингредиенты КАК СправочникИсполненийИнгредиенты
    ПО ЗаявкаСнабженияЗаявка.Исполнение.Наименование = СправочникИсполненийИнгредиенты.Ссылка.Наименование
    И ЗаявкаСнабженияЗаявка.Исполнение.Номенклатура = СправочникИсполненийИнгредиенты.Ссылка.Номенклатура
    И ЗаявкаСнабженияЗаявка.Исполнение.Код = СправочникИсполненийИнгредиенты.Ссылка.Код
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Тоннаж КАК Тоннаж,
    ЗаявкаСнабженияЗаявка.Сслыка КАК Наименование,
    ЗаявкаСнабженияЗаявка.НомерСтроки КАК НомерСтроки,
    ЗаявкаСнабженияЗаявка.Исполнение КАК Исполнение
    ИЗ
    Документ.ЗаявкаСнабжения.Заявка КАК ЗаявкаСнабженияЗаявка) КАК ВложенныйЗапрос
    ПО ЗаявкаСнабженияЗаявка.Исполнение = ВложенныйЗапрос.Исполнение
    И ЗаявкаСнабженияЗаявка.Ссылка = ВложенныйЗапрос.Наименование
    И ЗаявкаСнабженияЗаявка.НомерСтроки = ВложенныйЗапрос.НомерСтроки
    СГРУППИРОВАТЬ ПО
    ЗаявкаСнабженияЗаявка.Исполнение,
    ЗаявкаСнабженияЗаявка.Ссылка,
    СправочникИсполненийИнгредиенты.Ингредиент,
    СправочникИсполненийИнгредиенты.ЕдиницаИзмерения,
    ЗаявкаСнабженияЗаявка.НомерСтроки
  11. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Извиняюсь за длительное молчание, не было доступа.
    Попробовал ругается на поле
    Код:
     И ЗаявкаСнабженияЗаявка.Исполнение.Код = СправочникИсполненийИнгредиенты.Ссылка.Код
    ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    ЗаявкаСнабженияЗаявка.Тоннаж КАК Тоннаж,
    [color=#800000]ЗаявкаСнабженияЗаявка.Сслыка КАК Наименование[/color],
    ЗаявкаСнабженияЗаявка.НомерСтроки КАК НомерСтроки,
    ЗаявкаСнабженияЗаявка.Исполнение КАК Исполнение
    
    То что пометил красным, подумаю почему...
  12. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Результат тот же, он соединил получается Исполнения, но они принадлежат разным номенклатурам.
    [​IMG]
    Вот так получилось :(
  13. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    ну так в слепую трудновато что то сказать. У вас же я смотрю своя конфа
  14. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Печаль великая, 3 день...И вроде бы элементарно, но дело не двигается :(
  15. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Сами понимаете, что на пальцах не очень удобно все это делать. А через регистры не пробовали?
  16. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Согласен, не хочу систему нагружать регистром из-за маленького кол-ва документов. Ну на край придется делать =/
  17. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Ну вообще если есть докуент, то он должен двигать регистр, иначе это или справочник с ТЧ или регистр сведений. Документ без движений - очень плохой тон

    Простоя еще смотрю у вас даже в этом запросе нетп роверки что документ Проведен, не помечен на удаление и т.д. Могут же быть ситауции такие
  18. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Это я называю уже тюнингом :) как бы мелочи добавляю, после того как поставлю уже запрос и его результат на ноги.
  19. Дмитрий Игоревич
    Offline

    Дмитрий Игоревич Опытный в 1С

    Регистрация:
    11 апр 2013
    Сообщения:
    152
    Симпатии:
    0
    Баллы:
    26
    Интересный подход =)

    А если создать ВычилсяемоеВыражение и в нем прописать Сумма(Тонаж) и добавить этот реквизит не в сам отчет а именно к этой группировке ?
  20. TopicStarter Overlay
    LexaDF
    Offline

    LexaDF Опытный в 1С

    Регистрация:
    28 ноя 2011
    Сообщения:
    132
    Симпатии:
    0
    Баллы:
    26
    Попробовать нужно, как будет результат отпишусь.

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