Как размещать на формах типовых объектов свои элементы, не изменяя сами объекты (Обычное приложение)

16.04.13

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

В типовых конфигурация вполне можно попробовать организовать свою подписку на событие формы "При открытии".

По поводу обновления доработанных конфигураций есть немало статей. Немало внимания уделяется, пожалуй, самому сложному – обновлению измененных форм.

Я бы хотел рассказать про возможность, с помощью которой можно легко размещать на формах типовых объектов (справочников, документов) свои реквизиты, не редактирую сами формы вообще. // Рассматриваются конфигурации БП2 и ЗУП2, в остальных, думаю, можно сделать аналогичным способом.

Данный метод не подходит, если необходимо серьезно изменить форму, добавить свои обработчики событий. В таком случае вам следут обратиться к статье TormozIt – «Методика переопределения и вызова обработчиков событий формы в 1С 8».

Мы рассматриваем простой пример, когда вы добавляете в документ и его ТЧ несколько реквизитов и просто хотите, чтобы они показывались на форме объекта.

Чтобы не трогать саму форму, мы вполне можем добавить в ее модуль нужные поля ввода и колонки в табличное поле, связанное с ТЧ, программно:

Колонка = Форма.ЭлементыФормы.ИмяТП.Колонки.Добавить("ИмяКолонки", "ЗаголовокКолонки");

Колонка.УстановитьЭлементУправления(Тип("ПолеВвода"));

Колонка.Данные = "ИмяКолонки";

И поместить вызов этой процедуры в обработчике «При открытии».

Если бы в платформе была подписка на событие формы «При открытии», мы могли бы использовать ее, и нам бы не пришлось менять модуль формы.

 Поскольку данной функциональности в платформе нет, будем использовать обходной способ.

Способ заключается в том, что почти в любой типовой форме справочника или документа присутствует обработчик «При открытии».

В нем, в частности, используется механизм нумерации объектов:

МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю,ЭлементыФормы.Номер);

По большому счету рассматривать этот факт можно так:  имеется общая процедура, которая вызывается из почти всех типовых форм, и одним из параметров которой является сама форма.

Исключения – например, справочник Сотрудники Организаций, где код является табельным номером, и данный механизм нумерации не используется.

Этот факт идеально подходит для наших целей.

Все что нам остается – разместить в конце этой процедуры примерно такой код:

модСобственныеПроцедурыИФункции .ДоработатьФормуПриОткрытии(ФормаОбъекта);

И в этой процедуре из собственного модуля мы спокойно можем размещать элементы на форме или колонки в ТП, менять привязки, изменять текст шапки какого-нибудь типового элемента и т.д.

Приведу простейший пример, когда это может быть использовано.

В типовой конфигурации вам требуется добавить в табличные части N документов реквизит «СвойРеквизит1». Вам необходимо, чтобы пользователь видел его и мог заполнить.

Добавление колонок в ТП мы сделаем, используя данный метод, поэтому для изменения формы N документов нам потребуется изменить только один типовой модуль.

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

28800 руб.

27.03.2025    64502    37    29    

51

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    4766    1    2    

4

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

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

6000 руб.

14.01.2016    58987    20    25    

46

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

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

5160 руб.

29.06.2020    23399    33    6    

52

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

5988 руб.

17.10.2025    1274    1    0    

1

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    45377    mrXoxot    44    

138

Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

27.05.2024    25475    smielka    38    

112

Инструментарий разработчика Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    16847    180    acces969    31    

132
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Yashazz 4892 16.04.13 10:30 Сейчас в теме
2. aspirator23 342 17.04.13 07:39 Сейчас в теме
(1) Поддерживаю. Было...
3. Feelthis 38 17.04.13 15:07 Сейчас в теме
У кого-то было, у кого то - нет :)
4. 1cmax 153 18.04.13 20:07 Сейчас в теме
дада, иногда не обращаешь внимания, на то что под носом
5. nalogos 18.04.13 20:59 Сейчас в теме
Типового подхода нет.
но можно поизгаляться с программным добавлением элементов формы и дело это неблагодарное.

Как делаем мы.

1. Перехват событий формы.
2. Программное отрисовка формы. Элементы формы лучше привязывать к уже имеющимся, могу порекомендовать обратить внимание на событие формы <ОбновлениеОтображения>
3. События модуля можно подписатся на события.

Очень помогли почти готовые решения такие как компиляция формы.
6. artbear 1585 20.04.13 00:19 Сейчас в теме
(5) nalogos, как подписываетесь на события формы? Через событие менеджера метаданного? Или какойто новый способ нашли?
7. Yashazz 4892 20.04.13 08:48 Сейчас в теме
Я вообще наворотил свой механизм, который заключается в:
1. Перехвате универсальных вызовов, расположенных в большинстве форм в инициализации, перед и при открытии;
2. Создании отдельной закладки самой формы, в её коллекции страниц;
3. Размещении всего нужного на этой закладке (точно копируя некий образец, хоть бы и иную форму), чтобы меньше морочиться с привязками;
4. Навешивании событий на эти элементы формы.
8. p1l1gr1m 22.04.13 08:44 Сейчас в теме
(7) (7) напиши статью о своем способе
10. Yashazz 4892 25.04.13 18:52 Сейчас в теме
(8) Так уж вроде всё рассказал. На статью там не хватит, если только каждый блок и каждый этап описывать сверхдетально.
11. Roman24 10 26.04.13 09:41 Сейчас в теме
(10) ну так опиши сверхдетально
12. s_vidyakin 68 03.10.13 12:02 Сейчас в теме
(7) У нас тоже такой способ - создается дополнительная форма, на нее кидаются все элементы. А при открытии процедура копирует из нее все элементы вплоть до координат и вставляет на типовую. Получается как бы "фрейм" вставляется на новую закладку. Но это геморно очень
9. kng67 23.04.13 09:57 Сейчас в теме
Полезная тема.
У нас дописаны на некоторых формах отдельные страницы, которые приходится восстанавливать после обновления.
Как я понимаю, воспользовавшись советами участниками обсуждения данной темы, можно обойти эту ситуацию.
Для отправки сообщения требуется регистрация/авторизация