УФ. Сообщение об ошибке на строку вне отбора. #630937


#0 by mvgfirst
Есть две табличных части у документа ТабЧастьА и ТабЧастьБ в ТабЧастьБ хранятся строки подчиненные строкам ТабЧастьА При активизации строки в ТабЧастьА - накладывается отбор по ключу и отображаются только нужные строки в ТабЧастьБ. Все работает как и ожидалось. Дошел до момента Проверки Заполнения. Независимо от того сам ли отрабатываю проверку или стандартными средствами пользуюсь - наткнулся на одну особенность. Если незаполнено поле в ТабЧастьБ в строке которая находится вне диапазона отбора (т.е. не принадлежит к текущей выделенной строке ТабЧастьА) - "балон" с ошибкой выскакивает в верхней левой части главного окна 1С. С одной стороны оно и понятно - строка не видна на экране и нет возможности его ("балон") отобразить в правильном месте. Но хотелось бы что бы при переходе на эту ошибку можно было спозционировать запись в ТабЧастьА таким образом что бы строка в ТабЧастьБ стала видимой (попала в диапазон отбора) и соответственно "балон" с ошибкой отобразился в "правильном" месте. Каких либо событий которые возникают перед отображением сообщения или при переключении между сообщениями об ошибках я не нашел (хотя это как раз то самое место где можно было бы реализовать механим перепозиционирования) По ходу дела ошибок выскакивает много и ожидаемое поведение системы со стороны пользователя - это когда кликая на ошибках видит где они возникли (особенно актуально при большом количестве строк в ТабЧастьА и в ТабЧастьБ) Готов рассмотреть любые предложения кроме "троллерских" и "абсурдных". А так же с глубоким вниманием отнесусь к отсылке на описание способов реализации подобной взаимосвязи "от производителя" так сказать... т.е. как такие механизмы предпочитает реализовыавть сами 1С-овцы?
#1 by mvgfirst
Нет вариантов? Или вопрос слишком прост что бы на него отвечать?
#2 by m-serg74
наверное "абсурдно", но может отключать отбор в Б при проверке заполнения?
#3 by mvgfirst
Проблема то не в отборе? а в отображени информации пользователю. Я осознанно накладываю отбор что бы пользователь перемещаясь по ТабЧастьА видел только нужные позиции в ТабЧастьБ Если же я буду отключать отбор - пользователю на обозрение "вывалятся" все строки независимо от принадлежности к ТабЧастьА - уверен что это введет пользователя в ступор ну или как минимум вызовет дизориентацию и негативное отношение к программе Сейчас я пошел тем путем что просто не подставляю реквизит поле в структуру данных "СообщитьПользователю" - тем самым выводится только сообщение но не позиционируется "балон" возле незаполненного поля. Но наряду с другими документами где этот механизм используется - выглядит по меньшей мере некрасиво. Поэтому ищу способ обойти это "ограничение". Нужно то всего лишь в момент когда пользователь переходит к сообщению о незаполненном поле - спозиционироваться на этом поле "перестроив отборы" )
#4 by mvgfirst
Все еще надеюсь получить совет или хотя бы намек на решение вопроса. Неужели никто не решал подобных задач?
#5 by vmv
вброшу для наводки, по фик куда и зачем я кидаю этот код у себя - там есть идея того, что тебя нужно для правильной работы мастер-детали
#6 by vmv
довесок
#7 by mvgfirst
Не совсем понял смысл вброшенного. Вернее общий смысл понимаю - идет установка отбора. Но даже и близко понять не могу чем это может помочь в моей ситуации? Мне наложить отбор на все строки в которых есть незаполненные поля, что ли? Это не совсем тот результат который мне нужен. На всякий случай еще раз озвучу идеальный сцеарий который я хотел бы получить: После отбработки "ОбработкаПроверкаЗаполнения" 1С-ка выдает список ошибок заполнения. Пользователь переключаясь между ошибками (или на "балоне" стрелочками или в списке ошибок справа) перемещается между незаполненными полями формы. При этом если следующее незаполненное поле находится вне диапазона текущего отбора - форма перестраивает отбор таким образом что бы строка с нужным полем оказалась видимой. При этом свзяь мастер-детайл должна сохранятся, т.е. для отображения нужной строки производится перепозиционирование строки в мастере. Вопросы перепозиционирования меня не волнуют, прекрасно понимаю как это реализовать. Я не понимаю (незнаю) в каком моент это делать - как поймать момент что пользователь переключился на ошибку указывающую на поле вне отбора?
#8 by vmv
собрать сообщения от ощибках в коллекцию, например список значений. Значение - ИдентификаторСтроки, представление сообщение от ошибке. Выввалить этот список в свою форму или покопаться в стандартном СообщениеПользователю, вроде там все АйДи строи/поля можно всунуть, читать СП я не буду. Обратотать выбор пользователя в свой форме или стандарте
#9 by mvgfirst
О! Годный вариант - сделать свою систему обработки незаполненных значений. С одной стороны - рабочее решение, а с другой делать все вместо системного механизма - не камильфо ( Зачем тогда он (системный механизм) Что же, если других вариантов нет - и такой сойдет. Хотя мне кажется должно быть какое-то более универсальное решиние? Ничего не слышно в будущих релизах не собираются вводить событий для обработки сообщений пользователю?
#10 by mvgfirst
Так то вариантов больше нет? Или есть?
#11 by vmv
зайди на форум разработчикаов и поной - сопельки подотрут и сделают, так всегда было, тока агрументируй типа, не сделоете меня продадут в рабство, там у них уже куча мала пожалений на обработчики обновления, события таблиц формы, а технология обработчиков ожидания уже дико устарела - именно из-за них аццке тормозат порно-сайты, но 1С - не такая! она будет лучьше!
#12 by mvgfirst
Нет у меня доступа - а то бы уже вынес бы им мозк )))
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С