Как программно добавлять элементы на управляемую форму в 1С 8.3?

Как можно меня отблагодарить: pay.cloudtips.ru/p/0c670bd3
В этом видео мы рассмотрим, как программно размещать элементы на управляемых формах в 1С 8.3.
Программное размещение элементов управления на форме - удобный способ дорабатывать типовые формы, который позволяет облегчить поддержку и сопровождение конфигураций, проще и быстрее производить обновление, использовать внешние программы для трехстороннего объединения, такие как kdiff3.
Для удобства пользуйтесь тайм-кодами
01:00 Добавление существующего реквизита на форму
02:16 Программное создание реквизита формы и размещение его в виде элемента
03:53 Как программно разместить элемент формы в нужном месте
05:20 Как при помощи кода добавить команду в управляемую форму
06:50 Пример программного добавления таблицы значений
10:28 Как подключить обработчик события к элементу формы программно
Добавляйте в закладки мой сайт 1c.alexcode.ru/first-steps/ с полезными материалами по настройке и программированию 1С
Курс «Разработчик 1С с нуля»
1c.alexcode.ru/
Индивидуальное обучение 1С
1c.alexcode.ru/online-consult...
Видео также размещено на моем Дзен-канале «1С с Леоновым»: dzen.ru/video/watch/63da3c08f...

Пікірлер: 20

  • @user-sq2ph1ow3h
    @user-sq2ph1ow3h Жыл бұрын

    Спасибо! Отличное объяснение.

  • @alexcode_1c

    @alexcode_1c

    Жыл бұрын

    Рад, что видео оказалось полезным!🤝

  • @user-lr1ly7mk2y
    @user-lr1ly7mk2y7 ай бұрын

    Спасибо!!! 😊

  • @alexcode_1c

    @alexcode_1c

    7 ай бұрын

    🤝😀

  • @timyrasegty7857
    @timyrasegty78572 ай бұрын

    Здравствуйте, можно ли аналогичным способом добавить точечную диаграмму на форму?

  • @alexcode_1c

    @alexcode_1c

    2 ай бұрын

    Не пробовал, но по идее, можно. Диаграмма - ровно такой же элемент формы, как и другие.

  • @timyrasegty7857

    @timyrasegty7857

    2 ай бұрын

    @@alexcode_1c, нельзя, скорее всего. Запуск внешней обработки приводит к ошибке "Недопустимое значение параметров" с указанием на строку: Диаг = ЭтаФорма.Элементы.Вставить("Диаграмма", Тип("Диаграмма"), ЭтаФорма); *Давно в другой внешней обработке использовал аналогичную строку, но для добавления группы формы и всё нормально работало: ГлавГруппа = ЭтаФорма.Элементы.Вставить("ГлавнаяГруппа", Тип("ГруппаФормы"), ЭтаФорма);

  • @alexcode_1c

    @alexcode_1c

    2 ай бұрын

    @@timyrasegty7857 Тип Диаграмма - это тип реквизита с данными. А тип элемента формы должен быть ПолеДиаграммыФормы, по идее

  • @malhik77
    @malhik775 ай бұрын

    Из внешней обработки программно открываю форму документа. А как сделать, чтобы при этом табличная часть открывшегося документа была недоступна для редактирования? Спасибо!

  • @alexcode_1c

    @alexcode_1c

    5 ай бұрын

    При создании на сервере анализировать входящие параметры, и по какому-нибудь условию ставить флаг ТолькоПросмотр для нужной табличной части. А при программном открытии формы, соответственно, передать какой-нибудь параметр для анализа.

  • @malhik77

    @malhik77

    5 ай бұрын

    @@alexcode_1c Буха базовая без возможности что-то править и расширение не прикрутить(

  • @alexcode_1c

    @alexcode_1c

    5 ай бұрын

    @@malhik77 Печаль. Тогда можно попробовать скопировать форму документа в обработку, и открывать не стандартную форму документа, а ту, что из обработки, и там уже делать что хотим.

  • @mynumbers5746
    @mynumbers57462 ай бұрын

    Здравствуйте. Как сделать чтобы флажки создавались сразу с отметками?

  • @alexcode_1c

    @alexcode_1c

    2 ай бұрын

    Здравствуйте. Отметка - это значение, соответственно, хранится в реквизите. Просто при создании элемента, привязанного к реквизиту, у этого реквизита должно быть нужное значение. Для флажка - истина.

  • @mynumbers5746

    @mynumbers5746

    2 ай бұрын

    @@alexcode_1c согласен, у меня задача с екселя загружаем строки и отмечаем только на форме какие строки в дальнейшем будут обработаны? Считываю заголовки, и создаю колонки Таблицы. В обработке использую реквизит таблице значения. Пустую. Ваш совет добавить туда предварительно поле Отметка программно?

  • @alexcode_1c

    @alexcode_1c

    2 ай бұрын

    @@mynumbers5746 да, там где наполняем таблицу данными, сразу можно и отметки заполнить, если правильно понял, что требуется.

  • @mynumbers5746

    @mynumbers5746

    2 ай бұрын

    @@alexcode_1c я как понял надо добавить колонку отметка. И заполнить истина. А если это не связано с объектом, есть способ?

  • @alexcode_1c

    @alexcode_1c

    2 ай бұрын

    ​@@mynumbers5746 колонка должна где-то храниться. Соответственно, храниться она будет в табличной части либо таблице значений. Табличная часть создаётся на уровне объекта. А таблицу значений можно создать на уровне формы, без привязки к объекту. Посмотрите на видео 6:50, там пример создания таблицы

  • @AlekseiAstahov
    @AlekseiAstahov Жыл бұрын

    Спасибо. Сожалею, что вы не показали, как программно добавить и выполнить команду добавления реквизита на форму. Сейчас во всех формах типовых конфигураций для облегчения программного добавления реквизитов есть Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) и Общий модуль СобытияФормКлиент и Общий модуль МодификацияКонфигурацииКлиентПереопределяемый вот про это бы узнать поподробнее. Мне просто нужен был реквизит на форме. Текстовое поле. Я узнал про программное изменение формы. Написал процедуру где описал свой реквизит &НаСервере ДобавитьПолеНаСервере() И вызвал её из События формы ПриСозданииНаСервере(Отказ,СтандартнаяОбработка). Это сработало, но мне кажется это методически не верно.

  • @alexcode_1c

    @alexcode_1c

    Жыл бұрын

    Спасибо за ценный комментарий! Действительно, во многих типовых конфигурациях используются методы Библиотеки Стандартных Подсистем (БСП). А предложенный в видео подход достаточно универсален, и подойдет для любых конфигураций на управляемых формах, даже если в них нет БСП (например самописки или отраслевые какие-нибудь). Насчет методологии - согласен, по возможности стоит использовать типовые методы. Возьму на заметку, возможно со временем запишу видео по БСП.

Келесі