Имя: Пароль:
1C
1С v8
Отбор. Ошибка несоответствия типов
,
0 Пользователь1104
 
01.11.16
11:17
Здравствуйте. Ошибка несоответствия типов, потому что ПараметрыВыбора имеет тип ФиксированнаяСтруктура. Как исправить?

&НаКлиенте
Процедура НоменклатураНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    ЗначениеОтбора = Новый Структура("Номенклатура","Мозайка");
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    Форма = ОткрытьФорму("Справочник.Номенклатура.ФормаВыбора",ПараметрыВыбора);
КонецПроцедуры
1 Волшебник
 
модератор
01.11.16
11:18
ПараметрыВыбора = Новый ФиксированнаяСтруктура ("Отбор", ЗначениеОтбора);
2 Пользователь1104
 
01.11.16
11:20
Второй параметр формы должен иметь тип Структура.
3 Пользователь1104
 
01.11.16
11:33
Никто не знает?
4 Lexey_
 
01.11.16
11:34
(2) "Второй параметр формы должен иметь тип Структура"
у тебя так и есть
5 Lexey_
 
01.11.16
11:34
(3) а, "Ошибка несоответствия типов, потому что ПараметрыВыбора имеет тип ФиксированнаяСтруктура" это всего лишь твои умозаключения
6 Пользователь1104
 
01.11.16
11:39
7 Пользователь1104
 
01.11.16
11:39
(5) в чем тогда проблема?
8 1sanekmaloi1
 
01.11.16
11:41
В имени структуры
"ПараметрыВыбора" это предопределенное для системы имя и оно имеет тип, ты ее переопределяешь а этого делать нельзя, назови по другому .
9 Lexey_
 
01.11.16
11:41
(6) назови ПараметрыВыбора по-другому
10 Пользователь1104
 
01.11.16
11:44
(9) Тогда отбор не работает. http://v8.1c.ru/metod/faq2/answer.jsp?id=548 Здесь параметр так и называется "ПараметрВыбора", я подумал, что он и отвечает за отбор, в частности.
11 Lexey_
 
01.11.16
11:46
(10) не работает он у тебя по другой причине: ЗначениеОтбора = Новый Структура("Номенклатура","Мозайка");
тип строка
12 Пользователь1104
 
01.11.16
11:48
(11) Первый параметр типа строка, содержит имя поля справочника, а второй содержит значение этого поля, оно у меня типа Строка. Разве нет?
13 Lexey_
 
01.11.16
11:49
(12) у тебя в коде - да, в базе - вряд ли
14 Пользователь1104
 
01.11.16
11:52
(13) Реквизит Номенклатура имеет тип Строка.
15 Ёпрст
 
01.11.16
11:54
(0)
ЗначениеОтбора = Новый Структура("Номенклатура","Мозайка");

вот тут косяк. Номенклатура - не строка, ассылка
16 Ёпрст
 
01.11.16
11:56
(14) Чего, в Справочнике Номенклатура, есть реквизит Номенклатура с типом Строка, в котором есть значение "Мозаика" ? Прям вот так ?
17 Ёпрст
 
01.11.16
11:57
Мот того, нужен отбор по ссылке ? И передавать ссылку на нужный элемент, не ?
18 Ёпрст
 
01.11.16
11:58
ну и
ЗначениеОтбора = Новый Структура("ССылка",Справочники.Номенклатура.НайтиПоНаименованию("Мозайка"));
19 vtolga
 
01.11.16
15:31
"Мозайка" - это строка?