Содержание:
1. Формы в системе 1С
В 1С инструмент «Формы» выполняет функцию отображения и редакции данных из базы. Они могут находится в некоторых объектах внутри конфигурации, но также находятся и отдельно. Как пример, в справочнике «Номенклатура» находится много форм, которые используются чтобы редактировать элементы, отображать списки и так далее. Путь к формам системы 1С показан на скриншоте ниже:
Рис. 1 Формы в системе 1С
Также прилагается пример нахождения в системе 1С общих форм, не принадлежащих объектам внутри конфигурации, смотреть скриншот ниже:
Рис. 2 Общие формы в 1С
Пускай уже созданы и заполнены нужные формы, но требуется сделать привязки форм, с этим возникает много проблем у разработчиков.
2. Привязка к элементам
В системе 1С готовые формы вывода и элементы для управления отделены от объектов конфигурации. Как раз из этого «вытекает» необходимость привязки формы к справочнику для их корректной работы. Чаще всего связку делают при помощи режима конструктора для форм, но следует понимать, как именно это происходит. Благодаря этому можно будет самим сделать коррекцию привязки и «подогнать» ее под себя:
1. есть стандартные объекты внутри конфигурации, которые имеют реквизиты и таблицы;
2. есть объекты вида «Форма» с элементами, которые ею управляют (например, поля таблиц, вводные поля и так далее).
Эти два аспекта показаны на скриншоте ниже, можно наглядно сравнить:
Рис. 3 Сравнение стандартных объектов внутри конфигурации и форм в системе 1С
В случае, когда форма является составляющей объекта из конфигурации, только этот факт является необходимым и достаточным условием для реализации привязки формы. Есть возможность сделать стандартную форму, которая не будет относится ни к какому из объектов внутри конфигурации, она станет отражать перечень с элементами из справочника, также будет доступно редактирование документа. Но данную форму нельзя сделать основной для некоторых действий.
Для обеспечения отображения списка с элементами из табличного поля в форме демонстрации это поле обязано быть связано с объектом вида «СправочникСписок.ИмяСправочника». Рассмотрим, как реализовать привязку к элементам.
Данная привязка обеспечивается при помощи создания реквизитов. Далее устанавливаем свойства в «Данные», элементы по управлению, а также саму форму. Рассмотрим пример: пусть необходимо сделать форму для справочника, а также форму для элемента, которую будем создавать вручную, без режима конструктора форм. Делаем новую форму в справочнике «Номенклатура»:
Рис. 4 Новая форма справочника и элемента
Избираем у формы тип «Произвольная», перед нами появится самостоятельная форма, без привязки к данным, у которой не будет реквизитов:
Рис. 5 Самостоятельная форма в системе 1С
Замечание: не стоит спутывать реквизиты внутри объекта в конфигурации и реквизиты в форме.
Создаём новый реквизит формы: «СпрСписок», у которого будет тип «СправочникСписок.Номенклатура»:
Рис. 6 Новый реквизит формы
Стоит заметить, что данный реквизит – не основной реквизит формы.
Замечание: при наличии в форме основного реквизита меняется её поведение – в данном случае она будет главной формой в списке или в элементе.
Сделаем наш реквизит «СпрСписок» главным в форме: необходимо открыть свойства этой формы и заполнить графу «Данные» так, как показано ниже:
Рис. 7 Главная форма при наличии в форме основного реквизита
Когда указываем свойство «Данные», автоматом меняется «Тип значения».
При переходе на вкладку «Реквизиты» в форме видно, что данный реквизит теперь основной (выделяется жирным шрифтом):
Рис. 8 Основной реквизит в форме
Теперь мы получили форму списка, что и было необходимо. Тип основного реквизита формы влияет на появление новых событий – расширений формы; также могут добавиться различные кнопки на панели.
Рис. 9 Появление новый свойств формы в системе 1С
В диалоге у формы поместим элемент по управлению «Табличное поле»:
Рис. 10 Табличное поле формы в системе 1С
После этого появляется реквизит (в примере это «ТабличноеПоле1»). Далее необходимо привязать данное поле к новому реквизиту в форме. Во вкладке со свойствами указываем «Данные», как показано на скриншоте ниже:
Рис. 11 Привязка поля к новому реквизиту в форме
Меняем название элемента на «тпСписок». Это ни на что не влияет, но в дальнейшем будет удобнее читать.
Замечание: свойство «Тип значения» теперь недоступно, это значит, что в свойствах у элемента не получится сменить тип значения у реквизита.
Также можем пронаблюдать, что произошли такие перемены:
· появились столбцы «Код» и «Наименование», они привязаны к реквизитам справочника по умолчанию;
· командная панель наверху теперь заполнена: имеет набор кнопок по умолчанию;
· в форме «ТабличноеПоле1» удалён реквизит.
Рис. 12 Перемены в форме системы 1С
Получаем, что в форме всё есть и теперь она стала формой для списка элементов из справочника. Дадим ей название «Список Номенклатура», далее определим её назначение основной формой в списке (для того чтобы она автоматически открывалась).
Рис. 13 Основная форма в системе 1С
Запускаем систему 1С и сверяем корректность формы и ее работы:
Рис. 14 Корректность работы формы
Следующим этапом станет добавление формы элемента справочника. Всё создаётся вручную, не используя конструктор. Создаём форму, которая будет принадлежать справочнику. По аналогии указываем тип «Произвольная», название дадим «ФормаЭлементаНовая»:
Рис. 15 Добавление формы элемента справочника
Переходим во вкладку «Реквизиты», делаем новый реквизит формы, под названием «СпрОбъект», у него обязательно должен быть тип «СправочникОбъект.Номенклатура»:
Рис. 16 Создание нового реквизита формы в системе 1С
Данный реквизит ещё не принадлежит форме, так как не записан в свойстве «Данные» внутри формы. Исправим это, как показано на скриншоте ниже:
Рис. 17 Добавление принадлежности к форме нового реквизита
Замечание: при изменении «Тип значений» поменяется тип реквизита из формы, этого делать не стоит на данном этапе.
Теперь реквизит с названием «СпрОбъект» – главный внутри формы. Из-за его типа поменялись такие элементы формы:
· кнопки на командных панелях;
· увеличилось количество методов и свойств.
Далее стоит поместить свойства управления, чтобы в дальнейшем редактировать элемент формы после создания. Создаём в форме поле ввода и около него пишем «Наименование»:
Рис. 18 Свойства управления при создании элемента формы
Установим свойство «Данные» и привяжем его к реквизиту «Наименование» (из объекта «СпрОбъект»):
Рис. 19 Привязка формы к реквизиту в 1С
После этой процедуры видим, что тип в поле ввода не может быть изменён, тип значения находится в структуре справочника:
Рис. 20 Тип в поле ввода не может быть изменен
По аналогии размещаем внутри диалогового окна формы другие поля и элементы формы и привязываем их к реквизитам и таблицам в справочнике.
Замечание: учитывая то, что существует главный реквизит внутри формы, то кликнем на «Размещение данных», данная кнопка настроит связь элементов, появится такое окно:
Рис. 21 Окно Размещение формы в 1С
В данном окне находится перечень реквизитов и таблиц из объекта конфигурации, который является основным реквизитом в форме. В «Данные» ставим отметку для реквизитов, которые станут находится внутри формы. А в «Элементы формы» выбираем тип элемента по управлению.
При помощи верного размещения элементов формы имеем такой вид формы:
Рис. 22 Правильное размещение элементов формы
Последний шаг – назначение данной формы основной формой у элемента из справочника, после чего можно все проверить:
Рис. 23 Проверка работы формы в системе 1С
Специалист компании «Кодерлайн»
Айдар Фархутдинов