
- •Лабораторная работа 9. Справочник и Регистр сведений
- •9.1. Регистр сведений "ДанныеОс"
- •9.2. Форма элемента справочника "ОсновныеСредства"
- •9.2.1. Разработка диалога
- •9.2.2. Обработка событий от элементов формы
- •9.2.3. Самостоятельная работа
- •9.2.4. Обработка событий от табличного поля
- •9.2.5. Обработка событий от формы в целом
- •9.2.6. Изменение привязок элементов
- •9.2.7. Отображение картинки
- •9.3. Самостоятельная работа
- •9.4. Метод СрезПоследних(…) менеджера регистра сведений
- •9.5. Соединение в языке запросов
- •9.6. Что мы узнали
9.2.6. Изменение привязок элементов
Когда Вы заполняли форму элемента в режиме "1С:Предприятие", то наверное обратили внимание на то, что пропорции некоторых элементов и их расположение не соответствуют тому, что есть в режиме "1С:Предприятие". Это объясняется тем, что привязка установленная Конфигуратором по умолчанию не соответствует вашему ожидаемому поведению формы при изменении ее размеров.
Упражнение №9.23. |
Запустите основную форму элемента на проверку в режиме "Конфигуратор". Что Вы видите (см. рис. 9.14)? Какие элементы формы требуют доработки?
Будем действовать последовательно. Для элемента формы "Фирма" в его свойствах для свойства "Привязка границ" откройте диалог "Привязка границ…", нажав на ссылку "Установить правила" и установите на закладке "Сложная" установите свойства согласно рисунку 9.15. Проверьте работу формы. Что изменилось?
Установка привязки левой границы к элементу "Код" позволит зафиксировать левую границу этого элемента, а сохранение горизонтальных пропорций для правой границы формы приведет к тому, что ширина элемента будет изменяться пропорционально. Самостоятельно, используя закладку "Сложная привязка", добейтесь такого поведения формы, чтобы при увеличении размеров она выглядела бы согласно рисунку 9.16. |
Рис.
9.16. Работа привязок элементов формы.
9.2.7. Отображение картинки
Непосредственно вставить в форму реквизит "Изображение" мы не можем, т.к. его тип "ХранилищеЗначения", в котором может быть сохранено все что угодно.
Но мы можем вставить в форму элемент формы типа "Поле картинки", в которое можно будет отобразить изображение.
Упражнение №9.24. |
||||||||||||||||||
Добавьте в панель, расположенную в форме, новую закладку:
После чего вставьте на эту страницу элемент управления типа "Поле картинки" со следующими свойствами:
И расположите ее на свободном пространстве (см. рис. 9.17). Теперь необходимо установить привязки у этого элемента формы, чтобы его размеры также пропорционально изменялись бы с изменением размеров формы. Установите привязки у поля картинки согласно рисунку 9.18. |
Теперь нам нужно решить две проблемы:
Как прочитать новую картинку из файла в элемент формы и сохранить ее в хранилище значений;
Как извлечь картинку из хранилища и отобразить ее.
Рис.
9.17. Поле картинки в форме.
Рис.
9.18. Привязки поля картинки.
Для того чтобы прочитать картинку с файла, давайте обработаем нажатие на картинку в форме.
Упражнение №9.25. |
||||
Установите для элемента формы "ПолеКартинки" событие:
И наберите следующий текст: //ПолеКартинкиНажатие - читает картинку в поле картинки Процедура ПолеКартинкиНажатие(Элемент) // Открем диалог выбора файла Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.Заголовок = "Выберите файл картинки"; Диалог.ПредварительныйПросмотр = Истина; Диалог.Фильтр = "Точечный рисунок(*.bmp)|*.bmp"; // Если пользователь сделал выбор тогда Если Диалог.Выбрать() Тогда // Прочитаем картинку в ОП НоваяКартинка = Новый Картинка(Диалог.ПолноеИмяФайла); // и оборазим в форме: ЭлементыФормы.ПолеКартинки.Картинка =НоваяКартинка; Изображение = Новый ХранилищеЗначения(НоваяКартинка); КонецЕсли; КонецПроцедуры Запустите режим "1С:Предприятие" и проверьте работу алгоритма. На закладке "Картинка" добавьте фотографию головного офиса (файл расположен здесь) |
При записи объекта реквизит Изображение будет сохранен в ИБ.
А вот когда мы будем открывать форму, то нужно отобразить реквизит "Изображение" в картинку, если объект не новый. Если объект новый, то тогда следует в картинку отобразить пустую картинку.
Упражнение №9.26. |
Исправьте текст процедуры ПриОткрытии(): // ПриОткрытии - действия в момент открытия формы Процедура ПриОткрытии() Если ЭтоНовый() Тогда // Заполним реквизиты нового объекта начальными значениями Фирма = Константы.ОсновнаяФирма.Получить(); УстановитьКод(); // запишем пустую картинку Изображение = Новый ХранилищеЗначения(Новый Картинка()); КонецЕсли; // Установим свойство видимость у элементов диалога перед его открытием ПриИзмененииГруппыОС(Неопределено); // отобразим картинку ЭлементыФормы.ПолеКартинки.Картинка = Изображение.Получить(); КонецПроцедуры Запустите режим "1С:Предприятие" и проверьте работу алгоритма. |