Найти в Дзене
1С: Программирование

Урок 24. Документы: создание формы, добавление реквизитов на формы

Всем привет. Продолжаем изучать документ.

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

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

Рисунок 1 - Реквизит "Договор"
Рисунок 1 - Реквизит "Договор"

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

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

Рисунок 2 - выпадающий список для поля "Договор"
Рисунок 2 - выпадающий список для поля "Договор"

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

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

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

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

Рисунок 3 - Свойства реквизита
Рисунок 3 - Свойства реквизита

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

Рисунок 4 - Выбор реквизита для отбора
Рисунок 4 - Выбор реквизита для отбора

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

Рисунок 5 - Отбор по владельцу
Рисунок 5 - Отбор по владельцу

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

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

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

Рисунок 6 - Отфильтрованные договоры
Рисунок 6 - Отфильтрованные договоры

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

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

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

Рисунок 7 - Форма документа
Рисунок 7 - Форма документа

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

Рисунок 8 - Реквизит "Договор"
Рисунок 8 - Реквизит "Договор"

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

Рисунок 9 - Форма документа
Рисунок 9 - Форма документа

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

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

Рисунок 10 - Форма списка
Рисунок 10 - Форма списка

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

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

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

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

Рисунок 11 - Форма документа
Рисунок 11 - Форма документа

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

Рисунок 12 - Перемещение реквизита на форму
Рисунок 12 - Перемещение реквизита на форму

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

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

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

Давайте теперь добавим новую табличную часть "Дополнительно" в документ "Расход денег" (Рисунок 14) и будет только один реквизит "Сообщение" с типом - строка, длиной - неограниченно.

Рисунок 14 - Новая табличная часть
Рисунок 14 - Новая табличная часть

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

Рисунок 15 - Перемещение таблицы
Рисунок 15 - Перемещение таблицы

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

Рисунок 16 - Таблица на форме
Рисунок 16 - Таблица на форме

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

Рисунок 17 - Таблицы друг за другом
Рисунок 17 - Таблицы друг за другом

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

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

1. Рисунок 18 - выделить группу "Страницы" на форме

Рисунок 18 - Выбор руппы
Рисунок 18 - Выбор руппы

2. Рисунок 19 - Правой кнопкой мыши или через плюсик добавить новую группу (папку) в группу "Страницы". Выбрать "Страница"

Рисунок 19 - Создание группы
Рисунок 19 - Создание группы

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

Рисунок 20 - Переименование группы
Рисунок 20 - Переименование группы

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

Рисунок 21 - перемещение таблицы в группу
Рисунок 21 - перемещение таблицы в группу

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

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

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

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

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

Всем спасибо. Задать вопросы, которые у вас возникли вы можете, написав комментарий или вступить в группу и задать там свой вопрос. Ссылка для вступления в группу - t.me.Apiscourses

Подписаться в группу ВКонтакте

Или написать на электронную почту - awesome.razrab@yandex.ru

Прошлые уроки:

Введение Урок 1 Урок 2 Урок 3 Урок 4 Урок 5 Урок 6 Урок 7 Урок 8 Урок 9 Урок 10 Урок 11 Урок 12 Урок 13 Урок 14 Урок 15 Урок 16 Урок 17 Урок 18 Урок 19 Урок 20 Урок 21 Урок 22 Урок 23

На этом все. Жду Вас на следующем занятии.

P.S. Подписывайтесь на мой канал :-)