Вход | Регистрация


1С:Предприятие ::

Метки:

1С 7.7: в форме разрешить редактирование только избранных среди кучи отстоя

Я
   FAR
03.03.04 - 16:31
Проблема: есть десяток документов с большим число реквизитов, которые распиханы по форме вперемешку с флажками, кнопками и проч.
Как единым махом запретить доступ ко всем элементам формы, а потом дать только доступ к нескольким?
P.S.        Док =  Метаданные.Документ(Вид());        Для к = 1 по Док.РеквизитШапки() Цикл
            Рекв = Док.РеквизитШапки(к);
            форма.Рекв.Доступность(0);
        КонецЦикла;    
 
Ругается, что поле агрегатного объекта не обнаружено

Заранее спасибо, FAR
 
  Рекламное место пустует
   SnarkHunter
 
1 - 03.03.04 - 16:33
Форма.ТолькоПросмотр(0);
   Рупор абсурда
 
2 - 03.03.04 - 16:34
Грубо говоря, никак ...
Мягко выражаясь, FormEx ...
   Кое-кто@где-то.там
3 - 03.03.04 - 16:34
Для нр=1 по Метаданные.Документ(Вид()).РеквизитШапки() Цикл
ИД=Метаданные.Документ(Вид()).РеквизитШапки(нр).Идентификатор;
Форма.ПолучитьАтрибут(ИД);
Попытка
Исключение
КонецПопытки;
КонецЦикла;
   Кое-кто@где-то.там
4 - 03.03.04 - 16:35
Поправочка: в цикле надо так:
Попытка 
Форма.ПолучитьАтрибут(ИД).Доступность(0); 
Исключение 
КонецПопытки;
   SnarkHunter
 
5 - 03.03.04 - 16:36
(4)А кнопки, флажки и прочее раскиданное?
   Рупор абсурда
 
6 - 03.03.04 - 16:36
(3) А кнопка "Провести" - это реквизит шапки или табличной части?
   Кое-кто@где-то.там
7 - 03.03.04 - 16:42
(5) Тут 1С бессильна ...
   Кое-кто@где-то.там
8 - 03.03.04 - 16:43
(5,6) Ну ладно, уели.
Дайте человеку ссылку на FormEx ...
   Кое-кто@где-то.там
9 - 03.03.04 - 16:45
   shura
 
10 - 03.03.04 - 16:47
Вар. 1. Делай два слоя. Один для редактирования, второй только для чтения. Реквизиты одни для редактирвоания располагай на слое "Для редактирования", а когда нуно включить режим "ТолькоЧтение", переключаешься на другой слой, где вместо полей ввода стоят текстовые поля.
Вар. 2. Реквизитам присваивай имена типа "Рек1", "Рек2", а потом в цикле Форма.ПолучитьАтрибут("Рек"+СокрЛП(й)).Доступность(0);
 
  Рекламное место пустует
   Рупор абсурда
 
11 - 03.03.04 - 16:47
(7,8) Не бессильна ...
Рано сдался!
   shura
 
12 - 03.03.04 - 16:49
(6) Не оправдываешь свое имя ;)).
   Рупор абсурда
 
13 - 03.03.04 - 16:50
(12) Что не так? Это общий реквизит?
   Кое-кто@где-то.там
14 - 03.03.04 - 16:50
(10) Представляю, перелопатить типовую конфу по этим вариантам и потом поддерживать её (обновлять) ...
   Far
15 - 03.03.04 - 17:02
За 10 минут столько наболтать ! За ссылку спасибо, посмотрю. Слои делать просто некогда, как всегда задача срочная и нечего над конфой издеваться ;-)
Чувствую, тема интересна многим ;-)
   Кое-кто@где-то.там
16 - 03.03.04 - 17:03
Остальные отдыхают :)
   Рупор абсурда
 
17 - 03.03.04 - 17:20
(15) Болтать надо медленнее?
   Кое-кто@где-то.там
18 - 03.03.04 - 17:24
Если бы флейм не рубили, тут бы со временем 2-я территория была, а так в разгар дня 15 (!) минут затишья. Уже зевать начал ...
   Кое-кто@где-то.там
19 - 03.03.04 - 17:26
Во, предвижу вопрос "А кто сказал, что этот форум должен стремиться превратиться во вторую Т1С?".
И уже начинаю писать ответ ... :)
   shura
 
20 - 03.03.04 - 17:29
(13) Практически да. Есть почти во всех документах ;)).
+(12) Я ж и говорю: гуд глаголишь...
(14) Разговора за то, что это типовая не было.
   FAR
21 - 03.03.04 - 17:34
Кое=кому
Попытка
Форма.ПолучитьАтрибут(ИД).Доступность(0); 
Исключение
КонецПопытки
тоже не идет, ругается что неверное имя атрибута
   Far
22 - 03.03.04 - 17:34
Сорри, ругается на Форма.ПолучитьАтрибут(ИД)
   Far
23 - 03.03.04 - 17:36
Блин, сработало. Просто не надо было Форма.ПолучитьАтрибут(ИД); вообще в цикл включать ;_)
   Рупор абсурда
 
24 - 03.03.04 - 17:38
(21) Как это она ругаться может?
Внутри попытки-то ...
   far
25 - 03.03.04 - 17:41
В первоначальном варианте Форма.ПолучитьАтрибут(ИД) стояло до попытки. См. выше ;-)
   FAR
26 - 03.03.04 - 17:42
А к табличной части как запретить доступ?
   Рупор абсурда
 
27 - 03.03.04 - 17:43
(25) Мой тебе совет:
Всегда вставляй в попытку то, что тут постит Кое-кто@где-то.там ...
   Рупор абсурда
 
28 - 03.03.04 - 17:44
(26) Точно так же, только вместо РеквизитШапки, напиши РеквизитТабличнойЧасти
   Рупор абсурда
 
29 - 03.03.04 - 17:46
(28)+ Не наврал ...
Недоговорил чуть-чуть ...
   Кое-кто@где-то.там
30 - 03.03.04 - 18:09
Надо Волшебника попросить, чтобы к форуму "Проверку синтаксиса" приделал, тогда можно будет мой код и без Попыток/Исключений гонять. А так, конечно, риск есть.
Вот вы думаете откуда SkyNet попер? Это я нечаянно на ХИППО выложил "Обработку почты". Только это по секрету ...
   Рупор абсурда
 
31 - 03.03.04 - 18:13
(30) Реклама!
Нарушаешь правила форума!
Я скажу Волшебнику и он превратит тебя в крысу ...
   Кое-кто@где-то.там
32 - 03.03.04 - 18:22
А я ему не сказал секретного слова, так что его магия бессильна (я надеюсь ;)
   327
33 - 03.03.04 - 18:53
Промолчим маленько .... Так все ИД не получишь ....
 
  Рекламное место пустует
   shura
 
34 - 03.03.04 - 19:17
(26)
Процедура ПриНачалеРедактированияСтроки()
    Предупреждение("Низзя!",10);
    СтатусВозврата(0);
    Возврат;
КонецПроцедуры
//--------------------------------------

Процедура ПриВводеСтроки()
    Предупреждение("Низзя!",10);
    СтатусВозврата(0);
    Возврат;
КонецПроцедуры
   buh worm
35 - 03.03.04 - 19:21
Может быть, я не в кассу, и вообще опоздал, но
2(0) Я в свое время делал одну мааааахонькую глобальную процедуру, которую вызывал при открытии документов. В этой проц. для вида дока, который в нее передавался, делался обход по реквизитам. Далее запрещалось для редактирования то, что входило в заранее подготовленный СписокЗначений. Вот такая байда.
   buh worm
36 - 03.03.04 - 19:22
+35 Обход, ессно, по метаданным. Код так вот сразу не упомню. Тока идея вот.
   SnarkHunter
 
37 - 03.03.04 - 19:43
(36)Не взлетит...
   327
38 - 03.03.04 - 22:12
Мало того, что не взлетит... еще и утонет ....
   FAR
39 - 03.03.04 - 22:49
На том и закончим разговор. Резюме: реквизиты шапки можно делать недоступными циклом по метаданным (кроме НомерДок, ДатаДок), табличную часть - исключительно через процедуры ПриНачалеРедактированияСтроки и т.п. (через метаданные не вышло).
В крысу никого превращать не надо, надо делать допуски на вредность работы и выдавать бесплатно молоко!
   327
40 - 03.03.04 - 23:06
Фигня....

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

Во вторых, можно обойтись без ВсякихНачал для запрета редактирования табличной части.... ну это недостаток тупой доки и книжек .... от 1С....

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

В четвертых.... посмотри, как это реализовано в типовой бухии.... к примеру.... Тряпочку для очка не дам - самому мало ...
   FAR
41 - 03.03.04 - 23:10
1) Внес, изменил, Дата вноса, Тип учета...
2) Скажи как. Не выеживайся.
3) Это так, с ними тоже неясно. Хотя их обычно меньше, чем реквизитов, так что можно ручками.
4) Мда?
FAR
   327
42 - 03.03.04 - 23:19
Первая попытка неуспешна....
   FAR
43 - 04.03.04 - 09:29
Некрасивый вариант: при открытии ВыгрузитьТабличнуюЧасть, при Записи ЗагрузитьТабличнуюЧасть. Чревато тем, что юзер в процессе редактирования ТЧ тем самым изменяет скрытие и недоступные реквизиты. И вообще некрасиво.
   SnarkHunter
 
44 - 04.03.04 - 09:33
FormEx...
   327
45 - 04.03.04 - 09:37
(44) стараюсь не использовать ВК... точнее, не использую ...



Список тем форума
Рекламное место пустует   Рекламное место пустует
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует