|
УФ. Передать ссылку на реквизит обработки в процедуру как параметр | ☑ | ||
---|---|---|---|---|
0
zelenprog
20.12.23
✎
10:44
|
Здравствуйте!
В общем модуле есть процедура, которая должна "вычислить" некоторое значение и записать его в реквизит обработки типа "ПолеВвода". Из формы обработки пытаюсь передать это поле ввода как параметр в эту процедуру общего модуля: ОбщМодуль_Доп.ЗаполнитьПолеВвода(Объект.ПолеВвода1); Однако, поле ввода передается в процедуру просто как строка. А надо, чтобы оно передалось по ссылке. Как это сделать??? |
|||
1
banco
20.12.23
✎
10:57
|
||||
2
zelenprog
20.12.23
✎
11:07
|
(1) Прочитал. Но ответа там не нашел.
У меня обе процедуры (и вызывающая процедура в форме и вызываемая процедура общего модуля) являются клиентскими. Так что передачи управления нету. В параметре вызываемой процедуры "Знач" не указан. Значит, передача должна выполниться по ссылке. Тут проблема в том, что надо как-то "адресовать" ссылку реквизита обработки. |
|||
3
vicof
20.12.23
✎
11:27
|
Тип какой у твоего реквизита с именем, говорящим о том, что ты не понимаешь, что такое реквизит и что такое поле ввода?
|
|||
4
Волшебник
20.12.23
✎
11:36
|
ПолеВвода1 - плохое имя
|
|||
5
zelenprog
20.12.23
✎
11:49
|
(3) Тип у реквизита "Строка".
>> ... ты не понимаешь, что такое реквизит и что такое поле ввода? Я понимаю. Но про "ПолеВвода" я конечно не правильно написал. Значит так. В обработке на вкладке "Данные" добавлен реквизит "ИмяФайла" с типом "Строка". На форму добавлен элемент типа "ПолеВвода", у которого установлен ПутьКДанным "Объект.ИмяФайла". (4) >> ПолеВвода1 - плохое имя Согласен. На самом деле имя реквизита - "ИмяФайла". Процедруа в общем модуле должна выполнить поиск файла по сложным критериям и подставить его имя в поле ввода. |
|||
6
Valdis2007
20.12.23
✎
11:52
|
(5) ИмяФайла -реквизит обработки? или формы обработки?
|
|||
7
zelenprog
20.12.23
✎
11:53
|
(6) Реквизит обработки.
|
|||
8
Garykom
гуру
20.12.23
✎
11:54
|
Реквизиты обработок (особенно внешних) лучше не использовать
Глюки разные Имхо я стараюсь использовать реквизиты формы |
|||
9
vicof
20.12.23
✎
11:56
|
Ты передаешь строку в общий модуль.
Строка передается по значению, ссылок на строку не существует. Объект.ИмяФайла = ЗаполнитьПолеВвода(Объект.ИмяФайла); должно тебя спасти. |
|||
10
Valdis2007
20.12.23
✎
11:59
|
убери в определении процедуры в модуле ключевое слово - Знач
ЗаполнитьПолеВвода(Знач Параметр) |
|||
11
zelenprog
20.12.23
✎
12:01
|
(9) Хм...
Значит, если реквизит обработки - имеет тип, например, "ТаблицаЗначений", то ссылку на такой реквизит я смогу передать. А если реквизит имеет тип "Строка", то ссылки на такой реквизит нету? Странно. А как можно "выкрутиться"? |
|||
12
zelenprog
20.12.23
✎
12:02
|
(8) Попробовал передавать реквизит формы - результат тот же.
(9) У меня нету "Знач" в объявлении параметров процедуры. |
|||
13
zelenprog
20.12.23
✎
12:02
|
(10) У меня нету "Знач" в объявлении параметров процедуры.
|
|||
14
Valdis2007
20.12.23
✎
12:09
|
(13) тогда делай как в (9) Объект.ИмяФайла = ЗаполнитьПолеВвода(Объект.ИмяФайла);
|
|||
15
Valdis2007
20.12.23
✎
12:09
|
если ЗаполнитьПолеВвода - функция
|
|||
16
Garykom
гуру
20.12.23
✎
12:14
|
В переводе на фронт/бэк из веб-технологий вопрос звучит примерно так:
"На бэке (nodejs) есть процедура, которая должна вычислить и заполнить элемент html в браузере. Как его передать по ссылке из js?" Ответ: Никак. |
|||
17
zelenprog
20.12.23
✎
12:21
|
(16) Ну у меня же не фронт\бэк. У меня обе процедуры "клиентские".
|
|||
18
Garykom
гуру
20.12.23
✎
12:26
|
Объект["ИмяРеквизита"]
Но это изврат |
|||
19
Garykom
гуру
20.12.23
✎
12:26
|
(18)+ Либо через ЗаполнитьЗначенияСвойств
|
|||
20
НафНаф
20.12.23
✎
13:06
|
(0) а оно и передается по ссылке
|
|||
21
Dmitrii
гуру
20.12.23
✎
13:29
|
(0)
|
|||
22
Dmitrii
гуру
20.12.23
✎
13:32
|
+1 к (20)
Кстати говоря, да. Всё работает корректно. Где-то косяк у автора. |
|||
23
zelenprog
20.12.23
✎
14:15
|
(20),(22) Нашел в чем мой косяк.
Если присваивать в той же процедуре через имя параметра, то все работает:
Однако, мне надо передавать ссылку на этот реквизит в другую процедуру через локальную переменную или через свойство структуры:
И вот тут уже передать ссылку на реквизит типа "Строка" через структуру не получается. Хотя, если этот реквизит является "сложным" типом (например "ТаблицаЗначений"), то ссылку передать можно! |
|||
24
zelenprog
20.12.23
✎
14:20
|
(18) >> Объект["ИмяРеквизита"]
>> Но это изврат А почему это изврат? И как правильно делать в таком случае? |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |