Имя: Пароль:
1C
 
Две формы выбора
0 busy1
 
21.03.24
14:28
Добрый день форумчане. какая то странная проблема, В событии началовыбора поля, Вызываю метод ОткрытьФорму() с параметрами отбора. Открыется две формы выбора, 1) полная форма без отбора, 2) с отбором. СтандартнаяОбработка = Ложь написано. Что то не знаю куда смотреть.
1 Timon1405
 
21.03.24
14:30
расширения есть?
2 Волшебник
 
21.03.24
14:30
СтандартнаяОбработка=Ложь
3 busy1
 
21.03.24
14:31
(1) Это отдельный объект в расширении
4 Волшебник
 
21.03.24
14:32
Только потом обеспечьте возврат выбранного значения в поле. Вот, изучайте схему

5 busy1
 
21.03.24
14:32
(2) Ну это само собой написано.
6 Волшебник
 
21.03.24
14:32
(5) Мы же не видим, что там у Вас написано, а чего не написано.
7 busy1
 
21.03.24
14:33
(4) А поподробнее, можно хотя бы метод, если не открытьФорму()
8 busy1
 
21.03.24
14:33
(5) я написал это в (0)
9 youalex
 
21.03.24
14:37
весь текст метода скопируй (может у тебя CтандартнаяОбработка = Ложь)
10 busy1
 
21.03.24
14:40
&НаКлиенте
Процедура ВидДоговораНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    Работы = Новый Массив;
    ВидДоговораНачалоВыбораНаСервере(Работы);
    ОтборПоГруппе = Новый Структура("Ссылка", Работы);
    ОткрытьФорму("Справочник.КлассификаторВидовРабот.ФормаВыбора",Новый Структура("Отбор",ОтборПоГруппе),Элемент,УникальныйИдентификатор);
КонецПроцедуры
11 Волшебник
 
21.03.24
14:48
(10) в процедуре ВидДоговораНачалоВыбораНаСервере() что-то происходит, например, открывается форма выбора
12 youalex
 
21.03.24
14:50
можно конечно замером посмотреть /на стек в ПриСозданииНаСервере
или попробовать конкретное имя формы указать, но..
13 busy1
 
21.03.24
19:31
Функция ПолучитьОтборВидовРабот
&НаСервере
Функция ПолучитьОтборВидовРабот(ЗначениеОтбора)
    Работы = Новый Массив;
    Запрос = Новый Запрос("ВЫБРАТЬ ВР.Ссылка КАК Ссылка ИЗ Справочник.КлассификаторВидовРабот.Группы КАК ВР ГДЕ ВР.ВидРабот = &ВидРабот");
    Запрос.УстановитьПараметр("ВидРабот",ЗначениеОтбора);
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
        Возврат Работы;
    Иначе
        Работы = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
        Возврат Работы;
    КонецЕсли;
КонецФункции
14 busy1
 
21.03.24
15:01
а не та процедура вот та:
&НаСервереБезКонтекста
Процедура ВидДоговораНачалоВыбораНаСервере(Работы)
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    КлассификаторВидовРаботГруппы.Ссылка КАК Ссылка,
    |    КлассификаторВидовРаботГруппы.ВидРабот КАК ВидРабот
    |ПОМЕСТИТЬ ВТ_ДанныеТЧ
    |ИЗ
    |    Справочник.КлассификаторВидовРабот.Группы КАК КлассификаторВидовРаботГруппы
    |
    |ИНДЕКСИРОВАТЬ ПО
    |    Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    КлассификаторВидовРабот.Ссылка КАК Ссылка,
    |    ВТ_ДанныеТЧ.ВидРабот КАК ВидРабот
    |ИЗ
    |    Справочник.КлассификаторВидовРабот КАК КлассификаторВидовРабот
    |        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ДанныеТЧ КАК ВТ_ДанныеТЧ
    |        ПО (КлассификаторВидовРабот.Ссылка = ВТ_ДанныеТЧ.Ссылка)
    |ГДЕ
    |    ВТ_ДанныеТЧ.ВидРабот ЕСТЬ NULL";
    Результат = Запрос.Выполнить();
    Если НЕ Результат.Пустой() Тогда
        Работы = Результат.Выгрузить().ВыгрузитьКолонку("Ссылка");
        Результат = Неопределено;
    КонецЕсли;

КонецПроцедуры
15 Волшебник
 
21.03.24
15:48
Поставьте точку останова в процедуре ПриОткрытии и смотрите стек вызова.
Кстати, формы могут быть разные