Дополнительные табличные части. Эмулятор




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

Честно сказать, я не собирался эту штуковину публиковать, да пообещал, ну и перфекционизм тоже заел меня. В итоге, есть более-менее оттестированный прототип. Работает пока только на БП 3.0 (для УТ 11 надо ещё поколдовать будет).

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

На закладке «Настройки» создаём табличные части и привязанные к ним реквизиты — почти всё как в конфигураторе. НО: реквизиты могут иметь только те типы, что объявлены для ПВХ «ДополнительныеРеквизитыИСведения», и это главное ограничение. Единожды созданные ТЧ и реквизиты можно слегка менять (изменить применимость, расширить тип, регулировать обязательность), но в текущей версии нельзя удалять (это можно сделать через закладку «Прямая правка»). 

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

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

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

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

В перспективе — достаточно много всего (анализ изменений «метаданных» а-ля конфигуратор, управление правами, групповые обработки программные и интерфейсные, подробная справка со схемой), но в первую очередь, если разработка кого-то заинтересует, допиливание под любую современную конфигурацию на тонком клиенте. Повторюсь — сейчас она только под БП 3.0, тестировалось на версии 3.0.36.11

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

P.S. Модальные вызовы пока оставил нарочно (почему — расскажу в личке).

11 Comments

  1. script

    А под обычные формы долгл прийдется переделывать ?

    Reply
  2. Yashazz

    (1) script, неа, я скорее с обычных на УФ переделывал. Делов-то.

    Reply
  3. kapustinag

    Сильно завязано на 8.3? Под 8.2 обычные формы чтобы взлетело — много придется переделывать?

    Reply
  4. Yashazz

    (3) Нет, там не столь много от чистого 8.3, могу сделать версию, если очень надо.

    Reply
  5. Dach

    А как это работает? То есть ты в РС доп. свойств хранишь ссылку на документ и название табличной части? А потом запросом собираешь по названию ТЧ, когда нужно показать на экране таб. часть?

    Reply
  6. Yashazz

    (5) Примерно так. Будет очень надо — кину схемку, как оно устроено.

    Reply
  7. nata_87

    Не совсем могу разобраться, выдает ошибку — ПолучитьСвойствоТЧ: (Не найдено и не создается) ведущее ПВХ — свойство для работы с дополнительной таб. частью «Подписанты»! Что то не верно сделала? В настройках обработки данный столбец не активен для заполнения.

    Reply
  8. Yashazz

    (7) На неделе предлагаю списаться в личке ИС, разберёмся.

    Reply
  9. nata_87

    Когда Вам удобно?

    Reply
  10. u_n_k_n_o_w_n

    Можно подвести итог: это рабочая или не рабочая обработка? Спасибо.

    Reply
  11. Yashazz

    (10) Рабочая. У меня в паре проектов используется.

    Reply

Leave a Comment

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