Продвинутый курс. Занятие №14

Приступайте к четырнадцатому занятию продвинутого курса.

ps. На этой странице не нужно отчитываться о выполнении ДЗ.

комментария 2 на “Продвинутый курс. Занятие №14”

  1. Здравствуйте!

    Отчет по д/з 14.
    1) Создал отчет «ОтчетПоРеализацииТоваровУслуг». Добавил 2 набора данных – запрос. В одном выбрал данные шапки документа, во втором – данные табличной части.

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

    В качестве ресурса выбрал поле «сумма», а в выражении вызвал функцию: ЧислоПрописью(Сумма(Сумма)). В настройках отчета создал две группировки: одна для данных шапки, вторая – для ТЧ.

    В документе «Реализация товаров и услуг» создал команду «Печать документа», разместил в группе «Командная панель формы.Важное». В обработчике события команды вызываю функцию, которая возвращает результат выполнения отчета СКД в виде табличного документа, который затем вывожу пользователю с помощью метода «Показать()».

    &НаСервере
    Функция ПолучитьПечатнуюФорму(СсылкаРеализация)

        Схема = Отчеты.ОтчетПоРеализацииТоваровУслуг.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
        Настройки = Схема.НастройкиПоУмолчанию;
       
        Параметр = Настройки.ПараметрыДанных.НайтиЗначениеПараметра( новый ПараметрКомпоновкиДанных("Ссылка"));
        Если Параметр <> Неопределено Тогда
            Параметр.Значение = СсылкаРеализация;
            Параметр.Использование = Истина;
        КонецЕсли;
       
        КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
        Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);
       
        ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
        ПроцессорКомпоновки.Инициализировать(Макет,,,Истина);
       
        ТабДок = Новый ТабличныйДокумент;
       
        ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
        ПроцессорВывода.УстановитьДокумент(ТабДок);
        ПроцессорВывода.Вывести(ПроцессорКомпоновки); 
        Возврат ТабДок;
    КонецФункции
    </>code

    2)  Создал отчет «Ведомость по товарам». В качестве источника данных использовал запрос. Объединил две таблицы документов «поступление товаров и услуг» и «реализация товаров и услуг». Сопоставил поле «Количество» из «поступления товаров и услуг» к новому полю «0» как приход, а поле «Количество» из «реализации товаров и услуг»  к « 0» как расход. Данные поместил во временную таблицу «ПриходРасход». Затем с помощью несложных манипуляций с помощью левого соединения таблицы самой с собой получил требуемый результат.
    <code>
    ВЫБРАТЬ
        ПоступлениеТоваровИУслугТовары.Ссылка КАК Регистратор,
        ПоступлениеТоваровИУслугТовары.Ссылка.Дата,
        ПоступлениеТоваровИУслугТовары.Номенклатура,
        0 КАК Расход,
        ПоступлениеТоваровИУслугТовары.Количество КАК Приход
    ПОМЕСТИТЬ ПриходРасход
    ИЗ
        Документ.ПоступлениеТоваровИУслуг.Товары КАК ПоступлениеТоваровИУслугТовары

    ОБЪЕДИНИТЬ ВСЕ

    ВЫБРАТЬ
        РеализацияТоваровИУслугТовары.Ссылка,
        РеализацияТоваровИУслугТовары.Ссылка.Дата,
        РеализацияТоваровИУслугТовары.Номенклатура,
        РеализацияТоваровИУслугТовары.Количество,
        0
    ИЗ
        Документ.РеализацияТоваровИУслуг.Товары КАК РеализацияТоваровИУслугТовары
    ;
    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
        ПриходРасход.Регистратор,
        ПриходРасход.Дата,
        ПриходРасход.Номенклатура,
        ПриходРасход.Расход,
        ПриходРасход.Приход,
        СУММА(ЕСТЬNULL(ПриходРасход1.Приход, 0)) - СУММА(ЕСТЬNULL(ПриходРасход1.Расход, 0)) КАК НачальныйОстаток,
        СУММА(ЕСТЬNULL(ПриходРасход1.Приход, 0)) - СУММА(ЕСТЬNULL(ПриходРасход1.Расход, 0)) + ПриходРасход.Приход - ПриходРасход.Расход КАК КонечныйОстаток
    ИЗ
        ПриходРасход КАК ПриходРасход
            ЛЕВОЕ СОЕДИНЕНИЕ ПриходРасход КАК ПриходРасход1
            ПО ПриходРасход.Номенклатура = ПриходРасход1.Номенклатура
                И (ПриходРасход.Дата >= ПриходРасход1.Дата
                    И ПриходРасход.Регистратор > ПриходРасход1.Регистратор)

    СГРУППИРОВАТЬ ПО
        ПриходРасход.Регистратор,
        ПриходРасход.Дата,
        ПриходРасход.Номенклатура,
        ПриходРасход.Расход,
        ПриходРасход.Приход

    =================================================

    1. Очень познавательным оказался материал данного раздела. Особенности получения итогов, открытие формы задачи из карты маршрута БП.
    2. Построение отчетов с помощью СКД, изначально вызвало затруднения.
    3. Тему СКД.