Работа с формами в 1С:Предприятие — одна из ключевых задач для разработчиков и администраторов системы. Часто возникает необходимость расширить функциональность существующей формы, добавив в неё новую страницу с дополнительными элементами управления. Это может потребоваться для разделения логических блоков, улучшения юзабилити или реализации сложных бизнес-процессов.

В этой статье мы разберём процесс добавления страницы в форму пошагово — от подготовки конфигурации до настройки прав доступа. Особое внимание уделим распространённым ошибкам при работе с управляемыми формами в версиях 8.3.20+, где механизм страниц претерпел изменения. Материал будет полезен как начинающим специалистам, так и опытным программистам, нуждающимся в системном подходе к модификации интерфейсов.

Подготовка к добавлению страницы: что нужно знать заранее

Прежде чем приступать к редактированию формы, важно понять её текущую структуру и определить цель новой страницы. В 1С:Предприятие 8.3 страницы в управляемых формах представляют собой контейнеры, которые могут содержать другие элементы управления (поля ввода, таблицы, кнопки и т.д.). Они позволяют логически группировать данные и улучшать навигацию пользователя.

Основные сценарии, когда требуется добавить страницу:

  • 📊 Разделение большого количества полей на тематические блоки (например, "Основные данные", "Дополнительная информация", "История изменений")
  • 🔧 Реализация многоэтапных процессов (оформление заказа, согласование документов)
  • 🖥️ Адаптация формы под разные роли пользователей (менеджер видит одни данные, бухгалтер — другие)
  • 📱 Оптимизация отображения на мобильных устройствах (страницы как "вкладки")

Перед началом работ проверьте:

Убедитесь, что конфигурация открыта в режиме "Конфигуратор"|Создайте резервную копию базы данных|Определите целевую форму (справочник, документ, отчёт)|Проверьте права доступа к объекту метаданных-->

Особое внимание уделите типу формы:

- Управляемые формы (рекомендуемый вариант для новых разработок)

- Обычные формы (устаревший подход, поддерживается для совместимости)

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

Управляемые формы|Обычные формы|Оба типа в зависимости от задачи|Не занимаюсь разработкой форм-->

Способы добавления страницы в форму 1С

В 1С:Предприятие 8.3 существует несколько способов добавить страницу в форму. Выбор метода зависит от ваших задач и уровня доступа к конфигурации. Рассмотрим основные подходы:

Способ Когда использовать Требуемые права Сложность
Редактирование в Конфигураторе Для постоянных изменений в типовой или собственной конфигурации Полные права на конфигурирование Средняя
Динамическое создание через код Для временных страниц или условного отображения Права на изменение форм в runtime Высокая
Расширения конфигурации Для модификации типовой конфигурации без изменения исходного кода Права на создание расширений Средняя
Внешние обработки Для тестирования или разовых задач Права на подключение внешних обработок Низкая

Наиболее универсальным и рекомендуемым способом является редактирование в Конфигураторе. Он обеспечивает стабильность изменений и полный контроль над структурой формы. Динамическое создание страниц через код целесообразно использовать только в специфических сценариях, например, когда необходимо показать страницу только при выполнении определённых условий.

Для типовой конфигурации (например, 1С:ERP или 1С:УТ) предпочтительным методом будет использование расширений, так как это позволяет сохранять возможность обновления конфигурации без потери изменений.

Пошаговая инструкция: добавление страницы через Конфигуратор

Рассмотрим процесс добавления страницы на примере формы справочника Номенклатура. Этот алгоритм применим и к другим объектам метаданных (документы, отчёты и т.д.).

Шаг 1. Открытие формы в Конфигураторе

Перейдите в дерево метаданных, найдите нужный объект (например, Справочники → Номенклатура) и откройте его форму:

  1. Правый клик по справочнику → Открыть форму
  2. Выберите Форма элемента (или Форма списка, если требуется)
  3. В открывшемся окне редактора форм перейдите на вкладку Элементы

Шаг 2. Добавление новой страницы

В панели элементов формы:

  1. Нажмите правой кнопкой на корневой элемент Форма
  2. Выберите Добавить → Страница
  3. Задайте имя страницы на латинице (например, AdditionalInfo)
  4. Укажите Заголовок (отображаемое имя, например "Дополнительная информация")

Шаг 3. Настройка свойств страницы

В инспекторе свойств новой страницы обратите внимание на ключевые параметры:

  • 🔹 Видимость — определяет, будет ли страница видна сразу (Истина) или только при выполнении условий
  • 🔹 Доступность — управляет возможностью перехода на страницу (можно привязать к ролям)
  • 🔹 Порядок — положение страницы относительно других (числа 10, 20, 30 и т.д. для удобной сортировки)
  • 🔹 Картинка — иконка для вкладки (можно выбрать из стандартного набора или загрузить свою)

Шаг 4. Добавление элементов на страницу

Теперь можно наполнить страницу необходимыми элементами управления:

  1. Перетащите нужные поля из палитры элементов (например, Поле ввода, Табличное поле)
  2. Привяжите элементы к реквизитам объекта через свойство Данные
  3. Настройте внешний вид (размер, шрифт, цвет) в инспекторе свойств
💡

Используйте группировку элементов с помощью Группы или Панели внутри страницы — это улучшает визуальную структуру и упрощает дальнейшее редактирование.

Шаг 5. Сохранение и тестирование

После добавления всех необходимых элементов:

  1. Сохраните форму (Файл → Сохранить или Ctrl+S)
  2. Обновите конфигурацию базы данных (Конфигурация → Обновить конфигурацию базы данных)
  3. Перейдите в режим 1С:Предприятие и проверьте работу новой страницы
Что делать если страница не отображается?

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

Динамическое создание страниц через программный код

В некоторых случаях требуется создавать страницы динамически — например, когда их наличие зависит от прав пользователя, состояния объекта или других условий. Для этого используется встроенный язык .

Основные сценарии динамического создания:

  • 🔒 Показ дополнительных данных только администраторам
  • 📅 Отображение исторических данных по запросу
  • 🛠️ Временные страницы для отладки или тестирования
  • 📊 Адаптивное изменение интерфейса в зависимости от разрешения экрана

Пример кода для динамического добавления страницы в обработчике события ПриСозданииНаСервере:

&Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

// Проверяем условие (например, роль пользователя)

Если Пользователь.Роли.Найти("Администратор") <> Неопределено Тогда

// Создаём новую страницу

НоваяСтраница = ЭлементыФормы.Добавить("Страница", Тип("Страница"), "AdminPage");

НоваяСтраница.Заголовок = "Административные настройки";

НоваяСтраница.Порядок = 100; // Позиция после всех стандартных страниц

// Добавляем элементы на страницу

НовоеПоле = ЭлементыФормы.Добавить("ПолеВвода", Тип("ПолеВвода"), "AdminField", НоваяСтраница);

НовоеПоле.Данные = Новый ДанныеФормы("Объект.СекретноеПоле");

КонецЕсли;

КонецПроцедуры

Важные нюансы при динамическом создании:

  • 🔹 Элементы, добавленные через код, не сохраняются в конфигурации — они создаются при каждом открытии формы
  • 🔹 Для сложных форм это может замедлить загрузку, особенно при большом количестве динамических элементов
  • 🔹 Всегда проверяйте существование элементов перед обращением к ним, чтобы избежать ошибок
💡

Динамическое создание страниц удобно для гибкой настройки интерфейса, но злоупотребление этим методом может усложнить поддержку кода. Используйте его только когда статическое добавление в Конфигураторе невозможно или нецелесообразно.

Работа со страницами в расширениях конфигурации

Если вы работаете с типовой конфигурацией (например, 1С:Бухгалтерия 3.0 или 1С:ЗУП 3.1), прямое редактирование форм не рекомендуется, так как это усложнит дальнейшие обновления. Вместо этого используйте расширения конфигурации — механизм, позволяющий вносить изменения без модификации исходного кода.

Алгоритм добавления страницы через расширение:

  1. Создайте новое расширение (Файл → Новое → Расширение конфигурации)
  2. В дереве расширения найдите нужный объект (например, Справочник.Номенклатура.ФормаЭлемента)
  3. Нажмите Добавить форму и выберите Расширяемая форма
  4. В открывшемся редакторе добавьте страницу стандартным способом (как описано в предыдущем разделе)
  5. Сохраните расширение и подключите его к основной конфигурации

Преимущества использования расширений:

  • 🔄 Сохранение возможности обновления типовой конфигурации
  • 📦 Лёгкое переносимость изменений между базами
  • 🛡️ Минимизация рисков конфликтов при обновлениях
  • 🔧 Возможность отключения изменений без удаления кода

При работе с расширениями учитывайте:

⚠️ Внимание: Не все элементы формы можно модифицировать через расширения. Например, если в типовой конфигурации страница имеет жёстко заданный порядок или привязку к событиям, ваши изменения могут не сработать. Всегда тестируйте результат в режиме 1С:Предприятие.

Настройка видимости и доступности страниц

Добавление страницы — только половина задачи. Не менее важно правильно настроить кто и когда1С:Предприятие это управляется через свойства страницы и механизм ролей.

Управление видимостью

Свойство Видимость может принимать:

  • 🔘 Истина — страница всегда видна
  • 🔘 Ложь — страница всегда скрыта
  • 🔘 Выражение — видимость определяется условием (например, "Объект.ЭтоГруппа = Истина")

Пример условия для отображения страницы только для определенной номенклатуры:

Объект.ВидыНоменклатуры.Найти("Услуги") <> Неопределено

Настройка доступности через роли

Чтобы ограничить доступ к странице для определённых пользователей:

  1. Откройте настройки роли в Конфигураторе (Администрирование → Роли)
  2. Найдите раздел Права на формы и выберите вашу форму
  3. В дереве элементов формы отметьте галочкой вашу страницу
  4. Установите нужные права: Чтение, Изменение, Добавление и т.д.

Типичные ошибки при настройке прав:

  • 🚫 Забывают проверить права на саму форму (если нет прав на форму, страницы внутри неё тоже будут недоступны)
  • 🚫 Используют сложные выражения в свойстве Видимость, которые замедляют загрузку формы
  • 🚫 Не тестируют изменения под разными ролями (администратор видит страницу, а менеджер — нет)
💡

Для отладки прав доступа используйте режим Отладка в Конфигураторе с подменой пользователя. Это позволит быстро проверить, как страница отображается для разных ролей без выхода из системы.

Оптимизация и тестирование добавленной страницы

После добавления страницы необходимо проверить её работу в разных сценариях. Это поможет избежать ошибок при реальном использовании.

Чек-лист для тестирования:

Проверьте отображение страницы в разных ролях|Убедитесь, что все элементы привязаны к правильным реквизитам|Протестируйте сохранение данных со страницы|Проверьте работу страницы на мобильных устройствах (если актуально)|Убедитесь, что страница корректно отображается при печати формы-->

Типичные проблемы и их решения:

Проблема Возможная причина Решение
Страница не отображается Некорректное условие в свойстве Видимость Проверьте синтаксис выражения или установите Видимость = Истина для теста
Данные не сохраняются Элементы не привязаны к реквизитам объекта Проверьте свойство Данные у каждого элемента на странице
Медленная загрузка формы Слишком много динамически создаваемых элементов Перенесите часть элементов на статическую страницу или оптимизируйте код
Страница доступна не тем пользователям Неверно настроены права в ролях Проверьте настройки прав для формы и страницы в каждой роли

Для сложных форм рекомендуется использовать профилирование производительности:

  1. Включите режим профилирования в Конфигураторе (Сервис → Профилировщик)
  2. Откройте форму с новой страницей
  3. Анализируйте время выполнения операций, особенно при динамическом создании элементов

Особое внимание уделите мобильной версии интерфейса. В 1С:Предприятие 8.3 страницы в формах на мобильных устройствах могут отображаться иначе, чем на десктопе. Используйте эмулятор мобильного клиента в Конфигураторе для проверки:

  1. Сервис → Мобильный клиент → Эмулятор мобильного приложения
  2. Выберите вашу форму и проверьте удобство навигации по страницам

FAQ: Частые вопросы по работе со страницами в формах 1С

Можно ли добавить страницу в форму списка, а не элемента?

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

Как сделать страницу активной (открытой) по умолчанию?

Для этого установите свойство АктивнаяСтраница формы в обработчике ПриОткрытии:

&Процедура ПриОткрытии(Отказ)

ЭлементыФормы.ИмяВашейСтраницы.Активировать();

КонецПроцедуры

Если страница динамическая, используйте метод Активировать() после её создания.

Почему при обновлении конфигурации исчезают добавленные страницы?

Это происходит если вы редактировали типовую конфигурацию напрямую. При обновлении все изменения в типовых объектах сбрасываются. Чтобы избежать потери:

  • Используйте расширения конфигурации для типовой базы
  • Сохраняйте резервные копии перед обновлением
  • Ведите журнал изменений (что, когда и зачем было модифицировано)
Как добавить страницу в форму отчёта или обработки?

Механизм добавления страниц в формы отчётов и обработок идентичен. Основные отличия:

  • В отчётах страницы часто используют для настройки параметров отображения
  • В обработках — для разделения логических блоков (например, "Исходные данные" и "Результаты")
  • Привязка элементов к данным осуществляется к параметрам или временным переменным

Пример для обработки: можно добавить страницу "Лог операций", где будет отображаться история выполненных действий.

Можно ли изменить порядок страниц после их создания?

Да, порядок страниц определяется свойством Порядок (числовое значение). Чтобы изменить последовательность:

  1. Откройте свойства страницы в Конфигураторе
  2. Измените значение Порядок (например, с 20 на 10, чтобы сдвинуть страницу влево)
  3. Убедитесь, что значения Порядок у страниц не повторяются (используйте шаг 10: 10, 20, 30...)

Для динамически создаваемых страниц порядок задаётся при создании:

НоваяСтраница.Порядок = 15;