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


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) стараюсь не использовать ВК... точнее, не использую ...



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