Имя: Пароль:
1C
1С v8
Вывод данных в отчет на СКд с макетом
0 Валидатор
 
02.09.13
13:37
Есть отчет на скд, вот запрос его:
ВЫБРАТЬ
    ПланЗакупокСоставПлана.ттДатаИзвещения КАК ДатаИзвещения,
    ПланЗакупокСоставПлана.ЕдиницаИзмерения.Код,
    ПланЗакупокСоставПлана.ЕдиницаИзмерения.Наименование,
    ПланЗакупокСоставПлана.ттСпособЗакупки КАК СпособЗакупки,
    ВЫБОР
        КОГДА ПланЗакупокСоставПлана.Ссылка.КПЗ = ИСТИНА
            ТОГДА "да"
        ИНАЧЕ "нет"
    КОНЕЦ КАК Закупка,
    ВЫБОР
        КОГДА ЕСТЬNULL(ПланЗакупокСоставПлана.Номенклатура.Артикул, "") = ""
            ТОГДА ""
        ИНАЧЕ ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 1, 2) + "." + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 3, 2) + "." + ПОДСТРОКА(ПланЗакупокСоставПлана.Номенклатура.Артикул, 5, 1)
    КОНЕЦ КАК Артикул,
    ВЫБОР
        КОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель = ЗНАЧЕНИЕ(справочник.подразделения.пустаяссылка)
            ТОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение
        КОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Родитель = ЗНАЧЕНИЕ(справочник.подразделения.пустаяссылка)
            ТОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель
        КОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Родитель.Родитель = ЗНАЧЕНИЕ(справочник.подразделения.пустаяссылка)
            ТОГДА ПланЗакупокСоставПлана.Ссылка.Подразделение.Родитель.Родитель
    КОНЕЦ КАК Подразделение,
    ПланЗакупокСоставПлана.Ссылка,
    ПланЗакупокСоставПлана.НомерСтроки,
    ПланЗакупокСоставПлана.Количество * ПланЗакупокСоставПлана.Цена КАК Сумма,
    ПланЗакупокСоставПлана.Ссылка.Проект,
    ПланыЗакупокОбороты.Номенклатура.Артикул КАК НоменклатураАртикул,
    ПланыЗакупокОбороты.Номенклатура КАК Номенклатура,
    ПланыЗакупокОбороты.КоличествоОборот,
    ПланыЗакупокОбороты.СтоимостьОборот,
    ПланыЗакупокОбороты.СтоимостьОборот / ПланыЗакупокОбороты.КоличествоОборот КАК Цена,
    ПланЗакупокСоставПлана.Номенклатура.ДополнительноеОписаниеНоменклатуры
ПОМЕСТИТЬ втПланЗакупок
ИЗ
    Документ.ПланЗакупок.СоставПлана КАК ПланЗакупокСоставПлана
        ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ПланыЗакупок.Обороты КАК ПланыЗакупокОбороты
        ПО ПланЗакупокСоставПлана.Ссылка = ПланыЗакупокОбороты.ДокументПланирования
;

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


Запрос работает, все хорошо и все заполняет, НО, нужно теперь для определенных колонок вставить следующий код:
//заполняем по дате извещения месяцы
        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 1 Тогда
            Строка.Параметры.январь = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;
        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 2 Тогда
            Строка.Параметры.февраль = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 3 Тогда
            Строка.Параметры.мартИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 4 Тогда
            Строка.Параметры.апрИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 5 Тогда
            Строка.Параметры.майИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 6 Тогда
            Строка.Параметры.июньИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 7 Тогда
            Строка.Параметры.июльИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 8 Тогда
            Строка.Параметры.авгИсп = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 9 Тогда
            Строка.Параметры.сентябрь = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 10 Тогда
            Строка.Параметры.октярь = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 11 Тогда
            Строка.Параметры.нобярь = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 12 Тогда
            Строка.Параметры.декабрь = формат(ВыборкаДетальныеЗаписи.ДатаПланирования,"ДФ=yyyy");    
        КонецЕсли;


        //заполняем по дате планирования месяцы
        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 1  И  НЕ ВыборкаДетальныеЗаписи.ДатаИзвещения = '00010101'Тогда
            Строка.Параметры.я = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.я = "";
        КонецЕсли;
        
        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 2 Тогда
            Строка.Параметры.ф = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.ф = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 3 Тогда
            Строка.Параметры.март = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
             Строка.Параметры.март = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 4 Тогда
            Строка.Параметры.апр = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.апр = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 5 Тогда
            Строка.Параметры.май = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.май = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 6 Тогда
            Строка.Параметры.июнь = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");    
        Иначе
            Строка.Параметры.июнь = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 7 Тогда
            Строка.Параметры.июль = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.июль = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 8 Тогда
            Строка.Параметры.авг = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.авг = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 9 Тогда
            Строка.Параметры.с = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.с = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 10 Тогда
            Строка.Параметры.о = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.о = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 11 Тогда
            Строка.Параметры.н = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.н = "";
        КонецЕсли;

        Если Месяц(ВыборкаДетальныеЗаписи.ДатаИзвещения)= 12 Тогда
            Строка.Параметры.д = формат(ВыборкаДетальныеЗаписи.ДатаИзвещения,"ДФ=yyyy");
        Иначе
            Строка.Параметры.д = "";
        КонецЕсли;
        ТабДок.Вывести(строка);

в печатной форме, которая аналогична этому документу таким образом идет заполнение дат, теперь собственно вопрос: как мне последний код прописать в запрос для СКД?
1 rbcvg
 
02.09.13
13:42
ВЫБОР КОГДА
2 Валидатор
 
02.09.13
13:42
или как лучше сделать отчет на основании своего макета, когда у меня есть уже весь код для вывода, но только для печатной формы, а не для макета?
3 Валидатор
 
02.09.13
14:00
(1)
выбор
Когда Месяц(ВыборкаДетальныеЗаписи.ДатаПланирования)= 1
Тогда (как тут указать год из даты планирования)
Конец;
??
4 kittystark
 
02.09.13
16:39
если надо из поля даты отображать только значение года в СКД, воспользуйся на вкладке НаборыДанных колонкой Оформление и задай там твой формат yyyy
AdBlock убивает бесплатный контент. 1Сергей