Работа с формами в 1С:Предприятие — одна из ключевых задач для разработчиков и администраторов системы. Часто возникает необходимость расширить функциональность существующей формы, добавив в неё новую страницу с дополнительными элементами управления. Это может потребоваться для разделения логических блоков, улучшения юзабилити или реализации сложных бизнес-процессов.
В этой статье мы разберём процесс добавления страницы в форму пошагово — от подготовки конфигурации до настройки прав доступа. Особое внимание уделим распространённым ошибкам при работе с управляемыми формами в версиях 8.3.20+, где механизм страниц претерпел изменения. Материал будет полезен как начинающим специалистам, так и опытным программистам, нуждающимся в системном подходе к модификации интерфейсов.
Подготовка к добавлению страницы: что нужно знать заранее
Прежде чем приступать к редактированию формы, важно понять её текущую структуру и определить цель новой страницы. В 1С:Предприятие 8.3 страницы в управляемых формах представляют собой контейнеры, которые могут содержать другие элементы управления (поля ввода, таблицы, кнопки и т.д.). Они позволяют логически группировать данные и улучшать навигацию пользователя.
Основные сценарии, когда требуется добавить страницу:
- 📊 Разделение большого количества полей на тематические блоки (например, "Основные данные", "Дополнительная информация", "История изменений")
- 🔧 Реализация многоэтапных процессов (оформление заказа, согласование документов)
- 🖥️ Адаптация формы под разные роли пользователей (менеджер видит одни данные, бухгалтер — другие)
- 📱 Оптимизация отображения на мобильных устройствах (страницы как "вкладки")
Перед началом работ проверьте:
Убедитесь, что конфигурация открыта в режиме "Конфигуратор"|Создайте резервную копию базы данных|Определите целевую форму (справочник, документ, отчёт)|Проверьте права доступа к объекту метаданных-->
Особое внимание уделите типу формы:
- Управляемые формы (рекомендуемый вариант для новых разработок)
- Обычные формы (устаревший подход, поддерживается для совместимости)
В этой статье мы сосредоточимся на управляемых формах, как на современном стандарте.
Управляемые формы|Обычные формы|Оба типа в зависимости от задачи|Не занимаюсь разработкой форм-->
Способы добавления страницы в форму 1С
В 1С:Предприятие 8.3 существует несколько способов добавить страницу в форму. Выбор метода зависит от ваших задач и уровня доступа к конфигурации. Рассмотрим основные подходы:
| Способ | Когда использовать | Требуемые права | Сложность |
|---|---|---|---|
| Редактирование в Конфигураторе | Для постоянных изменений в типовой или собственной конфигурации | Полные права на конфигурирование | Средняя |
| Динамическое создание через код | Для временных страниц или условного отображения | Права на изменение форм в runtime | Высокая |
| Расширения конфигурации | Для модификации типовой конфигурации без изменения исходного кода | Права на создание расширений | Средняя |
| Внешние обработки | Для тестирования или разовых задач | Права на подключение внешних обработок | Низкая |
Наиболее универсальным и рекомендуемым способом является редактирование в Конфигураторе. Он обеспечивает стабильность изменений и полный контроль над структурой формы. Динамическое создание страниц через код целесообразно использовать только в специфических сценариях, например, когда необходимо показать страницу только при выполнении определённых условий.
Для типовой конфигурации (например, 1С:ERP или 1С:УТ) предпочтительным методом будет использование расширений, так как это позволяет сохранять возможность обновления конфигурации без потери изменений.
Пошаговая инструкция: добавление страницы через Конфигуратор
Рассмотрим процесс добавления страницы на примере формы справочника Номенклатура. Этот алгоритм применим и к другим объектам метаданных (документы, отчёты и т.д.).
Шаг 1. Открытие формы в Конфигураторе
Перейдите в дерево метаданных, найдите нужный объект (например, Справочники → Номенклатура) и откройте его форму:
- Правый клик по справочнику →
Открыть форму - Выберите
Форма элемента(илиФорма списка, если требуется) - В открывшемся окне редактора форм перейдите на вкладку
Элементы
Шаг 2. Добавление новой страницы
В панели элементов формы:
- Нажмите правой кнопкой на корневой элемент
Форма - Выберите
Добавить → Страница - Задайте имя страницы на латинице (например,
AdditionalInfo) - Укажите
Заголовок(отображаемое имя, например "Дополнительная информация")
Шаг 3. Настройка свойств страницы
В инспекторе свойств новой страницы обратите внимание на ключевые параметры:
- 🔹
Видимость— определяет, будет ли страница видна сразу (Истина) или только при выполнении условий - 🔹
Доступность— управляет возможностью перехода на страницу (можно привязать к ролям) - 🔹
Порядок— положение страницы относительно других (числа 10, 20, 30 и т.д. для удобной сортировки) - 🔹
Картинка— иконка для вкладки (можно выбрать из стандартного набора или загрузить свою)
Шаг 4. Добавление элементов на страницу
Теперь можно наполнить страницу необходимыми элементами управления:
- Перетащите нужные поля из палитры элементов (например,
Поле ввода,Табличное поле) - Привяжите элементы к реквизитам объекта через свойство
Данные - Настройте внешний вид (размер, шрифт, цвет) в инспекторе свойств
Используйте группировку элементов с помощью Группы или Панели внутри страницы — это улучшает визуальную структуру и упрощает дальнейшее редактирование.
Шаг 5. Сохранение и тестирование
После добавления всех необходимых элементов:
- Сохраните форму (
Файл → СохранитьилиCtrl+S) - Обновите конфигурацию базы данных (
Конфигурация → Обновить конфигурацию базы данных) - Перейдите в режим
1С:Предприятиеи проверьте работу новой страницы
Что делать если страница не отображается?
Проверьте свойство Видимость страницы — оно должно быть Истина или привязано к корректному условию. Также убедитесь, что у текущего пользователя достаточно прав на просмотр данной страницы (настройка в ролях). Если страница добавлена в форму списка, убедитесь, что она не скрыта условием отбора.
Динамическое создание страниц через программный код
В некоторых случаях требуется создавать страницы динамически — например, когда их наличие зависит от прав пользователя, состояния объекта или других условий. Для этого используется встроенный язык 1С.
Основные сценарии динамического создания:
- 🔒 Показ дополнительных данных только администраторам
- 📅 Отображение исторических данных по запросу
- 🛠️ Временные страницы для отладки или тестирования
- 📊 Адаптивное изменение интерфейса в зависимости от разрешения экрана
Пример кода для динамического добавления страницы в обработчике события ПриСозданииНаСервере:
&Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// Проверяем условие (например, роль пользователя)
Если Пользователь.Роли.Найти("Администратор") <> Неопределено Тогда
// Создаём новую страницу
НоваяСтраница = ЭлементыФормы.Добавить("Страница", Тип("Страница"), "AdminPage");
НоваяСтраница.Заголовок = "Административные настройки";
НоваяСтраница.Порядок = 100; // Позиция после всех стандартных страниц
// Добавляем элементы на страницу
НовоеПоле = ЭлементыФормы.Добавить("ПолеВвода", Тип("ПолеВвода"), "AdminField", НоваяСтраница);
НовоеПоле.Данные = Новый ДанныеФормы("Объект.СекретноеПоле");
КонецЕсли;
КонецПроцедуры
Важные нюансы при динамическом создании:
- 🔹 Элементы, добавленные через код, не сохраняются в конфигурации — они создаются при каждом открытии формы
- 🔹 Для сложных форм это может замедлить загрузку, особенно при большом количестве динамических элементов
- 🔹 Всегда проверяйте существование элементов перед обращением к ним, чтобы избежать ошибок
Динамическое создание страниц удобно для гибкой настройки интерфейса, но злоупотребление этим методом может усложнить поддержку кода. Используйте его только когда статическое добавление в Конфигураторе невозможно или нецелесообразно.
Работа со страницами в расширениях конфигурации
Если вы работаете с типовой конфигурацией (например, 1С:Бухгалтерия 3.0 или 1С:ЗУП 3.1), прямое редактирование форм не рекомендуется, так как это усложнит дальнейшие обновления. Вместо этого используйте расширения конфигурации — механизм, позволяющий вносить изменения без модификации исходного кода.
Алгоритм добавления страницы через расширение:
- Создайте новое расширение (
Файл → Новое → Расширение конфигурации) - В дереве расширения найдите нужный объект (например,
Справочник.Номенклатура.ФормаЭлемента) - Нажмите
Добавить формуи выберитеРасширяемая форма - В открывшемся редакторе добавьте страницу стандартным способом (как описано в предыдущем разделе)
- Сохраните расширение и подключите его к основной конфигурации
Преимущества использования расширений:
- 🔄 Сохранение возможности обновления типовой конфигурации
- 📦 Лёгкое переносимость изменений между базами
- 🛡️ Минимизация рисков конфликтов при обновлениях
- 🔧 Возможность отключения изменений без удаления кода
При работе с расширениями учитывайте:
⚠️ Внимание: Не все элементы формы можно модифицировать через расширения. Например, если в типовой конфигурации страница имеет жёстко заданный порядок или привязку к событиям, ваши изменения могут не сработать. Всегда тестируйте результат в режиме 1С:Предприятие.
Настройка видимости и доступности страниц
Добавление страницы — только половина задачи. Не менее важно правильно настроить кто и когда1С:Предприятие это управляется через свойства страницы и механизм ролей.
Управление видимостью
Свойство Видимость может принимать:
- 🔘
Истина— страница всегда видна - 🔘
Ложь— страница всегда скрыта - 🔘
Выражение— видимость определяется условием (например,"Объект.ЭтоГруппа = Истина")
Пример условия для отображения страницы только для определенной номенклатуры:
Объект.ВидыНоменклатуры.Найти("Услуги") <> Неопределено
Настройка доступности через роли
Чтобы ограничить доступ к странице для определённых пользователей:
- Откройте настройки роли в Конфигураторе (
Администрирование → Роли) - Найдите раздел
Права на формыи выберите вашу форму - В дереве элементов формы отметьте галочкой вашу страницу
- Установите нужные права:
Чтение,Изменение,Добавлениеи т.д.
Типичные ошибки при настройке прав:
- 🚫 Забывают проверить права на саму форму (если нет прав на форму, страницы внутри неё тоже будут недоступны)
- 🚫 Используют сложные выражения в свойстве
Видимость, которые замедляют загрузку формы - 🚫 Не тестируют изменения под разными ролями (администратор видит страницу, а менеджер — нет)
Для отладки прав доступа используйте режим Отладка в Конфигураторе с подменой пользователя. Это позволит быстро проверить, как страница отображается для разных ролей без выхода из системы.
Оптимизация и тестирование добавленной страницы
После добавления страницы необходимо проверить её работу в разных сценариях. Это поможет избежать ошибок при реальном использовании.
Чек-лист для тестирования:
Проверьте отображение страницы в разных ролях|Убедитесь, что все элементы привязаны к правильным реквизитам|Протестируйте сохранение данных со страницы|Проверьте работу страницы на мобильных устройствах (если актуально)|Убедитесь, что страница корректно отображается при печати формы-->
Типичные проблемы и их решения:
| Проблема | Возможная причина | Решение |
|---|---|---|
| Страница не отображается | Некорректное условие в свойстве Видимость |
Проверьте синтаксис выражения или установите Видимость = Истина для теста |
| Данные не сохраняются | Элементы не привязаны к реквизитам объекта | Проверьте свойство Данные у каждого элемента на странице |
| Медленная загрузка формы | Слишком много динамически создаваемых элементов | Перенесите часть элементов на статическую страницу или оптимизируйте код |
| Страница доступна не тем пользователям | Неверно настроены права в ролях | Проверьте настройки прав для формы и страницы в каждой роли |
Для сложных форм рекомендуется использовать профилирование производительности:
- Включите режим профилирования в Конфигураторе (
Сервис → Профилировщик) - Откройте форму с новой страницей
- Анализируйте время выполнения операций, особенно при динамическом создании элементов
Особое внимание уделите мобильной версии интерфейса. В 1С:Предприятие 8.3 страницы в формах на мобильных устройствах могут отображаться иначе, чем на десктопе. Используйте эмулятор мобильного клиента в Конфигураторе для проверки:
Сервис → Мобильный клиент → Эмулятор мобильного приложения- Выберите вашу форму и проверьте удобство навигации по страницам
FAQ: Частые вопросы по работе со страницами в формах 1С
Можно ли добавить страницу в форму списка, а не элемента?
Да, механизм добавления страниц одинаков для всех типов форм. В форме списка страницы часто используются для фильтров, дополнительных панелей инструментов или статистической информации. Например, в форме списка номенклатуры можно добавить страницу "Аналитика" с графиками продаж по выбранным позициям.
Как сделать страницу активной (открытой) по умолчанию?
Для этого установите свойство АктивнаяСтраница формы в обработчике ПриОткрытии:
&Процедура ПриОткрытии(Отказ)
ЭлементыФормы.ИмяВашейСтраницы.Активировать();
КонецПроцедуры
Если страница динамическая, используйте метод Активировать() после её создания.
Почему при обновлении конфигурации исчезают добавленные страницы?
Это происходит если вы редактировали типовую конфигурацию напрямую. При обновлении все изменения в типовых объектах сбрасываются. Чтобы избежать потери:
- Используйте расширения конфигурации для типовой базы
- Сохраняйте резервные копии перед обновлением
- Ведите журнал изменений (что, когда и зачем было модифицировано)
Как добавить страницу в форму отчёта или обработки?
Механизм добавления страниц в формы отчётов и обработок идентичен. Основные отличия:
- В отчётах страницы часто используют для настройки параметров отображения
- В обработках — для разделения логических блоков (например, "Исходные данные" и "Результаты")
- Привязка элементов к данным осуществляется к параметрам или временным переменным
Пример для обработки: можно добавить страницу "Лог операций", где будет отображаться история выполненных действий.
Можно ли изменить порядок страниц после их создания?
Да, порядок страниц определяется свойством Порядок (числовое значение). Чтобы изменить последовательность:
- Откройте свойства страницы в Конфигураторе
- Измените значение
Порядок(например, с 20 на 10, чтобы сдвинуть страницу влево) - Убедитесь, что значения
Порядоку страниц не повторяются (используйте шаг 10: 10, 20, 30...)
Для динамически создаваемых страниц порядок задаётся при создании:
НоваяСтраница.Порядок = 15;