Имя: Пароль:
1C
1C 7.7
v7: передача контекста таблицы
0 vip03
 
02.06.15
12:02
помогите победить проблему:
Процедура Сформировать()
Таб=СоздатьОбъект("Таблица");
СЗ=СоздатьОбъект("СписокЗначений");
СЗ.ДобавитьЗначение(Таб, "Таблица");
// В ячейке в расшифровке указан этот список
Таб.Вывести();
Сообщить(ТипЗначенияСтр(СЗ.Получить("Таблица"))); // Здесь контекст таблицы еще существует
КонецПроцедуры

Процедура ОбработкаЯчейкиТаблицы(Значение, ФлагСО)
// уже здесь таблица потерялась
Таб=Значение.Получить("Таблица"); // Таб=НеизвестныйОбъект
ОткрытьФорму("Отчет", Значение, "ВнешняяОбработка")
КонецПроцедуры

// Во внешней обработке
Процедура ПриОткрытии()
СЗ=Форма.Параметр;
Таб=СЗ.Получить("Таблица"); // Таб = НеизвестныйОбъект
КонецПроцедуры


Как передать собственно контекст таблицы?
1 trad
 
02.06.15
12:11
ОбработкаЯчейкиТаблицы(<Значение>,<ФлагСтандОбраб>,<Таблица>,<Адрес>)

3 параметр
2 lavalit
 
02.06.15
12:12
Сообщить(ТипЗначенияСтр(СЗ.Получить("Таблица")));// Здесь контекст таблицы еще существует

"Значение" так понимаю это список впроцедуре  обработка ячейкитаблицы? так сделай позиционирование на строку
3 lavalit
 
02.06.15
12:13
толькло вот не видно где ты в ячейку пишешь свой список то? что бы читать его оттудова?
4 lavalit
 
02.06.15
12:14
либо уж весь код в студию... телепатировать как то лениво)))))
5 vip03
 
02.06.15
12:22
В таблице у ячейки в Расшифровке установлен этот список.
вообще список содержит:
СЗ.ДобавитьЗначение("ПутьКФайлуОбработки","Путь"); // Строка с именем запускаемой обработки
СЗ.ДобавитьЗначение(Конт.Поставщик,"Поставщик"); // Конт - это форма документа откуда вызвана обработка печати
СЗ.ДобавитьЗначение(Конт, "Контекст"); // Это собственно контекст формы документа
СЗ.ДобавитьЗначение(Таб, "Таблица"); // Это контекст таблицы

Во внешней обработке, которая вызывается по клику ячейки
Значение.Получить("Путь"); // Все правильно возвращает
Значение.Получить("Поставщик"); // Все правильно. Элемент справочника
Значение.Получить("Контекст"); // Здесь уже ошибка. НеизвестныйОбъект
Значение.Получить("Таблица"); // Ошибка. НеизвестныйОбъект
6 uno-group
 
02.06.15
12:25
текст расшифровки ячейки по какой клацаешь в студию. там должно быть "сз"
7 vip03
 
02.06.15
12:30
список параметров ПЕРЕДАЕТСЯ во внешнюю обработку.
трабла в том, что когда я из параметра пытаюсь получить "Таблица" - оно мне пишет "НеизвестныйОбъект"
Параметр "Путь", "Поставщик" - там все проавильно.
А вот таблица при передаче куда-то теряется. так же как и контекст формы документа.
но если с контекстом документа - не сильно он и нужен, то таблица нужна. мне ее нужно сохранить и отправить по почте.
8 Ёпрст
 
02.06.15
12:32
(7) судя по коду в (0) , никуда ничего во ВНЕШНЮЮ обработку не передается.
Чем  (1) не устраивает - не ясно.
9 Ёпрст
 
02.06.15
12:34
ежели саму Таблицу нужно отдать по почте, ну так записывай её в моксель и передавай его. делов-то
10 lavalit
 
02.06.15
12:37
Не называй параметр словом "Таблица".... назови например "ТабДляКакихТоЦелей"
11 lavalit
 
02.06.15
12:38
имя "таблица" может быть зарезервировано например))
12 vip03
 
02.06.15
12:46
(0) список параметров ПЕРЕДАЕТСЯ.
(9) ее не всегда нужно передавать. оператор может ее на принтер пустить, а может и по почте отправить.
(10) (11) переименовал в "_Табл" - не взлетело. :-(

(1) так работает. Только процедура глобальная. Не хочется глобальный модуль править. Хотя уже что-то.. спасибо.
13 uno-group
 
02.06.15
13:43
размести в форме будет локальная у нее приоритет.