Редактор обычных форм в 1С

Редактор обычных форм в 1С

Редактор обычных форм используется для создания и редактирования обычных форм объектов прикладного решения. Обычные формы объектов используются системой для визуального отображения данных в процессе работы пользователя в режиме «Обычное приложение».

Включение обычных форм

При включении в параметрах конфигурации режима редактирования «Управляемое приложение и обычное приложение» в окне редактирования объекта на закладке «Формы» появляется закладка «Дополнительные», на которой можно разработать формы объекта обычного приложения. Также данная закладка появляется, если в свойстве конфигурации «Основной режим запуска» установить «Обычное приложение», при этом в параметрах конфигурации автоматически устанавливается режим «Управляемое приложение и обычное приложение».

 

Выбор режима редактирования конфигурации для режимов запуска
Выбор основного режима запуска конфигурации

Важно! Редактор обычных форм может использоваться в любом режиме работы конфигуратора.

Редактор обычных форм

Открытие обычных форм в «Управляемом приложении»

Чтобы в «Управляемом приложении» можно было открывать обычные формы, необходимо в параметрах включить режим редактирования «Управляемое приложение и обычное приложение» и в свойстве конфигурации «Использовать обычные формы в управляемом приложении» установить флаг.

Разрешение на использование обычных форм

Запуск приложения обязательно осуществлять в режиме «Толстого клиента».

Запуск в режиме «Толстого клиента»

Закладки редактора

Редактор обычных форм содержит три закладки:

  • Диалог – визуальное отображение формы, которая будет отображаться пользователю
  • Модуль – программный модуль на встроенном языке, отвечающий за логику событий формы
  • Реквизиты – совокупность реквизитов, принадлежащих форме

Элементы формы

В редакторе обычных форм диалог создается на основе определения структуры размещения элементов и непосредственного размещения элементов управления в диалоге формы.

Редактировать состав обычных форм можно с помощью окна «Вставка элемента управления», окна «Размещение данных» и панели инструментов.

Окно «Вставка элемента управления» вызывается пунктом меню «Форма – Вставить элемент управления». Установленный флаг «Использовать при вставке» позволяет использовать повторно диалог вставки элемента управления при добавлении данного типа элемента управления на форму.

Вставка элемента управления

Окно «Размещение данных» вызывается пунктом меню «Форма – Размещение данных».

Размещение данных

 

Вставка элементов из панели инструментов

При добавлении элемента управления на произвольную обычную форму без реквизитов редактор форм сам создаст реквизит и при удалении элемента с формы удалит реквизит.

Добавленный элемент и автоматом созданный реквизит

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

Элемент без связи с реквизитом

Реквизиты формы

У реквизита обычной формы можно настроить три свойства: Имя, Тип, Проверка заполнения. В зависимости от выбранного типа можно настроить сопутствующие свойства типа.

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

Размещение элементов, привязка к границам

Элементы на форме размещаются с привязкой границ к границам формы или к границам других элементов, это необходимо, чтобы элементы на форме корректно отображались при разных размерах формы. Для этого используется окно «Привязка границ», открываемое пунктом меню «Форма – Установить привязки».

Простая привязка
Сложная привязка

Настройки формы

Общие настройки обычных форм определяются в общих параметрах конфигуратора, а индивидуальные настройки определяются в свойствах конкретной формы. Часть настроек дублируется.

Настройки обычных форм в общих параметрах конфигуратора и индивидуальные настройки формы

Ваганов Сергей, эксперт в области разработки прикладных решений на платформе 1С:Предприятие, преподаватель-методист CORS Academy и автор курса «Разработчик 1С с нуля до профессионала».

Статья создана на основе материалов курса «Разработчик 1С с нуля до профессионала».

Редактор обычных форм в 1С
Подписаться
Уведомить о
guest

wp-puzzle.com logo

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.

Если вам нужно, я могу показать, как создать аналогичную табличку для справочника «Предметы» или как связать эти данные с другими объектами конфигурации.

Должность
администратор

подпишитесь на рассылку академии

2 письма в неделю со свежими новостями о скидках, курсах и других событиях

Нажимая на кнопку “Подписаться”, вы даете согласие на обработку персональных данных