|
Как оставлять сообщения | ☑ | ||
---|---|---|---|---|
0
SweetaAngel
13.10.22
✎
13:19
|
Допустим создаю конфигурацию с нуля открываю Предприятие.
Затем создаю внешнюю обработку, в модуле обработке пишу код: Сообщить("Привет, мир"); Добавляю в обработку пустую форму. Затем открываю обработку во вновь созданной конфигурации. Сообщение появляется на мгновение и исчезает. А если то же самое делаю в типовой конфе сообщение остается. Как сделать, чтобы сообщение оставалось? |
|||
1
Ryzeman
13.10.22
✎
13:29
|
Вопрос - жесть, максимально нечеловеческим языком составлен) Если в типовой ты используешь что-то вроде ОбщегоНазначенияКлиент.СообщитьПользователю(), то тебе ничего не мешает залезть туда и посмотреть как там что реализовано.
Если же у тебя Сообщить() якобы работает по-разному в типовой и в самописке, то это ложь, и ты неправильно задаёшь вопрос, либо делаешь что-то не то. Например в типовой ты оставляешь форму открытой, а в самописке - закрываешь или что то в этом духе. |
|||
2
SweetaAngel
13.10.22
✎
13:33
|
||||
3
SweetaAngel
13.10.22
✎
13:34
|
З.Ы. Обработку надо открыть и закрыть
|
|||
4
СергейК
13.10.22
✎
13:40
|
(1) "Если в типовой ты используешь что-то вроде ОбщегоНазначенияКлиент.СообщитьПользователю(),"
- в (0) конфигурация с нуля |
|||
5
Ryzeman
13.10.22
✎
13:42
|
(2) Косяк платформы, я ХЗ. Нигде не документировано что такой код в принципе должен выполняться) Сообщить() выполняется в контексте другой формы (просто на предыдущей вкладке). Я бы не стал этот механизм использовать в самописке, даже если ты не собираешься её обновлять.
|
|||
6
SweetaAngel
13.10.22
✎
13:47
|
(5) > Нигде не документировано что такой код в принципе должен выполняться)
Чего? То что у тебя в модули обработки написано за пределами процедур и функций выполняется в первую очередь |
|||
7
SweetaAngel
13.10.22
✎
13:48
|
(5) Собственно сообщение выводится не остается
|
|||
8
Smallrat
13.10.22
✎
13:53
|
(0) думается мне это потому, что в сообщения привязаны к формам - у тебя выводится сообщение до того, как форма открылась, соответственно у формы список сообщений пуст и платформа показывает пустой список сообщений, затирая то, что вывелось ранее.
|
|||
9
SweetaAngel
13.10.22
✎
14:09
|
(8) Так. И что нужно сделать в пустой конфигурации чтобы "ообщения привязаны к формам "?
|
|||
10
Smallrat
13.10.22
✎
14:11
|
(9) выводить в форме, а не в модуле или в модуле, но в процедуре, которая вызывается из формы
|
|||
11
SweetaAngel
13.10.22
✎
14:16
|
(10) Вот ты кудесник, и как это ты ухитрился до такого докумекать.
Я спрашивал что нужно сделать с пустой конфигурацией, чтобы она работала как типовая, а не как мне сообщение половчей вывести. |
|||
12
Ryzeman
13.10.22
✎
14:17
|
(7) Выводится - где? Оно вне контекста? У меня в УТ 11.4 сообщение выводится не на форме обработки, а на предыдущей открытой форме.
Поэтому и говорю что это какая недокументированная особенность и глюк. 1с в принципе отходит от политики открытия внешних обработок интерактивно. Зачем так писать? |
|||
13
Сергиус
13.10.22
✎
14:18
|
(0)Зачем выводить сообщить в модуле объекта обработки? Выводите в форме.
|
|||
14
Ryzeman
13.10.22
✎
14:18
|
(12) И это очевиднейший баг, никак не фича
|
|||
15
Smallrat
13.10.22
✎
14:18
|
(11) причем тут типовая/не типовая - так работает платформа, без всяких БСП
|
|||
16
Smallrat
13.10.22
✎
14:21
|
(15) а, если в типовой норм выводится - то это баг, бывают платформы, которые что-то там путают с идентификаторами формы и творится дичь - например какая-то из 15ых чтоли
|
|||
17
SweetaAngel
13.10.22
✎
16:59
|
(16) > то это баг, бывают платформы,
Самому не смешно? Я тут номера платформы не писал, очевидно, что у всех тут он не может быть одинаковым. |
|||
18
SweetaAngel
13.10.22
✎
17:00
|
(16) Впрочем можешь меня поправить. Напиши на каком релизе платформы и типовой конфигурации, в Такси, это не работает.
|
|||
19
SweetaAngel
14.10.22
✎
11:56
|
Никто не знает?
|
|||
20
Анцеранана
14.10.22
✎
13:07
|
(0) возможно глюк какой-то, кэш почисти пользователя или базу удали из списка и добавь обратно или посмотри что у тебя с этим окном (Окна - восстановить положение основного окна) или правой кнопкой на окне сообщений и там что-нибудь посмотреть (последнее маловероятно).
|
|||
21
SweetaAngel
14.10.22
✎
18:40
|
(20) На твоих базах не работает?
|
|||
22
Mihasya
17.10.22
✎
01:04
|
(0) Скорее всего у типовых в рабочую область начальной страницы выведена какая-то форма, и сообщение привязывается к этой форме, а у твоей конфы нет формы, вот и нет сообщения
|
|||
23
Курцвейл
17.10.22
✎
01:15
|
(0) Это артефакт от обычных форм.
Нет смысла исследовать глюки старых функций. |
|||
24
H A D G E H O G s
17.10.22
✎
02:15
|
Правильный ответ в (22).
Довольно часто необходимо вывести сообщение в обработке проведения документа, причем не только когда возникла ошибка при проведении, но и в том случае, когда документ успешно проведен. Проблема возникает когда пользователь использует команду “Провести и закрыть”. Сообщение привязывается к окну содержащему форму текущего документа, которое в случае успешного проведения тут же закрывается и пользователь его не видит. Все дело в том что метод Сообщить() объекта СообщениеПользователю выводит сообщение в АКТИВНОЕ окно, документ как правило открывается в дополнительном окне, которое в данном случае и является активным. Таким образом, что бы пользователь смог прочитать сообщение после закрытия формы документа, необходимо перед использованием метода Сообщить() активизировать основное окно управляемого приложения. Один из вариантов – сделать это в событии формы ПередЗаписью(), например так: &НаКлиенте Процедура ПередЗаписью(Отказ, ПараметрыЗаписи) ОкнаКлиентскогоПриложения = ПолучитьОкна(); Для каждого ОкноКлиентскогоПриложения Из ОкнаКлиентскогоПриложения Цикл Если ОкноКлиентскогоПриложения.Основное Тогда ОкноКлиентскогоПриложения.Активизировать(); Прервать; КонецЕсли; КонецЦикла; КонецПроцедуры |
|||
25
SweetaAngel
17.10.22
✎
04:34
|
(24) так в обработке работает без этого кода.
|
|||
26
SweetaAngel
17.10.22
✎
04:35
|
(22) Как это сделать?
|
|||
27
SweetaAngel
17.10.22
✎
07:24
|
(22) Да. Создал общую форму и добавил её на начальную страницу и заработало.
|
|||
28
Chai Nic
17.10.22
✎
07:28
|
А интересно, чем в 1с руководствовались, когда в управляемых формах отказались от глобального окна сообщений?
|
|||
29
Aleksey
17.10.22
✎
09:45
|
(28) не смогла? Подозреваю что опять всему виной браузер
|
|||
30
Chai Nic
18.10.22
✎
07:39
|
Да вряд ли дело в браузере. В современных браузерах чего только не делают. Плохо то, что фирма 1с в разработке приложения решила опираться на встроенные функции браузеров, а конкретно в работе с окнами. Лучше бы они рисовали интерфейс графическими примитивами на битмапе, по принципу RDP, используя тот же джаваскрипт. Тогда можно было бы не обращать внимания на ограничения браузеров и делать реально удобный интерфейс именно для 1с.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |