Имя: Пароль:
1C
 
Вернуть в место вызова результат ПоказатьВводЗначения и доп. значения
Ø (Волшебник 22.01.2024 15:39)
0 Momus
 
22.01.24
14:56
Есть кнопка на форме. При ее нажатии необходимо открыть форму выбора оборудования, затем вернуть результат с этого оборудования. Данная команда будет вызываться во многих формах, поэтому хочу весь код вынести в общий модуль (все выполняется на клиенте). Не могу реализовать функцию, в которой будет открытие формы выбора справочника с оборудование при помощи асинх метода ПоказатьВводЗначения() и возврат значения с этого оборудования. Если разбить отдельно на процедуру выбора элемента и получение значения, то все ок, но выходит много лишнего кода в модуле формы (я же от него наоборот избавиться хочу).
Собственно вопрос: как вызвать процедуру ПоказатьВводЗначения (необязательно ее) и вернуть результат в место вызова за один вызов общего модуля?
1 PR
 
22.01.24
15:02
2 Momus
 
22.01.24
15:08
(1) я не могу выполнить что-то вроде РезультатВыбора = ждать ПоказатьВводЗначения(), поскольку ПоказатьВводЗначения не возвращает результат. Асинх функцию я могу в моем примере использовать только для получения значения непосредственно с оборудования, но как при этом еще выбрать элемент справочника в одном вызове мне непонятно
3 AlexeyKh
 
22.01.24
15:08
"Есть кнопка на форме."

так рядом с кнопкой сделайте поле ввода нужных данных (реквизит формы)
и при нажатии кнопки ни чего вводить не надо
просто берете значение реквизита из этого поля (связанного с ним) и обрабатываете
(если не задано выводите сообщение "необходимо выбрать значение")
4 PR
 
22.01.24
15:10
(2) А причем здесь ПоказатьВводЗначения?
Читай статью внимательно
Если в твоей версии 1С есть описанное в статье, используй
Если нет, значит придется дробить на процедуры
5 Momus
 
22.01.24
15:12
Если после ПоказатьВводЗначения(Новый ОписаниеОповещения("ПоказатьВводЗначенияЗавершение")) я передаю выполнение кода в процедуру ПоказатьВводЗначенияЗавершение, то я не могу вернуть результат в месте вызова. Приходится для этого создавать реквизиты формы, которые причем можно передать по ссылке в качестве параметра, и уже в общем модуле изменять. Но в этом случае придется дорабатывать форму, что не очень хочется.
6 Momus
 
22.01.24
15:13
(4) так я читал и использую, но не могу понять как и выбрать элемент справочника и вернуть результат с оборудования
7 Momus
 
22.01.24
15:14
(3) это аж в два раза больше действий придется выполнять оператору
8 Momus
 
22.01.24
15:16
(6) использовал по крайне мере в тех примитивных примерах, что везде приводятся в пример. моя задача хоть и несложная, но я в ступоре
9 PR
 
22.01.24
15:19
Да блин, используй ВвестиЗначениеАсинх
10 lodger
 
22.01.24
15:20
(5) ВвестиЗначениеАсинх почитай в СП
11 lodger
 
22.01.24
15:20
(6) нельзя использовать старые методы в новой концепции. у концепта Асинхов есть свои специальные вызовы.
12 Галахад
 
гуру
22.01.24
15:20
Вроде и слова понятные, а смысл ускользает.
Это я туплю или действительно сложный алгоритм?
13 PR
 
22.01.24
15:22
(12) Это ТС в школе читать не научили, вот он (1) прочитать и не может, тупит
Бяда
14 Momus
 
22.01.24
15:24
(13) там как бы нет ВвестиЗначениеАсинх. Можно же было сразу написать (9), не?
15 lodger
 
22.01.24
15:32
(12) вроде простейший.

Асинх Процедура ПриНажатойКнопке(Команда)
НовоеЗначение = ПредопределенноеЗначение("Справочник.МойСправочник.ПустаяСсылка");
ВашеЗначение = Ждать ВвестиЗначениеАсинх(НовоеЗначение,"слыш натыкай");
КручуВерчу(ВашеЗначение);
КонецПроцедуры;
16 PR
 
22.01.24
15:26
(14) Там, это где, в Зазеркалье?
То есть ты возмущаешься, что тебе не все разжевали и положили в рот, тебе приходится самому работать мозгом?
Может тогда проще поменять профессию?
Там так-то вся статья про то, что есть теперь новые функции ...Асинх, используйте их
Но да, весь СП по Асинх в статью не перебили, сволочи
17 lodger
 
22.01.24
15:26
(14) есть. под словами
"«Новые» асинхронные функции платформы, возвращающие Обещание"
18 Momus
 
22.01.24
15:27
(15) ну теперь-то да, я не знал про ВвестиЗначениеАсинх, а в пример только про файлы и т.п.
19 PR
 
22.01.24
15:28
(14) Может мне сразу за тебе и сделать и денег получить за реализацию?
Я так-то всегда считал, что программисты — это люди, которым даешь документацию, а они уж дальше сами, в этом их работа и заключается, собственно
За что им иначе сотни тысяч-то платить?
За то, что они конфигуратор умеют открывать?
20 Momus
 
22.01.24
15:29
(16) написать про "ВвестиЗначениеАсинх" - это все разжевать и положить в рот? Мда
21 lodger
 
22.01.24
15:35
(20) там вроде ясен намёк на то что их много. у вас видимо много времени "что-то пробовать" даже поверхностно не вникая в тему?
22 PR
 
22.01.24
15:31
(18) Потому что это пример
А дальше нужно было открыть СП и поискать рядом с ПоказатьВводЗначения что-нибудь с Асинх в конце, скорее всего то, что было раньше, только с Асинх в конце, то есть ВвестиЗначениеАсинх
Ого, прикинь, все же именно ровно так и оказалось, бывает же такое!
23 Momus
 
22.01.24
15:31
(19) может кому-то стоит понизить свое чувство собственной важности? еще забаньте меня, как вы это любите делать в других темах, синдром вахтера он такой
24 PR
 
22.01.24
15:32
(20) Разжевать и положить в рот — это расписать алгоритм из (22)
До его расписывания ты почему-то сам не справился, что странно
25 PR
 
22.01.24
15:33
(23) Не гони напраслину и не нарушай правило 8
Лучше потрать время на изучение Зазеркалья и СП, полезные вещи
26 PR
 
22.01.24
15:34
(21) Плохо
Я свои деньги и так заработаю
Но хотелось бы, чтобы в сообществе программистов 1С было как можно больше профессионалов
27 Momus
 
22.01.24
15:35
(25) я про не понял для чего эти бесполезные сообщения, если есть идеальные сообщения под (10). Если вы хотите ткнуть кого-то носом, мб лучше не писать вообще? Это я как к участнику форума пишу, а не модератору
28 Momus
 
22.01.24
15:36
(26) токсичность на форуме разве увеличивает количество профессионалов?
29 PR
 
22.01.24
15:40
(28) С точки зрения профессионализма тебе дан был исчерпывающий ответ в (1)
Но тебе его оказалось недостаточно
Бывает
Количество профессионалов увеличивает только приобретение людьми необходимых профессиональных знаний, а для этого нужно работать, а не искать исчерпывающие ответы
2 + 2 = 3.9999999999999999999999999999999...