|
v7: Редактирование элементов формы | ☑ | ||
---|---|---|---|---|
0
Масянька
11.11.15
✎
09:37
|
Доброе утро!
Есть форма отчета. На ней есть элементы. Как можно запретить изменение некоторых элементов формы? Сразу скажу: 1. ТолькоПросмотр - не устраивает: есть поле Дата, которое нужно редактировать. 2. Сделать недоступным - не нравится: элементы серые. Хочется вариант, когда поля типа доступны, но при попытке редактировании - не дает. Но не получается... Есть варианты? Спасибо. |
|||
1
aka AMIGO
11.11.15
✎
09:46
|
(0) А что, проц. ПриНачалеВыбораЗначения(Элем, Флаг) не годится? там можно указать элемент диалога и расписать действия
|
|||
2
aka AMIGO
11.11.15
✎
09:48
|
+1 али ОбработкаВыбораЗначения(...)
тоже годится.. ИМХО, конечно :) |
|||
3
Масянька
11.11.15
✎
09:51
|
(1) Это на каждый элемент нужно, а хочется - одну на всё :(
|
|||
4
aka AMIGO
11.11.15
✎
09:52
|
(3) А если "ТолькоПросмотр", а для поля "Дата" применить доступность(1) ?
Проверять не буду, лень :) |
|||
5
Масянька
11.11.15
✎
09:53
|
(4) Не работает... :)
|
|||
6
aka AMIGO
11.11.15
✎
09:53
|
(5) :((
|
|||
7
Митяйский
11.11.15
✎
09:57
|
Задублировать все "неизменяемые" реквизиты в форме, в элементах формы ссылаться на дубли, а реальные реквизиты спрятать.
В событии ПриИзменении навесить процедуру, которая будет перезаписывать элемент-дубль значением реального реквизита. Только не совсем понятно, зачем оно надо. |
|||
8
Остап Сулейманович
11.11.15
✎
10:02
|
(0) Для простых типов есть фишка "Запретить редактирование".
Попытку выбора ссылочных фильтровать в ПриНачалеВыбораЗначения |
|||
9
Остап Сулейманович
11.11.15
✎
10:03
|
+ (8) Кстати оно же (ПриНачалеВыбораЗначения) срабатывает и для простых, если там есть кнопка выбора. Для строк работает точно.
|
|||
10
DexterMorgan
11.11.15
✎
10:08
|
жесть, это что за платформа?
|
|||
11
Масянька
11.11.15
✎
10:09
|
(8) Не получается :(
Процедура ПриначалеВыбораЗначения(Элемент, ФСО) Если (Элемент = "ЦенаТовара") Тогда Предупреждение("Низя..."); ФСО = 0; КонецЕсли; КонецПроцедуры Спокойно редактирует... |
|||
12
HawkEye
11.11.15
✎
10:13
|
(0) доступность()
|
|||
13
Масянька
11.11.15
✎
10:13
|
(12) Серыми становятся - не нравится :(
|
|||
14
aka AMIGO
11.11.15
✎
10:16
|
(11) А предыдущее значение не запоминается? Ну, чтоб вместо нового вернуть..
2.в порядке бреда - СтатусВозврата(0) :) |
|||
15
Масянька
11.11.15
✎
10:18
|
(14) Вообще не заходит (в процедуру)...
|
|||
16
AntiBuh
11.11.15
✎
10:20
|
(15) так она ж по энтеру срабатывает или по педальке
|
|||
17
aka AMIGO
11.11.15
✎
10:21
|
(15) смутно помнится, там были варианты по входу - через кнопку, или прямо в поле.. От этого и зависел вход/не-вход..
А ОбработкаВыбораЗначения(..) не срабатывает? |
|||
18
aka AMIGO
11.11.15
✎
10:21
|
(16) опередил :((
:) |
|||
19
Масянька
11.11.15
✎
10:23
|
(16) А по мышке?
|
|||
20
Масянька
11.11.15
✎
10:24
|
(17) Судя по всему - тоже самое :(((((((((
Блин,неужели такая неразрешимая проблема? :(((((((( |
|||
21
HawkEye
11.11.15
✎
10:24
|
(13) вечно у тебя какие-то заморочки... нравится не нравится...
запоминай значение реквизита которое там должно быть и при любом его изменении - возвращай назад. |
|||
22
DDwe
11.11.15
✎
10:26
|
(21) +100
|
|||
23
HawkEye
11.11.15
✎
10:28
|
+21 и вообще, если значение не должно редактироваться, то и нечего его пользователю показывать в "Поле ввода".
|
|||
24
Масянька
11.11.15
✎
10:31
|
(21) Да знаю я...
Она всех вечно удивляла. Такая уж она была. (С) (23) Это настройки. Показывать надо. Ладно. Всем спасибо. |
|||
25
aka AMIGO
11.11.15
✎
10:32
|
(20) По нажатию кнопки-педальки - входит в процедуру.
А если вносить ручками - не входит. ЗЫ. а что, у тебя так много навешено на диалог? Мож просто потрудиться полчасика - и будет готово.. Кстати, это отчет? |
|||
26
Злопчинский
11.11.15
✎
10:32
|
Формекс.
Отлов нажатий клавиш. Если активный атрибут = в списке запрещенных/разрешенных - то либо ФСО=0 либо Фсо=1 |
|||
27
HawkEye
11.11.15
✎
10:33
|
(24) ну вот и показывай в зависимости от настройки.. кому можно - поле ввода, кому нельзя - Текст...
|
|||
28
HawkEye
11.11.15
✎
10:37
|
на форму повесь функцию, в ней напиши, что-то типа:
Если ТестРеквизит <> '01.01.01' Тогда ТестРеквизит = '01.01.01'; КонецЕсли; |
|||
29
aka AMIGO
11.11.15
✎
10:43
|
(27) +1
Через ПравоДоступа(...) - если ущемить всех по правам. Или через ИмяПользователя(...), чтоб досадить конкретному юзеру :) И в условии - доступ к дате |
|||
30
Масянька
11.11.15
✎
10:52
|
Чёт, я не понимаю...
Есть поле "Склад" - тип "Справочник.Склады". Есть поле (со списком) "Цена". Для склада работает, а для цены нет... Почему? |
|||
31
Масянька
11.11.15
✎
10:56
|
Всем - СПАСИБО!!!! :)))))))))
|
|||
32
ADirks
11.11.15
✎
11:13
|
.Редактирование(0)
попробуй результат как с доступностью, но слегка другой вид |
|||
33
Злопчинский
11.11.15
✎
11:52
|
(27) фигня какая.
Вариант типа (26) (или с доступностью) нормально кладется на всякие "допправа по доступу" - вплоть до разрешения редактирвоания отдельных полей отдельным людям |
|||
34
Злопчинский
11.11.15
✎
11:52
|
(31) В итоге-то как сделала?
|
|||
35
HawkEye
11.11.15
✎
13:40
|
(33) фигня... но я же не тебе это советую делать, а Масе, она все равно по нормальному не хочет делать...
|
|||
36
Масянька
11.11.15
✎
13:41
|
(35) Вот, ты опять обзываешься....
Да, нормально я сделала. нормально. Через ПриНачалеВыбораЗначения. |
|||
37
HawkEye
11.11.15
✎
13:49
|
(36) нормально, это через Доступность() ))))
|
|||
38
Масянька
11.11.15
✎
13:50
|
(37) А я хочу, чтобы были не серыми! :))))
|
|||
39
HawkEye
11.11.15
✎
13:54
|
(38) пользователей надо любить, а не издеваться над ними подсовывая им не редактируемые поля, которые визуально не отличаются от редактируемых )))
|
|||
40
Масянька
11.11.15
✎
13:54
|
(39) Если вырастут крылья за спиной я хочу чтобы были белыми - https://www.youtube.com/watch?v=nCoHXij91f0
|
|||
41
HawkEye
11.11.15
✎
13:57
|
(40) правильно, раз выросли и доступны - значит белые...
а ты крылья белые то вырастила.... а летать не моги... садистка )) |
|||
42
Масянька
11.11.15
✎
13:58
|
(41) Сам ... извращенец :))))))
|
|||
43
aka AMIGO
11.11.15
✎
14:06
|
(40) (42) а лопатки уже чешутся? :)
|
|||
44
Масянька
11.11.15
✎
14:07
|
(43) Не, уже вылезли... Хлопают только сильно. Никак не научусь... :)))
|
|||
45
HawkEye
11.11.15
✎
15:24
|
(44) потому что доступность(0)... ))
|
|||
46
Масянька
11.11.15
✎
15:27
|
(45) Следи за её левой рукой (тут злобное лицо и метла в руках) (С) :)))))
|
|||
47
Масянька
12.11.15
✎
11:45
|
Дабы не плодить новые ветки - спрошу здесь:
на форме есть поле со списком. Если дважды мышей - срабатывает, а если один раз мышей - нет. Есть вариант обойти? |
|||
48
aka AMIGO
12.11.15
✎
11:49
|
(47) хмык.. Придется обратиться непосредственно в MS, они этим занимаются с давних пор :)
|
|||
49
Масянька
12.11.15
✎
11:49
|
(48) Да нет...
Вас пока дождешься... :) Формексом обойду. |
|||
50
aka AMIGO
12.11.15
✎
11:51
|
(49) врде-б не ленивые мы, с утра 3 дока переделал, чтоб, стар быть, юзеры по недосмотру, али по злому умыслу не вводили дублей товаров в ТЧ.. Замучили логистов, да бухов, ошибки кучей повалили :)
|
|||
51
Масянька
12.11.15
✎
11:54
|
(50) Я с этими дублями так намучалась в свое время... Бр-р-р-р...
|
|||
52
aka AMIGO
12.11.15
✎
11:58
|
(51) сочувствую.. А я на одном доке отработал, на 2-х проверил - работает, теперь можно во все оставшиеся вставить. Вроде просто получилось.
На мысль натолкнул Guk (давным-давно), однако, не очень устроило, пришлось перелопатить методику. |
|||
53
Масянька
12.11.15
✎
12:02
|
(52) Не томи, рассказывай, что за мысль.
|
|||
54
АЛьФ
12.11.15
✎
12:04
|
2(0) Сделать ТолькоПросмотр(), а рядом с полем даты поставить кнопку и вызывать по ней диалог ввода даты.
|
|||
55
Масянька
12.11.15
✎
12:09
|
(54) Сколько лет, сколько зим :)
Уже писала - не хочу. Хочу чтобы всё не было серым. В принципе - уже почти готово... Щас, со списком разберусь... |
|||
56
aka AMIGO
12.11.15
✎
12:19
|
(53) Ладно, опозорюсь на всю мисту. Вот тебе Г-код:
Перем ТЗТЧт; Перем КопируютЦуки; Перем НомерСтаройСтроки; Процедура ПроверкаНаДубль(Тов) ТЗТЧ=СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗТЧ,"Товар"); ТЗТЧ.НоваяКолонка("К","Число"); ТЗТЧ.Заполнить(1,,,"К"); ТЗТЧ.Свернуть("Товар","К"); стр=0; ТЗТЧ.НайтиЗначение(Товар,стр,"Товар"); ТЗТЧ.ПолучитьСтрокуПоНомеру(стр); Если ТЗТЧ.К>1 Тогда КопируютЦуки=1; КонецЕсли; КонецПроцедуры Процедура ПриОкончанииРедактированияСтроки(НовСтр) Если НовСтр=1 Тогда //новая строка ПроверкаНаДубль(Товар); Если КопируютЦуки=1 Тогда УдалитьСтроку(); КопируютЦуки=0; АктивизироватьСтроку(НомерСтаройСтроки); Предупреждение("Такой Товар введен в другой строке!"); Возврат; КонецЕсли; Иначе //Старая строка ТЗТЧт.ПолучитьСтрокуПоНомеру(НомерСтаройСтроки); Если Товар = ТЗТЧт.Товар Тогда Возврат; КонецЕсли; ПроверкаНаДубль(Товар); Если КопируютЦуки=1 Тогда Предупреждение("Такой Товар введен в другой строке!"); ТЗТЧт.ПолучитьСтрокуПоНомеру(НомерСтаройСтроки); //здесь вставить реквизиты документа, чтобы вернуть строку, как была до переделки! Товар = ТЗТЧт.Товар; Количество = ТЗТЧт.Количество; Единица = ТЗТЧт.Единица; Цена = ТЗТЧт.Цена; Сумма = ТЗТЧт.Сумма; НДС = ТЗТЧт.НДС; Коэффициент = ТЗТЧт.Коэффициент; ГТД = ТЗТЧт.ГТД; КонецЕсли; Возврат; КонецЕсли; //ПроверитьНаПолнотуДанных(); КонецПроцедуры Процедура ПриНачалеРедактированияСтроки() Если НазваниеНабораПрав() = "Кладовщик" Тогда СтатусВозврата(0); Возврат; КонецЕсли; НомерСтаройСтроки=НомерСтроки; ТЗТЧт = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗТЧт); КонецПроцедуры Процедура ПриВводеСтроки() Если НазваниеНабораПрав() = "Кладовщик" Тогда СтатусВозврата(0); Возврат; КонецЕсли; НомерСтаройСтроки=НомерСтроки; ТЗТЧт = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(ТЗТЧт); КонецПроцедуры |
|||
57
aka AMIGO
12.11.15
✎
12:23
|
+56 тут 3 варианта защиты от дублей:
1. Тупое копирование строки 2. ввод новой строки с указанием Товара, который уже есть в ТЧ 3. Исправление Товара любой имеющейся строки на товар, который есть в ТЧ Когда док многострочный - уследить глазками нереально. |
|||
58
Масянька
12.11.15
✎
12:38
|
(56) Фигасе себе...
Не, я так не шмогла... Пошли обходным путем: ответственные за ведение номенклатуры, общие принципы формирования наименования номенклатуры, ну и, есессьно, строгая иерархия справочника. По рукам пришлось дать всего пару раз :) |
|||
59
Злопчинский
12.11.15
✎
12:38
|
На ИСе у Опланета была типа "Предупреждаем что такой контрагент уже есть в базе", а для дублей отлично работает "Удар по бездуховности" там же - у меня на нем куча всяких загрузек похожих прайсов и даже есть отдельное рабочее место для клиента по вычисте дублей/похожих товаров (сведения их в один) в справочнике с большой номенклатурой..
|
|||
60
HawkEye
12.11.15
✎
14:00
|
(47) функция на форме... анализируешь текущуюстроку списка.
|
|||
61
Масянька
12.11.15
✎
14:20
|
(60) Я же говорю: вас пока дождешься - и не хочешь, а получится :)
Спасибо. |
|||
62
HawkEye
12.11.15
✎
14:34
|
(61) SLA стоит денег ;)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |