Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Как сохранить ссылку на документ?

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

ЗначениеЗаполнено(ОбъектыНазначенияМассив[0])
ЗначениеЗаполнено(ЭтотОбъект.Требование)
   Free_soul
 
36 - 21.10.20 - 18:57
(34) ) проверить массив на Количество()


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.