Динамическая модификация форм в расширении

Публикация № 1416733 05.04.21

Приемы и методы разработки - Механизмы платформы 1С

УФ расширение ERP программирование обновление модификация

Пример динамического изменения форм расширением конфигурации без заимствования формы.

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

Рассмотрим такое решение на конкретном примере. ( Управление предприятием ERP 2.4. )

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

Рассмотрим вариант динамического изменения формы нашей обработки. В процедуре ПриСозданииНаСервере() модуля формы присутствует вызов методов из общих  модулей, в том числе цепочка серверных вызовов с передачей в качестве параметра  нашей формы.

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

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

&После("ПриСозданииНаСервере")

Процедура Расш1_ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
    Если Форма.ИмяФормы = "Обработка.ВыполнениеЭтаповПроизводства.Форма.Форма" Тогда
        
    // Изменение запроса динамического списка модифицируемой формы
    // Добавление вложенного запроса, выполняющего выборку данных ("Получатель")из
    // ТЧ "ВыходныеИзделия"
    
        Форма.Список.ТекстЗапроса= СтрЗаменить(Форма.Список.ТекстЗапроса,
        
        "Документ.ЭтапПроизводства2_2 КАК ЭтапыПереопределяемый",
        
        "Документ.ЭтапПроизводства2_2 КАК ЭтапыПереопределяемый
        |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
        |            ВыходныеИзделия.Ссылка КАК Ссылка,
        |            ВыходныеИзделия.Получатель КАК Получатель
        |        ИЗ
        |            Документ.ЭтапПроизводства2_2.ВыходныеИзделия КАК ВыходныеИзделия
        |        ГДЕ ВыходныеИзделия.НомерСтроки =1 )
        | КАК ВложенныйЗапрос
        |    ПО ЭтапыПереопределяемый.Ссылка = ВложенныйЗапрос.Ссылка
        |"
        );
        
        Форма.Список.ТекстЗапроса= СтрЗаменить(Форма.Список.ТекстЗапроса,
        
        "ЭтапыПереопределяемый.Распоряжение.Очередь КАК ОчередьРаспоряжения",
        
        "ЭтапыПереопределяемый.Распоряжение.Очередь КАК ОчередьРаспоряжения,
        |    ВложенныйЗапрос.Получатель КАК Получатель");

    // Добаввляем колонку "Получатель" в таблицу "Список" на форме
    
        НоваяКолонка = Форма.Элементы.Добавить("Получатель", Тип("ПолеФормы"), Форма.Элементы.Список );
        НоваяКолонка.Заголовок = "Получатель";
        НоваяКолонка.Вид = ВидПоляФормы.ПолеНадписи;
        НоваяКолонка.ПутьКДанным = "Список.Получатель";
        НоваяКолонка.РежимРедактирования = РежимРедактированияКолонки.ВходПриВводе;   
    КонецЕсли;    
    
КонецПроцедуры

В результате получаем отображение формы с требуемым результатом.

 

Прилагаемое к публикации расширение содержит опубликованный выше код, тестировалось на конфигурации 1C:ERP Управление предприятием  2.4.11.43.

Скачать файлы

Наименование Файл Версия Размер
Динамическая модификация форм в расширении :

.cfe 5,70Kb
1
.cfe 5,70Kb 1 Скачать

Специальные предложения

Оставьте свое сообщение

См. также

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") Промо

Механизмы платформы 1С v8 v8::Запросы 1cv8.cf Абонемент ($m)

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    40083    100    m-rv    58    

Автоподстановка, автоподбор города из адресного классификатора

Универсальные обработки Механизмы платформы 1С v8 БП3.0 УТ11 Абонемент ($m)

Обработка показывает как работает событие автоподбор у элемента формы Поле Ввода. Когда начинаем вводить первые буквы города. выпадает подсказка с городами из Кладр, загруженного в регистр сведений АдресныеОбъекты.

1 стартмани

20.06.2022    348    0    aleksandrstep    0    

Использование флажков в динамических списках 2.0

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Пример реализации динамического списка с пометками в режиме множественного и единичного выбора.

1 стартмани

13.01.2022    5477    11    mr_sav    29    

Скорость сложения строк большой длины в 1С разными методами (конкатенация строк)

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Как известно, в 1С со строковыми переменными часто приходится работать в режиме добавления строк в одну переменную. Когда строка небольшой длины, все происходит достаточно быстро и можно работать вот так: Строка1 = "Привет"; Строка2 = "мир!"; Результат = Строка1 + Строка2; И все замечательно ровно до того момента, когда эти строки не становятся большими... Тогда скорость работы значительно падает. Я провел небольшие замеры производительности и выношу их на суд общественности.

1 стартмани

02.01.2022    4856    1    Diversus    73    

Расширения конфигураций 1С: учимся перехватывать методы Промо

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

30.05.2017    185693    13    signum2009    50    

Навигационная ссылка в платформе 8.2

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Получение ссылки на объект / Переход по ссылке в платформе 8.2 (обычное приложение).

1 стартмани

27.10.2020    4144    5    PerlAmutor    4    

Заполнение выделенных строк таблицы

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

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

1 стартмани

28.01.2020    10067    7    sulfur17    15    

Вывод характеристик и их значений в динамический список

Механизмы платформы 1С v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Если в запросе динамического списка используется конструкция {ХАРАКТЕРИСТИКИ ...}, то как вывести на форму колонки с характеристиками?

1 стартмани

22.02.2019    10613    3    kasper076    4    

Асинхронные вызовы Промо

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

В этой статье я покажу свою реализацию асинхронных вызовов серверных функций и процедур

1 стартмани

02.02.2015    53730    179    rtnm    25    

Работа с деревом значений для новичков (Управляемые формы 8.3)

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Пример работы с деревом значений (для новичков) на управляемых формах (8.3)

1 стартмани

29.01.2019    78233    95    gubar    0    

Связанные табличные части (управляемые формы)

Механизмы платформы 1С v8 v8::УФ Абонемент ($m)

У нас есть 2 связанные табличные части, и нам надо, чтобы по текущей строке в одной из них мы видели только определенные строки во второй. Были бы у нас динамические списки, мы бы взяли событие "При активизации строки" и стандартный механизм отборов СКД, которая лежит в основе списка. Но вот с табличными частями так не получится. Тут нам надо будет написать несколько строк кода и использовать "ОтборСтрок", доступный для таблицы формы. Тестировалось на платформе 8.3.13.1644, будет работать и на более ранних версиях платформы.

1 стартмани

25.01.2019    23399    21    Kim1C    11    

Пример работы с Планировщиком 1С (УФ)

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

В 1С 8.3.х появился такой объект, как "Планировщик". О нем и пойдет речь.

1 стартмани

26.06.2018    23665    113    MKFreeUser    27    

Три урока 1С81 для переходящих с 1с77 Промо

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Три урока, которые я решил сам при изучении восьмерки, когда переходил с семерки. Уроки касаются работы с коллекциями, регистрами и формами восьмерки.

1 стартмани

09.02.2012    21135    44    fixin    12    

История хранения данных. Теперь в составе платформы

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Описание нового механизма хранения данных в составе платформы на примере каркасной конфигурации. Прилагается выгрузка базы данных обработками и примерами кода.

2 стартмани

14.11.2017    41174    68    vasilev2015    76    

Выбор файла и загрузка его на сервер в асинхронном режиме по фен-шую

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Жизнь без модальности и велосипедов.

1 стартмани

14.11.2017    7462    4    huxuxuya    3    

Асинхронное воспроизведение звука в 1С

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Достаточно простой пример как в 1С:Предприятие запустить воспроизведение звука и не ждать его окончания

2 стартмани

28.07.2017    14578    3    SITR-utyos    7    

Изучение событий 1С для программирования

Механизмы платформы 1С v8 Россия Абонемент ($m)

Какие события и в какой последовательности вызываются платформой 1С? Куда лучше поместить свой программный код, чтобы добиться нужного поведения программы? Предлагаю разработку «Изучение событий» которая облегчит поиск ответов на такие вопросы.

2 стартмани

12.03.2017    29903    46    rusmil    21    

Поиск по наименованию в динамическом списке

Оптовая торговля Механизмы платформы 1С v8::ОУ v8::УФ УТ11 Абонемент ($m)

Пример позиционирования в динамическом списке по набранной строке

1 стартмани

08.02.2017    17792    6    waol    0    

Как построить цепочку асинхронных вызовов

Механизмы платформы 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

11.01.2017    27019    6    json    70    

Работа с двоичными данными на примере чтения файлов изображений. Новые возможности 8.3.9

Универсальные функции Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

В статье приводятся новые функции по работе с двоичными данными, появившимися в версии платформы 8.3.9 , на примере анализа формата и размера изображений. А также пример отправки изображения через API ВКонтакте с помощью новых объектов (без использования ОбъединитьФайлы())

1 стартмани

14.11.2016    40856    19    Anton64    25    

ComSafeArray Hexadecimal. О преобразовании массива байт в строку шестнадцатеричных чисел

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

На самом деле, одним из первых заданий на любых курсах обучения программистов встречается задание преобразовать десятичное число в шестнадцатеричное. Ну, или любые другие системы исчисления. Задача эта несложна даже для начинающих программистов, поэтому многие ее с удовольствием реализуют. А в статье я расскажу о небольшой хитрости, которую придумали еще на заре программирования, когда памяти стало уже сильно больше 4 килобайт, а вычислительных мощностей всё не хватало.

1 стартмани

16.09.2016    10677    2    igel9780    1    

Объектные блокировки

Механизмы платформы 1С v8 Россия Абонемент ($m)

При работе с объектными данными (справочники, документы, планы счетов и т.д.) система «1С:Предприятие» обеспечивает два вида объектных блокировок: пессимистическую и оптимистическую. Они позволяют выполнять целостные изменения объектов при одновременной работе нескольких пользователей.

1 стартмани

17.08.2016    42442    12    Ranis1286    7    

[Расширения] Отборы в динамических списках

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Часто на практике возникают ситуации, когда в 1С 8.3 нужно настроить доступ к колонкам динамического списка по определенным критериям (нужно так настроить доступ, чтобы пользователь видел только то, что ему разрешено и не имел возможности изменить эти настройки). Но конфигурация стоит на поддержке и менять ничего нельзя. Предлагаемый пример показывает, как можно с помощью механизма расширений управлять отборами в динамических списках*. * В дополнение к механизму http://infostart.ru/public/437760/ "Динамическое управление видимостью и доступностью элементов форм"

1 стартмани

21.05.2016    12078    12    OlegK    6    

Когда контекстный вызов быстрее неконтекстного?*

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Во всех рекомендациях учат, что выполнение без контекста лучше, чем с контекстом. Однако есть несколько случаев, когда это не так.

1 стартмани

22.03.2016    13705    5    Fragster    6    

Программное создание колонок в табличном поле с полем ввода Флажок (чекбокс) (1С 8.2)

Механизмы платформы 1С v8 Абонемент ($m)

С возможностью быстрого выбора всех значений по строкам и столбцам. Где важно слово «все», галки проставляются по горизонтали или по вертикали соответственно.

1 стартмани

13.01.2016    22925    2    Wilka    1    

Расширения конфигурации и Контроль несогласованных изменений

Механизмы платформы 1С v8 УТ10 УПП1 Абонемент ($m)

Как обойти "контроль несогласованных изменений" при добавлении своих обработчиков в "расширения конфигурации".

1 стартмани

21.12.2015    29022    16    a_v_u    10    

Возможности перетаскивания, примеры использования, помощь в понимании и отладке механизма работы (8.3, управляемые формы)

Работа с интерфейсом Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Механизм перетаскивания используется редко, а ведь его использование может помочь в реализации интуитивно понятных функций, которые могут весьма ускорить работу пользователя, и получить в итоге более дружественный интерфейс. Данная обработка не содержит копированного из Синтакс-Помощника текста (его вы сможете прочитать и сами). Она показывает примеры использования перетаскивания; позволяет прямо в режиме Предприятия протестировать, проверить и отладить основные приёмы работы; понять принцип вызова событий и увидеть состав их параметров.

1 стартмани

17.11.2015    47942    118    Alias    17    

Механизм контроля заполнения реквизитов

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

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

1 стартмани

25.10.2015    17852    32    yur4ik9408    10    

Восстановление развернутых строк ДереваЗначений после его обновления (управляемая форма)

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

ДеревоЗначений - достаточно простой для работы объект в 1С:Предприятии. И проблем при работе с ним обычно не возникает. Но те приемы, которые используются в обычном приложении, часто перестают работать после перехода на управляемое. В частности, возникла проблема восстановления состояния развернутых ветвей после обновления дерева. Оно целиком сворачивалось, и пользователь терялся. Эта статья будет посвящена вопросу восстановления состояния строк дерева. В качестве "подопытного" использую справочник Номенклатура лишь потому, что он присутствует почти во всех конфигурациях, и почти всегда имеет иерархический вид. Добро пожаловать под кат.

1 стартмани

16.10.2015    17904    10    azhilichev    6    

Доработка регистра сведений «Сохраненные настройки».

Механизмы платформы 1С v8 КА1 УТ10 УПП1 Абонемент ($m)

Сортировка и отбор настроек пользователей в отчете.

1 стартмани

09.09.2015    12201    2    Re:аниматор    2    

Быстрое редактирование строк динамического списка

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Быстрая интерактивная работа с данными справочников.

1 стартмани

04.09.2015    18738    24    hobi    1    

Управляемая форма 1С 8.2(8.3) – работа с деревом значений и таблицей значений. Часть III (Реализация трехпозиционного флажка)

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Продолжаем работать с деревом значений в управляемом приложении 1С 8.2. Данная статья будет посвящена реализации трехпозиционного флажка для ДереваЗначений на управляемой форме 1С предприятия 8.2

2 стартмани

15.05.2015    59007    27    ll13    10    

Управляемая форма 1С 8.2(8.3) – работа с деревом значений и таблицей значений. Часть II (Реализация DRAG and DROP)

Работа с интерфейсом Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Реализация механизма Drag and Drop (или, проще говоря, “Перетаскивания”) для ДереваЗначений, расположенного на управляемой форме управляемого приложения 1С 8.2

2 стартмани

15.05.2015    33771    20    ll13    2    

Управляемая форма 1С 8.2 (8.3) – работа с деревом значений и таблицей значений. Часть I (Основы)

Работа с интерфейсом Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Как известно, в платформе 1С 8.1 не составляло никакого труда связать дерево значений с табличным полем на форме, единственное, что при этом нужно было не забыть, так это СоздатьКолонки(). В управляемом приложении 1С 8.2 (8.3) сделать это не так просто, как кажется на первый взгляд. В данной статье речь пойдет о программном создании дерева значений (таблицы значений) на управляемой форме в управляемом приложении 1С

2 стартмани

14.05.2015    96315    27    ll13    13    

Особенность использования метода ИзменитьРеквизиты()

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Обнаружил странное поведение платформы, которым и хочу поделиться

1 стартмани

23.04.2015    9710    2    veretennikoff    2    

Расчет контрольной суммы строки по алгоритму CRC32 методами встроенного языка платформы "1С:Предприятие" (версии ранее 8.3)

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Расширение типового функционала прикладного решения путем добавления возможности выполнения двоичных операций с числами.

1 стартмани

03.04.2015    19628    21    premierex    20    

Разработка конфигурации на основе учебника М.Г.Радченко "1C: Предприятие 8.2. Практическое пособие разработчика"

Механизмы платформы 1С v8 Россия Абонемент ($m)

Все студенты сталкиваются с подобными заданиями по 1С: "сделать всю книгу!", просиживание за механическими повторениями действий автора, вместо плодотворного самообучения с использованием передовых статей и видеоуроков. В моем случае пришлось выполнять 19 глав учебника М.Г.Радченко "1C Предприятие 8.2. Практическое пособие разработчика", а это - 591 страница мутного текста.

1 стартмани

22.12.2014    13070    15    fisa2693    9    

Свои предопределенные элементы (новый подход)

Механизмы платформы 1С v8 1cv8.cf Россия Абонемент ($m)

Предопределенные элементы своими руками =)

1 стартмани

01.11.2014    14455    4    igo1    11    

Вариант перевода модальных вызовов в немодальные

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

Рассматривается вариант рефакторинга модальных вызовов в немодальные (асинхронные) в конфигурациях 8.3.5

1 стартмани

06.10.2014    20354    4    Franco    5    

Варианты конкатенации строк в 1С и замеры производительности.

Механизмы платформы 1С v8 1cv8.cf Абонемент ($m)

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

1 стартмани

12.06.2014    33546    23    Dementor    14    

Изучаем 1С Предприятие 8.3 на примере построения простой конфигурации (или как "айтишник" 1С осваивал). Часть 2.

Механизмы платформы 1С v8 Россия Абонемент ($m)

Пример построения простой конфигурации 1С "Учет движения картриджей для лазерной техники на предприятии" в качестве изучения платформы 1С Предприятие 8.3

1 стартмани

11.06.2014    18992    71    janerev1956    4