8.х Отчет по остаткам материалов и аналогов

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

  1. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Доброе утро

    Хочу сделать отчет в следующем виде:

    Остаток
    +Склад1 11
    +Материал 1 10
    Аналог 1 2
    Аналог 2 3
    +Материал 2 1
    Аналог 2 5
    ....

    Данные берутся из двух таблиц:
    - регистр накопления ТоварыНаСкладах.Остатки
    - регист сведений АналогиНоменклатуры (в регистре есть поля: Номенклатура, Аналог(тип: СправочникСсылкаНоменклатура))

    Поле Остаток в данном случае не является ресурсом: т.е. Остаток по материалу может не быть равным сумме остатоков его аналогов. В этом и загвоздка!

    Вопрос: Возможно ли такой отчет построить в системе компоновке. Если да, то как?

    Набросал запросик:
    сначала выбираю остатки по аналогам номенклатуры,
    затем остатки по номенклатуре (материалам) и объединяю таблицы.

    Вариант не нравится! (
    Код:
    "ВЫБРАТЬ
    ОстаткиАналоги.Склад,
    Остатки.Номенклатура КАК Номенклатура,
    АналогиНоменклатуры.Аналог КАК Аналог,
    ОстаткиАналоги.КоличествоКонечныйОстаток КАК ОстатокКон
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , Склад = &Склад) КАК Остатки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналогиНоменклатуры КАК АналогиНоменклатуры
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , Склад = &Склад) КАК ОстаткиАналоги
    ПО АналогиНоменклатуры.Аналог = ОстаткиАналоги.Номенклатура
    ПО Остатки.Номенклатура = АналогиНоменклатуры.Номенклатура
    </span>
    ОБЪЕДИНИТЬ ВСЕ
    
    ВЫБРАТЬ
    Остатки.Склад,
    Остатки.Номенклатура,
    NULL,
    Остатки.КоличествоКонечныйОстаток
    ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , Склад = &Склад) КАК Остатки
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.АналогиНоменклатуры КАК АналогиНоменклатуры
    ПО Остатки.Номенклатура = АналогиНоменклатуры.Номенклатура
    
    СГРУППИРОВАТЬ ПО
    Остатки.Номенклатура,
    Остатки.КоличествоКонечныйОстаток,
    Остатки.Склад"
    </FONT></FONT></pre>
    Может быть есть другое решение? Спасибо
  2. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    В УПП есть такая штука -Обработка Подбор материалов и аналогов, посмотрите как там. Вызывается из отчета производства за смену. со вкадки материалы. Заполнить-Подбором Аналогов
  3. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    смотрел, там все делается программно. я же хочу одним запросом с помомщью СКД
    вообщем:

    С помощью запроса получил некоторую таблицу:

    Номенклатура Аналог ОстатокНом ОстатокАналог
    Материал1 Аналог1 10 2
    Материал1 Аналог2 10 3
    Материал2 Аналог2 5 1

    Возможно ли с помощью СКД преобразовать эту таблицу в:

    Остаток
    +Материал 1 10
    Аналог 1 2
    Аналог 2 3
    +Материал 2 1
    Аналог 2 5
  4. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Можно, для каждой группировке необходимо будет установить свои выбранные поля
  5. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    поясните пожалуйста
  6. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну в СКД у вас на последней вкладке где группировке будет

    Материал
    Аналог

    На вкладке поля ОстатокНом ОстатокАналог
  7. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29

    Вложения:

    • 09.03.png
      09.03.png
      Размер файла:
      27,1 КБ
      Просмотров:
      83
  8. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    есть у меня эта книга, подобной проблемы не нашел

    у меня в запросе есть два поля: ОстатокНом и ОстатокАналог, из него хочу сделать одно поле Остаток, причем в группировке Материала (на верхнем уровне) поле Остаток соответствует ОстатокНом, в остальных полях (для Аналогов) поле Остаток соотв ОстатокАналог
  9. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Ну тогда нужно через отборы в группировках делать.
    К слову - в книжке это точно описано.
    Идея в том, что в запросе получите поле (булево, к примеру), которое будет однозначно определять, что у вас за остаток.
    Дальше в СКД через отбор можно настроить вывод в нужный реквизит.

    А вообще - зачем выводить в другую колонку? Правильнее будет в эту же выводить и не надо ничего менять.
  10. TopicStarter Overlay
    ХочуСпец
    Offline

    ХочуСпец Опытный в 1С

    Регистрация:
    17 ноя 2008
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Может быть с помощью ресурсов можно разрулить данную ситуацию?

    добавить два ресурса: ОстатокМат (выражение: ОстатокМат) и еще раз ОстатокМат (выражение: ОстатокАналог)

    ?
  11. BabySG
    Offline

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

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    А зачем? Вам просто нужно различить аналог и сам материал.
    Ресурс-то будет один.
    Или нужно выводить суммарный остаток напротив материала?

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