Имя: Пароль:
1C
 
Фиксация слева не работает.
, ,
0 Zombi
 
15.01.21
13:11
Отчет на СКД. В модуле отчета ПриКомпоновкеРезультата пишу:

ДокументРезультат.ФиксацияСлева = 6;

Отчет формирую, фиксации нет. Что еще посмотреть?
1 Ботаник Гарден Меран
 
15.01.21
13:17
Коллективный разум партнерки говорит, что это работает вместе с ФиксацияСверху из-за вывода параметров (а там количество колонок другое).
2 Zombi
 
15.01.21
13:19
(1) Параметры как то не выводить можно?
3 GANR
 
15.01.21
13:20
(0) Ну а если без СКД в какой-нибудь печатке указать, то работает? Если не работает - неправильно фиксируешь, если работает - значит в отчете срабатывает "платформенная" компоновка, выполняющая ненужные действия и её надо отключить. Кажется СтандартнаяОбработка = Ложь ну и результат конечно же кодом формировать.
4 GANR
 
15.01.21
13:21
(2) В настройках компоновки данных свойство есть вроде.
5 Zombi
 
15.01.21
13:34
Заголовок убрал так:

ЗначениеПараметра = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;
        
    ЗначениеПараметра = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;


Только фиксация слева так и не появилась.
6 GANR
 
15.01.21
15:12
(5) модуль ПриКомпоновкеРезультата в студию
7 Гений 1С
 
гуру
15.01.21
15:30
(0) поставь ее по таймеру через ОбработчикОжидания, йопта (тот еще костыль).
У тебя макет СКД сам фиксацию выставляет.
Или откажись от фонового формирования.
8 Zombi
 
15.01.21
19:54
(6) Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь; // отключаем стандартный вывод отчета - будем выводить программно         
    //Настройки = КомпоновщикНастроек.Настройки;// Получаем настройки отчета
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    
    ЗначениеПараметра = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьПараметрыДанных"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;
        
    ЗначениеПараметра = Настройки.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВыводитьОтбор"));
    ЗначениеПараметра.Значение = ТипВыводаТекстаКомпоновкиДанных.НеВыводить;
    ЗначениеПараметра.Использование = Истина;
    
    КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

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

    // Заполняем рисунки для полей, в данных расшифровки которых находятся элементы справочника
    // "НоменклатураПрисоединенныеФайлы"
    КоличествоКолонокТаблицы = ДокументРезультат.ШиринаТаблицы; // Количество колонок в отчете
    КоличествоСтрокТаблицы = ДокументРезультат.ВысотаТаблицы;     // Количество строк в отчете
    // Обходим все ячейки отчета
    Для Кл = 1 По КоличествоКолонокТаблицы Цикл
    //Кл=1;
        Для Ст = 1 По КоличествоСтрокТаблицы Цикл              
            ТекОбласть = ДокументРезультат.Область(Ст, Кл);  
            // Если имеется расшифровка ячейки, то проверям наличие полей расшифровки
            Если ТекОбласть.Расшифровка <> Неопределено Тогда
                ПоляРасшифровки = ДанныеРасшифровки.Элементы[ТекОбласть.Расшифровка].ПолучитьПоля();
                Если ПоляРасшифровки.Количество() > 0 Тогда
                    // Если тип значения поля расшифровки соответствует справочнику прикрепленных файлов, то
                    // выводим связанную картинку
                    Если ТипЗнч(ПоляРасшифровки.Получить(0).Значение) = ТипЗнч(Справочники.НоменклатураПрисоединенныеФайлы.ПустаяСсылка()) тогда
                        
                    Попытка
                            
                        Рисунок = ПолучитьИзображение(ПоляРасшифровки.Получить(0).Значение);
                        
                    Исключение
                        
                        Рисунок = Неопределено;
                        
                    КонецПопытки;
                    
                    Если Рисунок <> Неопределено Тогда
                        
                        Рис = ДокументРезультат.Рисунки.Добавить(ТипРисункаТабличногоДокумента.Картинка);
                        Рис.РазмерКартинки = РазмерКартинки.Пропорционально;
                        Рис.Картинка = Рисунок;                             
                        ТекОбласть.ВысотаСтроки = 80;
                        ТекОбласть.ШиринаКолонки = 20;
                        Рис.Расположить(ТекОбласть);    
                        //Рис.Расположить(ТекОбласть);    
                    КонецЕсли;    
                КонецЕсли;
                КонецЕсли;
            КонецЕсли;              
        КонецЦикла;          
    КонецЦикла;
    
    ДокументРезультат.ФиксацияСлева = 6;
    
КонецПроцедуры
9 Гений 1С
 
гуру
15.01.21
20:40
(8) ты таймер пробовал?
10 Zombi
 
15.01.21
21:10
(9) Нет, куда его? В модуль формы?
11 Гений 1С
 
гуру
15.01.21
22:06
(10) куда же ещё
Плюс попробуй деструкцию. В конце Скомпоновать затирай пару ячеек.
Но мне кажется, количество зафиксенных в 6астройке скд указывается
12 GANR
 
20.01.21
12:39
Точно! А если СкомпоноватьРезультат в форме попробовать (НЕ фоново) ну и получившийся ТабДок перелопатить. Кнопку Сформировать в отчете на свою заменить, чтобы платформенные обработки отрубить. Ну тогда (3) (8) не понадобится и всё упростится нехило должно.
Закон Брукера: Даже маленькая практика стоит большой теории.