#0
by Sargez
Здравствуйте, На первый взгляд простецкая задача, но не могу решить. В подписке при проверки записи элемента выдаются сообщения пользователю. Реаллизовано через механизм ОбщегоНазначенияКлиентСервер.ДобавитьОшибкуПользователю И ОбщегоНазначенияКлиентСервер.СообщитьОшибкиПользователю. при отказе выдаются сообщения. НО заказчик захотел чтобы сообщения , которые не дают записать элемент маркировались красным знаком "!", а сообщения , которые информативные и все равно дают записать элемент (такие есть) маркировались "i" - информация. аналог был в прошлом - сообщить(текст,статуссообщения) - но во-первых на платформе 8.3.10 - сообщения все равно не маркируются, ну а во-вторых какой-то старый способ. какие есть предложения по решению данного вопроса? механизм оповещения пользователя тоже больше нет, чем да, тк может быть очень много всплывающих окон. Заранее благодарен!
#2
by Dzenn
В общем случае такое не решить, так как запись не всегда происходит из клиентской формы. В частном случае, если речь идёт о какой-то конкретной форме, можно сделать так: 1 — добавляешь на форму новый реквизит типа строка 2 — в событии "перед записью" формы создаёшь помещаешь во временное хранилище пустое значение, адрес временного хранилища помещаешь в созданный тобой реквизит 3 — передаёшь адрес временного хранилища черед дополнительные параметры объекта, адрес становится доступен в событии 4 — вместо использования "сообщить ошибку пользователю" помещаешь все сообщения в объект и по адресу временного хранилища 5 — в событии "после записи" формы смотришь, есть ли что-то во временном хранилище 6 — если есть, выводишь в любом удобном для себя виде через какое-то новое окно, используя "форматирование текста" например
#3
by Dzenn
а если совсем попроще и без цвета, то при выводе группируй сообщения — сначала важные, потом неважные, с выводом заголовков. Важные сообщения: Первое Второе Второе
#6
by Dzenn
"после записи" при отмене записи не вызывается, на "после записи" повесить не получится(
#9
by dezss
на сервере нет, но какой смысл выводить что-то на сервере. Это же интерактивная работа с объектом, так что все это имеет смысл только в модуле формы, а что-то выводить при, например, массовой перепроводке документов ИМХО глупо.
#10
by Dzenn
к вместо "После записи" можно использовать ПодключитьОбработчикОжидания, который после записи с периодичностью 0.5 секунды в течение N секунд будет смотреть, не появилось ли что-то во временном хранилище, и если появилось, выведет это что-то
#13
by Dzenn
ну так тут как раз и идёт речь о том, чтобы передать что-то с клиента на сервер. Если он на клиенте получит информацию, то её уже можно вывести как угодно — хоть через ПоказатьОповещение... , хоть через своё окно
#15
by Sargez
так если будет ошибка, которая не дает записать объект. после записи не будет вызываться.
#16
by dezss
Насколько я понял, у автора дилема именно с маркировкой сообщения, а не с передачей чего-то на клиент.
#19
by Dzenn
проблема у автора в том, что сообщения с сервера доступны только в одном формате — через оператор Сообщить(..), лишённый возможностей форматирования, а по условиям задачи нужно форматировать. А форматировать можно только на клиенте. Соответственно, нужно после записи получить текст с сервера на клиент.
#20
by dezss
Тогда вопрос больше в архитектуре. Зачем городить огород, если работа идет интерактивно? Можно же все сделать в модуле формы.
#21
by Dzenn
А что изменит изменение архитектуры? Запись никогда не будет происходить на клиенте, и тебе всё равно нужно будет получить тексты сообщений, тем или иным образом, в форме элемента и именно после записи
#22
by dezss
Как это что изменит? Если осуществлять свои проверки именно в модуле формы перед записью, а не в подписке, возвращать туда результаты и в зависимости от них выводить сообщения, то проблемы у ТС и не будет.
#23
by Dzenn
перенос функциональности из подписки в модуль формы ПередЗаписью никак не изменит способ получения сообщений на клиенте после записи. Тебе всё равно придётся использовать адрес во временном хранилище, который ты инициализируешь перед записью. Тебе всё равно придётся получать данные из этого адреса опосредованно, из обработчика ожидания.
#24
by dezss
Зачем после записи, ведь перед? Да и какой в этом смысл, ведь после записи мы не можем отменить запись, а это ведь нужно в задаче ТС. Да и временное хранилище не обязательно. Добавить отдельный реквизит формы для этих сообщений и заполнять его.
#25
by Sargez
вопрос все-таки остается все равно. как в сообщении в всплывающем окне промаркировать? всплывающие окна в виде показатьоповещениюпользователю не подходят заказчику. даже если я все сообщения получу на клиенте - то как промаркировать? те сделать красный восклицательный знак или синию букву "i"
#26
by dezss
Почему не подходят? Группировать сообщения по критичности и их будет всего 2. Одно с красным восклицательным знаков, второе с синей i. Если не успели невести курсор и прочитать, есть история. В конце концов, если вообще никак не подходят, то нарисуй свою форму с выводам сообщения.
#27
by Dzenn
как и в какой момент ты будешь заполнять предлагаемый тобой отдельный реквизит формы? Попробуй на пустом конфигураторе реализовать предлагаемое тобой, и тогда может быть поймёшь суть вопроса автора топика.
#28
by dezss
Это я на твое сообщение о том, как передавать из ПередЗаписью в ПослеЗаписи в модуле формы.
#31
by Dzenn
ну так в подписке собирай сообщения не в строковый реквизит, а например в такой объект:
#32
by dezss
Он не про то, как получить разделить ошибки, а про то, как именно показать знаки. Всплывающих вроде только 2. СообщениеПользователю и ПоказатьОповещениеПользователя. Больше никаких всплывающих я не знаю.
#33
by Dzenn
я в написал — нужно создать свою форму вывода. В форме вывода может использоваться что угодно — хоть ФорматированныйТекст, хоть ПолеHTML, хоть ТабличныйДокумент, хоть ещё что-то — как душе угодно.
#34
by dezss
попробовал. Вот результат, именно этого я и ожидал: ПриОткрытии ПередЗаписью ПослеЗаписи
#35
by Dzenn
Первое — событие "ПослеЗаписи" при отказе от записи не отработает Второе — ПередЗаписью в твоём случае отрабатывает на клиенте
#36
by dezss
Естественно не отработает. Это только был ответ на твой вопрос, как передавать. Да, на клиенте. И что мешает использовать это событие и именно в нем проводить свои проверки?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Вывод сообщения в строке состояния
- Построитель отчетов: вывод (не вывод) группировок
- Как отключить в Outlook окно сообщения об отправке сообщения?
- Ошибка "...Вывод запрещен по причине: Вывод запрещен" - ничего не понимаю :(
- СКД: СКД: Вывод итогов запроса периодами, вывод счетчика строк...
- БУХ УТ Обмен: Номер сообщения меньше или равен номеру ранее принятого сообщения
- в СКД необходим вывод группировок выглядящий как вывод детальных записей
- Web-сервисы. Ошибка разбора SOAP сообщения: неверная версия сообщения
- Сколько разрядов у «Номер отправленного сообщения» и «Номер принятого сообщения»
В этой группе 1С
- RLS у пользователя недостаточно прав на исполнение операций над базой данных
- Как уменьшить размер базы?
- ЗуП 2.5, компенсация дополнительного отпуска при увольнении
- 8.3.10. Высота списка поля выбора
- Сторнирование документа Реализации УТ 11.3.2.157
- При событии по СочетаниеКлавиш заголовок формы и 1с моргают, как избавиться?
- Розница 2.2 нет доступных видов цен для установки цен номенклатуры
- Внешняя печ. форма ПКО и РКО для БП 3.0
- "Розница" Как поставить НДС 10% для ПКО с признаком способа расчета "Аванс"?
- ЗУП 3.1. Форма Т-61 при увольнении
- Отчет с разбивкой по дням за период
- ПолучитьСсылкуНового для существующего объекта
- Расчет себестоимости В УПП(РАУЗ) восстановил стоимость списанных материалов в эксплуатации
- табличный документ разные ориентации страниц
- 1С Розница Не удалось подключить устройство 33h, Некорректные параметры в команде (999)
- БП 3.0 Справка-расчет налоговых активов и обязательств
- Почему может проскакивать функция?
- Как очистить настройки списка у формы, сразу у всех пользователей?
- v7: ТИС Файл регистра партий приближается к 2 ГБ, какие риски могут быть ?
- Сканирование штрихкода на ТСД