|
|
Почему &НаКлиенте Сообщить() отрабатывает. &НаСервере не видно результата
Ивановна, ryutao, runuts, 1nvertex, Greeen, RVN, unenu, evgeniy_n, Ненавижу 1С, Hans, Eiffil123, nysyssimara, _Batoo, mikecool, АгентБезопаснойНацио, arsik, Redkiy, Мультук, Tatitutu, JohnGilbert, paramedic, 1cVandal, PR, vyaz, Builder, Zamestas, H A D G E H O G s, ads55, rozer76, Климов Сергей, Мыхалыч, , b_ru, KJlag, lubitelxml, nick86, bolder, Fish, okmail, alexxx961503, Double_Medved, ЕRPe, Fedor-1971, phabeZ, mTema32, Kigo_Kigo, Жеглофф, ndrv, Многолетний Апельсин, scanduta, toypaul, qwerty, Prog_man, Anton1307, Zombi, Поток сознания, Somebody, Андрюха, 2S, MWWRuza, Михаил_, trad, RomanYS, Web00001, Fragster, Злопчинский, kir-g, Доминошник, navigator, maxar, reloc, denk32, integer, Fregat, Timon1405, Mihenius, АЛьФ, avkynev, NorthWind, Галахад, DrZombi, ХДС, Ногаминебить, FirstLineSupport, Федя Тяпкин, ildary, APXi, Bad_Aleks, Ageres, Dirk Diggler, Garykom, Chameleon1980, Ager, fbear, gugolovski, elka302, Seducer, глазковыколупыватель, proger2021, obs191, Zapal, ass1c, saaken, Trucker, Широкий, Шаграм, Rovan, yurikmellon2, zenik, sikuda, Sneer, Кир Пластелинин, vicof, Лодырь, Mraque, Telcher, DemonShinji2, MM, icipher, AlexKimp, Гипервизор, TormozIT, Tarlich
| ☑ |
|
0
gugolovski
17.03.26
✎
03:59
|
Когда в модуле указано &НаКлиенте получаю сообщения, если указывается &НаСервере не видно результатов.
Процедура ВыполнитьКоманда(Команда)
М = Новый Массив;
М.Добавить(1);
М.Добавить(8);
М.Добавить(15);
М.Добавить(45);
Для каждого сч из М Цикл
Сообщить(сч);
КонецЦикла;
КонецПроцедуры
|
|
|
1
NorthWind
17.03.26
✎
04:04
|
А вы включите логику и подумайте - где оно должно на сервере отображаться и кто его там увидит?
|
|
|
2
gugolovski
17.03.26
✎
04:13
|
(1) логично) А можно еще вопрос:
/////////////////////////////////
&НаКлиенте
Процедура Два(пых)
для Инд=0 по пых.Количество()-1 Цикл
Сообщить(пых[Инд]);
КонецЦикла;
КонецПроцедуры
Процедура ВыполнитьКоманда(Команда)
М = Новый Массив;
М.Добавить(1);
М.Добавить(8);
М.Добавить(15);
М.Добавить(45);
Два(М);
КонецПроцедуры
/////////////////////////////////
{ВнешняяОбработка.СравниУуправляемое.Форма.Форма.Форма(18,1)}: Процедура или функция с указанным именем не определена (Два)
<<?>>Два(М); (Проверка: Сервер)
Почему это возвращает ошибку. Я же объявил процедуру
|
|
|
3
ads55
17.03.26
✎
05:25
|
(2) Потому что с сервера клиент не вызывается. Не указанная директива = &НаСервере
|
|
|
4
gugolovski
17.03.26
✎
05:34
|
(3) А если указать вот так:
///////
Процедура Два(пых)
для Инд=0 по пых.Количество()-1 Цикл
Сообщить(пых[Инд]);
КонецЦикла;
КонецПроцедуры
Процедура ВыполнитьКоманда(Команда)
М = Новый Массив;
М.Добавить(1);
М.Добавить(8);
М.Добавить(15);
М.Добавить(45);
Два(М);
КонецПроцедуры
//////////////////
все происходит на сервере и что выдает метод "Сообщить()" непонятно: обработка ничего не возращает. как мне написать код с вложенной процедурой, чтоб он мне вернул ответ
|
|
|
5
ads55
17.03.26
✎
05:43
|
(4) Для данного случая можно так:
&НаСервере
Процедура Два(пых, чих)
для Инд=0 по пых.Количество()-1 Цикл
чих.Добавить(пых[Инд]);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьКоманда(Команда)
М = Новый Массив;
М.Добавить(1);
М.Добавить(8);
М.Добавить(15);
М.Добавить(45);
мС = Новый Массив;
Два(М, мС);
Если мС.Количество() > 0 Тогда
Для каждого ЭлМ Из мС Цикл
Сообщить(ЭлМ);
КонецЦикла;
КонецЕсли;
КонецПроцедуры
|
|
|
6
b_ru
17.03.26
✎
05:45
|
>>как мне написать код с вложенной процедурой, чтоб он мне вернул ответ
Сделать серверную процедуру функцией, которая возвращает ответ. Вызвать ее на клиенте и Сообщить полученный ответ.
|
|
|
7
2S
17.03.26
✎
07:22
|
Использовать БСП и ипать мозг
ОбщегоНазначенияКлиентСервер.СообщитьПользователю
|
|
|
8
Мультук
гуру
17.03.26
✎
07:45
|
(0)
1) Как вы это делаете {нехороший эпитет}?
2) Пишем простую обработку
Форма (с событием ПриОткрытии) и команда (Кнопка)
Открываем форму, жмём кнопку
//Нажатие кнопки (команды)
&НаКлиенте
Процедура КомандаАляля(Команда)
КомандаАляляНаСервере();
КонецПроцедуры
&НаСервере
Процедура КомандаАляляНаСервере()
Сообщить("КомандаАляляНаСервере");
КонецПроцедуры
//Событие формы "ПриОткрытии"
&НаКлиенте
Процедура ПриОткрытии(Отказ)
ПриОткрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриОткрытииНаСервере()
Сообщить("ПриОткрытииНаСервере");
КонецПроцедуры
Получаем оба сообщения (см рис)
|
|
|
9
vicof
17.03.26
✎
07:52
|
Я бы ещё любую книжку по восьмой платформе посоветовал почитать
|
|
|
10
DrZombi
гуру
17.03.26
✎
08:04
|
(0) Не используйте Сообщить, это от прошлых толстых клиентах.
На УФ надо использовать "Сообщение = Новый СообщениеПользователю;"
При выполнении на Сервере, или на сервере через "Фоновое Задание", у вас есть метод "ПолучитьСообщенияПользователю()"
... И как-то так ...
|
|
|
11
Fish
гуру
17.03.26
✎
09:12
|
Стаж 12 лет....
|
|
|
12
Ненавижу 1С
гуру
17.03.26
✎
09:30
|
(8) тоже был удивлен
|
|
|
13
unenu
17.03.26
✎
09:35
|
Когда использовал Сообщить, то принял негласное правило -
только через переменную. Как-то обсуждали, что без переменной в некоторых случаях не сообщает.
Для каждого сч из М Цикл
ТекстСообщения = Строка(сч);
Сообщить(ТекстСообщения);
КонецЦикла;
|
|
|
14
1cVandal
17.03.26
✎
10:23
|
(8) теперь в модуле попробуй, ом или объекта.. а не на форме.. затем подумать
|
|
|
15
Мультук
гуру
17.03.26
✎
10:39
|
(14)
А о чём я должен подумать ?
Всё та же обработка.
&НаКлиенте
Процедура КомандаИзМодуляОбработки(Команда)
КомандаИзМодуляОбработкиНаСервере();
КонецПроцедуры
&НаСервере
Процедура КомандаИзМодуляОбработкиНаСервере()
об= РеквизитФормыВЗначение("Объект");
об.ПриветИзМодуляОбъекта();
КонецПроцедуры
=== Модуль обработки ===
Процедура ПриветИзМодуляОбъекта() Экспорт
Сообщить("ПриветИзМодуляОбъекта");
КонецПроцедуры
|
|
|
16
Ненавижу 1С
гуру
17.03.26
✎
11:30
|
(14) (15) сообщение не отобразится, если форма, из которой инициирован стек серверного вызова, будет закрыта
|
|
|
17
АгентБезопасной Нацио
17.03.26
✎
11:36
|
(16) возвращать список сообщений на клиента, и показывать их в оповещении...
|
|
|
18
Мультук
гуру
17.03.26
✎
11:59
|
(16)
1) Я знаю об этом.
2) И где в начальных условиях (0) это написано
форма закрыта
3) То что сообщить это "в вакууме это плохо" -- я тоже знаю.
Но вопрос, надеюсь, не ко мне.
4) К моменту выполнения метода возможно потенциальный читатель уже уйдёт домоой
А в случае, если этот код переползёт в регламентое, то ...
|
|
|
19
Ненавижу 1С
гуру
17.03.26
✎
11:57
|
(18) не, это скорее к тем, что считает, что "сообщить" на сервере не работает
|
|