Имя: Пароль:
1C
1С v8
НачалоВыбора странно отрабатывает
0 Droning1C
 
01.02.19
11:50
в форме документа есть поле ввода Склад. При попытке изменения склада значение не меняется, хотя форма выбора открывается, отбор устанавливается верно... В чем может быть проблема? уже полтора часа бьюсь... В событие ПриИзменении Отладчик вообще не заходит...





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






Процедура ОткрытьФормуВыбораСОтбором(ИмяСправочника, Элемент, СтруктураОтбора) Экспорт
        
    ФормаВыбора = Справочники[ИмяСправочника].ПолучитьФормуВыбора(,Элемент,);

    // Отфильруем список складов.
    Если НЕ СтруктураОтбора = Неопределено Тогда
        Если ТипЗнч(СтруктураОтбора) = Тип("ТаблицаЗначений") Тогда
            Для Каждого ТекОтбор Из СтруктураОтбора Цикл
                ФормаВыбора.Отбор[ТекОтбор.Имя].ВидСравнения  = ТекОтбор.ВидСравнения;
                ФормаВыбора.Отбор[ТекОтбор.Имя].Значение      = ТекОтбор.Значение;
                ФормаВыбора.Отбор[ТекОтбор.Имя].Использование = Истина;
                Если ТекОтбор.НеИзменять Тогда
                    ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора[ТекОтбор.Имя].Доступность = НЕ ТекОтбор.НеИзменять;
                КонецЕсли;
            КонецЦикла;
        Иначе
            Для Каждого ЭлементСтруктуры Из СтруктураОтбора Цикл
                Если ТипЗнч(ЭлементСтруктуры.Значение) = Тип("СписокЗначений") Тогда
                    ФормаВыбора.Отбор[ЭлементСтруктуры.Ключ].ВидСравнения = ВидСравнения.ВСписке;
                КонецЕсли;
                ФормаВыбора.Отбор[ЭлементСтруктуры.Ключ].Значение      = ЭлементСтруктуры.Значение;
                ФормаВыбора.Отбор[ЭлементСтруктуры.Ключ].Использование = Истина;
                ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора[ЭлементСтруктуры.Ключ].Доступность = Ложь;
                ФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;    
    
    ФормаВыбора.Открыть();        
        
КонецПроцедуры
1 ДенисЧ
 
01.02.19
11:51
А в форме ОповеститьОВыборе() есть?
2 Droning1C
 
01.02.19
11:56
(1) в форме документа?
3 Радим1987
 
01.02.19
11:57
ДопМодуль.ОткрытьФормуВыбораСОтбором("Склады", ЭЛЕМЕНТЫ.ТВОЙЭЛЕМЕНТ, СтруктураОтбора);
4 ДенисЧ
 
01.02.19
11:57
(2) В форме, которую открываешь для выбора
5 Радим1987
 
01.02.19
11:59
Если не получилось добавь и анализируй обработка выбора "ВыбранноеЗначение"

&НаКлиенте
Процедура СкладКомпанииОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    Объект.Склад = ВыбранноеЗначение;
КонецПроцедуры
6 Droning1C
 
01.02.19
12:01
(3) помогло! спасибо!