8.х ПостроительОтчета отчет ОСВ по счету с отбором

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем drugoi_mir, 13 июл 2012.

  1. TopicStarter Overlay
    drugoi_mir
    Offline

    drugoi_mir

    Регистрация:
    30 мар 2012
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Пишу отчет к своей конфигурации учебной,для себя. Виды субконто заданы как ПланВидовХарактеристик(Справочники: Номенклатура,Склады,Договор ; Документ: приходная)
    1.Вначале выбирается счет.
    2.Для этого счета определяются Субконто и загружаются в
    Код:
    СписокСубконто
    .
    3.СписокСубконто загружается в таблицу группировки, в которой определяется по каким субконто и в каком порядке будет производится группировка.
    4. Получаю данные и загружаю их в построитель из Регистра Бухгалтерии:
    Код:
    ПостроительОтчета.текст = "ВЫБРАТЬ
    | Счет,
    | Субконто1,
    | Субконто2,
    | Субконто3,
    | СуммаОстаток,
    | СуммаОстатокДт,
    | СуммаОстатокКт,
    | СуммаРазвернутыйОстатокДт,
    | СуммаРазвернутыйОстатокКт
    |ИЗ
    | РегистрБухгалтерии.Управленческий.Остатки(, , &ВидСубконто,)";
    ПостроительОтчета.Параметры.Вставить("ВидСубконто", СписокСубконто);
    
    5.Теперь я хочу сделать отбор,дать пользователю сделать такую возможность,чтобы он ручками смог выбрать к примеру Номенклатура равно Утюг.
    Для этого на форме имеется ТЧ с Типом Значения ПостроительОтчета.Отбор.
    Я добавляю туда строку отбора:
    Код:
    ПостроительОтчета.ЗаполнитьНастройки();
    сзОтбор = ПостроительОтчета.Отбор;
    сзОтбор.Добавить("Субконто1") ;
    сзОтбор["Субконто1"].Использование = Истина;
    сзОтбор["Субконто1"].ВидСравнения = ПостроительОтчета.Отбор.субконто1.ВидСравнения;
    сзОтбор["Субконто1"].Значение = ПостроительОтчета.Отбор.Субконто1.Значение;
    
    Но отображается в дальнейшем на форме это некрасиво, Поле "Субконто",хотя хочется чтобы было написано поле "номенклатура",к примеру. и значения соотвественно чтобы сразу подставлялись с этого справочника\документа.

    Подскажите пожалуйста как это сделать.Картинку приложил в файле.

    Вложения:

  2. TopicStarter Overlay
    drugoi_mir
    Offline

    drugoi_mir

    Регистрация:
    30 мар 2012
    Сообщения:
    26
    Симпатии:
    0
    Баллы:
    1
    Добился того, что в поле подставляется уже конкретный Субконто,но при выборе значения приходится выбирать сперва конкретные метаданные.Видимо все из за планаВидовХарактеристик,который дает каждому Субконто из запроса все возможные типы,а перезаписывать это поле(тип) он не дает=(

    Код:
     сч = 1;
    
    Для каждого Субконто из СписокСУбконто ЦИкл
    СубконтоС = "Субконто"+ Строка(сч);
    
    Имя = ПостроительОтчета.ДоступныеПоля[СубконтоС].ПутьКДАнным;
    сзОтбор.Добавить(Имя,Имя,СокрЛП(Субконто.Значение)) ;
    сзОтбор[Имя].Использование = Ложь;
    сзОтбор[Имя].ВидСравнения = ПостроительОтчета.Отбор.субконто1.ВидСравнения;
    //ПостроительОтчета.Отбор.субконто1.ТипЗначения   = Субконто.Значение.ТипЗначения;
    сзОтбор[Имя].Значение = ПостроительОтчета.Отбор[СубконтоС].Значение;
    сч = сч + 1;
    КонецЦикла;  

    Вложения:

  3. mialord
    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.398
    Симпатии:
    40
    Баллы:
    54
    Хоть задачи и старая, отпишусь.
    Явно укажите тип поля у самого построителя, а не отбора
    Код:
    ПолеСубконто1 = Построитель.ДоступныеПоля.Найти("Номенклатура");
    Если НЕ ПолеСубконто1 = Неопределено Тогда
    ПолеСубконто1.ТипЗначения = Новый ОписаниеТипов("СправочникСсылка.Номенклатура");
    Построитель.Отбор.Добавить("Номенклатура", "Номенклатура");
    КонецЕсли;
    

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