|
Как на форме передать параметр из одной процедуры в другу ↓ (Волшебник 01.03.2025 10:49) Волшебник, cleaner, Ужасный человек, , PR, FormatC, breezee, sladmin, craxx, DiMel_77, _Дайвер_, kostik79, formista2000, saaken, lubitelxml, rozer76
| ☑ | ||
---|---|---|---|---|
0
Ужасный человек
naïve
28.02.25
✎
18:46
|
Добрый вечер.
Как на форме передать параметр из одной процедуры в другу. К примеру в процедуре ПриСозданиинаСервере объявить переменную а = 15. И что бы в процедуре ПередЗаписью я мог обратиться к этой переменной. Есть ли иные способы кроме добавления реквизита формы? |
|||
1
Маленький Вопросик
28.02.25
✎
18:53
|
Через реквизит формы или объекта
|
|||
2
Ужасный человек
naïve
28.02.25
✎
18:55
|
нет реквизит формы и объекта не подходют
|
|||
3
lubitelxml
28.02.25
✎
19:02
|
В самом начале модуля формы напиши:
&НаКлиенте Перем ИмяТвоегоПараметра; Пока форма не закроется - доступна везде будет на клиенте |
|||
4
lubitelxml
28.02.25
✎
19:04
|
+(3) но там при переходе с клиента на сервер на сколько помню могу очищаться переменные, в общем пробуй, но по-хорошему - создай программно реквизит формы, и пиши в него, ничего криминального в этом нет
|
|||
5
Волшебник
28.02.25
✎
19:06
|
(2) подходят
|
|||
6
Ужасный человек
naïve
28.02.25
✎
19:07
|
(3) Если в процедуре &НаСервере написать то ошибка при компиляции
Объявления переменных должны быть расположены в начале модуля, процедуры или функции <<?>>Перем ИмяТвоегоПараметра; (Проверка: Тонкий клиент) Если написать вообще в самом начале, тогда да, можно в процедуре &НаСервере присвоить ей значение допустим 15. НОООО в процедуре &ПередЗаписью ИмяТвоегоПараметра будет ИмяТвоегоПараметра {<Неизвестный модуль>(1,1)}: Переменная не определена (ИмяТвоегоПараметра) |
|||
7
Ужасный человек
naïve
28.02.25
✎
19:08
|
(5) На собеседовании сказали, что мудозвон
|
|||
8
Ужасный человек
naïve
28.02.25
✎
19:13
|
1) Объявить в самом начале модуля
Перем ИмяТвоегоПараметра 2) В процедуре &НаСервере ПриСозданииНаСервере ИмяТвоегоПараметра =99; 3)В процедуре &НаСервере ПриЗаписиНаСервере Пытаюсь прочитать ИмяТвоегоПараметра . Говорит, что неопределено |
|||
9
Волшебник
28.02.25
✎
19:15
|
(7) надо было дать в морду
|
|||
10
Asmody
28.02.25
✎
19:32
|
(7) и в чём они не правы?
|
|||
11
Ужасный человек
naïve
28.02.25
✎
20:10
|
(10) Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой
|
|||
12
Волшебник
28.02.25
✎
20:12
|
(11) Вы не отвлекайтесь от простой передачи параметра. Не обобщайте контекст. Ваша задача сейчас — объяснить, почему не подходят реквизиты формы.
|
|||
13
Ужасный человек
naïve
28.02.25
✎
20:15
|
(12) Дык я бы с радостью. Но говорят так нельзя. Почему? У меня лично только догадки
|
|||
14
Волшебник
28.02.25
✎
20:16
|
(13) Вот это Вы нам должны объяснить, потому что мы Вам говорим, что так можно. Теперь мячик на Вашей стороне. Объясните
|
|||
15
Ужасный человек
naïve
28.02.25
✎
20:23
|
Занимает место в памяти на весь период жизни формы (14)
|
|||
16
Волшебник
28.02.25
✎
20:28
|
(15) И чо? Кто сегодня экономит оперативную память?
|
|||
17
Волшебник
28.02.25
✎
20:29
|
А переменная не будет занимать место в памяти? Такое чувство, что Вы тупой галлюцинирующий бот
|
|||
18
Ужасный человек
naïve
28.02.25
✎
20:30
|
(17) Её можно в коде от условия обьявить
|
|||
19
Волшебник
28.02.25
✎
20:31
|
(18) Не морочьте нам голову! Если переменная нужна, она займёт место в памяти.
|
|||
20
Волшебник
28.02.25
✎
20:31
|
Тупой бот пытается нас одурачить. Приплёл каких-то призрачных собеседователей. Он просто нас тестирует, я так вижу.
|
|||
21
Ужасный человек
naïve
28.02.25
✎
20:33
|
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс
|
|||
22
Волшебник
28.02.25
✎
20:33
|
(21) Тупой бот
|
|||
23
Волшебник
28.02.25
✎
20:35
|
Кстати, он уже не первый раз на нашем форуме. До этого у него был ник Королевский Тигр
и тоже попал в бан по причине "бот" |
|||
24
Kongo2019
01.03.25
✎
00:05
|
(14) Новый тренд вроде такой, нельзя использовать глобальные переменные. 1С не рекомендует стандартах.
|
|||
25
Guk
01.03.25
✎
01:07
|
(24) когда программисты 1С что-то не асиливают, сразу следуют рекомендации о не рекомендуемости. кто-нибудь может вразумительно объяснить, почему в модуле приложения я могу объявить глобальную клиентскую переменную, а глобальную серверную переменную я не могу объявить нигде. она тут же херится...
|
|||
26
b_ru
01.03.25
✎
03:09
|
Глобальная переменная общего модуля сохраняется только на клиенте. На сервере не могут храниться никакие переменные, сервер 1С:Предприятие stateless, он вообще не хранит никаких данных о сессии, каждое новое обращение к серверу отдельно и не связано с предыдущими. Это концепция, и ее не нарушить.
Чтобы использовать переменную, объявленную в модуле формы через Перем между серверными вызовами, надо ее объявить &НаКлиенте и соответственно передавать в серверные процедуры при каждом вызове. Или сделать реквизитом формы, тогда передачу на сервер платформа сделает сама. |
|||
27
Bigbro
01.03.25
✎
05:37
|
(18) реквизит формы тоже можно в коде программно по условию создать и что?
|
|||
28
Конструктор1С
01.03.25
✎
06:01
|
(13) видимо тебя собеседовал рукопоп
|
|||
29
Конструктор1С
01.03.25
✎
06:04
|
(24) тренд не новый, ровесник твоего бати. Но реквизиты формы не глобальные переменные, они только в контексте формы видны
|
|||
30
Kongo2019
01.03.25
✎
10:33
|
(29) Ну уже и реквизиты формы и другие служебные реквизиты типа не модно. Теперь модно гонять структуру из одной процедуры в другую.
|
|||
31
PR
01.03.25
✎
10:36
|
Да что вы тут сопли развели
Люди пытались от ТС добиться использования ДополнительныеСвойства |
|||
32
rozer76
01.03.25
✎
11:25
|
(31) вроде тут про форму а не про объект. Как тут это поможет?
|
|||
33
DiMel_77
01.03.25
✎
11:34
|
(31) А не могли бы вы показать пример - как из серверной процедуры "ПриСозданииНаСервере" через дополнительные свойства объекта передать в клиентскую процедуру "ПередЗаписью"?
Я тоже сначала подумал, что спрашивали про дополнительные свойства, но не вяжется с контекстом... |
|||
34
PR
01.03.25
✎
12:20
|
(32) А что, у формы нет основного реквизита Объект?
|
|||
35
PR
01.03.25
✎
12:22
|
(33) Не мог бы, нет времени заниматься ликбезом тех, кому не нужен ликбез, а нужен спор
Скажу лишь, что в клиентской процедуре ПередЗаписью можно легко вызвать серверную процедуру и получить все, что нужно |
|||
36
DiMel_77
01.03.25
✎
16:10
|
(35) Вы неправы. У вас никак не получится установить дополнительные свойства объекта в процедуре "ПриСозданииНаСервере"? Я вот такой возможности не знаю.
Я без наезда, может есть прием, а я все пропустил? |
|||
37
PR
01.03.25
✎
16:56
|
(36) Ничего не понял
Объект.ДополнительныеСвойства.Вставить("ЗадняяЧастьЧеловека", "Жопа"); |
|||
38
DiMel_77
01.03.25
✎
17:09
|
(37) В том то и прикол, что Объект там это данные формы структура. Прочитать объект вы конечно можете типа РеквизитФормыВЗначение("Объект"), а уже установить в нем дополнительное свойство нельзя. Манипуляция дополнительными свойствами возможна только в серверных функция, в которых передаётся объект в качестве параметра типа ПередЗаписьюНаСервере(). Поэтому и интересуюсь.
|
|||
39
PR
01.03.25
✎
18:24
|
(38) А, ну да, в форме не получится
Причем даже через ЭтотОбъект.Параметры.ДополнительныеПараметры Только через ПоместитьВоВременноеХранилище Но вообще, если речь про форму, то ограничение на не использование реквизита формы само по себе идиотское А если речь про модуль объекта, то велкам, все работает |
|||
40
Ужасный человек
naïve
01.03.25
✎
19:31
|
(38) (39)
Вы мои кумиры. Спасибо вам огромное. Теперь стало ясно! |
|||
41
craxx
02.03.25
✎
16:02
|
(39) а что мешает ключевыми параметры сделать?
|
|||
42
PR
02.03.25
✎
17:41
|
(41) Вообще не понял, про что речь
Написано же, в форму реквизиты не добавлять Или типа ну ok, нельзя реквизиты, пропихнем параметры? Думаю, ответ будет такой же, что нечего хитрожопить, делай кодом |
|||
43
Волшебник
02.03.25
✎
21:21
|
(42) Теперь ты кумир, смирись.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |