Альтернативный способ добавления элементов и реквизитов на формы

09.09.19

Разработка - Работа с интерфейсом

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Альтернативный способо добавления элементов и реквизитов на формы:
.epf 15,43Kb
52
52 Скачать (1 SM) Купить за 1 850 руб.

Предлагаю альтернативный вариант добавления элементов, реквизитов и обработчиков данных добавленных элементов.

Вашему вниманию хочу представить общий модуль и ...общий макет. От разработчика не нужно будет писать ни одной строчки кода, все параметры создаваемых элементов добавляются в макет, и добавляются на форму "ПриСозданииНаСервере".

Итак что нужно сделать.

1) Создать Общий Серверный модуль и скопировать из модуля обработки в модуль код.

2 Создать ОбщийМакет с наименованием "NF_ПФ_MXL_ДопЭлементыФорм" и скопировать макет из обработки в ваш общий макет.

3) Если конфигурация на БАЗЕ БСП или есть модуль "МодификацияКонфигурацииПереопределяемый" тогда добавить вызов в функцию "ПриСозданииНа Сервере"

ИмяОбластиПоУмолчанию=СтрЗаменить(Форма.ИмяФормы,".","_");
ИмяОбщегоМодуляизПункта1.ДобавитьЭлементыНаФормуПоМакету(Форма,ИмяОбластиПоУмолчанию);

 Если же такого модуля нет то можно вставить данный код в формы "ПриСозданииНаСервере"

   Все в части программирования закончено.

Теперь что умеет делать этот макет..да почти все.

1 Добавить реквизиты формы

2 Добавить элементы формы, в том числе и декорации, кнопки и.т.д.

3 Добавить, изменить обработчики элементов формы.

Итак что бы добавить что нибудь на форму нужно.

1) Добавить в макет горизонтальную область с полным именем формы, где точки заменены на "_" Пример

Документ_КорректировкаПриобретения_Форма_ФормаДокумента

  В макете определены 7 вертикальных областей они подписаны, в каждой области есть колонки которые отвечают за создание элементов, реквизитов, или кнопок.

1-ая область "ДанныеЭлемента" содержит 8 колонок.

  1. ИмяЭлемента - Это собственно как будет называться ваш элемент на форме, если не хотите его создавать, например вам нужен реквизит, без связанного элемента в этой колонке нужно написать "НеСоздавать". Поле обязательное.
  2. ТипЭлемента - Тип создаваемого элемента ПолеФормы,ТаблицаФормы,ГруппаФормы,КнопкаФормы, и т.д. то что есть в конфигурации
  3. ВидЭлемента - Ну тут понятно из названия, это и есть вид создаваемого элемента, ВидПоляФормы.ПолеВвода,ВидДекорацииФормы.Надпись, т.е. так же как вы бы писали это в коде. - обязательное поле если хотите увидеть свой элемент
  4. ПутьКданным - Собственно путь к данным элемента, например "Объект.Дата", или если это реквизит формы то просто "Дата"
  5. РодительЭлемента - Тут указывается куда будет добавлен элемент, наименование элемента родителя , если не указать будет вставлен на форму
  6. СоздаватьКолонки - Не используется.
  7. ИменаКолонок - Не используется.
  8. ВставитьПеред - Наименование элемента перед которым вы хотите вставить свой -не обязательное поле

2-ая область "ДопСвойстваЭлемента" 1 колонка.

  1. ДопСвойстваЭлемента Здесь указываются свойства элемента, свойства зависят от типа и вида элемента т.е здесь можно перечислить свойства элемента как они заданы в конфигураторе . Формат в данном поле"НаименованиеСвойства,ЗначениеСвойства",Отделяются свойства точкой с запятой примеры,если тип значения Свойства текст, то значение пишется в кавычках, в остальных случаях без. примеры есть в прилагаемом макете.

3-ая область "ДанныеРеквизита" данная область заполняется только тогда когда вам помимо элемента нужен еще и связанный с ним реквизит, ну или вы просто хотите добавить реквизит без элемента содержит три колонки.

  1. ИмяРеквизита - Ну тут все понятно, это как ваш реквизит будет называться.
  2. ТипРеквизита - Здесь указываете ТипСоздаваемого реквизита пока без поддержки составного типа. т.е если тип Число пишите тут "число". в общем так же как и в функции Новый ОписаниеТипа( ТипРеквизита ) только тут не тип а как раз то что в в функцию тип попадет Тип("ТипРеквизита")
  3. Путь - Тут указывается путь к реквизиту родителю, если вы хотите допустим добавить колонку в таблицу то тут будет что то типа "Товары", тогда реквизит будет создан как Товары.ИмяРеквизита.

4-ая область "ДопСвойстваРеквизита" аналогична ДопСвойстваЭлемента, только для реквизита 1 колонка

5-ая область "ДанныеКнопки" заполнять нужно если вы указали элемент как кнопку и хотите потом как то обработать нажатие данной кнопки, 2 колонки

  1. ИмяКоманды - Собственно как и в конфигураторе имякоманды.
  2. ДействиеКоманды - А вот тут вы прописываете как будет называться обработчик данной команды, потом в форме или в расширении формы вам нужно будет прописать процедуру с таким же именем, что бы у вас отработала кнопка.

6-ая область "ДопСвойстваКоманды" - аналогична другим доп свойствам.

7-ая область "ОбработчикиСобытий" , А вот тут можно прописать обработчики событий элементов которые вы добавили, или же заменить обработчик элемента на свой собственный( сейчас в связи с расширением это не актуально) но для своих элементов нужно

  1. ИменаОбработчиков - Через запятую перечислите имена обработчиков которые вы хотите потом в коде прописать(обработчики зависят от типа и вида элемента), Пример для элемента полеВвода с наименованием "Тратата" здесь можно написать "ПриИзменении", тогда в форме или расширении Процедура будет называться
    ДОП_ТрататаПриИзменении(Элемент)

    Обратите внимание на то что наименование процедуры практически такое же как если бы вы формировали ее из конфигуратора, только спереди добавляется префикс "ДОП_"

 Ну вот собственно и все.

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

Данный код работает уже более года на ЕРП в макете более тысячи строк записей, торможений не замечено.

В прилагаемом макете есть несколько записей для примера как нужно их заполнять.

Тестировалось все на платформе 8.3.13.1865

Конфигурация ЕРП 2.4.6.207 и более ранних версиях.

Элементы реквизиты формы добавление реквизитов

См. также

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Богатый редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    63025    44    59    

82

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    18902    26    6    

41

Работа с интерфейсом Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Редактор графов в 1С - внешний отчет, который формирует графы на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1500 руб.

06.10.2020    10266    7    7    

10

Работа с интерфейсом Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Это инструкция по дизайну форм в среде 1С. Гайд охватывает рекомендации и стандарты для оптимизации пользовательского интерфейса. В гайде содержатся указания по использованию элементов интерфейса, включая как основные, так и продвинутые аспекты. Предоставляются также примеры и антипримеры для наглядного понимания принципов дизайна

20.08.2024    17175    mrXoxot    43    

121

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    7617    smielka    37    

100

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    14935    930    elcoan    48    

117

Инструментарий разработчика Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Подходит для создания web-страниц для замены управляемых форм 1С, красивых отчетов, интерфейса мобильного приложения на платформе 1С и для простых страниц веб-сайтов.

2 стартмани

10.04.2023    11965    162    acces969    31    

124
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Светлый ум 417 11.02.20 12:43 Сейчас в теме
+1 взял на вооружение динамические реквизиты из макета.
pavelpribytkin96; +1 Ответить
2. al_zzz 301 13.08.20 05:22 Сейчас в теме
3. maslyann 83 14.09.20 14:59 Сейчас в теме
Динамическое изменение это очень интересно и вид в ТабДоке неплохой, более читаемый чем текст.
+1
4. genayo 02.10.20 16:09 Сейчас в теме
Логичное развитие - добавлять из XML или JSON.
ShiningPhoenix; +1 Ответить
5. KHoroshulinAV 174 10.12.20 17:59 Сейчас в теме
Вредоносная идея. Тут обычные то события реквизиты и т.п фиг найдешь. + динам. создаваемые еще сложнее отловить.
с вашим кодом вообще можно 1ной функцией, видимо, обойтись.
А главное зачем такая штука?
user695525_d.varvashevich; +1 Ответить
6. bmk74 240 14.12.20 12:28 Сейчас в теме
(5)
с вашим кодом вообще можно 1ной функцией, видимо, обойтись.

Дерзайте, потом выложите ее сюда, посмотрю на вашу функцию..

(5)
Вредоносная идея.

Вы первый такой..не находите это странным ??


(5)
А главное зачем такая штука?

А вот с этого и надо было начинать...если вам оно не нужно...зачнем вообще писать сюда странные комментарии ?
7. psa247 21 15.10.21 19:34 Сейчас в теме
(5) А что тут "вредоносного". Кому надо - тот поймет и применит, кому не надо, тот и вникать (применять) не будет
8. plus1s_a 02.12.21 04:41 Сейчас в теме
Плюсую. Но для расположения элемента формы (или программного переноса в др.место\группу) надо иметь перед глазами форму в конфигураторе- не зайдет правка макета в режиме предприятия.
9. NikitaIvanchenko 276 29.12.22 17:13 Сейчас в теме
При работе через git, общаться с макетом mxl, не шибко приятно, и наглядно.
10. bolikov 12 02.10.23 19:03 Сейчас в теме
не могли бы вы выложить файлы чтобы их можно было скачать без стартманей?
Оставьте свое сообщение