|
|
Почему &НаКлиенте Сообщить() отрабатывает. &НаСервере не видно результата
Fish, Radion, Elf_80_lvl, Hawk_1c, Ивановна, 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, 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, Широкий, Шаграм
| ☑ |
|
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) не, это скорее к тем, что считает, что "сообщить" на сервере не работает
|
|