Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отчет с раскладкой значений (1С 8.2)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
venedps
Здравствуйте. Недавно начал изучать 1С, взял пример и пытаюсь его реализовать, но напоролся на проблемку которую самому решить не удается.

Итак.
Есть справочник Комплектующие в котором 2 предопределенные группы (детали и узлы) с реквизитами КодКомпонента, Материал, Инд и табличной частью (ТабДок) доступной только узлам куда вносятся компоненты узла (детали) с колонками НазваниеКомпонента, КодКомпонента, Материал,БазисКол (Количество), БЕд (единицы измерения) и Инд.

Есть документ по списанию брака (КартаБрака) с реквизитами: Дата, КодОтбраковки, Линия, Смена (остальные к отчету не относятся) и табличная часть (ТабДок) с колонками НазваниеКомпонента, КодКомпонента, Материал,БазисКол (Количество), БЕд (единицы измерения) и Инд. В табличной части документа строками прописаны детали и узлы.

Задача создать отчет (очень желательно при помощи СКД) который в табличной части по первой букве ИНД искал нужные детали (это получается) и раскладывал узлы на компоненты с той же буквой индекса.

Немного поясню: в отчет попадают поля Дата, КодОтбраковки, Линия, Смена из документа и
Если Инд начинается например на А то КодКомпонента, БазисКол и Инд с табличной части документа, а
Если Инд начинается на Б то КодКомпонента, БазисКол и Инд с табличной части справочника Комплектующие, при этом записываются все поля табличной части справочника, а в поле количество вычисляется выражение (количество каждой детали в узле (справочник Комплектующие) должно перемножаться на количество узлов (документ)).

Повторюсь - очень желательно все это реализовать при помощи СКД.

Заранее благодарю за подсказки.
TipsyKID
Сумбурно, но думаю проблема не в отчете а в том, что Вы не правильно храните данные.
Отчеты в ( идеале) не должны перебирать табличные части документов - они должны получать данные из регистров.

Думаю в Вашем случае надо логику с ( "одно брать из табличной части другое из справочника" ) поместить в проведение документа а регистры построить такием образом, что бы из них было удобно формировать отчет.
venedps
Может кому-то пригодится. Решил задачу от таким образом:

ВЫБРАТЬ
    Ссылка.Дата,
    Ссылка.Костцентр,
    Ссылка.КодОтбрак,
    Ссылка.Линия,
    Ссылка.Смена,
    Ссылка.МестоСохран,
    ТабДок.КодКомпонента,
    ТабДок.БазисКолич КАК КоличДет,
    ТабДок.Инд,
    "х902" КАК МестоНазначения,
    "" КАК ЦентрЗатрат,
    "1" КАК КоличУзл
ИЗ
    Документ.КартаБрака.ТабДок КАК ТабДок
ГДЕ
    ТабДок.Инд ПОДОБНО "U" + "%"
    И (Ссылка.Дата МЕЖДУ &Дата0 И &Дата1)
                            
            ОБЪЕДИНИТЬ
    ВЫБРАТЬ
    Выб.Дата,
    Выб.Костцентр,
    Выб.КодОтбрак,
    Выб.Линия,
    Выб.Смена,
    Выб.МестоСохран,
    ТабДок.КодКомпонента,
    ТабДок.БазисКолич КАК КоличДет,
    ТабДок.Инд,
    "х902" КАК МестоНазначения,
    "" КАК ЦентрЗатрат,
    Выб.БазисКолич КАК КоличУзл
    
ИЗ
    Справочник.Комплектующие.ТабДок КАК ТабДок,
    (ВЫБРАТЬ
        ТабДок.Ссылка.Дата КАК Дата,
        ТабДок.Ссылка.Костцентр КАК Костцентр,
        ТабДок.Ссылка.КодОтбрак КАК КодОтбрак,
        ТабДок.Ссылка.Линия КАК Линия,
        ТабДок.Ссылка.Смена КАК Смена,
        ТабДок.Ссылка.МестоСохран КАК МестоСохран,
        ТабДок.КодКомпонента КАК КодКомпонента,
        ТабДок.БазисКолич КАК БазисКолич,
        ТабДок.Инд КАК Инд
    ИЗ
        Документ.КартаБрака.ТабДок КАК ТабДок
    ГДЕ
        (ТабДок.Инд ПОДОБНО "L" + "%"
                ИЛИ ТабДок.Инд ПОДОБНО "S" + "%"
                )) КАК Выб
ГДЕ
    ТабДок.Ссылка.КодКомпонента = Выб.КодКомпонента
    И ТабДок.Инд ПОДОБНО "U" + "%"
    И (Выб.Дата МЕЖДУ &Дата0 И &Дата1)


 i 

Выделяйте код!
 
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.