|
Как сохранить ссылку на документ? | ☑ | ||
---|---|---|---|---|
0
bebibo
21.10.20
✎
15:43
|
Здравствуйте. Не сохраняется значение в реквизит.
Ссылка есть только в "Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт" ОбъектыНазначенияМассив - массив, в нем одна ссылка на документ. Мне эта ссылка нужна в другой процедуре ниже. Делаю так: создан рекв в обработке "СсылкаНаДок". В процедуре "Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт" пишу: ЭтотОбъект.Требование = ОбъектыНазначенияМассив[0]; Ниже в другой процедуре обращаюсь:СсылкаНаДок = ЭтотОбъект.Требование; - пусто. Как сохранить мне эту ссылку? Прошу подсказать:) |
|||
1
Free_soul
21.10.20
✎
15:48
|
(0) сразу: реквизит какого типа создал?
|
|||
2
bebibo
21.10.20
✎
15:50
|
(1) ДокументСсылка
|
|||
3
MikhaNik
21.10.20
✎
15:50
|
Скорее всего разные типы ссылок.
Проверь ТипЗнч(ЭтотОбъект.Требование) = ТипЗнч(ОбъектыНазначенияМассив[0]) |
|||
4
Free_soul
21.10.20
✎
15:50
|
(2) а суешь туда массив.. даа. делай хранилищезначения
|
|||
5
fisher
21.10.20
✎
15:50
|
УФ или ОФ? Реквизит формы или объекта? Что говорит Сообщить(Строка(ТипЗнч(ОбъектыНазначенияМассив[0])))?
|
|||
6
bebibo
21.10.20
✎
15:55
|
(3) Истина
|
|||
7
bebibo
21.10.20
✎
15:55
|
(5) Название документа
|
|||
8
bebibo
21.10.20
✎
15:55
|
(5) УФ
|
|||
9
fisher
21.10.20
✎
15:57
|
(8) Реквизит формы или объекта? :)
|
|||
10
bebibo
21.10.20
✎
15:58
|
(9) Он есть и на форме и в объекте
|
|||
11
bebibo
21.10.20
✎
16:03
|
(4) Я не сую массив, я сую элемент массив, то есть ссылку.
|
|||
12
fisher
21.10.20
✎
16:03
|
(10) Предположу, что это реквизит обработки, а не формы. На заре времен оно не переживало серверных вызовов. Потом вроде что-то поменяли, но я по инерции никогда не использую реквизиты обработок в УФ.
Попробуй удалить реквизит обработки и добавить его на форму (закладка "Реквизиты" в конструкторе формы). |
|||
13
bebibo
21.10.20
✎
16:04
|
Наверено единственный вариант будет делать хранилище значения?
|
|||
14
fisher
21.10.20
✎
16:09
|
Весь код в модуле формы? Покажи полностью процедуры, в которых пишешь и читаешь. Вместе с объявлениями и директивами компилятора.
|
|||
15
bebibo
21.10.20
✎
16:10
|
(12) Так зачем не реквизит формы, если форма не может сохранять ничего? Я наоборот специально рекв обработки создал, чтобы в него сохранил
|
|||
16
fisher
21.10.20
✎
16:12
|
(15) Сохранил куда? :)
|
|||
17
fisher
21.10.20
✎
16:14
|
Обработка в принципе ничего никуда не сохраняет, если ты это не делаешь явным образом (в базу данных). Ты только для формы можешь включить сохранение значений реквизитов в настройки пользователя.
|
|||
18
bebibo
21.10.20
✎
16:14
|
(14) Там так много, не смогу..Где заполняю и обращаюсь к ревизиту - они на клиенте.
|
|||
19
bebibo
21.10.20
✎
16:15
|
(17) Блин, Вы правы..
|
|||
20
bebibo
21.10.20
✎
16:15
|
Сейчас попробую
|
|||
21
bebibo
21.10.20
✎
16:21
|
(12) Сделал.
Всё равно пусто в реквизите..Когда обращаюсь к нему. |
|||
22
fisher
21.10.20
✎
16:22
|
Я не уверен, что мы друг друга понимаем. Если речь о передаче значения между процедурами формы пока форма открыта, то реквизит формы - это самое то. Он еще и на сервер передаваться будет (будет доступен в серверных контекстных вызовах формы). А так можно еще добавить клиентскую переменную модуля формы и через нее передавать. Эффект тот же, только на сервер "гулять" не будет.
&НаКлиенте Перем СсылкаНаДок; |
|||
23
fisher
21.10.20
✎
16:24
|
У меня подозрение, что ты пытаешься в модуле объекта обработки получить доступ к реквизиту обработки. Он там всегда пустой будет в УФ. Если только его в том же самом вызове не заполнять :)
|
|||
24
bebibo
21.10.20
✎
16:26
|
(22) В самом верху модуля формы обработки объявил: Перем СсылкаНаДок;
В "&НаКлиенте Процедура ВыполнитьКоманду(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт" - написал: СсылкаНаДок = ОбъектыНазначенияМассив[0]; Всё нормально. Но вот где обращаюсь (в другой процедуре) к "СсылкаНаДок" - ругается:Переменная не определена (СсылкаНаДок) |
|||
25
fisher
21.10.20
✎
16:33
|
(24) Если ты не написал перед объявлением переменной &НаКлиенте, то ты объявил серверную переменную.
Другая процедура тоже &НаКлиенте? |
|||
26
bebibo
21.10.20
✎
16:35
|
(25) "Если ты не написал перед объявлением переменной &НаКлиенте, то ты объявил серверную переменную" - не написал. Но теперь написал, ошибки исчезли.
"Другая процедура тоже &НаКлиенте?" - Да. Но всё равно там опять пусто.. |
|||
27
bebibo
21.10.20
✎
16:37
|
Что не так.. Как блин передать ссылку в другую процедуру..
|
|||
28
zuza
21.10.20
✎
16:39
|
(27) Как вызов другой процедуры происходит?
|
|||
29
bebibo
21.10.20
✎
16:40
|
(28) По кнопке в обработке
|
|||
30
zuza
21.10.20
✎
16:41
|
а вызов этой Процедура ВыполнитьКоманду()?
|
|||
31
fisher
21.10.20
✎
16:43
|
(26) Тогда ты спотыкаешься о что-то, что отсюда не видно. Попробуй воспроизвести проблему на пустой обработке без лишнего окружения.
|
|||
32
bebibo
21.10.20
✎
16:43
|
(30) Она экспортная, это же обработка, которая в вызывается кнопкой на форме документа. Вот я жму на кнопку в документе - открывается моя обработка и заходит в эту процедуру "ВыполнитьКоманду".
|
|||
33
bebibo
21.10.20
✎
16:49
|
Так и не получается..Но мне любым способом нужна ссылка. Может обратиться как то через ВладельцаФормы и тому подобное? Но тоже что то не получалось..
|
|||
34
MikhaNik
21.10.20
✎
17:24
|
ЗначениеЗаполнено(ОбъектыНазначенияМассив[0])
|
|||
35
MikhaNik
21.10.20
✎
17:26
|
Проверь после
ЭтотОбъект.Требование = ОбъектыНазначенияМассив[0]; ЗначениеЗаполнено(ОбъектыНазначенияМассив[0]) ЗначениеЗаполнено(ЭтотОбъект.Требование) |
|||
36
Free_soul
21.10.20
✎
18:57
|
(34) ) проверить массив на Количество()
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |