Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

НачалоВыбора странно отрабатывает

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





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






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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует