Имя: Пароль:
1C
 
Не соответствие типов
↓ (Волшебник 29.02.2024 06:33)
0 NIGHTHUNTER
 
28.02.24
14:17
Почему выходит ошибка, - не соответствие типов?
Что я не так делаю?

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



На строке, -

        ЗначениеОтбора       = Новый Структура("ЗаказКлиента",     Объект.ЗаказКлиента);
        ПараметрыВыбора      = Новый Структура("Отбор",            ЗначениеОтбора);
1 Волшебник
 
28.02.24
14:16
Ошибка на строке ОткрытьФорму, а не на той, которую Вы указали.
2 vicof
 
28.02.24
14:19
(1) Он указал две строки)
3 Волшебник
 
28.02.24
14:21
(2) и обе не те
4 youalex
 
28.02.24
14:50
(0) ПараметрыВыбора - это свойство формы,  поменяй имя переменной
5 NIGHTHUNTER
 
28.02.24
15:34
(1) До ОткрытьФорму() не доходило на  сколько я помню.

Ошибка на строке, -

ПараметрыВыбора      = Новый Структура("Отбор",            ЗначениеОтбора);

Верхнюю я указал что бы было понятно что в Значение Отбора помещено.
6 NIGHTHUNTER
 
28.02.24
15:40
Я не знаю как мне вот эти  строки написать правильно. Подскажите пожалуйста, если можно?

            ЗначениеОтбора       = Новый Структура("Объект.Распоряжение.ЗаказНаПроизводство2_2.ДокументОснование", Объект.ЗаказКлиента);
            ПараметрыВыбора      = Новый Структура("Отбор",                                                        ЗначениеОтбора);
7 Волшебник
 
28.02.24
15:45
(5) Может доходило? Вы точно помните?
8 MaximSh
 
28.02.24
15:56
(6) в (4) уже написали ПараметрыВыбора нельзя использовать в форме как ты использовал в качестве переменной, оно уже занято. Используй другое имя, например СтруктураОтбора.
9 NIGHTHUNTER
 
28.02.24
16:08
(7) Точно.

(8) Подскажите пожалуйста, если можно как в этом блоке будет правильно?

        //Если ТипЗнч(Объект.ЗаказКлиента) = Тип("ДокументСсылка.ЗаказКлиента") ИЛИ ТипЗнч(Объект.ЗаказКлиента) = Тип("ДокументСсылка.ЗаказДавальца") Тогда
        //    СтандартнаяОбработка = Ложь;
        //    ЗначениеОтбора       = Новый Структура("Объект.Распоряжение.ЗаказНаПроизводство2_2.ДокументОснование", Объект.ЗаказКлиента);
        //    ПараметрыВыбора      = Новый Структура("Отбор",                                                        ЗначениеОтбора);
        //    ОткрытьФорму("Документ.ЭтапПроизводства2_2.ФормаВыбора",                                               ПараметрыВыбора);        
        //ИначеЕсли ТипЗнч(Объект.ЗаказКлиента) = Тип("ДокументСсылка.ЗаказНаПроизводство2_2") Тогда
        //    //
        //КонецЕсли;
10 NIGHTHUNTER
 
28.02.24
16:09
(8) Я это взял из какого то примера на сайте, по этому не знаю, почему выкладываются неправильные примеры.
11 Волшебник
 
28.02.24
16:21
(10) Смешно... Вы сами их выкладываете, потом читаете неправильные примеры друг друга.
12 NIGHTHUNTER
 
28.02.24
16:34
(11) Не спорю, бывает и такое. Хотелось бы найти сейчас решение вот это. Я сижу пытаюсь, стараюсь. А так это уже все на завтра. Вечером такое не решается.
13 Волшебник
 
28.02.24
16:37
Завтра будем разбирать следующую строку ОткрытьФорму
14 СвинТуз
 
28.02.24
17:17
(0)
Беги Форест, беги
15 Волшебник
 
28.02.24
17:26
(14) Куда он денется с подводной лодки... Его же приковали к батарее
16 mikecool
 
28.02.24
17:52
(8) чего же нельзя? можно, но присваивать нужно правильный тип
и если я правильно помню - в нем фикс массив
17 mikecool
 
28.02.24
17:53
+16 поэтому у автора и получается сабж
он то стырил пример, но пример был в каком то ОМ, скорее всего, а в нем можно крутить и локальную переменную
18 NIGHTHUNTER
 
29.02.24
03:22
19 Волшебник
 
29.02.24
06:32
(18) Вам уже всё объяснили
20 DrZombi
 
29.02.24
08:36
(9) Оно так не работает.
В принципе, отбор больше чем одного уровня вложений данных, не работает.
Тут нужно либо передавать ссылки уже ранее отобранных документов, всех. Либо переписывать форму выбора, где будет обработан ваш переданный параметр :)
21 DrZombi
 
29.02.24
08:39
(18) Снимок экрана можно было бы показать весь, трудно ориентироваться в способности налепить ошибок, по одной строчке :)
22 DrZombi
 
29.02.24
09:03
+(0) Писать, ... - надо так.

Много примеров, для вас.
https://infostart.ru/1c/articles/1233756/

&НаКлиенте
Процедура ЭтапПроизводства1НачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    Отбор = Новый Структура("Ссылка",     Объект.ЗаказКлиента);

    ОбработкаВыбора = Новый ОписаниеОповещения("ПриЗакрытииФормыВыбора", ЭтотОбъект, "ПодборРеализации");

    ПараметрыВыбора      = Новый Структура();
    ПараметрыВыбора.Вставить("РежимВыбора",Истина);
    ПараметрыВыбора.Вставить("Отбор", Отбор);
    ПараметрыВыбора.Вставить("ТекущаяСтрока", <Передать ссылку на ваш выбранный этап>);
    ОткрытьФорму("Документ.ЭтапПроизводства2_2.ФормаВыбора", ПараметрыВыбора, ЭтаФорма, , , , ОбработкаВыбора);        

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


&НаКлиенте
Процедура ПриЗакрытииФормыВыбора(Значение, ДопПараметры) Экспорт

   //Дополнительные условия если необходимо
   //Если ДопПараметры = "ПодборРеализации" тогда

    Если Значение = Неопределено Тогда  ///Если ничего не выбрать - вернется пустое значение (Неопределено)
        Возврат;
    КонецЕсли;
    
    //МассивДокументов = Значение ///Если Множественный Выбор - то вернется массив
    

    //КонецЕсли;
КонецПроцедуры
23 NIGHTHUNTER
 
29.02.24
09:08
(22) Вот все что у меня получилось по отборам. Пока не знаю как мне сделать вариант отбора 2, который закомментирован.

https://paste1c.ru/ca82yflvu4c
24 DrZombi
 
29.02.24
09:10
(23) Извращенно, но вы заметили, что вы выбрали в список значений все документы :)
25 DrZombi
 
29.02.24
09:11
+(23)  Насчет "Ссылки", я чисто угадал... :DDDD
26 NIGHTHUNTER
 
29.02.24
10:02
(24) Я же задаю отбор по документу основанию.
27 youalex
 
29.02.24
10:33
(20) >отбор больше чем одного уровня вложений данных, не работает.

Работает.
Например
СтруктураОтбора = Новый Структура("Контрагент", Новый Структура("Наименование", "123"));
ПараметрыОткрытия = Новый Структура("Отбор", СтруктураОтбора);

ОткрытьФорму("Документ.ЗаказКлиента.ФормаВыбора", ПараметрыОткрытия);
28 DrZombi
 
29.02.24
11:05
(27) Т.е. работает, тогда что не работало у (26) :)
29 NIGHTHUNTER
 
29.02.24
11:10
(28) Ошибка выходила, не соответствие типов, на строке (18).
30 DrZombi
 
29.02.24
11:34
(29) Вообще странно. Такие такое могло выходить, если у вас в списке выводятся не ссылки на справочник, а к примеру представление.
Ошибка? Это не ошибка, это системная функция.