Как программно добавлять элементы на управляемую форму в 1С 8.3?
Вставка
- Опубліковано 6 вер 2024
- Как можно меня отблагодарить: pay.cloudtips....
В этом видео мы рассмотрим, как программно размещать элементы на управляемых формах в 1С 8.3.
Программное размещение элементов управления на форме - удобный способ дорабатывать типовые формы, который позволяет облегчить поддержку и сопровождение конфигураций, проще и быстрее производить обновление, использовать внешние программы для трехстороннего объединения, такие как kdiff3.
Для удобства пользуйтесь тайм-кодами
01:00 Добавление существующего реквизита на форму
02:16 Программное создание реквизита формы и размещение его в виде элемента
03:53 Как программно разместить элемент формы в нужном месте
05:20 Как при помощи кода добавить команду в управляемую форму
06:50 Пример программного добавления таблицы значений
10:28 Как подключить обработчик события к элементу формы программно
Добавляйте в закладки мой сайт 1c.alexcode.ru... с полезными материалами по настройке и программированию 1С
Курс «Разработчик 1С с нуля»
1c.alexcode.ru/
Индивидуальное обучение 1С
1c.alexcode.ru...
Видео также размещено на моем Дзен-канале «1С с Леоновым»: dzen.ru/video/...
Спасибо! Отличное объяснение.
Рад, что видео оказалось полезным!🤝
Спасибо!!! 😊
🤝😀
Здравствуйте, можно ли аналогичным способом добавить точечную диаграмму на форму?
Не пробовал, но по идее, можно. Диаграмма - ровно такой же элемент формы, как и другие.
@@alexcode_1c, нельзя, скорее всего.
Запуск внешней обработки приводит к ошибке "Недопустимое значение параметров" с указанием на строку: Диаг = ЭтаФорма.Элементы.Вставить("Диаграмма", Тип("Диаграмма"), ЭтаФорма);
*Давно в другой внешней обработке использовал аналогичную строку, но для добавления группы формы и всё нормально работало: ГлавГруппа = ЭтаФорма.Элементы.Вставить("ГлавнаяГруппа", Тип("ГруппаФормы"), ЭтаФорма);
@@timyrasegty7857 Тип Диаграмма - это тип реквизита с данными. А тип элемента формы должен быть ПолеДиаграммыФормы, по идее
Здравствуйте. Как сделать чтобы флажки создавались сразу с отметками?
Здравствуйте. Отметка - это значение, соответственно, хранится в реквизите. Просто при создании элемента, привязанного к реквизиту, у этого реквизита должно быть нужное значение. Для флажка - истина.
@@alexcode_1c согласен, у меня задача с екселя загружаем строки и отмечаем только на форме какие строки в дальнейшем будут обработаны? Считываю заголовки, и создаю колонки Таблицы. В обработке использую реквизит таблице значения. Пустую. Ваш совет добавить туда предварительно поле Отметка программно?
@@mynumbers5746 да, там где наполняем таблицу данными, сразу можно и отметки заполнить, если правильно понял, что требуется.
@@alexcode_1c я как понял надо добавить колонку отметка. И заполнить истина. А если это не связано с объектом, есть способ?
@@mynumbers5746 колонка должна где-то храниться. Соответственно, храниться она будет в табличной части либо таблице значений. Табличная часть создаётся на уровне объекта. А таблицу значений можно создать на уровне формы, без привязки к объекту. Посмотрите на видео 6:50, там пример создания таблицы
Из внешней обработки программно открываю форму документа. А как сделать, чтобы при этом табличная часть открывшегося документа была недоступна для редактирования? Спасибо!
При создании на сервере анализировать входящие параметры, и по какому-нибудь условию ставить флаг ТолькоПросмотр для нужной табличной части. А при программном открытии формы, соответственно, передать какой-нибудь параметр для анализа.
@@alexcode_1c Буха базовая без возможности что-то править и расширение не прикрутить(
@@malhik77 Печаль. Тогда можно попробовать скопировать форму документа в обработку, и открывать не стандартную форму документа, а ту, что из обработки, и там уже делать что хотим.
Спасибо. Сожалею, что вы не показали, как программно добавить и выполнить команду добавления реквизита на форму. Сейчас во всех формах типовых конфигураций для облегчения программного добавления реквизитов есть Подключаемый_ВыполнитьПереопределяемуюКоманду(Команда) и Общий модуль СобытияФормКлиент и Общий модуль МодификацияКонфигурацииКлиентПереопределяемый вот про это бы узнать поподробнее. Мне просто нужен был реквизит на форме. Текстовое поле. Я узнал про программное изменение формы. Написал процедуру где описал свой реквизит &НаСервере ДобавитьПолеНаСервере() И вызвал её из События формы ПриСозданииНаСервере(Отказ,СтандартнаяОбработка). Это сработало, но мне кажется это методически не верно.
Спасибо за ценный комментарий! Действительно, во многих типовых конфигурациях используются методы Библиотеки Стандартных Подсистем (БСП). А предложенный в видео подход достаточно универсален, и подойдет для любых конфигураций на управляемых формах, даже если в них нет БСП (например самописки или отраслевые какие-нибудь). Насчет методологии - согласен, по возможности стоит использовать типовые методы. Возьму на заметку, возможно со временем запишу видео по БСП.