gifts2017

Функция получения значения характеристики по ее наименованию

Опубликовал Сергей (Sergeevich) в раздел Администрирование - Защита, права, пароли

Полезная функция для получения значения произвольной пользовательской, не предопределенной, характеристики из ПланВидаХарактеристик.НастройкиПользователей

Итак. Потребовалось расширить ПланВидаХарактеристик.НастройкиПользователей дополнительной настройкой без изменения стандартных предопределенных элементов, назовем ее “Право выбора” определим тип  “Булево”.

Далее идем в ПланВидаХарактеристик.НастройкиПользователей там вносим согласно описанию характеристику с наименованием “Право выбора” указываем тип “Булево

Теперь все хорошо . В результате у пользователя появляется необходимая настройка

 

Далее потребовалось проверять установленное значение, и вот тут как раз я столкнулся с тем что не нашел стандартных функций которые бы могли возвращать значение произвольных настроек. (Работа велась в УТ).

В результате родилась функция которая как раз и возвращает значение для такого типа характеристик.

Собственно ее и предлагаю Вашему вниманию.

Думаю будет полезна многим. Если кому необходимо модифицировать под другой ПланВидовХарактеристик это будет сделать несложно, самостоятельно.

Использование :

Всем удачи.

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

Наименование Файл Версия Размер Кол. Скачив.
Код функции
.txt 2,28Kb
03.08.12
12
.txt 2,28Kb 12 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Трактор Трактор (Трактор) 03.08.12 15:44
Фигня какая-то. Мне тайный смысл сей публикации не доступен.
2. Игорь Исхаков (Ish_2) 03.08.12 16:03
Человек постарался , написал полезную функцию.
Показал умение писать небольшие запросы.

А тут ты влез со своим минусом. Нехорошо.
3. Трактор Трактор (Трактор) 03.08.12 16:14
(2) Ish_2,
Человек постарался ...
Показал умение

Это правильно. Только он ещё весь немудрёный текст запхал в отдельный файл вместо того чтобы разукрасить и опубликовать открыто. На такой ерунде зарабатывать пытается. Ненравится мне это.
Я считаю что не стоит тратить на эту публикацию времени. Тем кто только изучает 1С она поможет слабо. Начинающие скачивать файл не будут потому что ценность информации меньше 1 см. Опытные разработчики сами пишут такие тексты по мере надобности.

Автырь, если хочешь написАть что-то полезное, то возьми, например, за основу вот эти функции http://infostart.ru/profile/10200/blog/960/ и напиши механизм запрета редактирования на разные реквизиты. Чтобы одни реквизиты можно было запретить редактировать раньше, другие позже. В функции ПолучитьСписокИзменённыхРеквизитов есть какая-то ошибка. Забыл какая.
4. Игорь Исхаков (Ish_2) 03.08.12 16:55
(3) Вообщем, согласен. Только одно НО.
Эта публикация нужна прежде всего самому автору. Как опыт. Чуешь ?
Может быть потом что-то посущественнее появится.

Автору : В тексте запроса после слова "КАК" не виден псевдоним "ЗначениеНастроек"
5. Сергей (Sergeevich) 06.08.12 11:54
Хотел бы прояснить ситуацию. И закрыть бесполезно возникающие дискуссии !
Данная публикация создана не для заработка ! Это чисто информационная статья, делюсь опытом с теми кому это действительно необходимо. Код ОТКРЫТ ! что видно не вооруженным взглядом.
Код функции вставлен в виде картинки, чтобы не было тупого копи паста, кому понадобиться данный код, пусть потратят немного времени на перепись в свои модули, может быть тогда, что то отложиться в памяти при написании, если получится переписать без ошибок.
Применение данной функции по-моему более чем очевидно, если вы расширяете набор пользовательских характеристик, как примере из публикации, не модифицируя модуль с помощью конфигуратора то вы столкнетесь с проблемой получения значений таких характеристик.
К примеру стандартный вариант из УТ, где “СразуНаПринтер” имя предопределенной характеристики :
СразуНаПринтер =
УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"СразуНаПринтер");
Но если Вы создадите пользовательскую характеристику, не предопределенную, например “НеСразуНаПринтер” :
НеСразуНаПринтер =
УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной("глТекущийПользователь"),"НеСразуНаПринтер");
После выполнения кода увидите ошибку вида :
{ОбщийМодуль.УправлениеПользователями.Модуль(174)}: Поле объекта не обнаружено (НеСразуНаПринтер)
НастройкаСсылка = ПланыВидовХарактеристик.НастройкиПользователей[Настройка];
Именно для этого я и написал функцию ВернутьЗначениеНастрокиПоНаименованию, если применить ее аналогично :
НеСразуНаПринтер = ВернутьЗначениеНастрокиПоНаименованию("НеСразуНаПринтер ");
То в результате мы получим безошибочный результат, в случае если настройка не существует результат будет Неопределенно, либо мы получим значение настройки.
Надеюсь теперь вопрос и беспочвенных упреков не будет.
6. Сергей (Sergeevich) 06.08.12 12:16
(4) Ish_2, Спасибо, поправил.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа