Имя: Пароль:
1C
1С v8
Не сохраняются реквизиты отчета
,
0 dmabramov
 
07.12.16
17:34
Проблема следующая:
Есть внешний отчет на СКД, у него есть реквизит типа дата. При формировании отчета в этот реквизит пишется какая-то дата(из модуля отчета в процедуре "ПриКомпоновкеРезультата"). При повторном формировании отчета значение этого реквизита почему-то не заполнено. В чем прикол?
1 DrShad
 
07.12.16
17:40
а как ты видишь что оно не заполнено? код в студию где ты его читаешь
2 DrShad
 
07.12.16
17:40
и таки да, у отчетов реквизиты не сохраняются
3 dmabramov
 
07.12.16
17:46
Код из модуля отчета:

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


Нюанс! Формы генерируются автоматически.
4 dmabramov
 
07.12.16
17:47
Ставлю точку останова на строке    "Реквизит1 = "ыыыы";" и несколько раз подряд формирую отчет. Форма отчета все время открыта. Каждый раз Реквизит1 = "".
5 Мимохожий Однако
 
07.12.16
17:49
Что ты предпринял, чтобы реквизиты отчета сохранялись?
6 DrShad
 
07.12.16
17:50
т.е. модуль один, а формы каждый раз открываются разные?
7 DrShad
 
07.12.16
17:51
ну так и не будет тогда никакой приемственности данных ибо в каждой форме свой экземпляр объекта
8 dmabramov
 
07.12.16
17:51
Реквизит1 = "ыыыы"; До тех пор пока не закрою форму отчета разве не достаточно?
9 dmabramov
 
07.12.16
17:53
Форма одна и таже
10 dmabramov
 
07.12.16
17:54
Я имею ввиду что я ее не закрываю)
11 DrShad
 
07.12.16
17:55
что-то ты недоговариваешь

у тебя явное присвоение значения реквизиту и в какой момент оно у тебя пропадает?
12 dmabramov
 
07.12.16
17:59
Изначально Реквизит1 = "";
Ставлю точку останова на строке "Реквизит1 = "ыыыы";".
Далее нажимаю сформировать отчет в отладчике смотрю что значение присвоено все гуд.
Потом нажимаю сформировать отчет еще раз. И на точке останова в строке ""Реквизит1 = "ыыыы";"" вижу что значение реквизит1 = "".
Примерно так)
13 dmabramov
 
07.12.16
18:00
Причем если создать форму для этого отчета тогда все работает, но мне этот вариант не подходит.
14 DrShad
 
07.12.16
18:06
что значит если создать форму?
15 DrShad
 
07.12.16
18:07
где у тебя объект отчета создается?
16 dmabramov
 
07.12.16
18:41
Отчет внешний. Объект отчета создается при открытии файла внешнего отчета как я понимаю.

Для отчета можно указать его формы - форма отчета, форма настроек и форма варианта.

Так вот у меня эти формы не указаны, т.е. они генерируются автоматом.

Если создать форму отчета вручную, то все работает. Но я не хочу создавать свою форму так как тогда не будет задействован механизм из БСП с разными вкусностями.