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

09.09.19

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

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

Скачать исходный код

Наименование Файл Версия Размер
Альтернативный способо добавления элементов и реквизитов на формы:
.epf 15,43Kb
51
.epf 15,43Kb 51 Скачать

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

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

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

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 Платные (руб)

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

6000 руб.

16.01.2015    61944    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54574    16    21    

42

Управление дашбордами

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

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

2400 руб.

29.06.2020    16826    21    4    

35

Новогоднее оформление для 1С

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

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

27.12.2023    11004    756    elcoan    45    

106

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    9796    153    acces969    31    

119

Модель состояния для MVC

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

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3848    kalyaka    4    

29

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12205    1    5    

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

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

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

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


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

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