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


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