Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Ограничить доступность реквизитов справочника

v7: Ограничить доступность реквизитов справочника
Я
   tesei
 
23.09.21 - 11:06
Есть справочник, нужно дать доступ на форме элемента к, скажем, 10 реквизитам из 100. Делать доступность 90 реквизитам - влом все их перебирать. Как это сделать с наименьшими затратами? Можно ли управлять доступностью реквизитов на закладках?
   ДенисЧ
 
1 - 23.09.21 - 11:11
Влом перебирать - ты их руками, штолле, собрался перечислять?
   tesei
 
2 - 23.09.21 - 11:19
(1) Реквизиты формы не всегда = реквизиты справочника.
   Guk
 
3 - 23.09.21 - 11:21
(0) на форме реквизит справочника или реквизит формы?...
   andrewalexk
 
4 - 23.09.21 - 11:22
(1) :) *штоле
зы
ваш душнила
   Guk
 
5 - 23.09.21 - 11:23
(2) если реквизиты формы нумерованые, то проблем нет. а так штатно перебрать реквизиты формы вроде бы только формекс умеет...
   tesei
 
6 - 23.09.21 - 11:24
(3) форма элемента справочника, на ней есть реквизиты элемента справочника, + поля ввода, таблицы, кнопки.
   МимохожийОднако
 
7 - 23.09.21 - 11:25
Поиграйся со слоями. Показывай доступные реквизиты, значение недоступных реквизитов сделай в виде информационной надписи
   Guk
 
8 - 23.09.21 - 11:26
(6) если на форме реквизиты справочника, то через метаданные перебираешь имена и с помощью установитьатрибут меняешь доступность...
   tesei
 
9 - 23.09.21 - 11:26
пока мысли такие:
- найти реквизиты по метаданным, убрать доступность
- те элементы, которые остались - перебрать поштучно, убрать доступность
- дать доступ к нужным реквизитам
   ДенисЧ
 
10 - 23.09.21 - 11:34
(4) Штолле - это пекарня такая.
   ДенисЧ
 
11 - 23.09.21 - 11:35
(9) А что, за formex у вас эцих положен? С кудрявыми гвоздями?
   Bigbro
 
12 - 23.09.21 - 11:45
я можт крамолу сейчас скажу но если такие заморочки - лучше сделайте отдельную форму для данных полномочий. и именно ее вызывайте когда нужно.
   tesei
 
13 - 23.09.21 - 11:47
(11) Пожизненный. А как это реализовать с формексом?
   tesei
 
14 - 23.09.21 - 11:48
(12) Не пойдёт. Нужно как у всех, но "с перламутровыми пуговицами".
   Bigbro
 
15 - 23.09.21 - 11:49
одна и та же форма на которой 10ю способами прячутся по 90 из 100 реквизитов будет выглядеть почти наверняка крайне убого.
   tesei
 
16 - 23.09.21 - 11:49
(15) не, не прячутся. Читать можно, писать нельзя.
   ДенисЧ
 
17 - 23.09.21 - 11:57
(13) Открыть документацию по формексу, я так понимаю, предлагать бесполезно?
   tesei
 
18 - 23.09.21 - 12:00
(17) Поднимите мне веки... Уже читаю, ибо иначе никак.
   tesei
 
19 - 23.09.21 - 12:08
Вот такое нарыл:

ФормаРасш = СоздатьОбъект("РасширениеФормы");
ФормаРасш.УстановитьФорму(Форма);
СписокИд = СоздатьОбъект("СписокЗначений");
Для Х = 0 По ФормаРасш.КоличествоАтрибутов() - 1 Цикл
        СписокИд.ДобавитьЗначение(ФормаРасш.ПолучитьАтрибут(Х).Идентификатор());
КонецЦикла;
   HawkEye
 
20 - 23.09.21 - 12:10
(0) пф... этим сотрудникам закрыть доступ для редактирования элемента, а для 10 реквизитов написать отдельную обработку, при желании можно ее открывать вместо карточки элемента...
   Bigbro
 
21 - 23.09.21 - 12:11
(20) я тоже так думал, но им на просмотр надо оставить все.
   HawkEye
 
22 - 23.09.21 - 12:12
(21) +(20) еще один вариант: сделать отдельный слой формы элемента, куда запихать реквизиты доступные для редактирования, сделав их реквизитами формы, при записи переносить из них значения в реквизиты объекта.... но вариант с обработкой - красивее...
   HawkEye
 
23 - 23.09.21 - 12:15
(21) никто не запрещает в форме что-то нарисовать не доступное для редактирования...
+(20) для особого издевательства над пользователями можно перед записью элемента восстановить все реквизиты которые нельзя менять из существующего объекта, только потом записать )))))
   Bigbro
 
24 - 23.09.21 - 12:20
мне когда надо было заморочиться с доступностью я сделал просто все для чтения.
и отдельную кнопку редактировать.
по нажатию которой уже открывал отдельную форму в зависимости от полномочий, со всеми рюшечками и раскрасками и по внесении всего что надо там - переносил уже данные в объект и логгировал.
   tesei
 
25 - 23.09.21 - 12:32
Идентификатор реквизита формы получил формексом, как теперь сделать реквизит недоступным? Каков синтаксис?
   ADirks
 
26 - 23.09.21 - 12:42
(25) например
Процедура Доступность_ТолькоУказанные(сз_стр_Рекв, фДоступность) Экспорт
    Если ТипЗначенияСтр(сз_стр_Рекв) = "СписокЗначений" Тогда
        сзРекв = сз_стр_Рекв;
    Иначе
        сзРекв= СтрокуВСписок(сз_стр_Рекв, ",", 1);
    КонецЕсли;
    
    нКоличествоАтр = ФормЭкс().КоличествоАтрибутов();
    Для нАтр = 1 По нКоличествоАтр Цикл
        оАтр = ФормЭкс().ПолучитьАтрибут(нАтр-1);
        
        Если оАтр.Тип = 1 Тогда
            Продолжить;
        ИначеЕсли оАтр.Тип = 4 Тогда
            Продолжить;
        КонецЕсли;
        
        Если сзРекв.НайтиЗначение(оАтр.Идентификатор) = 0 Тогда
            оАтр.Доступность = (1 - фДоступность);
        Иначе
            оАтр.Доступность = фДоступность;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры
   andrewalexk
 
27 - 23.09.21 - 13:26
(10) :) это ты так тонко намекнул что тесей не человек а пекарня такая?
сорян
   Mikeware
 
28 - 23.09.21 - 13:30
(27) а Слава КПСС вообще не человек...©
   Злопчинский
 
29 - 23.09.21 - 13:38
(28) а Карл Маркса вообще молчим
   tesei
 
30 - 23.09.21 - 14:17
В Ярославле - Штолле, в Питере - Линдфорс. Одна франшиза, выглядят как близнецы.
 
 
   ДенисЧ
 
31 - 23.09.21 - 14:28
(30) Съезди на улицу Восстания, на юг от метро Чернышевская. Удивишься.
Или на Садовую, опять же к югу от Русского музея.
А оттуда пешком к метро Адмиралтейская...
А на обратном пути прогуляйся до метро Достоевская...
   Mikeware
 
32 - 23.09.21 - 14:29
(31) "пройду по Абрикосовой, зайду на Виноградную..."©
Если он целый день шляться начнет, кто работу работать будет?
   ДенисЧ
 
33 - 23.09.21 - 14:30
(32) А Путин у нас на что? ))))
Тем более там за полтора часа все эти точки обойти можно. Заодно и пообедает )))
   tesei
 
34 - 23.09.21 - 14:56
(31) Спасибо, у меня Линдфорс на Московском, под боком.
Задачку тоже решил походу, благодарствую, коллеги.


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.