Имя: Пароль:
1C
1С v8
Обработка выбора. Составной тип данных
0 Abmo
 
05.05.17
12:45
Всем привет!
Есть реквизит формы имеет составной тип данных Строка и Документ1.ссылка

в поле ввода
Если выбрал тип строка, можно ввести строку
Если выбрал тип документ1Ссылка, тогда выбрал нужный документ
Вот процедура

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

    КонецПроцедуры

У меня же когда выбираю тип строка, поле ввода позволяет только выбрать документ1
1 КоньЛапчатый
 
05.05.17
12:48
СтандартнаяОбработка = Ложь;

перед всеми условиями поставь
2 Buster007
 
05.05.17
12:51
ОграничениеТипа посмотри
3 Abmo
 
05.05.17
12:52
(2) делал так

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

    КонецПроцедуры
4 Kondarat
 
05.05.17
12:53
(0) ТипЗнч()
5 СамыйУмный
 
05.05.17
12:54
ТипЗнч(Объект) = Тип("СправочникСсылка.ВерсииФайлов") Тогда
6 Abmo
 
05.05.17
12:57
(4)(5)
сначала обрабатывается Выбор типа данных и выбранное значение в обработке выбора принимает значение ТИП сразу
7 Kondarat
 
05.05.17
13:00
(6) Писатель? Ты сравниваешь ссылку с типом, а надо тип с типом.
8 Kondarat
 
05.05.17
13:01
+7 для документа и, разумеется строку с типом для строки.
9 СамыйУмный
 
05.05.17
13:01
(6) Действительно писатель, в (7) все правильно говорит.
10 Abmo
 
05.05.17
13:07
11 catena
 
05.05.17
13:18
(10)А что вообще должно происходить во второй ветке?
12 Abmo
 
05.05.17
13:22
в чем смысл. Тип у реквизита остается после выбора строка документссылка

http://i91.fastpic.ru/big/2017/0505/42/67923a45012d6369f0ef0de872f88b42.png
13 catena
 
05.05.17
13:24
(12)Так и не поняла, что должно быть при выборе строки, но попробуй в запросе (0) убрать во второй ветке "СтандартнаяОбработка=Ложь". Может быть тебе это надо.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший