8.х Дублирующиеся строки в отчете (УТ 11.3.4.1)

Тема в разделе "Система компоновки данных (СКД)", создана пользователем BBDragon, 4 авг 2017.

  1. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    193
    Симпатии:
    2
    Баллы:
    29
    Решил несколько упростить свою задачу и сделать отчет в 2 частях - отдельно по остаткам, закупкам и оборотам и отдельно по продажам, остаткам и оборотам.
    Вроде бы все делается правильно, но почему то строки с документами страшно дублируются.

    [​IMG]

    Текст запроса:

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

    Если убираю
    ГДЕ
    ПоступлениеТоваровУслуг.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода

    то дублей становится заметно меньше, но при этом попадают документы и вне периода.

    Ресурсы:
    [​IMG]

    Группировку делаю следующим образом:
    [​IMG]

    Как избавиться от дублирующихся значений?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Вы можете объяснить для чего все эти страшные соединения таблиц?
    BBDragon нравится это.
  3. oksana20077
    Offline

    oksana20077 Новичок в 1С

    Регистрация:
    20 апр 2017
    Сообщения:
    30
    Симпатии:
    1
    Баллы:
    4
    где группировка строк?
    BBDragon нравится это.
  4. TopicStarter Overlay
    BBDragon
    Offline

    BBDragon Опытный в 1С

    Регистрация:
    11 мар 2010
    Сообщения:
    193
    Симпатии:
    2
    Баллы:
    29
    Не знал как правильно сделать, вот и написал таким образом. Вообще алгоритм был таков:
    Выбирается склад и по нему за указанный период проверяются все движения товаров. По каждой номенклатуре выводится начальный остаток, приход, расход, конечный остаток, а также данные по документам поступления и реализации - номер, дата, контрагент, количество, цена, сумма. Выводить данные и по поступлению, и по реализации не получилось, решил сузить задачу.
    Добавил группировку, теперь документы не дублируются:)
    [​IMG]

    Однако после каждого документа дублируется еще пустая строка:
    [​IMG]

    Как бы ее убрать то?
    --- Объединение сообщений, 4 авг 2017 ---
    Убрал Количество, Цену и Сумму из ресурсов и внес их во второй ряд группировки, пустые дублирующие строки исчезли!
    [​IMG]

    Однако у нескольких номенклатур все же остались повторные записи по одному и тому же документу поступления (смотрите строки 19-21 на скриншоте). В чем причина то?
    [​IMG]
    Пардон, разобрался. Оказывается в документе Поступления эту позицию внесли трижды! Причем каждый раз с разным количеством и разной ценой.

    С Поступлениями вопрос закрыт, все получилось, спасибо!

    Теперь как бы добавить вывод данных и по Реализациям также?
    Последнее редактирование: 4 авг 2017
  5. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    8.475
    Симпатии:
    861
    Баллы:
    204
    Насколько понял суть задачи: вся нужная вам информация хранится в одной виртуальной таблице регистра:

    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты()

    Указывайте период Регистратор, а так же другие необходимые отборы в виде параметров таблицы и выводите в отчет с точностью до документа.
    BBDragon нравится это.

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