Программно добавить декорацию на форму 1с
Перед прочтением данной статьи рекомендуется ознакомиться с первой частью, в которой описаны примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними.
В данной же части будет рассмотрено программное создание динамических списков, таблиц значений на форме, их вывод в элементы формы и стандартные возможности для работы.
Модифицировать формы рекомендуется программно для удобного обновления конфигураций и исключения конфликтов, а также для удобной поддержки кода. Со статьями о механизмах модификации можно ознакомиться в разделе полезных ссылок.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры программного создания элементов, команд, реквизитов управляемой формы, а также описание стандартных возможностей для работы с ними можно будет посмотреть в части 1.
Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.
Создание реквизита типа таблица значений и вывод на форму
Добавление условного оформления таблицы формы
Создаем условное оформление для таблицы:
- если реквизит формы Использование (тип булево) = Истина, тогда разрешаем изменять цену в строках таб. части;
- если в строке таб части цена не заполнена, то выделять фон ячейки «Цена» розовым.
В процедуру команды добавим вызов серверной процедуры для заполнения таблицы цен в зависимости от выбранной номенклатуры и характеристики:
Добавляем в процедуру ПриСозданииНаСервере процедуры:
Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
Создание реквизита типа динамический список с заданными настройками и вывод на форму
На странице 3 создадим динамический список с выводом всех цен выбранной номенклатуры и характеристики.
Добавим Условное Оформление дин. списка, отбор и сортировку программно.
Вывести динамический список в элементы управляемой формы 1С
Для вывода дин. списка воспользуемся процедурами, которые использовали при выводе таблицы значений, так как это один тип — ДанныеФормыКоллекция.
Обновление параметров динамического списка программно
Если в запросе дин. списка используются параметры, то их необходимо обновлять при изменении соответствующих реквизитов.
Добавляем в процедуру ПриСозданииНаСервере процедуры:
Заполняем реквизиты Номенклатура, Характеристика и заполняем цены в таблице значений.
Содержимое регистра сведений ЦеныНоменклатуры:
Динамический список на форме:
Добрый день. Проблема такая:
Я программно создаю на форме декорацию с видом картинка.
Действия устанавливаются нормально, а вот строки с разрешением операций перетаскивания выдают ошибку, что поле объекта не обнаружено. Хотя при написании кода с помощью Ctrl + Пробел эти свойства видны.
Как можно программно созданной декорации разрешить перестаскивание?
Программное разрешение автозагрузки приложений
Имеются несколько телефонов: Lenovo k5 plus & Lenovo vibe p1m. Разрабатывается приложение.
Программное разрешение/запрет доступа к реестру
знаю что есть для этого 2 функции: RegGetKeySecurity и RegSetKeySecurity. Например, есть ветка в.
Запрет на ручное редактирование и разрешение на программное редактирование
Добрый день, коллеги. Вопрос следующий. Возможно ли инструментами VBA установить запрет на ручное.
В СП написано что у добавляемого элемента на форму нету свойств (РазрешитьНачалоПеретаскивания, РазрешитьПеретаскивание)
Вариант с копированием созданного на форме "вручную" не рассматривал?
Придется наверное писать тебе в 1С с просьбой предоставить программное изменение свойств "Расширение декорации формы для картинки"
В СП написано, что доступ "Чтение и Запись", но для декорации формы такое свойство отсутствует при программном доступе
Добавлено через 14 секунд
На мисту писал?
Я на мисту уже запостил, но раньше чем завтра ответа не будет.
Добавлено через 16 секунд
Серьезно. Это походу ошибка платформы
Добавлено через 42 секунды
Элемент на форме с типом декорация, не предоставляет программного доступа к "расширению элемента декорации формы картинка"
Добавлено через 1 минуту
Хотя в СП, написано об обратном!
Расширение декорации формы для картинки (Form decoration extension for a picture)
РазрешитьНачалоПеретаскивания (EnableStartDrag)
Использование:
Чтение и запись.
Описание:
Тип: Булево.
Разрешает начало операции перетаскивания у источника.
Тонкий клиент, веб-клиент, сервер, толстый клиент.
Примечание:
Истина - перетаскивание разрешено; Ложь - запрещено.
Добавлено через 49 секунд
Причем если на форму добавить, например "таблицу формы", то свойство доступно и на запись и на чтение
Добавлено через 8 минут
PatrickX3, Ты знаешь какое максимально количество декораций может быть использовано?
Например, почти в каждом приложении необходимо, чтобы на формах выводился логотип компании или фотографии сотрудников.
Добавление этого элемента на форму ничем не отличается от добавления надписи (текста) на форму - правой кнопкой мыши или через значок плюса на панели сверху.
Давайте перейдём к практике. Откроем форму элемента справочника "СписокСотрудников" и добавим на форму картинку (Рисунок 1). Если ее нет, то ее необходимо сначала добавить на вкладке "Формы".
Давайте теперь обратим внимание на свойства:
1. Вид - выбор текста или картинки;
2. Видимость - определяет, является ли картинка видимой пользователю;
3. Доступность - определяет, является ли картинка доступной пользователю;
4. Картинка - это свойство отвечает за путь к картинке, выбор картинки;
5. Гиперссылка - если поставить это свойство, то картинка станет кнопкой, при нажатии на которую, будет происходить переход.
Самое важное свойство "Картинка" - это путь к картинке.
Давайте нажмем на кнопку в виде многоточия у свойства "Картинка" и выберем любую картинку, которая есть на компьютере (Рисунок 2).
После нажатия "Ок" она у вас отобразится следующим образом (Рисунок 3).
Картинка отображается не так, как надо. Нам нужно, чтобы логотип отображался маленьким и было удобно работать с формой пользователю. Для этого нужно вызвать свойства декорации и найти свойство "Размер картинки" и установить там значение "Пропорционально" (Рисунок 4).
После этого нужно найти свойства "Ширина" и "высота" и установить значения 5х2 (Рисунок 5).
После этого логотип станет нужного размера. Таким образом, меняя ширину и высоту, можно изменять размер картинки на форме. Давайте проверим теперь все это в пользовательском режиме (Рисунок 6).
Сделайте самостоятельно так, чтобы картинка появилась на форме списка (Рисунок 7).
Для этого нужно перейти на форму списка, добавить декорацию и указать необходимые свойства, которые мы указывали выше!
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Всем спасибо. Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос, а так же можно на канале нажать кнопку "Написать собщение".
Сегодня мы научимся добавлять на форму текст и редактировать его, чтобы он выглядел вот так (Рисунок 1).
Для добавления статичного текста на форму используется элемент, который называется "Декорация - Надпись".
Декорация - Надпись - это элемент на форме, который не зависит от реквизитов объекта и предназначен для вывода текста.
Декорация - Надпись на форму добавляется так же, как и группировка на форме (папка) - или правой кнопкой мыши или через значок плюсика в верхней панели.
Давайте откроем справочник "Договоры" и перейдем на форму элемента этого справочника, но перед этим необходимо сначала создать эту форму (Рисунок 2).
На форме добавим "Декорация - Надпись" (Рисунок 3).
После этого нужно разобраться в его свойствах:
1. Имя - нужно для программиста
2. Заголовок - отображение текста
3. Вид - отображение поля в виде надписи или картинки
4. Видимость - видимость на форме для пользователя
5. гиперссылка - если галочка стоит, то это надпись будет в виде ссылки (происходит переход куда-то) и др. свойства, нам они пока не нужны.
Самым важным свойством для нас сейчас является свойство "Заголовок", так как именно в этом свойстве будет записываться текст, который будет отображаться на форме у пользователя!
У этого свойства есть значок увеличительного стекла (Рисунок 4).
Нужно нажать на этот значок и откроется окно, которое имеет две вкладки (Рисунок 5).
Если выберем обычная строка, то будет обычный текст без всякого окраса, размера и так далее, а нам нужно сделать акцентирование, поэтому нужно выбрать форматированная строка и сделать следующее (Рисунок 6).
После нажать "Ок" и он отобразится на форме. Таким же образом добавим еще две декорации, которые будут выводить нужный текст (Рисунок 7).
В пользовательском режиме это будет выглядеть так (Рисунок 8).
Используя декорацию, отвечающую за вывод текста, можно выводить на формы любой статичный текст, который не сможет изменять пользователь и будет служить чем-то вроде предупреждения о том, что нужно что-то обязательно сделать или не делать.
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Всем спасибо. Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос, а так же можно на канале нажать кнопку "Написать собщение".
Введение в управляемая форма 1С реквизиты элементы команды
Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.
Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.
Программное переопределение обработчиков событий формы и элементов формы
Переопределить обработчики событий формы можно в обработчике «ПриСозданииНаСервере» (кроме самого обрабочика «ПриСозданииНаСервере») или в теле модуля формы в контексте сервера (например, Переопределение событий ПриЧтениинаСервере и ПриСозданииНаСервере).
В теле модуля формы:
А в новой процедуре нужно добавить вызов основной, если такая процедура есть.
Аналогично можно поступить и с обработчиками элементов формы:
Программное создание групп формы.
Доступные виды групп формы:
Программное добавление команды на форму.
Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить(). Удалять можно только те команды, которые были созданы программно.
Программное создание декораций форм.
Программное добавление реквизита на форму.
Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.
Вывод реквизитов на форму.
Вызов процедур при создании на сервере 1С
После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.
Некоторые советы при программном редактировании формы
- Если вы не используете префиксы при создании новых команд и элементов рекомендуется проверять существование создаваемых объектов по имени с помощью метода Найти(), который вернет Неопределено, если объект в коллекции не найден:
- Элементы.Найти(«пр_Владелец»);
- Команды.Найти(«пр_НоваяКоманда»);
- Свойства, методы и коллекции управляемой формы описаны в синтакс-помощнике в разделе «Интерфейс (управляемый)»;
- Изучите БСП, если она имеется в вашей конфигурации. Например в общем модуле «ОбщегоНазначения» уже описаны функции для создания объекта ОписаниеТипов, необходимого при создании новых реквизитов на форме:
- ОбщегоНазначения.ОписаниеТипаСтрока(ДлинаСтроки) — Создает объект ОписаниеТипов, содержащий тип Строка;
- ОбщегоНазначения.ОписаниеТипаЧисло(Разрядность, РазрядностьДробнойЧасти = 0, ЗнакЧисла = Неопределено) — Создает объект ОписаниеТипов, содержащий тип Число;
- ОбщегоНазначения.ОписаниеТипаДата(ЧастиДаты) — Создает объект ОписаниеТипов, содержащий тип Дата;
- ОбщегоНазначенияВызовСервера.ЦветСтиля(ИмяЦветаСтиля) — Функция получает цвет стиля по имени элемента стиля;
- ОбщегоНазначенияВызовСервера.ШрифтСтиля(ИмяШрифтаСтиля) — Функция получает шрифт стиля по имени элемента стиля.
Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:
Читайте также: