Как программно добавлять элементы на управляемую форму в 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/...

КОМЕНТАРІ • 20

  • @user-sq2ph1ow3h
    @user-sq2ph1ow3h Рік тому +1

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

    • @alexcode_1c
      @alexcode_1c  Рік тому

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

  • @user-lr1ly7mk2y
    @user-lr1ly7mk2y 9 місяців тому +1

    Спасибо!!! 😊

  • @timyrasegty7857
    @timyrasegty7857 4 місяці тому +1

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

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

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

    • @timyrasegty7857
      @timyrasegty7857 4 місяці тому

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

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

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

  • @mynumbers5746
    @mynumbers5746 4 місяці тому +1

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

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

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

    • @mynumbers5746
      @mynumbers5746 4 місяці тому +1

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

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

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

    • @mynumbers5746
      @mynumbers5746 4 місяці тому

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

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

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

  • @malhik77
    @malhik77 7 місяців тому +1

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

    • @alexcode_1c
      @alexcode_1c  7 місяців тому

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

    • @malhik77
      @malhik77 7 місяців тому +1

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

    • @alexcode_1c
      @alexcode_1c  7 місяців тому

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

  • @AlekseiAstahov
    @AlekseiAstahov Рік тому +1

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

    • @alexcode_1c
      @alexcode_1c  Рік тому

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