8.х Как правильно Вывести на каждый день данные из регистра сведений

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

  1. TopicStarter Overlay
    SvetaS_Love
    Offline

    SvetaS_Love

    Регистрация:
    26 фев 2016
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Добрый День!
    Помогите, пожалуйста, люди добрые, уже всё перепробовал
    Задача:
    Данные берутся из РегистрСведений.ЦеныНоменклатуры
    Цена берется как срез последних на каждый день (должны быть заполнены все цены за все дни, все клетки)
    (учитывать что в регистре есть цифры не на каждый день, а в отчете надо на каждый день) УТП
    Не получается:
    уже пытался взять разницу левого и внутреннего соединения - чтобы получить даты которых нет в регистре, чтобы затем к этим датам рассчитать цены (посредством связи с РегистрСведений.ЦеныНоменклатуры на max из выборки Дат (выборки дат между НачДата и датой выборки разницы ) . Но, наверное, я ошибаюсь в выборке разницы... Понять бы где........:(
    :(:(:(:(:(:(:(:(:(

    запрос выборки разницы:
    Код:
    Процедура Отчет18Инициализация()
        
        ПостроительОтчетаОтчет18.Текст =
        "ВЫБРАТЬ
        |    ВнутренееСоединение.Период,
        |    ВнутренееСоединение.Цена,
        |    ВнутренееСоединение.Номенклатура,
        |    ПРЕДСТАВЛЕНИЕ(ВнутренееСоединение.Номенклатура),
        |    ВнутренееСоединение.ТипЦен,
        |    ПРЕДСТАВЛЕНИЕ(ВнутренееСоединение.ТипЦен),
        |    ВнутренееСоединение.Валюта,
        |    ПРЕДСТАВЛЕНИЕ(ВнутренееСоединение.Валюта),
        |    ВнутренееСоединение.ДатаКалендаря,
        |    ВнутренееСоединение.ВидДня
        |ИЗ
        |    (ВЫБРАТЬ
        |        РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря,
        |        РегламентированныйПроизводственныйКалендарь.ВидДня КАК ВидДня,
        |        ЦеныНоменклатурыСрезПоследних.Период КАК Период,
        |        ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
        |        ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
        |        ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
        |        ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта
        |    ИЗ
        |        РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        |            ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = ЦеныНоменклатурыСрезПоследних.Период) КАК ЛЕВОЕ_СОЕДИНЕНИЕ
        |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ЦеныНоменклатурыСрезПоследних.Период КАК Период,
        |            ЦеныНоменклатурыСрезПоследних.Цена КАК Цена,
        |            ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура,
        |            ЦеныНоменклатурыСрезПоследних.ТипЦен КАК ТипЦен,
        |            ЦеныНоменклатурыСрезПоследних.Валюта КАК Валюта,
        |            РегламентированныйПроизводственныйКалендарь.ДатаКалендаря КАК ДатаКалендаря,
        |            РегламентированныйПроизводственныйКалендарь.ВидДня КАК ВидДня
        |        ИЗ
        |            РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь
        |                ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
        |                ПО РегламентированныйПроизводственныйКалендарь.ДатаКалендаря = ЦеныНоменклатурыСрезПоследних.Период) КАК ВнутренееСоединение
        |        ПО ЛЕВОЕ_СОЕДИНЕНИЕ.ДатаКалендаря <> ВнутренееСоединение.ДатаКалендаря
        |ГДЕ
        |    ЛЕВОЕ_СОЕДИНЕНИЕ.ДатаКалендаря МЕЖДУ &НачДата И &КонДата";
       
     ПостроительОтчетаОтчет18.ЗаполнитьНастройки();
        ПостроительОтчетаОтчет18.ЗаполнениеРасшифровки = ВидЗаполненияРасшифровкиПостроителяОтчета.ЗначенияГруппировок;
        ПостроительОтчетаОтчет18.ТекстЗаголовка = "Отчет18";
        Настройка = ВосстановитьЗначение("НастройкаОтчетыОтчет30_Левое_соединение_соединенийОтчет18_be3d6a39-4dec-49b6-b76e-11b57fd8c8f1");
        Если Настройка <> Неопределено Тогда
            ПостроительОтчетаОтчет18.УстановитьНастройки(Настройка);
        КонецЕсли;
    
        //}}КОНСТРУКТОР_ВЫХОДНЫХ_ФОРМ_ПОСТРОИТЕЛЬОТЧЕТА_ИНИЦИАЛИЗАЦИЯ
    КонецПроцедуры
    
  2. nbIpKuH_BaH9I
    Offline

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

    Регистрация:
    16 сен 2009
    Сообщения:
    6.977
    Симпатии:
    397
    Баллы:
    104
    Зачем Вам нужны даты, которых нет в регистре?
  3. TopicStarter Overlay
    SvetaS_Love
    Offline

    SvetaS_Love

    Регистрация:
    26 фев 2016
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    такая задача....
    вероятно в будущем будет форма для планирования..
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.548
    Симпатии:
    716
    Баллы:
    204
    Формируйте таблицу дат, с ней соединяйте другие таблицы...
  5. TopicStarter Overlay
    SvetaS_Love
    Offline

    SvetaS_Love

    Регистрация:
    26 фев 2016
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    побывала, таблица дат есть.. что-то не выходит
  6. shurikvz
    Offline

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

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Вы он или она?


    Упрощенно:
    Код:
    ВЫБРАТЬ
        РегламентированныйПроизводственныйКалендарь.ДатаКалендаря,
        Номенклатура.Ссылка КАК Номенклатура
    ПОМЕСТИТЬ ВТ_ДатаНоменклатура
    ИЗ
        РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь,
        Справочник.Номенклатура КАК Номенклатура
    ГДЕ
        РегламентированныйПроизводственныйКалендарь.ДатаКалендаря МЕЖДУ &НачалоПериода И &КонецПериода
        И НЕ Номенклатура.ЭтоГруппа
        И НЕ Номенклатура.ПометкаУдаления
        И НЕ Номенклатура.Услуга
        И Номенклатура.Ссылка В ИЕРАРХИИ(&Группа)
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ДатаНоменклатура.ДатаКалендаря,
        ВТ_ДатаНоменклатура.Номенклатура,
        МАКСИМУМ(ЦеныНоменклатуры.Период) КАК Период
    ПОМЕСТИТЬ ВТ_ПериодЦен
    ИЗ
        ВТ_ДатаНоменклатура КАК ВТ_ДатаНоменклатура
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
            ПО ВТ_ДатаНоменклатура.ДатаКалендаря >= ЦеныНоменклатуры.Период
                И ВТ_ДатаНоменклатура.Номенклатура = ЦеныНоменклатуры.Номенклатура
                И (&ТипЦен = ЦеныНоменклатуры.ТипЦен)
    
    СГРУППИРОВАТЬ ПО
        ВТ_ДатаНоменклатура.ДатаКалендаря,
        ВТ_ДатаНоменклатура.Номенклатура
    ;
    
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ВТ_ПериодЦен.ДатаКалендаря КАК ДатаКалендаря,
        ВТ_ПериодЦен.Номенклатура КАК Номенклатура,
        ЕСТЬNULL(ЦеныНоменклатуры.Цена, 0) КАК Цена
    ИЗ
        ВТ_ПериодЦен КАК ВТ_ПериодЦен
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
            ПО ВТ_ПериодЦен.Период = ЦеныНоменклатуры.Период
                И ВТ_ПериодЦен.Номенклатура = ЦеныНоменклатуры.Номенклатура
                И (&ТипЦен = ЦеныНоменклатуры.ТипЦен)
    
    УПОРЯДОЧИТЬ ПО
        ДатаКалендаря,
        Номенклатура
    АВТОУПОРЯДОЧИВАНИЕ
    
  7. pingvinchik
    Offline

    pingvinchik Опытный в 1С

    Регистрация:
    1 дек 2015
    Сообщения:
    74
    Симпатии:
    14
    Баллы:
    29
    а в СКД-шке можно просто периодичность поставить в настройке регистра...при выборе полей....и он отобразит даты.....
  8. Draco
    Offline

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

    Регистрация:
    28 окт 2009
    Сообщения:
    13.628
    Симпатии:
    946
    Баллы:
    204
  9. TopicStarter Overlay
    SvetaS_Love
    Offline

    SvetaS_Love

    Регистрация:
    26 фев 2016
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    спасибо всем БОЛЬШОЕ. ПРОБУЮ запуститься.....
    shurikvz, девушка, только очень замученная и уставшая, в сильной панике......

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