Продвинутый курс. Домашнее задание №13*

Эта запись посвящена участникам второго потока.

Представлением домашнее задание по созданию отчетов с использованием Системы компоновки данных.

Для выполнения рекомендуется изучить следующие главы 2-го блока.
Глава 10. Система компоновки данных.

К сожалению, у Вас недостаточно прав для просмотра этой записи. Если Вы еще не залогинены на сайте
залогиньтесь.

Если не активировали токен — посмотрите видео-инструкцию (видео N5)

Если вы залогинены, у Вас активирован токен доступа, но вы все равно видите эту запись —
напишите нам на e-mail поддержки.

комментариев 20 на “Продвинутый курс. Домашнее задание №13*”

  1. Задание выполнил.
    1. В форме документа «Реализация товаров и услуг» добавил команду Печать и разместил на форме кнопку Печать. Обработчик команды:

    &НаКлиенте
    Процедура Печать(Команда)
       
        ТаблДок = ПолучитьПечатнуюФорму();
        ТаблДок.Показать();
       
    КонецПроцедуры

    Вызывает серверную процедуру

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

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

    КонецФункции // ПолучитьПечатнуюФорму()

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

    В качестве ресурсов указал Сумма(Количество) и ЧислоПрописью(Сумма(Сумма),”Л = ru_RU; ДП = Истина”, “рубль, рубля, рублей, м, копейка, копейки, копеек, ж, 2”)

    В настройке отчета создал следующие группировки:
    Группировка первого уровня для вывода шапки документа – Ссылка (параметр вывода Тип макета = Вертикально), с выбранными полями Ссылка.Дата, Ссылка.Номер, Ссылка.Организация, Ссылка.Контрагент. Ссылка.Договор.
    Группировка второго уровня для вывода суммы прописью в подвале – Ссылка (параметр вывода Расположение группировок = Конец) с выбранным полем Сумма.
    Группировка третьего уровня для вывода табличной части – детальные записи. \

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

    СГРУППИРОВАТЬ ПО
    ПоступлениеТоваровИУслугТовары.Ссылка,
    ПоступлениеТоваровИУслугТовары.Номенклатура
    ;

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

    СГРУППИРОВАТЬ ПО
    РеализацияТоваровИУслугТовары.Ссылка,
    РеализацияТоваровИУслугТовары.Номенклатура
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    Поступления.Номенклатура
    ПОМЕСТИТЬ ТаблицаНоменклатуры
    ИЗ
    Поступления КАК Поступления

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

    ВЫБРАТЬ
    Реализации.Номенклатура
    ИЗ
    Реализации КАК Реализации
    ;

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

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

    УПОРЯДОЧИТЬ ПО
    Номенклатура,
    День,
    Регистратор

    Полю Регистратор назначил роль Период1, полю ПериодСекунда – Период2, полю День – Период3. Указал в качестве ресурсов выражения Сумма(КонечныйОстаток), Сумма(НачальныйОстаток), Сумма(Приход), Сумма(Расход). Создал настройку с группировками Номенклатура, День, .

    Обратная связь:
    1. Процентов на 80 материал был для меня новым.
    2. По сложности все темы были примерно одинаковыми.
    3. Практические примеры использования СКД при решении конкретных задач.

  2. Задание выполнил.
    1. Разработка печатной формы документа на СКД выглядит необычно, но подход понравился.
    2. Ведомость по движению товаров по данным документов. Обычно такие задачи решал вычислением в таблице значений, так что выделил для себя особенность решения: вычисление прихода, расхода соединением двух таблиц,
                    где  (Таб1.Дата > Таб2.Дата
                       ИЛИ (Таб1.Дата = Таб2.Дата И
                            таб1.ссылка > Таб2.Ссылка)
      Обратная связь по 2 блоку:
     
        1.Новое: работа с управляемыми блокировками.
                очень интересная область –  схема восстановления последовательности
                                          и применимость последовательностей.               
        3. МГ по схемам расчета себестоимости для разных производств.

  3. Задание выполнил.
    1. Создал отчет “ПечатьРеализации” с двумя наборами даных типа Запрос: Шапка – по таблице документа и ТабличнаяЧасть соответственно по табличной части. В обоих запросах условие по Ссылке. Далее по первому набору данных настроил группировку по детальным записям (указал только поля из первого набора), в других настройках указал тип макета – вертикально. Аналогичные действия по второму набору данных в отдельной группировке, тип макета – горизонтально. Для вывода суммы прописью создал отдельное вычисляемое поле СуммаДокумента, которое добавил в ресурсы с прогонкой через функцию СуммаПрописью. Вывожу его третьей группировкой. В общих настройках отчета также поотключал вывод отборов и параметров.
    2. Создал отчет ВедомостьПоТоварамСКД. В запросе формирую временную таблицу Обороты, которая образуется объединением запросов по ТЧ поступлений и реализаций. Затем во втором запросе пакета соединяю эту таблицу с самой собой по номенклатуре со смещением дат. Далее арифметически вычисляю нач. и кон. остаток в соответствующих полях выборки.
    После чего настроил роли полей в схеме компоновки данных, указал ресурсы, ну и сформировал вариант отчета.
    В принципе после просмотра видеоуроков решение данных задач больших затруднений не вызвало.
    Обратная связь по СКД:
    Из этой главы почерпнул для себя много нового, точнее заполнились все бреши и разложились по полочкам, теперь буду активнее применять СКД на практике.

  4. Обратная связь.
    1. Каждая, без исключения, глава в блоке  – и что-то новое, иногда даже – просветление (СКД, некоторые “полезности” в себестоимости, кейсы).
    2. Тема “Система компановка даных” . Требует еще неоднократного просмотра.
    3. Хотелось бы побольше “Кейсов” – очень полезно для понимания  типовых.

  5. Задание выполнил.
    1. Для решения создал два набора данных. Один (для шапки и табличной части) выбырает все данные по документу (вернее – табличную часть, а реквизиты документа – через ссылку).  Для вывода шапки – детальные записи с  реквизитами (тип макета – вертикально), для табличной части самые обыкновенные детальные. Для подвала использовал набор данных где группировал сумму документа по ссылке. Для отображения числа прописью для ресурса по второму набору данных  установил выражение ЧислоПрописью(Сумма(СуммаДокумента)). Далее создал параметризованную команду “Печать” для документа, где открывал форму отчета (создал простую форму с одним “Результатом”, и передаваемые параметры СформироватьПриОткрытии=Истина, и в отбор – ссылку на документ).
    2.  Для получения остатков с детализацией до регистратора использовала запрос, где соединял таблицу по документам с самой собой:
    ВЫБРАТЬ
    ПоступлениеТоваровИУслугТовары.Номенклатура,
    НАЧАЛОПЕРИОДА(ПоступлениеТоваровИУслугТовары.Ссылка.Дата, ДЕНЬ) КАК Дата,
    ПоступлениеТоваровИУслугТовары.Ссылка,
    ПоступлениеТоваровИУслугТовары.Количество КАК КоличествоПриход,
    0 КАК КоличествоРасход,
    ПоступлениеТоваровИУслугТовары.Ссылка.МоментВремени
    ПОМЕСТИТЬ ВТОбороты
    ИЗ
    Документ.ПоступлениеТоваровИУслуг.Товары КАК ПоступлениеТоваровИУслугТовары
    ГДЕ
    ПоступлениеТоваровИУслугТовары.Ссылка.Проведен = ИСТИНА

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

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

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВТОбороты.Номенклатура,
    ВТОбороты.Дата,
    ВТОбороты.Ссылка,
    СУММА(ВТОбороты1.КоличествоПриход – ВТОбороты1.КоличествоРасход) КАК НачОстаток,
    МИНИМУМ(ВТОбороты.КоличествоПриход) КАК КоличествоПриход,
    МИНИМУМ(ВТОбороты.КоличествоРасход) КАК КоличествоРасход
    ПОМЕСТИТЬ ВТНачОстаток
    ИЗ
    ВТОбороты КАК ВТОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ ВТОбороты КАК ВТОбороты1
    ПО ВТОбороты.Номенклатура = ВТОбороты1.Номенклатура
    И ВТОбороты.МоментВремени > ВТОбороты1.МоментВремени

    СГРУППИРОВАТЬ ПО
    ВТОбороты.Номенклатура,
    ВТОбороты.Дата,
    ВТОбороты.Ссылка
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВТНачОстаток.Номенклатура,
    ВТНачОстаток.Дата,
    ВТНачОстаток.Ссылка,
    ВТНачОстаток.НачОстаток,
    ВТНачОстаток.КоличествоПриход,
    ВТНачОстаток.КоличествоРасход,
    ВТНачОстаток.НачОстаток + ВТНачОстаток.КоличествоПриход – ВТНачОстаток.КоличествоРасход КАК КонОстаток
    ИЗ
    ВТНачОстаток КАК ВТНачОстаток
     
    Дальше просто настариваются роли для полей измерений (Номенклатура), полей остатков (НачОстаток, КонОстаток) и полей периодов (Ссылка – Период 1, Дата – Период 2 , доп)

  6. Задание выполнила.
    1.Создала отчёт на основе СКД. Два набора данных:  для шапки – запрос к таблице документа, для  табличной части – запрос к табличной части «Товары». Условие по ссылке документа. В настройках 2 группировки: одна для шапки – тип макета Вертикально , вторая для таблицы. Для получения итогов добавила ресурс с функцией «ЧислоПрописью».
    2.Создала отчет «Ведомость». Во временную таблицу помещается 2 запроса к табличным частям документов «ПоступлениеТоваров» и «РеализацияТоваров», получая набор данных Ссылка, Номеклатура, Приход, Расход, Дата. Группирую их по номенклатуре и регистратору. Затем ВТ соединяется сама собой левым соединением по номенклатуре и дате из левой таблицы > даты из правой таблицы.
    Начальный остаток вычисляется как разница сумм прихода и расхода из правой таблицы, конечный остаток – начальный остаток + сумма прихода из левой таблицы – сумма расхода из левой таблицы.

  7. Выполнил:
    1.Создал отчёт на основе системы компоновки данных. Набор данных – запрос по табличной части документа “Реализация товаров и услуг” (номенклатура,  количество, стоимость) + ссылка документа (что-бы извлечь данные для шапки),
    параметр запроса – ссылка на документ. Для вывода шапки использую одну группировку (данные извлекаю из ссылки), для вывода таблицы – вторую. Для расчёта итогов использую расчёт в ресурсах, выводв итогов в словесной форме организую посредством использования в  выражении представления функции ЧислоПрописью(). Сделал кнопку и команду для вызова из документа печати.
    2.Второй отчёт по использованию СКД оказался проще, т.к. вся тяжесть аздачи приходится на построение пакетного азпроса. План запроса:
    А.Сохраняю в ВТ “ВсеОбороты” все поступления и реализации (регистратор, дату и момент, наоменклатуру, сумму и кол-во по приходу и сумму и кол-во по расходу).
    Б.Формирую временную таблицу “Обороты” за период(все поля из “Все обороты” которые попали в период отчёта).
    В.Левым соединением соединяю “Обороты” с приходом из “ВсеОбороты” (отбирая для каждого
    оборота из “ВсеОбороты” только те приходу которые были ранее этого оборота),  резулльтат сохраняю в ВТ “Обороты1”.
    Г.Так-же левым соединением добавляю весь расход. Расчётным способом получаем общий остаток на начало и на конец.
    т.к. долго промучался с 1. чать 2. получилась значительно быстрее.

    3.По окончанию ДЗ подумал, может в 1. выгоднее вообще было выгрузить табличную часть документа и подпихнуть её в набор данных скд или даже сам объет документа? Как-бы данные уже есть зачем их повторно запросов запрашивать? Или только запрос?

    ============================================================================
    По блоку отписал в предыдущем задании. Могу только добавить, что СКД мне тоже интересен, т.к. для меня – это провальняа тема, схема этапов построения отчета по СКД многое в голове ставит на место.

    • >может в 1. выгоднее вообще было выгрузить табличную часть документа и подпихнуть её в набор данных скд или даже сам объет документа?
      Кажется, что разница не принципиальна.
      Даже на больших табличных частях (100 000) погалаю, что разницы в скорости формирования не будет.
      Ведь, передавая объект в схему, СКД будет строить временную таблицу, а это тоже определенные затраты.

      • Это точно так? Вот смотрите: объект на сервере приложения, а база на сервере БД. Т.о. с запросом нужно лезть на другой сервер а объект уже лежит в  памяти. Как-бы выигрышь должен быть или его действительно практически и нет?

        • Чтобы получить 100% результаты нужно провести тестирование.
          Но на мой взгляд разница в скорости будет непринципиальной.

  8. ДЗ выполнено.

    1.1. Создал отчет ПечатьРеализации, в СКД сделал один набор данных, в котором получаю все реквизиты из табличной части и через ссылку реквизиты шапки. В  парамтры реквизит “Ссылка”. В ресурсы добавил реквизит табличной части “Сумма”. Для того, чтобы он выводился прописью, использую ЧислоПрописью в выражении представления. Создал две группировки, верхняя по реквизитам шапки, нижняя по реквизитам табличной части. Настроил наименования полей и оформление макета.
    1.2. Для документа РеализацияТоваровИУслуг создал кнопку Печать, в обработчике вопрос о записе изменений (если они были), далее вызываю отчет, открывая его форму с параметрами СформироватьПриОткрытии равно Истина и отбором по ссылке на текущий документ.

    2. Эта задача оказалась посложнее. В СКД создал набор данных – запрос из нескольких временных таблиц. Первая из них – объединение двух запросов к табличным частям документов ПоступлениеТоваровИУслуг и РеализацияТоваровИУслуг, получив таким образом набор данных Регистратор, Номеклатура, Приход, Расход. Группирую их по номенклатуре и регистратору. Далее, ВТ по начальным остаткам. Чтобы их получить к первой ВТ добавляю левым соединением её же, соединяя по номенклатуре и условию, дата документа меньше даты регистратора из первой ВТ. В последнем запросе к первой таблице левым соединением по номенклатуре и документу добавляю вторую таблицу и вычисляю конечный остаток, т.к. есть данные о начальном остатке, приходы и расходе. В настройках отчета указал параметры, ресурсы, заголовки полей, настроил группировку и вывод данных отчета.

    Обратную связь оставлял в отчете к прошлому ДЗ.

  9. ДЗ выполнил.
    1.Создал отчет ПечатьДокумента. В СКД запросом по ТЧ документа реализации получаю ссылку и данные ТЧ. В вариант отчета добавил две группировки – Шапка (в выбранных полях – реквизиты ссылки документа) и Детальные записи. Сумму выношу в ресурсы и там же выражаю ее  через ЧислоПрописью с параметрами. Для документа реализации создал команду Печать. В обработчике открываю форму отчета с параметрами СформироватьПриОткрытии = Истина и Отбор (Ссылка как ПараметрКоманды).
    2.Создал отчет ВедомостьПоТоварам. В его основе – пакетный запрос. Объединяю запросом данные по ТЧ поступления и реализации,  группирую по номенклатуре, ссылке, дате. Количество – в суммируемые поля Приход или Расход, в зависимости от типа документа, и помещаю в ВТ. 
    ВТ связываю с собой же левым соединением по номенклатуре и моменту времени, большему чем в правой таблице. Из суммируемых полей Приход и Расход правой таблицы получаю НачОст. Из них же и полей Приход и Расход левой таблицы получаю КонОст. Для корректного расчета остатков по группировкам проставил роли полям набора данных.

  10. Задача 1.
    Задачу решил с помощью трех несвязанных наборов данных. В первом выбирал реквизиты шапки документа, во втором реквизиты табличной части товары и в третьем подсчитывал сумму по документу. Во всех запросах наборов использовал условие на равенство ссылки параметру «Документ», который добавил в быстрый доступ. Вывод в настройках также состоял из трех частей, во  всех частях выводились детальные записи без группировок и в каждой части в выбранные поля, включались только поля из соответствующего набора данных. В первой части для вывода реквизитов шапки списком в «Других настройках» установил «Тип макета» в значение «Вертикально». Для вывода суммы документа прописью для поля «Сумма документа» из третьего набора данных указал «Выражение представления», в котором использовал функцию «ЧислоПрописью» и также как для первой части «Тип макета» установил в «Вертикально».
    Задача 2.
    Самое сложное в этой задаче было реализовать запрос, получающий начальный и конечный остатки по регистратору. Этот запрос реализовал с помощью пакета запросов следующим образом. Первый пакет запроса с помощью объединения ТЧ Товары документов поступлений и реализаций получал данные об обороте товаров за период формирования отчета вида <Регистратор> <Номенклатура> <КоличествоПриход> <КоличествоРасход> условие было вхождение даты документа в период отчета и проведенность документа. Во втором пакете запроса к результату первого запроса пакета левым соединением подсоединял Поступления с датой меньшей чем у даты регистратора из первого запроса, в случае равенства дат проверялся момент времени. В результате выполнения запроса получал данные вида <Регистратор> <Номенклатура> <НачОстатокПриход>. В третьем пакете запроса, аналогичным образом получал данные о реализациях более ранних чем регистратор и получал результат вида <Регистратор> <Номенклатура> < НачОстатокРасход>. В четвертом, итоговом запросе пакета к результату первого запроса пакета левым соединением по номенклатуре и регистратору подсоединял результаты 2-го и 3-го результата для расчета начального остатка по регистратору. Конечный остаток получал расчетным путем с учетом прихода или расхода сделанного регистратором. Результатом запроса являлись следующие данные:  <Номенклатура> <ПериодДень > <Регистратор> <КоличествоНачальныйОстаток> <КоличествоПриход> <КоличествоРасход><КоличествоКонечныйОстаток>.  Для получения значения ПериодДень использовал функцию НачалоПериода. Набор данных для отчета готов, остальное все тривиально, за исключением настройки ролей для начального и конечного остатков, периода, регистратора и номенклатуры.

  11. Задание выполнил!
    1. Для создания печатной формы документа РеализацияТоваров с помощью СКД я создал отчет “ПечатьРеализацииТоваров”, в котором определил схему компановки данных с 2 наборами данных – для шапки -запрос к таблице шапки документа и для  табличной части – запрос к табл. части “Товары” и отбором по ссылке документа. Добавил настройку : 2 группировки по шапке и по табл части. Для группировки по шапке на закладке Другие настройки установил “Тип макета” – Вертикально. Отключил отображение параметра для формы. На форме документа создал команду “Печать СКД”, которая открывает форму отчета с установлеными параметрами формы -“Формировать при открытии” и Отбором в котором передается ссылка на текущий документ.
    2.Чтобы выполнить 2 часть задания пришлось  пересмотреть уроки из 1го блока по запросам т.к. изначальный план по объединению нескольких запросов до начала периода, в период с последующей группировкой не дает возможности получать остатки по регистратору. Поэтому сделал сначала запрос-объединение и выбрал все данные по документам приходным и расходным. Затем полученную таблицу соединил саму с собой левым соединением по номенклатуре и условию где дата из левой табл больше чем дата из правой табл. и просуммировав (приход-расход=НО) для ресурсов правой таблицы, а конечный остаток получив прибавлением к НО данных левой таблицы. На основании этого запроса потом создал отчет СКД

  12. 1.Доработал регистр “Остатки товаров” (добавил ресурс сумма). Доработал движения по регитсру в документе “Поступление товаров и услуг”. Создал последовательность “Последовательность1” по документу “реализация товаров и услуг” и по регистру остатки товаров (перемещение граници = не перемещать). Перепровёл поступления
    (что-бы правильно перезаполнился доработанный регистр).
    2.Модифицировал текст процедур обработок подпискок “ПриЗаписи” и “ПередЗаписью” регистра “ОстаткиТоваров” (и вызываемых из них функция прежде всего).  Как-бы или не сложно или что-то упустил.

    3.Создал обработку “ДопроведениеРасхода”, которая “допроводит” все документы,  которые старше границы последовательности последовательности. В случае успешного допроведении очередного документа методом установитьграницу() сдвигаю границу последовательности, если неуспех – диагнстическое сообщение и прерввание работы обработки. При обработке документа использую расчёт актуальной стоимости номенклатуры по методу альтернативного FIFO. Ну в общем практически как в учебном курсе.

    ======================================================================
    По блоку:
    1.узнал много нового, особо новый материал про: блокировки, агрегаты и устройство (построение платформой)  виртуальных таблиц.
    2.наибольшие затруднения вызвала глава про блокировки, т.к. учу исключительно дома, заблаговременно не поставил постгрес а теперь уже совсем некогда… но надеюсь тему усвоил.
    3.на Ваш выбор.

    Особо отмечу очень полезные главы “Расчсёт себестоимости” и “Кейсы”. Помимо них в курсе не так много практического материала, эти главы полезны тому кто не знал этот материал но собирается и в дальнейшем одинэсить! Почаще-бы!

    • Судя во всему это отчет по 13-му ДЗ, без звездочки :)

      • Да точно, видимо перепутал из-за наличия 2 ДЗ с одним номером

        • хм, 3 таких ДЗ, ещё оказывается для потока №1 есть…

  13. Я правильно понимаю, что это ДЗ, которое идет следом за ДЗ №13 про стоимость товаров и использование последовательностей?