Редактор обычных форм используется для создания и редактирования обычных форм объектов прикладного решения. Обычные формы объектов используются системой для визуального отображения данных в процессе работы пользователя в режиме «Обычное приложение».
Включение обычных форм
При включении в параметрах конфигурации режима редактирования «Управляемое приложение и обычное приложение» в окне редактирования объекта на закладке «Формы» появляется закладка «Дополнительные», на которой можно разработать формы объекта обычного приложения. Также данная закладка появляется, если в свойстве конфигурации «Основной режим запуска» установить «Обычное приложение», при этом в параметрах конфигурации автоматически устанавливается режим «Управляемое приложение и обычное приложение».
Важно! Редактор обычных форм может использоваться в любом режиме работы конфигуратора.
Открытие обычных форм в «Управляемом приложении»
Чтобы в «Управляемом приложении» можно было открывать обычные формы, необходимо в параметрах включить режим редактирования «Управляемое приложение и обычное приложение» и в свойстве конфигурации «Использовать обычные формы в управляемом приложении» установить флаг.
Запуск приложения обязательно осуществлять в режиме «Толстого клиента».
Закладки редактора
Редактор обычных форм содержит три закладки:
- Диалог – визуальное отображение формы, которая будет отображаться пользователю
- Модуль – программный модуль на встроенном языке, отвечающий за логику событий формы
- Реквизиты – совокупность реквизитов, принадлежащих форме
Элементы формы
В редакторе обычных форм диалог создается на основе определения структуры размещения элементов и непосредственного размещения элементов управления в диалоге формы.
Редактировать состав обычных форм можно с помощью окна «Вставка элемента управления», окна «Размещение данных» и панели инструментов.
Окно «Вставка элемента управления» вызывается пунктом меню «Форма – Вставить элемент управления». Установленный флаг «Использовать при вставке» позволяет использовать повторно диалог вставки элемента управления при добавлении данного типа элемента управления на форму.
Окно «Размещение данных» вызывается пунктом меню «Форма – Размещение данных».
При добавлении элемента управления на произвольную обычную форму без реквизитов редактор форм сам создаст реквизит и при удалении элемента с формы удалит реквизит.
При удалении реквизита обычной формы элемент управления останется, а связь с данными будет очищена, так как реквизит удален.
Реквизиты формы
У реквизита обычной формы можно настроить три свойства: Имя, Тип, Проверка заполнения. В зависимости от выбранного типа можно настроить сопутствующие свойства типа.
Размещение элементов, привязка к границам
Элементы на форме размещаются с привязкой границ к границам формы или к границам других элементов, это необходимо, чтобы элементы на форме корректно отображались при разных размерах формы. Для этого используется окно «Привязка границ», открываемое пунктом меню «Форма – Установить привязки».
Настройки формы
Общие настройки обычных форм определяются в общих параметрах конфигуратора, а индивидуальные настройки определяются в свойствах конкретной формы. Часть настроек дублируется.
Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».
Статья создана на основе материалов курса «Разработчик 1С с нуля до профессионала».










































































Отличный вопрос! В 1С:Предприятие 8 таблички, которые вы видите на фотографиях (например, “Данные пользователя” и “Данные персонажа”), — это **элементы формы**, а не таблицы базы данных. Их нужно создавать в **конфигураторе** при разработке формы обработки.
Вот пошаговая инструкция, как сделать такие таблички для формы регистрации нового пользователя, основываясь на вашем задании.
—
## 🎯 Цель
Создать форму, где пользователь может:
– Ввести логин и пароль.
– Указать, является ли он администратором (чекбокс).
– Загрузить аватар.
– Распределить 12 бонусных очков между характеристиками (Сила, Ловкость, Интуиция, Выносливость) с помощью полей ввода и кнопки «Случайно».
– Увидеть остаток очков.
—
## 🛠️ Пошаговое создание формы
### Шаг 1: Создайте обработку
1. В конфигураторе перейдите в раздел **Обработки**.
2. ПКМ → **Добавить** → Назовите её
РегистрацияНовогоПользователя.3. Откройте созданную обработку → вкладка **Формы** → ПКМ → **Добавить** → назовите форму
ФормаРегистрации.—
### Шаг 2: Дизайн формы (визуальное представление)
#### A. Раздел “Данные пользователя”
Это будет **группа элементов** слева.
1. На форме добавьте **Группу** (назовите
ГруппаДанныеПользователя).2. Внутри группы добавьте следующие элементы:
– **Текстовое поле** (назовите
Логин) → подпись: “Логин:”.– **Текстовое поле** (назовите
Пароль) → подпись: “Пароль:”.– **Чекбокс** (назовите
Администратор) → подпись: “Администратор:”.– **Кнопка** (назовите
ЗагрузитьАватар) → надпись: “Загрузить аватар”.– **Кнопка** (назовите
ЗарегистрироватьПользователя) → надпись: “Зарегистрировать пользователя”.> 💡 *Подсказка*: Чтобы элементы были красиво выровнены, используйте режим **”Редактировать макет”** (кнопка в верхнем меню формы). Там можно точно расставить элементы по координатам.
#### B. Раздел “Данные персонажа”
Это будет **вторая группа** справа.
1. На форме добавьте ещё одну **Группу** (назовите
ГруппаДанныеПерсонажа).2. Внутри этой группы добавьте:
– **Текстовое поле** (назовите
Сила) → подпись: “Сила:”. Установите тип данныхЧисло.– **Текстовое поле** (назовите
Ловкость) → подпись: “Ловкость:”. Тип:Число.– **Текстовое поле** (назовите
Интуиция) → подпись: “Интуиция:”. Тип:Число.– **Текстовое поле** (назовите
Выносливость) → подпись: “Выносливость:”. Тип:Число.– **Текстовое поле** (назовите
ОсталосьРаспределить) → подпись: “Осталось распределить:”. Тип:Строка. Это поле будет отображать остаток очков.– **Кнопка** (назовите
Случайно) → надпись: “Случайно”.—
### Шаг 3: Программирование логики формы
Теперь нужно написать код, чтобы:
– При изменении любого поля характеристики (
Сила,Ловкость,Интуиция,Выносливость) автоматически пересчитывался остаток очков.– Кнопка “Случайно” распределяла остаток очков случайным образом.
– Кнопка “Зарегистрировать пользователя” проверяла данные и создавала нового пользователя.
Перейдите в **Модуль формы** и вставьте следующий код:
1c
// --- Модуль формы ---
Перем ОстатокОчков; // Глобальная переменная для хранения остатка
Процедура ПриОткрытии()
ОстатокОчков = 12; // Инициализируем начальный остаток
ОбновитьИнтерфейс(); // Обновляем отображение
КонецПроцедуры
Процедура ОбновитьИнтерфейс()
// Обновляем текстовое поле с остатком
ЭлементыФормы.ОсталосьРаспределить.Значение = ОстатокОчков;
КонецПроцедуры
Процедура ИзменениеХарактеристики()
// Пересчитываем остаток очков при изменении любой характеристики
Сумма = ЭлементыФормы.Сила.Значение +
ЭлементыФормы.Ловкость.Значение +
ЭлементыФормы.Интуиция.Значение +
ЭлементыФормы.Выносливость.Значение;
ОстатокОчков = 12 - Сумма;
ОбновитьИнтерфейс();
// Если остаток меньше 0, устанавливаем 0 и выдаем предупреждение
Если ОстатокОчков < 0 Тогда
ОстатокОчков = 0;
ОбновитьИнтерфейс();
Предупреждение("Нельзя распределить больше 12 очков!");
КонецЕсли;
КонецПроцедуры
Процедура СлучайноКнопка()
// Распределяем остаток очков случайным образом
Если ОстатокОчков <= 0 Тогда
Предупреждение("Все очки уже распределены!");
Возврат;
КонецЕсли;
// Генерируем случайные значения для каждой характеристики
Сила = Цел(СлучайноеЧисло() * ОстатокОчков);
Ловкость = Цел(СлучайноеЧисло() * (ОстатокОчков - Сила));
Интуиция = Цел(СлучайноеЧисло() * (ОстатокОчков - Сила - Ловкость));
Выносливость = ОстатокОчков - Сила - Ловкость - Интуиция;
ЭлементыФормы.Сила.Значение = Сила;
ЭлементыФормы.Ловкость.Значение = Ловкость;
ЭлементыФормы.Интуиция.Значение = Интуиция;
ЭлементыФормы.Выносливость.Значение = Выносливость;
ИзменениеХарактеристики(); // Пересчитываем остаток
КонецПроцедуры
Процедура ЗагрузитьАватар()
// Открываем диалог выбора файла
ИмяФайла = ВыбратьФайл("Выберите файл аватара (*.jpg, *.png)", "jpg;png");
Если ИмяФайла <> "" Тогда
// Проверяем размер файла
РазмерФайла = ПолучитьРазмерФайлаБайт(ИмяФайла);
Если РазмерФайла > 1024 * 1024 Тогда // 1 Мб
Предупреждение("Размер файла не должен превышать 1 Мб!");
Возврат;
КонецЕсли;
// Загружаем файл в хранилище значений
ЭлементыФормы.Аватар.Значение = ЗагрузитьФайлВХранилищеЗначений(ИмяФайла);
КонецЕсли;
КонецПроцедуры
Процедура ЗарегистрироватьПользователя()
// Проверяем обязательные поля
Если ЭлементыФормы.Логин.Значение = "" Тогда
Предупреждение("Необходимо указать логин!");
Возврат;
КонецЕсли;
Если ЭлементыФормы.Пароль.Значение = "" Тогда
Предупреждение("Необходимо указать пароль!");
Возврат;
КонецЕсли;
// Проверяем длину пароля
Если СтрДлина(ЭлементыФормы.Пароль.Значение) < 10 Тогда
Предупреждение("Пароль должен быть не короче 10 символов!");
Возврат;
КонецЕсли;
// Если администратор - блокируем функционал
Если ЭлементыФормы.Администратор.Значение Тогда
Предупреждение("Регистрация администратора заблокирована!");
Возврат;
КонецЕсли;
// Проверяем, что все характеристики распределены
Если ОстатокОчков <> 0 Тогда
Предупреждение("Не все бонусные очки распределены! Осталось: " + ОстатокОчков);
Возврат;
КонецЕсли;
// Создаем нового пользователя
Пользователи = Справочники.Пользователи;
НовыйПользователь = Пользователи.СоздатьЭлемент();
НовыйПользователь.Наименование = ЭлементыФормы.Логин.Значение;
НовыйПользователь.Код = СтрЗаменить(ЭлементыФормы.Логин.Значение, " ", "_"); // Простой код
НовыйПользователь.Пароль = ЭлементыФормы.Пароль.Значение;
НовыйПользователь.Администратор = Ложь; // По условию, администратора нельзя создать
// Устанавливаем характеристики
НовыйПользователь.Сила = ЭлементыФормы.Сила.Значение;
НовыйПользователь.Ловкость = ЭлементыФормы.Ловкость.Значение;
НовыйПользователь.Интуиция = ЭлементыФормы.Интуиция.Значение;
НовыйПользователь.Выносливость = ЭлементыФормы.Выносливость.Значение;
// Загружаем аватар, если он был загружен
Если ЭлементыФормы.Аватар.Значение <> Неопределено Тогда
НовыйПользователь.Аватар = ЭлементыФормы.Аватар.Значение;
КонецЕсли;
НовыйПользователь.Записать();
// После успешной регистрации перезапускаем базу
Предупреждение("Регистрация завершена. База будет перезапущена.");
ПерезапуститьБазу();
КонецПроцедуры
Процедура ПерезапуститьБазу()
// Для перезапуска используем метод платформы
Предупреждение("Перезапуск базы...");
Платформа.Перезапустить();
КонецПроцедуры
—
### Шаг 4: Связь элементов формы с событиями
Теперь нужно привязать события к элементам формы:
1. **Для каждого текстового поля характеристики** (
Сила,Ловкость,Интуиция,Выносливость):– В свойствах элемента → вкладка **События** → выберите событие **ПриИзменении** → укажите процедуру
ИзменениеХарактеристики.2. **Для кнопки “Случайно”**:
– Свойства → События → **ПриНажатии** → укажите процедуру
СлучайноКнопка.3. **Для кнопки “Загрузить аватар”**:
– Свойства → События → **ПриНажатии** → укажите процедуру
ЗагрузитьАватар.4. **Для кнопки “Зарегистрировать пользователя”**:
– Свойства → События → **ПриНажатии** → укажите процедуру
ЗарегистрироватьПользователя.—
### ✅ Готово!
Теперь у вас есть форма, которая полностью соответствует требованиям задания:
– Есть поля для ввода логина и пароля.
– Есть чекбокс “Администратор”.
– Есть кнопка для загрузки аватара.
– Есть четыре поля для характеристик с подсчетом остатка очков.
– Есть кнопка “Случайно” для автоматического распределения.
– Есть кнопка “Зарегистрировать пользователя”, которая проверяет данные и создает нового пользователя.
—
### 💡 Совет для конкурса
– Убедитесь, что форма работает без ошибок.
– Протестируйте все сценарии: регистрация с коротким паролем, попытка создать администратора, распределение более 12 очков.
– Сохраните конфигурацию и подготовьте файл
readme.txt.Если вам нужно, я могу показать, как создать аналогичную табличку для справочника «Предметы» или как связать эти данные с другими объектами конфигурации.