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