Программно добавить декорацию на форму 1с

Обновлено: 06.07.2024

Введение в управляемая форма 1С реквизиты элементы команды

Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.

Программное переопределение обработчиков событий формы и элементов формы

В теле модуля формы:

А в новой процедуре нужно добавить вызов основной, если такая процедура есть.

Аналогично можно поступить и с обработчиками элементов формы:

Программное создание групп формы.

Доступные виды групп формы:


Программное добавление команды на форму.

Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить(<Команда>). Удалять можно только те команды, которые были созданы программно.

Программное создание декораций форм.

Программное добавление реквизита на форму.

Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.

Вывод реквизитов на форму.

Вызов процедур при создании на сервере 1С

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

Некоторые советы при программном редактировании формы


Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:

Например, почти в каждом приложении необходимо, чтобы на формах выводился логотип компании или фотографии сотрудников.

Добавление этого элемента на форму ничем не отличается от добавления надписи (текста) на форму - правой кнопкой мыши или через значок плюса на панели сверху.

Давайте перейдём к практике. Откроем форму элемента справочника "СписокСотрудников" и добавим на форму картинку (Рисунок 1). Если ее нет, то ее необходимо сначала добавить на вкладке "Формы".

Давайте теперь обратим внимание на свойства:

1. Вид - выбор текста или картинки;

2. Видимость - определяет, является ли картинка видимой пользователю;

3. Доступность - определяет, является ли картинка доступной пользователю;

4. Картинка - это свойство отвечает за путь к картинке, выбор картинки;

5. Гиперссылка - если поставить это свойство, то картинка станет кнопкой, при нажатии на которую, будет происходить переход.

Самое важное свойство "Картинка" - это путь к картинке.

Давайте нажмем на кнопку в виде многоточия у свойства "Картинка" и выберем любую картинку, которая есть на компьютере (Рисунок 2).

После нажатия "Ок" она у вас отобразится следующим образом (Рисунок 3).

Картинка отображается не так, как надо. Нам нужно, чтобы логотип отображался маленьким и было удобно работать с формой пользователю. Для этого нужно вызвать свойства декорации и найти свойство "Размер картинки" и установить там значение "Пропорционально" (Рисунок 4).

После этого нужно найти свойства "Ширина" и "высота" и установить значения 5х2 (Рисунок 5).

После этого логотип станет нужного размера. Таким образом, меняя ширину и высоту, можно изменять размер картинки на форме. Давайте проверим теперь все это в пользовательском режиме (Рисунок 6).

Сделайте самостоятельно так, чтобы картинка появилась на форме списка (Рисунок 7).

Для этого нужно перейти на форму списка, добавить декорацию и указать необходимые свойства, которые мы указывали выше!

На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!

Всем спасибо. Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос, а так же можно на канале нажать кнопку "Написать собщение".

Сегодня мы поработаем с формой документа: научимся ее создавать и добавлять на нее новые реквизиты.

Откроем документ "ПриходДенежныхСредств" и добавим реквизит "Договор" (Рисунок 1).

Укажем у реквизита "Договор" ссылку на справочник "Договоры" (Рисунок 1).

Теперь зайдем в пользователя и проверим изменения (Рисунок 2)!

Теперь я хочу сделать таким образом, что бы при выборе контрагента "Поставщик 3" показывались только те договоры, которые относятся к этому контрагенту! У нас для этого уже есть заготовки и просто необходимо включить этот функционал.

До этого мы указывали, что справочник "Договоры" является подчиненным для справочника "Контрагенты" - является владельцем.

Посмотрите на рисунок 2, сейчас в этом окне показываются все договоры, которые относятся к этому контрагенту и которые не относятся, а мне необходимо лишние отфильтровать по владельцу (контрагенту).

Для этого нужно открыть свойства реквизита "Договор" и найти свойство "Связи параметров выбора" (Рисунок 3).

У этого свойства необходимо нажать на значок многоточия и откроется окно (Рисунок 4).

В этом окне нам необходимо перетащить реквизит, по которому будет делаться отбор - это Контрагент. Нужно выделить реквизит и нажать на значок стрелки вправо и он переместится в правое окно (Рисунок 5).

В правом окне необходимо установить значения, которые показаны на рисунке 5 и нажать "Ок".

Если поле (столбец) "Имя" не отображается как на рисунке, то необходимо по нему дважды щелкнуть и в выпадающем списке выбрать необходимое значение.

После этого нужно перейти в режим пользователя и проверить изменения (Рисунок 6).

На рисунке 6 видно, что реквизит сам добавился и на форму документа и на форму списка, а так же, отбор по владельцу работает.

Работает это так: как только вы выбрали в поле "Контрагент" какой-то элемент, так сразу для поля "Договор" срабатывает отбор и будет показываться только то, что относится к этому владельцу (контрагенту).

Давайте продолжим. Добавим реквизит "Договор" (Рисунок 8) в документ "РасходДенег" - он будет абсолютно таким же, как и в прошлом документе, то есть нужно в свойствах указать отбор по владельцу (если не помните как, то посмотрите выше, там это описано), но перед этим добавим форму документа на вкладке "Формы" (Рисунок 7), выберите необходимые реквизиты, которые будут отображаться на форме и нажмите "Готово".

Закройте форму, она пока нам не нужна и теперь перейдите на вкладку "Данные" и создадим реквизит "Договор" (Рисунок 8).

После этого запустить пользователя и проверить изменения (Рисунок 9).

Посмотрите на рисунок 9, на форме документа нет реквизита "Договор"! Как так и почему? Ведь мы же его создали, а он тут не отображается!

Но, если закрыть форму документа и посмотреть на форму списка (Рисунок 10), то мы увидим, что этот реквизит на этой форме есть!

Как так получается? Почему в одном месте его нет, а в другом есть?

Все очень просто, все точно так же как и в справочнике! Мы создали реквизит после того, как создали форму! А в этом случае платформа понимает: "как только создана форма, она уходит в сторону и все работу по добавлению чего-то нового на форму, отдает полностью пользователю"!

Мы создали форму документа, а потом только создали реквизит. Именно поэтому он не добавился на форму, так как нам нужно добавлять его на форму вручную, а форму списка мы не трогали и именно поэтому платформа сама его добавила!

Давайте добавим реквизит на форму! Для этого откроем объект на вкладке "Формы" и откроем форму документа (Рисунок 11).

Теперь необходимо в правой части окна раскрыть список "Объект" и там найти реквизит "Договор" (Договор 12).

Проверим изменения в пользовательском режиме (Рисунок 13).

Все так и работает: как только создаете какую-то форму, так сразу платформа перестает сама добавлять реквизиты на форму, но если вы до создания формы создали все реквизиты и потом создали форму, то автоматически все реквизиты появятся на форме.

Мало того, что реквизит появился на форме, так и отбор работает - показываются только те договоры, которые относятся к определенному контрагенту!

Теперь проверим изменения в пользователе и убедимся в том, что она не появилась на форме документа - значит, нужно переместить ее сначала на форму в режиме разработчика (Рисунок 15).

Теперь проверим пользователя и будет выглядеть вот так (Рисунок 16).

Как видим по рисунку 16, табличка появилась выше первых двух таблиц, а не стала после таблички "Услуги" как на рисунке 17.

Так, как на рисунке 16, программа тоже будет работать, но не удобно будет, слишком много места занимает одна таблица, а нужно так, как на рисунке 17 - для экономии места и удобности.

Для этого перейдем на форму в режиме разработчика и сделаем следующее:

3. Рисунок 20 - Переименовать новую группу (Имя и Синоним)

4. Рисунок 21 - Переместить в папку "Дополнительно" таблицу "Дополнительно"

5. Рисунок 22 - Запустить пользователя и проверить изменения .

Рисунок 22 - Отображение таблицы в пользовательском режиме Рисунок 22 - Отображение таблицы в пользовательском режиме

Теперь место сэкономлено, стало более удобнее работать!

При добавлении таблички в нужно место мы познакомились побольше с формой, а именно с созданием группировки (папки), которая помогает правильно отобразить элемент на форме. Более подробно с созданием группировки мы поработаем на следующем занятии и разберемся со всем.

На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том. что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!

Читайте также: