|
|
| ||
SeiOkami 15.12.20 - 11:25 | Такой вопрос. У меня документ вводится на основании другого. При создании на сервере происходит доп. проверка и вывод сообщения. Но это сообщение в результате выводится не на новой форме, а в той, из которой её вызвали.
Привязка ни к объекту ни к форме ничего не даёт. Даже использовал ИдентификаторНазначения в объекте СообщениеПользователю. Всё равно текст выводится в том окне, из которой начали ввод на основании. | ||
ДенисЧ 1 - 15.12.20 - 11:27 | Это нормально | ||
Cyberhawk 2 - 15.12.20 - 11:27 | |||
SeiOkami 3 - 15.12.20 - 11:40 | (2), пункт 2 касается блокирующих проверок. У меня просто сообщение. | ||
SeiOkami 4 - 15.12.20 - 11:40 | (1), да, с этой фигнёй постоянно сталкиваюсь, но всё руки не доходят разобраться. Может где есть какое-то адекватное описание сего феномена | ||
ДНН 5 - 15.12.20 - 11:46 | (0) А если сообщать в ПриОткрытии? | ||
SeiOkami 6 - 15.12.20 - 11:51 | (5), при открытии норм, но стрёмно передавать сообщение между ПриСозданииНаСервере и ПриОткрытии | ||
craxx 7 - 15.12.20 - 12:00 | (6) а чего такого? создаешь реквизит на форме, туда пишешь в ПриСозданииНаСервере сообщение, оттуда при открытии его выводишь | ||
craxx 8 - 15.12.20 - 12:00 | (7) Реквизит на форме = реквизит формы | ||
SeiOkami 9 - 15.12.20 - 12:03 | (7), это всё равно не объяснит происходящее. А костылей можно гору придумать) | ||
ДенисЧ 10 - 15.12.20 - 12:14 | (4) Адекватное - есть. В ПриСоздании формы ещё нет. Куда сообщения выводить? | ||
fisher 11 - 15.12.20 - 12:16 | Странно. Была аналогичная фигня, когда пытался из модуля объекта пробросить сообщение в нужную форму. Тут видать схожий генезис - сервер и связи с формой на клиенте нет (в первом случае - вообще, во втором - еще, т.к. на клиенте форма еще не создана).
Фича такая, в общем. Обидная. Могли бы и поднапрячься. | ||
fisher 12 - 15.12.20 - 12:18 | (10) Сообщения на сервере попадают в буфер сообщений. А на клиенте, когда буфер будет обрабатываться, форма уже будет. И ИдентификаторНазначения на нее будет указывать. Так что реальных препятствий нет. Явно фича отработки. | ||
ДенисЧ 13 - 15.12.20 - 12:25 | (12) Буфер к чему привязываться будет? Нет ещё формы. От слова совсем. | ||
fisher 14 - 15.12.20 - 12:36 | (13) УникальныйИдентификатор формы в этот момент уже сформирован. А именно он и используется в качестве ИдентификатораНазначения. | ||
acht 15 - 15.12.20 - 12:49 | (14) Ты еще предложи к закрытой форме собощения цеплять | ||
fisher 16 - 15.12.20 - 13:25 | (15) К закрытой форме цеплять сообщения смысла нет. А к открываемой - есть. | ||
acht 17 - 15.12.20 - 13:49 | (16) Ты подменяешь понятия. "Открываемая" форма - это совсем не то же самое, что "создаваемая". Ни создаваемая, ни закрытая форма не отображаются на экране и не привязаны к окну. | ||
fisher 18 - 15.12.20 - 18:24 | (17) Ты прав. Но технически я не вижу особой проблемы при открытии формы на клиенте и проверке буфера сообщений сопоставить идентификаторы форм и направить сообщения в нужную форму, несмотря на то что в момент посылки сообщения окна для этой формы еще не было создано. Было бы удобно. Почему нет? Ты думаешь, что вот прямо в момент отправки сообщения НА СЕРВЕРЕ выполняется его диспетчеризация прямо в конкретное окно клиентского приложения НА КЛИЕНТЕ? | ||
Fragster 19 - 15.12.20 - 18:27 | Лично я считаю отказ от глобального окна сообщений из ОФ - ошибкой, приводящей вот к таким вот артефактам. | ||
Classic 20 - 15.12.20 - 19:44 | (16)
Как это нет. А если сообщение описывает. почему форма не открылась? Все правильно. ПриСозданииНаСервере - до создания формы, ПриОткрытии - после создания. Строго говоря форму вообще можно не открывать. ПолучитьФорму(), повызывать процедуры, гудбай. Куда сообщения писать? | ||
SeiOkami 21 - 16.12.20 - 08:47 | Лол, а почему обычно сообщения ПриСозданииНаСервере() нормально выводятся?
Нет, ПриСозданииНаСервере форма уже есть, она просто ещё не передана на клиент. Это не "ПередСозданиемФормы". И не событие "ОбработкаПолученияФормы". Иначе бы мы не могли с ней работать. И она не имела бы идентификатор. Если вызывать сообщение в ПриСозданииНаСервере(), то оно нормально выводится. Но именно в случае при вводе на основании происходит такой баг. Скорее всего есть ещё ситуации, мне кажется, что сталкивался. Ну если же это не баг, а фича, то хотелось бы понять в чём её смысл. И странно, что ИдентификатораНазначения в объекте СообщениеПользователю не помогает... | ||
nikneim 22 - 16.12.20 - 08:54 | Комплексная автоматизация 2 (2.4.12.102) Добрый день! Задача в следующем, в Расширении конфигурациив документе «Заказ Клиента» в Форме добавил ТЧ СПРОС(Дефицит), а в Обработчике Подбор товаров в документ продажи в форме Запроса Количества и Серий добавил Поле ввода "Количество Всего"как связать их без Корзины чтоб при вводе "Количество всего" сразу перекидывалось в ТЧ Спроса , какие процедуры и функции нужно дописать или подменить. То есть при подборе и вводе количества он закидывает в корзину а затем через "Перенести в документ" переносится в ТЧ Товары. Надо чтобы также при вводе КОЛИЧЕСТВО ВСЕГО перекидывалось в ТЧ СПРОС(Дефицит). | ||
fisher 23 - 16.12.20 - 10:05 | (20) > Куда сообщения писать?
Этот вопрос не стоит. При любых непонятках сообщения и так выводятся просто в активную форму. | ||
acht 24 - 16.12.20 - 10:31 | (23) Вот весь вопрос в определении этой формы - слишком много противоречивых сценариев.
Например, ты вывел сообщение из ПриСозданииНаСервере а потом в ПриОткрытии выдал Отказ = Истина. Что делать с сообщениями? Напоминаю, что перед этим ты топил за привязку сообщений, выводимых из ПриСозданииНаСервере к идентификатору созданной, но еще не открытой формы =) | ||
fisher 25 - 16.12.20 - 12:50 | (24) > Что делать с сообщениями?
Выводить, конечно. Если есть конкретная форма-адресат - выводим в нее. Если нет или не удалось его найти - в активную форму. И это не моя идея или предложение. Это то, как по моему мнению сейчас и происходит. Вопрос только в существующих противоречивых сценариях, когда платформа почему-то не может определить адресата и выводит вместо него в активную. В частности - в сабжевом случае. Причем прочитай (21) - ТС пишет, что сообщения в ПриСозданииНаСервере() выводятся нормально. Проблема только при вводе на основании. Так что если тебя интересует, что на самом деле произойдет с сообщением из ПриСозданииНаСервере при отказе открытия - ты легко можешь это проверить на практике, а не в теории. | ||
acht 26 - 16.12.20 - 13:46 | (25) > Проблема только при вводе на основании
Которая происходит в ОбработкаЗаполнения, и в общем случае выпоняется вообще без клиента. Ну, например, при МойОбъект.Заполнить(Данные) на сервере. Кому там что информационно сообщать? А вот про сообщения об ошибках и существует стандарт https://its.1c.ru/db/v8std#content:396:hdoc, пункт второй. Который обеспечивает нормальную логику пр иработе как на клиенте из формы, так и на сервере без клиента. | ||
fisher 27 - 16.12.20 - 14:24 | (26) ТС говорит не про обработку заполнения. А про ПриСозданииНаСервере при вводе на основании. И если ты даже в обработке проведения отправишь сообщение - оно будет выведено.
Я отметил нелогичность и запутанность в работе лопаты. А ты мне про то, что если я буду махать ей по уставу - то проблем не будет. Ну, ок. Уставы мне обсуждать неинтересно. Мне интересна логика работы внутренних механизмов платформы. |
|
Список тем форума |