Имя: Пароль:
1C
1С v8
Годный, но неверный тип значения :(
, ,
0 xaozai
 
23.11.15
14:43
Очень старенькая УПП.
Есть справочник "Группы пользователей".
Пытаюсь настроить права для группы. При попытке открыть права группы выводится сообщение об ошибке "Неверный тип значения" и форма настройки прав не открывается.

Вот скрин точки останова и значения свойств объектов в табло:
http://f6.s.qip.ru/XlyR7ltX.png

При попытке продолжить (F11) получаю ошибку "Не верный тип значения":
http://f5.s.qip.ru/XlyR7ltY.png

Подскажите, плз, в чем дело?
1 Web00001
 
23.11.15
14:50
Надо комментить эту строку и смотреть какой тип значения ожидается в качестве значения отбора, что приходит, и что должно приходить.
2 НЕА123
 
23.11.15
14:53
СП
Отбор.Значение
?
3 xaozai
 
23.11.15
14:55
(1) Ожидается значение перечисления, которое и не получается присвоить.
4 xaozai
 
23.11.15
14:55
(2) Что вы имеете ввиду?
5 igork1966
 
23.11.15
14:57
(0) Элемент.ТекущиеДанные это строка ТЧ? Как по ней можно что-то отобрать?
6 xaozai
 
23.11.15
15:07
(5) На первой картинке видно же тип значения.
7 HalamBalam
 
23.11.15
15:14
Может быть стоит накладывать отбор не на элемент формы, а на реквизит формы, связанный с элементом:
ПраваДоступаПользователей.Отбор.ОбластьДанных.Установить(Элемент.ТекущиеДанные);
8 singlych
 
23.11.15
15:18
сравни типы через ТипЗнч = ТипЗнч
9 xaozai
 
23.11.15
15:19
(7) Просто всё это хоть и старый, но типовой механизм, никем не менявшийся.
10 xaozai
 
23.11.15
15:21
(8) Одинаковые типы
http://f4.s.qip.ru/XlyR7lu0.png
11 Nuobu
 
23.11.15
15:22
(10) Посмотри вид сравнения в отборе.
12 xaozai
 
23.11.15
15:24
13 singlych
 
23.11.15
15:26
(10) на всякий пожарный между собой сравни отладчиком, а не на глаз
14 Горогуля
 
23.11.15
15:28
ну раз пошли танцы с бубном, то присвой перечисление явно
15 xaozai
 
23.11.15
15:40
(14) Как ни странно, но это сработало, ошибки не возникло, форма открылась.
Я не понимаю, почему... ((
http://f4.s.qip.ru/XlyR7lu5.png
16 Горогуля
 
23.11.15
15:42
меня смущают скрины. а (5) - нет
17 xaozai
 
23.11.15
15:43
18 xaozai
 
23.11.15
15:46
(16) В элементе формы список значений, который заполнен перечислениями.
http://f5.s.qip.ru/XlyR7lu7.png
19 xaozai
 
23.11.15
15:57
Всё вышеописанное производилось на 8.3.6.2237.

Сделал выгрузку в *.dt, загрузил dt в 8.2.15.301 и случилось чудо - ЗАРАБОТАЛО!

#%&@_%#@!!!! (
20 singlych
 
23.11.15
15:57
(17) Блин. Напиши в отладчике
ТипЗнч(ЭлементыФормы.ПраваДоступаПользователей.Отбор.ОбластьДанных.Значение) = ТипЗнч(Элементы.ТекущиеДанные)
и я отстану
21 xaozai
 
23.11.15
16:00
22 singlych
 
23.11.15
16:06
(21) для чистоты эксперимента загрузи dt обратно в 8.3.6 и проверь
23 VikingKosmo
 
23.11.15
16:07
(19) наперкуа конфу на 8.1 запускать в 8.3???
24 xaozai
 
23.11.15
16:10
В 8.3 удалось заставить работать так:
http://f5.s.qip.ru/XlyR7lu9.png

(22) Уже не хочу, и так времени на эту херню много ушло.
(23) Во-первых, там режим совместимости установлен с 8.1, во-вторых, ХЗ, меня только RLS настроить в этой базе попросили...
26 Горогуля
 
23.11.15
16:11
(24) ничего, что там отбора немного нет
27 xaozai
 
23.11.15
16:16
(26) Скрин сделал раньше, чем доделал...
ЭлементыФормы.ПраваДоступаПользователей.ОтборСтрок.ОбластьДанных.Значение = Перечисления.ОбластиДанныхОграниченияПравДоступа.Получить(Перечисления.ОбластиДанныхОграниченияПравДоступа.Индекс(Элемент.ТекущиеДанные));
28 xaozai
 
23.11.15
16:22
(27) Поскольку (24) скрыто блюстителями порядка, следующими двойным стандартам, добавлю, что таким образом удалось заставить работать этот механизм в упомянутом выше релизе платформы 8.3.