Легкий "тюнинг" УТ 10.3



Вариант программной реализации изменения форм типовых объектов для конфигурации Управление торговлей 10.3.

Каждый по своему решает проблему трудоемкости поддержки и обновлений.

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

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

Далее , хочу предложить вашему вниманию общий модуль  для  конфигурации  УТ 10.3   для работы  с дополнительными  реквизитами  и  сведениями документов,  и программного изменения  форм типовых документов и справочников без изменения  (или min. изменения) самих объектов.   Модуль был написан  в  2024 в процессе  перехода  с 10.2  на 10.3  в  торговой организации . Сильно упростил как сам переход , так и дальнейшее сопровождение.   
Протестировано на "Управление торговлей", редакция 10.3 (10.3.50.1) , платформа — 8.3.11.2899.

На  рис.1 видно , какие изменения необходимо внести в типовую конфигурацию.

Отдельного объяснения требует  способ  добавления  дополнительной информации в табличную часть документа  без  изменения реквизитов .   Ниже  пример  вывода , краткой информации по остаткам/резервам/отгрузкам  в колонке "Анализ заказа".  Еще один  пример а скриншотах к статье.

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

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

Для каждого вида документа необходимо создать отдельное значение в  ПВХ  НазначениеСвойствОбъектов. Есть небольшое ограничение .  Не получится  создать  значение подчиненного справочника (напр.  ЗначенияСвойствОбъектов, см. пример ниже).

В заключении  хочу отметить , что возможности динамического управления формой объектов  не ограничиваются приведенными примерами.  Можно легко организовать различные проверки , ограничить  видимость и доступность отдельных реквизитов  для различных пользователей. Поскольку нет разделения контекстов   (клиент — сервер),  можно легко управлять самими  объектами: устанавливать  режим проведения, авто время записи  и т.д.   Некоторые примеры использования  есть на скриншотах к статье.

Надеюсь, статья будет кому-нибудь полезной.

P.S.  Модуль   частично переписан  в сравнении с оригиналом и не тестировался в боевых  условиях, возможны ошибки. Пишите буду исправлять. Всем добра. 

6 Comments

  1. dsdred

    Это как «дополнительные реквизиты и сведения» только под обычные формы?

    Reply
  2. pm74

    (1) это и есть дополнительные сведения но в ут10.3 работать с ними не так удобно

    Reply
  3. pm74

    (1) Хочу сказать спасибо. Обнаружил что в статье «дополнительные реквизиты и сведения » постоянно называю дополнительными свойствами. Такая вот путаница в терминологии. Исправился.

    Reply
  4. Rustig

    (0) круто! молодец! пригодится!

    Reply
  5. script

    Все верно и правильно, только при нагромождении полей, проще, скопировать форму и изменить.

    Заодно так становится сразу понятно, что дорабатывалось, а что — нет.

    Кроме того, проверено что даже для УТ 10 можно поднимать режим совместимости до 8.3.9.

    И это даст возможность сделать расширение, в котором можно будет сделать переопределение любого общего модуля и внедрится в него без изменения штатного. Все равно для этих доработок нужно снимать конфигурацию с замка.

    А еще есть информацию что при программном добавлении большого количества полей на форму, можно получить некорректную работу кеша 1С. Лично не сталкивался, но на ИС такое читал.

    Reply
  6. pm74

    (5)

    при нагромождении полей, проще, скопировать форму и изменить

    если в дальнейшем нужна программная работа с этими полями , то да согласен ,

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

    при программном добавлении большого количества полей на форму, можно получить некорректную работу кеша 1С

    не замечал такой проблемы

    Reply

Leave a Comment

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