Имя: Пароль:
1C
1С v8
Перестали работать отборы динамическим списком после обновления
0 SinChao
 
16.03.16
13:43
Здравствуйте коллеги.

Конфигурация 1С:Бухгалтерия предприятия 8. Был релиз 3.0.39.60

На форме элемент с выбором договора.

Настроен отбор динамическим списком:

&НаКлиенте
Процедура ДопСоглащениеНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    Владелец = Объект.ЮрЛицоАгентства;
        
    ЗначениеОтбора = Новый Структура("Владелец", Владелец);
    
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
    
    ФормаВыбора = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыВыбора, Элемент);
    
    ФормаВыбора.Элементы.Список.Отображение = ОтображениеТаблицы.Список;
    
    ЭлементОтбора = ФормаВыбора.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Владелец");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ПравоеЗначение = Владелец;
    
    ФормаВыбора.Открыть();
    
КонецПроцедуры

После обновления до релиза 3.0.43.147 - выдает ошибку:

ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);
по причине:
Несоответствие типов

Помогите разобраться...
1 SinChao
 
16.03.16
13:53
Теперь что, структуру в структуру помещать нельзя?

    ЗначениеОтбора = Новый Структура("Владелец", Владелец);
    
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);

Раньше ведь работало...
2 Карупян
 
16.03.16
13:54
там же фиксированная структура вроде
3 igork1966
 
16.03.16
13:56
(0) Небось "ПараметрыВыбора" в данном контексте реквизит формы. Переименуй или объяви переменную локальную
4 igork1966
 
16.03.16
13:57
(2) Я уже не первый раз вижу такую ошибку (3) в типовой конфе
5 SinChao
 
16.03.16
13:59
(3) Нет...

Нет такого реквизита формы.
6 igork1966
 
16.03.16
14:00
(5) Не гони:
ие управляемой формы для объектов (Managed form extension for objects)
ПараметрыВыбора (ChoiceParameters)
7 igork1966
 
16.03.16
14:01
(6) +
    ПараметрыВыбора1 = Новый Структура("Отбор", ЗначениеОтбора);
    
    ФормаВыбора = ПолучитьФорму("Справочник.ДоговорыКонтрагентов.ФормаВыбора", ПараметрыВыбора1, Элемент);

и скорее всего все будет ок
8 SinChao
 
16.03.16
14:07
(6) Интересно с какого релиза платформы его добавили.

(7) Так и сделал  - всё ОК, теперь работает.

Представляете сколько народу наступит на грабли с примерами типа:

&НаКлиенте
Процедура ДокументОбъектАвтомобильНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Автомобиль = ПолучитьАвтомобиль();
    ЗначениеОтбора  = Новый Структура("Тип", Автомобиль);
    ПараметрыВыбора = Новый Структура("Отбор", ЗначениеОтбора);  
    ОткрытьФорму("Справочник.Автотранспорт.ФормаВыбора", ПараметрыВыбора);
КонецПроцедуры

Всем большое СПАСИБО!!!
9 igork1966
 
16.03.16
14:19
(8) Я же говорю, в типовой на такое наткнулся. Тож долго был в недоумении.
10 SinChao
 
16.03.16
14:23
К стати, дело не в платформе.

А с какого-то релиза 1С:Бухгалтерия 8 был добавлен одноименный параметр поля ввода (и не только) "ПараметрыВыбора".
11 SinChao
 
16.03.16
14:24
Еще раз большое спасибо!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший