Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 05:16

Привязка нового элемента формы к имеющемуся, всплывающая подсказка

Автор Arhat, 09 июн 2016, 15:29

0 Пользователей и 1 гость просматривают эту тему.

Arhat



Нужна помощь коллективного разума. Задача следующая:при наличии комментария в карточке контрагента выводить в документах значок рядом с полем контрагент, при наведении на который мыши появляется тот самый комментарий. Делаю следующее:

Если ЭтотОбъект.Контрагент.Комментарий <> "" Тогда
Флаг = ЭтаФорма.ЭлементыФормы.Добавить(Тип("ПолеКартинки"),"Картинка");
Флаг.Высота = 15;
Флаг.Ширина = 15;
Флаг.Картинка = БиблиотекаКартинок.Важно;

А вот дальше тупик. Пробовал следующее:

Флаг.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭтаФорма.ЭлементыФормы.Контрагент, ГраницаЭлементаУправления.Низ);
Флаг.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭтаФорма.ЭлементыФормы.Контрагент, ГраницаЭлементаУправления.Лево);
и
Флаг.Подсказка(ЭтотОбъект.Контрагент.Комментарий);

Не работает. Вариант добавить элемент в редакторе диалога и управлять видимостью не хотелось бы использовать т.к. документ не один и хочется решить все через общий модуль, чтобы не править кучу форм при каждом обновлении. Что делать, подскажите люди добрые.

Golickoff

Можно проще: добавить картинку на форму в конфигураторе, а при открытии формы смотреть на наличие комментария и в зависимости от него менять видимость картинки на истину/ложь в зависимости от результата.
Процедура ПриОткрытии()
бла бла бла
Если ЭтотОбъект.Контрагент.Комментарий <> "" Тогда
      ЭтаФорма.Элементы.ДобавленнаяКартинка.Видимость = Ложь;
      ЭтаФорма.Элементы.ДобавленнаяКартинка.Комментарий= "";
Иначе
      ЭтаФорма.Элементы.ДобавленнаяКартинка.Видимость = Истина;
      ЭтаФорма.Элементы.ДобавленнаяКартинка.Видимость = ЭтотОбъект.Контрагент.Комментарий;
КонецЕсли;
бла бла бла
КонецПроцедуры
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Arhat

Цитата: Golickoff от 09 июн 2016, 16:03
Можно проще: добавить картинку на форму в конфигураторе, а при открытии формы смотреть на наличие комментария и в зависимости от него менять видимость картинки на истину/ложь в зависимости от результата.
Цитата: Arhat от 09 июн 2016, 15:29Вариант добавить элемент в редакторе диалога и управлять видимостью не хотелось бы использовать т.к. документ не один и хочется решить все через общий модуль, чтобы не править кучу форм при каждом обновлении.

Golickoff

Беда, не заметил. Хорошо, что это не моя проблема (шутка). Ширину и высоту вы указали, а .Верх и .Лево -- нет. Попробуйте указать и их тоже. А ещё посмотрите отладчиком на элементы формы и убедитесь, что новый элемент имеет место быть.
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Arhat

Элемент выводится, с этим проблем нет, но строго в левом верхнем углу. При помощи Верх и Лево я задам абсолютные координаты на форме и если поле контрагента в одном из документов у меня окажется в другом месте, то они с картинкой разминутся.

Golickoff

А что если попробовать прочитать координаты поля контрагента и в зависимости от них выставить координаты картинки?
Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению ... рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.

Arhat


vitasw

Скорее всего в обычном интерфейсе чего-то удобоваримого вы не получите. Я б менял фон поля "контрагент" и выводил информацию в поле "подсказка"

Arhat



Спасибо за наводку. Решил через свойства поля Контрагент.


Если ЭтотОбъект.Контрагент.Комментарий <> "" Тогда
ЭтаФорма.ЭлементыФормы.Контрагент.Картинка = БиблиотекаКартинок.Комментарий;
ЭтаФорма.ЭлементыФормы.Контрагент.Подсказка = ЭтотОбъект.Контрагент.Комментарий;
КонецЕсли;

vitasw


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск