IE2017

Добавление реквизита своего объекта в состав типовой функциональной опции

Программирование - Практика программирования

Что делать, если нужно в типовой конфигурации добавить свой реквизит в состав функциональной опции?

Постановка задачи

В типовой конфигурации добавили новый объект, на поведение которого должна влиять функциональная опция из типовой конфигурации.

Например мы добавили в типовую конфигурацию «Управление торговлей 11» новый документ, у которого есть реквизит «организация». Нам нужно, чтобы при выключенной функциональной опции «ИспользоватьНесколькоОрганизаций» на форме нашего документа не отображался реквизит – организация.

Решение

Функциональные опции действуют следующим образом. Указывается место хранения, в данном случае это константа типа булево. Описывается состав функциональной опции. Например указано, что в состав опции входит реквизит «организация» документа «Реализация товаров и услуг». Если константа имеет значение «Ложь», то реквизит на форме документа не отображается, точнее его не будет в составе реквизитов формы. Платформа это делает автоматически.

 

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

Мы создаём свою новую функциональную опцию. Называем её, например, «Доп_ИспользоватьНесколькоОрганизаций». Хранение указываем аналогичное – константа «ИспользоватьНесколькоОрганизаций». В состав включаем реквизит «Организация» нашего нового документа. Свою опцию включаем в свою подсистему, которая может не отображаться.

Теперь, при изменении константы, наша опция будет действовать на видимость нашего реквизита. При этом константа меняется стандартными средствами, без наших изменений.

См. также

Комментарии
1. Константин Куликов (Светлый ум) 203 30.09.13 17:39 Сейчас в теме
Так держать земеля.
AlX0id; AZel84; +2 Ответить
2. ivanov660 ivanov660 (ivanov660) 336 07.10.13 12:14 Сейчас в теме
Ставлю плюс. Мне нравятся хорошие решения.
3. Михаил Ражиков (tango) 474 07.10.13 12:18 Сейчас в теме
(0)
Нам не желательно изменять состав типовой функциональной опции
из каких соображений?
4. AZel84 (AZel84) 32 07.10.13 13:52 Сейчас в теме
(3) tango, легче обновлять типовую конфигурацию с добавленными реквизитами или объектами метаданных, а не с изменёнными.
Поясните, если в этом случае считаете, что это не так.
cleaner_it; +1 Ответить 1
5. Марина Чирина (chmv) 07.10.13 14:01 Сейчас в теме
6. Михаил Ражиков (tango) 474 07.10.13 18:01 Сейчас в теме
(4) AZel84, состав - это не реквизит таблицы
7. AZel84 (AZel84) 32 07.10.13 18:33 Сейчас в теме
(6) tango, хотите сказать, что если изменён состав функциональной опции, то при обновлении не возникнет проблем?
8. Михаил Ражиков (tango) 474 07.10.13 18:39 Сейчас в теме
(7) AZel84, это "впечатление", а не результат целенаправленного наблюдения. так что на рельсы не покладусь
9. AZel84 (AZel84) 32 07.10.13 19:01 Сейчас в теме
Во-первых, для изменения состава опции придётся включить возможность её изменения. А при добавлении своей опции, нужно снять с поддержки только верхний уровень метаданных.
Во-вторых, при обновлении добавленная функциональная опция не будет "мешаться", это понятно.

А вот что будет, если изменить состав типовой опции? Я не проверял, но думаю будет так. Если изменена опция новой конфигурации поставщика, то будет предложено либо заменить нашу опцию, либо не принимать изменения поставщика. Следовательно, придётся переносить изменения вручную.
10. Владимир Клименко (KliMich) 08.10.13 01:31 Сейчас в теме
Оставьте свое сообщение