Имя: Пароль:
1C
1C 7.7
v7: пропадает контекст в ячейке таблицы.
0 vip03
 
03.09.15
06:32
есть обработка. на форме реквизит "Рекв1"
код обработки:
Процедура Сформировать()
    Контт=ВзятьКонтекст(Контекст);
    Сп=СоздатьОбъект("СписокЗначений");
    Сп.ДобавитьЗначение(Контт,"Контекст");
    ОткрытьФорму("Отчет", Сп, КаталогИБ()+"extforms\Отчет2.ert");

КонецПроцедуры

вторая обработка содержит таблицу.
код второй обработки:

Перем Парам;
//*******************************************
Процедура ПриОткрытии()
    Парам=Форма.Параметр;
КонецПроцедуры // ПриОткрытии
//++++++++++++++++++++++++++++++++
Процедура Печать()
    Таб=СоздатьОбъект("Таблица");
    _Конт=Парам.Получить("Контекст");
    Расшифровка="Контекст";
    знРасшифровки=СоздатьОбъект("СписокЗначений");
    знРасшифровки.ДобавитьЗначение(_Конт, "Контекст"); // вот здесь _Конт = форма первой обработки
    Таб.ВывестиСекцию("Строка");
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
КонецПроцедуры // Печать
//++++++++++++++++++++++++++++++++
Процедура ОбработкаЯчейкиТаблицы(Зн, ФлагСО, Таб, Адрес)
    ФлагСО=0;
    _Конт=Зн.Получить("Контекст"); // здесь _Конт пустой
    _Конт.Рекв1="ВВВ";
    _Конт.Форма.Обновить();
КонецПроцедуры // ОбработкаЯчейкиТаблица

как победить?
1 PuhUfa
 
03.09.15
06:44
_Конт=Зн.Получить("Контекст");// здесь _Конт пустой

что за переменная "зн" из которой ты делаешь Получить()?
2 vip03
 
03.09.15
06:49
зн - это СписокЗначений в расшифровке ячейки
3 PuhUfa
 
03.09.15
07:02
(2) а зачем вообще такие заморочки с передачей через ячейку? ПриОткрытии ты его получил, почему не работать с напрямую с ним?
4 vip03
 
03.09.15
07:07
есть документ, есть внешняя печатная форма.
если был клик на ячейке, у документа нужно изменить реквизит.
5 PuhUfa
 
03.09.15
07:12
(4) Ну у тебя при открытии же:

Перем Парам;
Процедура ПриОткрытии()
    Парам=Форма.Параметр;
КонецПроцедуры// ПриОткрытии

Почему в ОбработкаЯчейкиТаблицы() ты не хочешь работать с Парам?
Процедура ОбработкаЯчейкиТаблицы(Зн, ФлагСО, Таб, Адрес)
    ФлагСО=0;
    _Конт=Парам.Получить("Контекст");
    _Конт.Рекв1="ВВВ";
    _Конт.Форма.Обновить();
КонецПроцедуры// ОбработкаЯчейкиТаблица
6 vip03
 
03.09.15
07:18
потому что самой формы не существует. есть только таблица.

Процедура ПриОткрытии()
  Парм=Форма.Параметр;
  Печать();
  СтатусВозврата(0);
КонецПроцедуры
7 PuhUfa
 
03.09.15
08:18
(6) Хм... без формы у меня 1С сразу выдает ошибку при попытки выполнить ОбработкаЯчейкиТаблицы()
8 vip03
 
03.09.15
08:43
ОбработкаЯчейки в глобальном модуле.
в код просто для примера поместил.
9 trdm
 
03.09.15
08:49
Думаю контекст не сериализуется/десериализуется.
Сделай обработку с таблицей, а не таблицу.
10 trdm
 
03.09.15
08:52
Имеется ввиду что он (контекст) не будет сериализоваться/десериализоватся из расшифровки ячейки таблицы.
11 vip03
 
03.09.15
08:54
(9) не понял. что значит "обработку с таблицей" ?
12 vip03
 
03.09.15
10:02
проблема решилась ч/з дескриптор окна.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс