TGViewer
НиколAI 1С: от джуна до мидла НиколAI 1С: от джуна до мидла @razrab1c · 9.19K subscribers
Post #665 2.43K
НиколAI 1С: от джуна до мидла 📚 Напоминаю: в эту субботу встречаемся в 13:00 по Москве. Будет два практических занятия: 🧩 1. Программное изменение форм в 1С ⚙️ 2. Динамическое изменение алгоритмов через Выполнить() Начинаем в субботу в 13:00 по Москве. Между двумя частями сделаем перерыв…
🎥 Новый урок: программно создаём реквизиты, команды, элементы формы в 🧑‍💻
В этом уроке форма перестаёт быть чем-то, что можно собирать только мышкой в конфигураторе.
Мы прямо из кода добавим:
➖новый реквизит формы
➖поле, связанное с этим реквизитом
➖команду формы
➖кнопку, которая запускает клиентский обработчик


Весь код пишем всегда в этом обработчике формы ПриСозданииНаСервере :

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

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


Например, программно создадим реквизит формы Комментарий:

ДобавляемыеРеквизиты = Новый Массив;

ДобавляемыеРеквизиты.Добавить(
Новый РеквизитФормы(
"Комментарий",
Новый ОписаниеТипов("Строка")));

ИзменитьРеквизиты(ДобавляемыеРеквизиты);

Здесь важно: в РеквизитФормы передаётся не просто тип, а именно ОписаниеТипов.
А сами реквизиты сначала складываются в массив, который затем передаётся в метод формы ИзменитьРеквизиты()

Теперь создадим ЭЛЕМЕНТ и свяжем с реквизитом:
ПолеКомментарий = Элементы.Добавить(
"ПолеКомментарий",
Тип("ПолеФормы"));

ПолеКомментарий.ПутьКДанным = "Комментарий";
ПолеКомментарий.Вид = ВидПоляФормы.ПолеВвода;

Элементы можно создавать через Элементы.Добавить() или Элементы.Вставить().
Но создать поле недостаточно, его обязательно нужно связать с реквизитом через свойство ПутьКДанным.

Добавим команду и кнопку:
НоваяКоманда = Команды.Добавить("ПоказатьКомментарий");
НоваяКоманда.Заголовок = "Показать комментарий";
НоваяКоманда.Действие = "ПоказатьКомментарий";

Кнопка = Элементы.Добавить(
"КнопкаПоказатьКомментарий",
Тип("КнопкаФормы"));

Кнопка.ИмяКоманды = "ПоказатьКомментарий";


И создадим клиентский обработчик команды:
&НаКлиенте
Процедура ПоказатьКомментарий(Команда)

Сообщить(ЭтотОбъект.Комментарий);

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

Обработчик обязательно создаём на клиенте, не забываем параметр Команда, а к программно добавленному реквизиту обращаемся через:
ЭтотОбъект.Комментарий

а не просто через Комментарий.

🥇 В результате прямо во время создания формы мы получаем новый реквизит, поле для его редактирования, команду, кнопку и полностью рабочий обработчик - всё программно и без ручного добавления элементов в редакторе формы.

⚠️Помним, реквизит объекта создавать программно нельзя⚠️

📺 Видео на ВК
📺 Видео на Рутуб
📺 Видео на Ютуб


💡Про метод Выполнить() так же уже на каналах.

🎯База с урока в комментариях

🔗 Запись на курс БЦО 1С
🔗 Тренажер 1С
VK Видео Программное создание элементов, реквизитов и команд формы в 1С В этом уроке подробно разбираем программную работу с управляемой формой в 1С. Вы узнаете, как с помощью кода создавать элементы формы, добавлять новые реквизиты формы и формировать команды. Отдельно рассматриваем, какие типы элементов формы существуют, чем…
  • 👍 26
  • ❤ 7
  • ⚡ 5
  • ❤‍🔥 5
  • 🤝 2
More from @razrab1c
  1. Oct 14, 2026Post #737
  2. Oct 8, 2026Немного о том, чем я занимаюсь помимо 1С... Больше полугода назад я начал делать свою SaaS…
  3. Oct 6, 2026В Клоде появился русский язык😎
  4. Oct 6, 2026Post #734
  5. Oct 3, 2026Мое любимое)) 🤡 Интересно, а клод знает, что его убили?👍 И ничего себе агент умеет работ…
  6. Oct 1, 2026Post #732
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →