Вход | Регистрация

1С:Предприятие ::

Метки: 

УФ. Открытие формы документы из списка по условию

Я
   егаис
 
24.09.17 - 15:39
В зависимости от значения реквизита надо открыть определенную форму.
Делаю через СписокВыбор в форме списка, не срабатывает

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ТекущиеДанные = Элемент.ТекущиеДанные;
    
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Ключ",                ТекущиеДанные.Ссылка);
    
    Если НЕ ТекущиеДанные.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийИнвентаризацияТоваров.Спецодежда") Тогда
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаСпецодежды", СтруктураПараметров);
    Иначе    
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокумента", СтруктураПараметров);
    КонецЕсли;    
    
КонецПроцедуры
 
  Рекламное место пустует
   Cyberhawk
 
1 - 24.09.17 - 15:41
Скорее убери ненужное НЕ из условия и поменяй вместо этого ветки местами
   егаис
 
2 - 24.09.17 - 15:41
создавать вспомогательную форму и оттуда рулить формой открытия? Только такой выход?
   Cyberhawk
 
3 - 24.09.17 - 15:43
Конечно нет
   егаис
 
4 - 24.09.17 - 15:45
(1) нет, это не помогает
   егаис
 
5 - 24.09.17 - 15:45
обработчик к списку привязан
   Cyberhawk
 
6 - 24.09.17 - 15:51
(4) Кому и для чего не помогает? Думаю, ты что-то напутал в своих ожиданиях...
   Cyberhawk
 
7 - 24.09.17 - 15:52
Я ожидаю от совета, данного мною в (1) то, что это поможет читающему код легче в нем ориентироваться
   егаис
 
8 - 24.09.17 - 15:53
(7) читаемо стало?
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) 
    
    СтандартнаяОбработка = Ложь;
    ТекущиеДанные = Элемент.ТекущиеДанные;
    
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Ключ",                ТекущиеДанные.Ссылка);
    
    Если ТекущиеДанные.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийИнвентаризацияТоваров.Спецодежда") Тогда
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаСпецодежды", СтруктураПараметров);
    Иначе    
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокумента", СтруктураПараметров);
    КонецЕсли;    
    
КонецПроцедуры

а по существу?
   Cyberhawk
 
9 - 24.09.17 - 15:54
(8) Ты не выполнил совет в (1). По существу для начала раскури нужный обработчик и добейся, чтобы никакая форма вообще не открывалась. А потом уже в него добавишь код по открытию формы. Скорее всего ты выбрал не тот обработчик
   егаис
 
10 - 24.09.17 - 15:57
&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбранноеЗначение, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    ТекущиеДанные = Элемент.ТекущиеДанные;
    
    СтруктураПараметров = Новый Структура;
    СтруктураПараметров.Вставить("Ключ",                ТекущиеДанные.Ссылка);
    
    НС = Новый СообщениеПользователю;
    НС.Текст = Строка(ТекущиеДанные.ВидОперации);
    НС.Сообщить();
    Если ТекущиеДанные.ВидОперации = ПредопределенноеЗначение("Перечисление.ВидыОперацийИнвентаризацияТоваров.Спецодежда") Тогда
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаСпецодежды", СтруктураПараметров);
    Иначе    
        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаДокумента", СтруктураПараметров);
    КонецЕсли;    
    
КонецПроцедуры


сообщение выходит, обработчик тот.
 
 
   егаис
 
11 - 24.09.17 - 15:58
Событие списка называется "выбор"
   h-sp
 
12 - 24.09.17 - 19:12
(10) нет такой формы "спецодежда"
   егаис
 
13 - 24.09.17 - 21:03
(12) форму можно создать, не?
если заремить    
СтандартнаяОбработка = Ложь;
то откроется 2 формы, одна из них по условию, т.е. то что нужно        ОткрытьФорму("Документ.ИнвентаризацияТоваровНаСкладе.Форма.ФормаСпецодежды", СтруктураПараметров);


Но почему открывается основная форма документа при 
СтандартнаяОбработка = Ложь;
??
   егаис
 
14 - 24.09.17 - 21:06
о, даже не так.
оказывается открывается 2 формы - основная объекта и "нужная" при СтандартнаяОбработка = Ложь; 
Почему так?
   h-sp
 
15 - 24.09.17 - 23:58
(14) ну, значит английским языком балуетесь. Проверьте СтандартнаяОбработка, на каком языке написано.
   RomaH
 
16 - 25.09.17 - 07:29
не правильнее ли будет это перенести в модуль менеджера в ОбработкаПолученияФормы?
   Fedor-1971
 
17 - 25.09.17 - 08:55
(14) ПриНачалеРедактирования отработал? Посмотри какой обработчик и когда вызывается.


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