Имя: Пароль:
1C
1С v8
УФ Отчеты Проблема с изменением варианта отчета
0 Krolik Bezobraznik
 
15.06.20
15:01
Добрый день, есть отчет. В СКД в качестве набора данных используется объект, в который в обработчике ПриКомпоновкеРезультата  в модуле объекта отчета я передаю некую ТЗ. В СКД я задаю параметры сортировки. Сортировка работает, но если я изменяю вариант отчета, а именно укажу иное поле сортировки, то сортируется все равно по тому полю, которое указано через конфигуратор, кто сталкивался, подскажите где искать проблему.
1 Franchiser
 
гуру
15.06.20
15:19
Какой код?
ПолучитьНастройки() в коде используешь?
2 Krolik Bezobraznik
 
15.06.20
15:29
(1)  СтандартнаяОбработка = Ложь;
    СхемаСКД = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    КомпановщикМакетаКД = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКД = КомпановщикМакетаКД.Выполнить(СхемаСКД, СхемаСКД.НастройкиПоУмолчанию);
    
    Если Склад.Пустая() Тогда
        ВызватьИсключение("Необходимо выбрать склад ГП");
        
    КонецЕсли;
    
    Если ДатаФормирования = Дата(1,1,1,1,1,1) Тогда
        ВызватьИсключение("Укажите дату остатков");
    КонецЕсли;
    
    Если НачалоДня(ДатаФормирования) = НачалоДня(ТекущаяДата()) Тогда
        ДатаДляСреза = ТекущаяДата();
        СтокНаСкладе = ТекущийСтокСклада();
    Иначе
        ДатаДляСреза = КонецДня(ДатаФормирования) - 299;
        СтокНаСкладе = СтокСклада();
    КонецЕсли;
    
    Запрос=новый Запрос;
    Запрос.Текст="ВЫБРАТЬ
                 |    ТоварыНаСкладахОстатки.Номенклатура КАК Номенклатура,
                 |    ТоварыНаСкладахОстатки.КоличествоОстаток,
                 |    ТоварыНаСкладахОстатки.КоличествоОстаток * ТоварыНаСкладахОстатки.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоличествоМинимальноеПо1С
                 |ПОМЕСТИТЬ Врем1С
                 |ИЗ
                 |    РегистрНакопления.ТоварыНаСкладах.Остатки(&ДатаОстатков, ) КАК ТоварыНаСкладахОстатки
                 |ГДЕ
                 |    ТоварыНаСкладахОстатки.Склад = &Склад
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    ВЫРАЗИТЬ(ОстаткиПоWMS.КоличествоВМинЕдиницахИзмерения КАК ЧИСЛО(10, 0)) КАК КоличествоПоWMS,
                 |    ОстаткиПоWMS.Номенклатура
                 |ПОМЕСТИТЬ ВремWMS
                 |ИЗ
                 |    &ОстаткиПоWMS КАК ОстаткиПоWMS
                 |;
                 |
                 |////////////////////////////////////////////////////////////////////////////////
                 |ВЫБРАТЬ
                 |    ЕСТЬNULL(ВремWMS.КоличествоПоWMS, 0) КАК КоличествоПоWMS,
                 |    ЕСТЬNULL(Врем1С.Номенклатура, ВремWMS.Номенклатура) КАК Номенклатура,
                 |    ЕСТЬNULL(Врем1С.КоличествоМинимальноеПо1С, 0) КАК КоличествоПо1С
                 |ИЗ
                 |    Врем1С КАК Врем1С
                 |        ПОЛНОЕ СОЕДИНЕНИЕ ВремWMS КАК ВремWMS
                 |        ПО Врем1С.Номенклатура = ВремWMS.Номенклатура";

    Запрос.УстановитьПараметр("ОстаткиПоWMS",СтокНаСкладе);
    Запрос.УстановитьПараметр("ДатаОстатков", КонецДня(ДатаФормирования));
    
    Запрос.УстановитьПараметр("Склад", Склад);
    
    ТТТ = Запрос.Выполнить().Выгрузить();    
    
    ВнешниеНаборыДанных = новый Структура("СводныеДанные", ТТТ);
    
    ПроцессорКД = новый ПроцессорКомпоновкиДанных;
    ПроцессорКД.Инициализировать(МакетКД, ВнешниеНаборыДанных );
    
    ПроцессорВывода = новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКД, истина);
3 Franchiser
 
гуру
15.06.20
15:33
(2) Все неправильно.
Есть уже объект компоновщик настроек, зачем его переопределять? Нужно выполнить ПолучитьНастройки(), в этом случае пользовательские настройки наложаться на настройки из схемы и эти объединенные настройки уже можешь применять.
4 Krolik Bezobraznik
 
15.06.20
15:38
(3) Вы имеете ввиду конструктор новый КомпоновщикМакетаКомпоновкиДанных?
5 Franchiser
 
гуру
15.06.20
15:38
МакетКД = КомпановщикМакетаКД.Выполнить(СхемаСКД, КомпоновщикНастроек.ПолучитьНастройки());
6 Franchiser
 
гуру
15.06.20
15:42
(4) имею в виду в твоем коде нигде пользовательские настройки не учитываются никак
7 Krolik Bezobraznik
 
15.06.20
15:44
(6) Я тебя понял, спасибо добрый человек. Сейчас поправлю код.
8 Krolik Bezobraznik
 
15.06.20
15:49
(6) Твоя правда. Плюс тебе в карму. Спасибо.
9 Krolik Bezobraznik
 
15.06.20
15:49
Закройте пожалуйста