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



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

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

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

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

Далее , хочу предложить вашему вниманию общий модуль  для  конфигурации  УТ 10.3   для работы  с дополнительными  реквизитами  и  сведениями документов,  и программного изменения  форм типовых документов и справочников без изменения  (или min. изменения) самих объектов.   Модуль был написан  в  2026 в процессе  перехода  с 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 не будет опубликован. Обязательные поля помечены *