Имя: Пароль:
1C
 
СКд НастройкаКомпоновкиДанных для расшифровки. всем отделом не поймем как быть
0 DomanM
 
25.06.15
13:17
при формировании отчета расшифровка работает, но по прошествии времени начинает падать.

Расш = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОбъект, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));
НастройкаРасшифровки = Расш.Расшифровать(Расшифровка, ПолеРегистратораВКомпановке.Поле);

на РАСШИФРОВАТЬ - ошибка типа нельзя использовать какое то поле в отборе... скорее всего что то случается с ДанныеРасшифровкиОбъект (он во временном хранилище). Есть вариант выйти след способом заменить
НастройкаРасшифровки  на настройкиКомпоновкиданных Отчета - тип такой же, но они по любому разные, но скорее всего в мелочах - Как сравнить и понять как они различаются, чтоб поменять его программно и избавиться от этой ошибки?
1 DmitrO
 
25.06.15
13:29
как отчет строится, показывай код и где он расположен
2 DmitrO
 
25.06.15
13:34
ДанныеРасшифровкиОбъект - вот тут должен быть тоже url временного хранилища, т.е. Строка.
А у вас подозрительное имя переменной - соответственно чета вы там накосяпурили, отсюда и проблемы.
3 DomanM
 
25.06.15
13:36
(2)     
    ДанныеРасшифровкиОбъект = ПолучитьИзВременногоХранилища(ДанныеРасшифровкиОтчета);
4 DomanM
 
25.06.15
13:38
(2) там либо на основании объекта из временного либо адреса, делали и так и так
5 Гёдза
 
25.06.15
13:40
в уф только на основании адреса
6 DomanM
 
25.06.15
13:44
НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    
    СтруктураВозврата = ПолучитьНеобходимыеПоля(Расшифровка, ДанныеРасшифровки);

ДанныеЗаполнения = Новый Структура;
    ДанныеЗаполнения.Вставить("НастройкаРасшифровки", СтруктураВозврата.НастройкаРасшифровки);
    
    ОткрытьФорму("Отчет.ОтчетПоБюджету1.Форма.ФормаОтчетаУправляемая", ДанныеЗаполнения, , Новый УникальныйИдентификатор);

конецПРоцедуры

&НаСервере
Функция ПолучитьНеобходимыеПоля(Знач Расшифровка, Знач ДанныеРасшифровкиОтчета)
    
    
    URLСхемы=ПолучитьURLСхемы();
    СтруктураВозврата.Вставить("URLСхемы", URLСхемы);
    
    ДанныеРасшифровкиОбъект = ПолучитьИзВременногоХранилища(ДанныеРасшифровкиОтчета);
    ПоляРасшифровки = ДанныеРасшифровкиОбъект.Элементы[Расшифровка].ПолучитьПоля();

Для ТекСтрукт = 0 По 3 Цикл
        Если (ИмяРегистратора = Неопределено ИЛИ ИмяРегистратора = "") И (Отчет.КомпоновщикНастроек.Настройки.Структура.Количество()-1) >= ТекСтрукт Тогда    
        
        
        ПолеРегистратораВКомпановке = Отчет.КомпоновщикНастроек.Настройки.Структура[ТекСтрукт].Настройки.ДоступныеПоляВыбора.Элементы.Найти(ИмяРегистратора);

конецЕсли;
конеццикла;

    Расш = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОбъект, Новый ИсточникДоступныхНастроекКомпоновкиДанных(URLСхемы));

    Если ПолеРегистратораВКомпановке <> Неопределено Тогда
        //НастройкаРасшифровки = Расш.Расшифровать(Расшифровка, ПолеРегистратораВКомпановке.Поле);
    НастройкаРасшифровки =     отчет.КомпоновщикНастроек.Настройки;
    Конецесли;\

СтруктураВозврата.Вставить("НастройкаРасшифровки", НастройкаРасшифровки);
    
    Возврат СтруктураВозврата;
7 DmitrO
 
25.06.15
13:46
ДанныеРасшифровкиОтчета - значит тут адрес.
а как он там появляется?
Код, Карл, показывай код!
8 DmitrO
 
25.06.15
13:49
и еще, что за форма? это форма отчета (основной реквизит формы ОтчетОбъект)?
9 Franchiser
 
гуру
25.06.15
13:54
у временного хранилища ограниченный срок жизни, м.б. в этом проблема?
10 Franchiser
 
гуру
25.06.15
13:55
как происходит помещение в хранилище?
11 DmitrO
 
25.06.15
13:59
вот так попробуй еще:
Расш = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровкиОтчета, Новый ИсточникДоступныхНастроекКомпоновкиДанных(Отчет));

Этот конструктор (объекта ИсточникДоступныхНастроекКомпоновкиДанных) не описан в СП, но это по ошибке документаторов 1С, он есть и его и надо юзать на клиенте по крайней мере.

(9)(10)да, тоже вот и хочу увидеть
12 DomanM
 
25.06.15
14:58
(9) оно не пустое при ошибке
13 DomanM
 
25.06.15
14:58
(7) это ДанныеРасшифровки - стандартный реквизит
14 DomanM
 
25.06.15
14:59
(10) автоматом же
15 DmitrO
 
25.06.15
15:06
а как адрес схемы получаете (URLСхемы)?
16 DomanM
 
25.06.15
15:09
(15)  ОсновнаяСхемаКомпоновкиДанных = Отчеты.ОтчетПоБюджету1.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    URLСхемы = ПоместитьВоВременноеХранилище(ОсновнаяСхемаКомпоновкиДанных);
    
    Возврат URLСхемы;
17 DomanM
 
25.06.15
15:13
Если ПолеРегистратораВКомпановке <> Неопределено Тогда
        //НастройкаРасшифровки = Расш.Расшифровать(Расшифровка, ПолеРегистратораВКомпановке.Поле);

    НастройкаРасшифровки =     отчет.КомпоновщикНастроек.Настройки;
    Конецесли;\
попутал написал опытный код - искомая ошибка как раз при
НастройкаРасшифровки = Расш.Расшифровать(Расшифровка, ПолеРегистратораВКомпановке.Поле);
18 DmitrO
 
25.06.15
15:15
а надо так:
URLСхемы = ПоместитьВоВременноеХранилище(ОсновнаяСхемаКомпоновкиДанных, УникальныйИдентификатор);
19 DmitrO
 
25.06.15
15:22
(18)+ в СП почитай в чем разница

На самом деле это делать вообще не нужно.
Адрес схемы вам не нужен вообще, а объект ОбработкаРасшифровкиКомпоновкиДанных надо создавать как я написал в (11).

То что вы делаете, по сути вы кладете схему на сервер еще раз, (второй экземпляр так сказать), первый экземпляр схемы (и собственно тот по которому и работает отчет) кладет сама форма отчета внутренне, но этот адрес получить не возможно.
20 DomanM
 
25.06.15
15:39
(11) не помогло
21 DomanM
 
25.06.15
15:41
(19) короче все равно падает, как в (11) урл не пользуюсь , проходит с пол часа и та же ошибка((
22 DomanM
 
25.06.15
15:44
(19) самое интересное что пытался хранить ДанныеРасшифровкиОбъект не во временном хранилище а в регистре с типом хранилищезначений - так та же ошибка начала выпадать СРАЗУ
23 DomanM
 
25.06.15
15:48
(22)+ я к тому что дело все таки в этих данных расшифровки во врхр скорее всего, они портятся чтоль..
24 DomanM
 
25.06.15
16:26
всей мистой не поймем как быть(((
25 Franchiser
 
гуру
25.06.15
20:05
надо так  
Время жизни до конца сеанса
URLСхемы = ПоместитьВоВременноеХранилище(ОсновнаяСхемаКомпоновкиДанных, Новый УникальныйИдентификатор());

если так - до закрытия формы
URLСхемы = ПоместитьВоВременноеХранилище(ОсновнаяСхемаКомпоновкиДанных, УникальныйИдентификатор);
26 DomanM
 
26.06.15
09:00
(25) да без нее даже обходились же - скорее всего падает именно хранилище с  объектом расшифровки, но опять же не все, при ошибке оно не фига не пустое
27 DomanM
 
26.06.15
11:28
ришли к выводу что это косяк платформы - перепробывали хранить его  объект расшифровки в регистре, в глобальной переменной (в последних двух падает с этой ошибкой сразу) и самому  помещать в хранилище этот еще рабочий объект....