gifts2017

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

Опубликовал Яков Коган (Yashazz) в раздел Программирование - Инструментарий

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

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

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

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

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

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

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

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

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

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

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

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

Наименование Файл Версия Размер
ДополнительныеТЧ 22
.epf 36,14Kb
06.11.14
22
.epf 36,14Kb Скачать

См. также

Подписаться Добавить вознаграждение
Комментарии
1. script Мальчинко (script) 07.11.14 03:19
А под обычные формы долгл прийдется переделывать ?
2. Яков Коган (Yashazz) 07.11.14 09:42
(1) script, неа, я скорее с обычных на УФ переделывал. Делов-то.
3. Александр Капустин (kapustinag) 07.11.14 11:11
Сильно завязано на 8.3? Под 8.2 обычные формы чтобы взлетело - много придется переделывать?
4. Яков Коган (Yashazz) 07.11.14 17:28
(3) Нет, там не столь много от чистого 8.3, могу сделать версию, если очень надо.
5. Роман С (Dach) 17.11.14 12:27
А как это работает? То есть ты в РС доп. свойств хранишь ссылку на документ и название табличной части? А потом запросом собираешь по названию ТЧ, когда нужно показать на экране таб. часть?
6. Яков Коган (Yashazz) 17.11.14 21:26
(5) Примерно так. Будет очень надо - кину схемку, как оно устроено.
7. Наталья Наталья (nata_87) 03.12.14 14:13
Не совсем могу разобраться, выдает ошибку - ПолучитьСвойствоТЧ: (Не найдено и не создается) ведущее ПВХ - свойство для работы с дополнительной таб. частью "Подписанты"! Что то не верно сделала? В настройках обработки данный столбец не активен для заполнения.
8. Яков Коган (Yashazz) 07.12.14 12:44
(7) На неделе предлагаю списаться в личке ИС, разберёмся.
9. Наталья Наталья (nata_87) 12.12.14 11:49
10. Сергей Иванов (u_n_k_n_o_w_n) 02.06.15 11:51
Можно подвести итог: это рабочая или не рабочая обработка? Спасибо.
11. Яков Коган (Yashazz) 02.06.15 17:25
(10) Рабочая. У меня в паре проектов используется.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа