|   |   | 
| 
 | Реквизиты объекта в дополнительной форме | ☑ | ||
|---|---|---|---|---|
| 0
    
        Ookami 27.03.14✎ 10:05 | 
        Доброго времени суток!
 8.2, управляемые формы. Есть внешняя обработка с реквизитом. У обработки есть несколько форм, у всех в качестве основного реквизита по-умолчанию указан Объект. В основной форме устанавливаю значение реквизита объекта: &НаСервере Процедура УстановитьЗначениеРеквизита(Реквизит, ЗначениеРеквизита) ОбработкаОбъект = РеквизитФормыВЗначение("Объект"); ОбработкаОбъект[Реквизит] = ЗначениеРеквизита; ЗначениеВРеквизитФормы(ОбработкаОбъект, "Объект"); КонецПроцедуры После этого по нажатию кнопки открывается дополнительная форма, в которой, помимо прочего, происходит обращение к реквизиту объекта, но его значение Неопределено. Обращаться к реквизиту пробовал и напрямую через Объект.Риквизит, и через РеквизитФормыВЗначение("Объект").Реквизит, результат один и тот же. Что я делаю не так? Пните в нужном направлении, пожалуйста. | |||
| 1
    
        Ookami 27.03.14✎ 10:06 | 
        (0) при обращении к реквизитам объекта из основной формы - все заполнено теми значениями, которыми и должно. Проблема только при открытии дополнительной формы     | |||
| 2
    
        Fedor-1971 27.03.14✎ 10:16 | 
        Точно заполняешь реквизит Объекта, а не формы объекта?
 Попробуй заполнять так: Объект.Реквизит=нужное значение | |||
| 3
    
        Defender aka LINN 27.03.14✎ 10:17 | 
        (0) А для нафига объект туда-сюда преобразовывать, чтобы серверу было чем заняться?     | |||
| 4
    
        Ookami 27.03.14✎ 10:32 | 
        (2) Попробовал, без изменений
 (3) Вероятно, не до конца понимаю сакральный смысл РеквизитФормыВЗначение | |||
| 5
    
        Fedor-1971 27.03.14✎ 10:38 | 
        а как форму открываешь?     | |||
| 6
    
        Ookami 27.03.14✎ 11:00 | 
        (5) 
 ФормаКарточкаДокумента = ПолучитьФорму("ВнешняяОбработка.МояОбработка.Форма.НужнаяФорма", , , Идентификатор); ФормаКарточкаДокумента.Открыть(); | |||
| 7
    
        Ookami 27.03.14✎ 11:01 | 
        (5) И вот на этом месте я задумался о том что открываю неправильно =)     | |||
| 8
    
        alexei366 27.03.14✎ 11:05 | 
        (0) Тебе не кажется что Объект-Обработка не имеет "отображение в базе данных" и соответственно данные при открытии других форм не считываются с базы.
 Это же религия))) | |||
| 9
    
        alexei366 27.03.14✎ 11:06 | 
        (8) Ты его не записываешь, у обрабоки нет понятия Ссылки и т.д     | |||
| 10
    
        Ookami 27.03.14✎ 11:14 | 
        (8) я видимо что-то упустил в этой жизни. Есть объект (обработка) исполняющаяся в среде, и пока она исполняется - все данные, касающиеся ее работы, висят в памяти. Закрыли обработку - потеряли данные, это логично. Но пока она работает - доступ к ним должен быть.     | |||
| 11
    
        Defender aka LINN 27.03.14✎ 11:17 | 
        (10) Он и есть. Что тебя смущает?     | |||
| 12
    
        alexei366 27.03.14✎ 11:19 | 
        (10) Ну вот ты открываешь доп форму, что ты туда передаешь чтоб 1С поняла что это тотже объект что и в основной?
 Я так думаю ничего | |||
| 13
    
        Ookami 27.03.14✎ 11:19 | 
        (11) смущает написанное в (8) и (9) 
 Если обработка при открытии своей второй формы не в состоянии передать ей свои реквизиты - смысл вообще тогда в этих реквизитах? | |||
| 14
    
        Ookami 27.03.14✎ 11:20 | 
        (12) я к этому и пришел в (7), вопрос в том как при открытии формы сказать что это форма того же объекта     | |||
| 15
    
        alexei366 27.03.14✎ 11:28 | 
        (14) Передавай Объект в доп форму и там заполняй реквизиты "местного объета", можеш используя метаданные объекта с обходом реквизитов)
 наверно так. Я реквизиты обработки использую в серверных процедурах и функциях. | |||
| 16
    
        alexei366 27.03.14✎ 11:29 | 
        (14) Или попробуй вдруг сработает.
 Получаешь доп форму и в её экспортную процедуру передаешь объект основной формы, там переходишь на серверную процедуру и там попробывать ЗначениеВРеквизитФормы(ОбработкаОсновнойОбъект, "Объект"); | |||
| 17
    
        Defender aka LINN 27.03.14✎ 11:54 | 
        (13) Напиши код и передавай что угодно. А у другой формы объект тоже другой.     | |||
| 18
    
        Ookami 27.03.14✎ 12:13 | 
        (15) гонять весь объект между формами кажется мне плохой идеей. Но нашел такой вариант решения:
 Форма = ПолучитьФорму("ВнешняяОбработка.Обработка.Форма.ИмяФормы", , ЭтаФорма, Идентификатор); Тогда реквизиты объекта доступны через владельца: ВладелецФормы.Объект | |||
| 19
    
        alexei366 27.03.14✎ 12:29 | 
        (18) Ну удачи тебе с поиском хорошей идеи)))     | |||
| 20
    
        anton_mgn 27.03.14✎ 12:42 | 
        (0) Возможно прощк вместо открытия разных форм менять страницы на панели одной формы.     | |||
| 21
    
        Ookami 27.03.14✎ 18:04 | 
        (19) задача решена использованием владельца формы, спасибо (20) на основной форме уже итак много страниц, тем более открываемое окно может существовать одновременно в нескольких экземплярах
 Всем спасибо, проблема решена | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |