Имя: Пароль:
1C
 
Как установить/Заполнить в Задаче ссылку на нужный предмет
0 YaMal77
 
15.11.24
10:58
Всем привет!
Подскажите как установить/Заполнить в Задаче ссылку на нужный предмет
Пытаюсь сделать так как написано ниже,ничего не устанавливается

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Бп = БизнесПроцессы.Исполнение.СоздатьБизнесПроцесс();
		Бп.ЗаполнитьПоШаблонуИПредмету(Справочники.ШаблоныИсполнения.НайтиПоКоду("ДО-0002"),ВыборкаДетальныеЗаписи.Ссылка,Справочники.Пользователи.НайтиПоНаименованию("Пользователь"));
		Бп.Наименование ="Обработка строительного объекта:" + ВыборкаДетальныеЗаписи.Ссылка;
		Бп.Дата=ТекущаяДата();  
		//		Бп.ИсточникДанных.Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
		Бп.Предметы[0].Предмет =   ВыборкаДетальныеЗаписи.Ссылка;
		Бп.Записать();
		Бп.Старт();
	
		
	КонецЦикла;
1 ReaLg
 
15.11.24
10:52
(0) Проверь типы. Если тип Бп.Предметы[0].Предмет не может быть равен типу  ВыборкаДетальныеЗаписи.Ссылка не будет заполнятся.
2 YaMal77
 
15.11.24
10:57
(1) ///Проверь тип
Там тип Неопределено
3 Волшебник
 
15.11.24
10:58
(2) ну и?
4 YaMal77
 
15.11.24
11:03
Пытаюсь сделать так
Мультипредметность.ПередатьПредметыПроцессу(Бп, ВыборкаДетальныеЗаписи.Ссылка);
        СтартПроцессовСервер.СтартоватьПроцесс(Бп);
5 YaMal77
 
15.11.24
11:04
тоже не устанавливается
6 Мультук
 
гуру
15.11.24
11:03
(0)

В чём проблема сходить в отладке в

Бп.ЗаполнитьПоШаблонуИПредмету


и посмотреть что, куда и как там присваивается?
7 Garykom
 
гуру
15.11.24
11:07
Бп.Предметы[0].Предмет =   ВыборкаДетальныеЗаписи.Ссылка;

весело
8 Garykom
 
гуру
15.11.24
11:08
Предметы это ТЧ
может сначала новую строку а не 0-ю в цикле?
9 Garykom
 
гуру
15.11.24
11:10
Бп.ЗаполнитьПоШаблонуИПредмету(Справочники.ШаблоныИсполнения.НайтиПоКоду("ДО-0002"),ВыборкаДетальныеЗаписи.Ссылка,Справочники.Пользователи.НайтиПоНаименованию("Пользователь"));

это тоже прикольно

ладно говнокод
так он без полнейшего понимания хотя бы основ
10 YaMal77
 
15.11.24
11:09
(6) ///и посмотреть что, куда и как там присваивается?
там всё красиво,предмет передается и устанвливается
но когда смотришь результат В Получаемой задаче, пусто
11 YaMal77
 
15.11.24
11:11
(8)Предметы это ТЧ
////может сначала новую строку а не 0-ю в цикле?
В цикле одно значение
12 YaMal77
 
15.11.24
11:14
Бп = БизнесПроцессы.Исполнение.СоздатьБизнесПроцесс();
        Бп.ЗаполнитьПоШаблонуИПредмету(Справочники.ШаблоныИсполнения.НайтиПоКоду("ДО-002"),ВыборкаДетальныеЗаписи.Ссылка,Справочники.Пользователи.НайтиПоНаименованию("Пользователь"));
        Бп.Наименование ="Обработка строительного объекта:" + ВыборкаДетальныеЗаписи.Ссылка;
        Бп.Дата=ТекущаяДата();  
        //        Бп.ИсточникДанных.Ссылка = ВыборкаДетальныеЗаписи.Ссылка;
        ///Бп.Предметы[0].Предмет =   ВыборкаДетальныеЗаписи.Ссылка;
        Мультипредметность.ПередатьПредметыПроцессу(Бп, ВыборкаДетальныеЗаписи.Ссылка);
        СтартПроцессовСервер.СтартоватьПроцесс(Бп);
Тоже самое
13 Garykom
 
гуру
15.11.24
11:14
(9)+
Справочники.Пользователи.НайтиПоНаименованию("Пользователь")

в курсе при наличии в базе нескольких записей
"Пользователь Иванов"
"Пользователь Петров"
"Пользователь Сидоров"
"Пользователь"

НайтиПоНаименованию без параметра ", Истина" - найдет по первым символам?
И вернет скорее хз что, например "Пользователь Иванов"

А еще можно поискать по пустой строке ""
.НайтиПоНаименованию("")

В этом случае любая запись может вернуться ))
ибо они все с "" (пустой строки) начинаются
14 Garykom
 
гуру
15.11.24
11:16
(11)
В цикле одно значение

нюню у тебя же
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл

а не
Если ВыборкаДетальныеЗаписи.Следующий() Цикл
15 YaMal77
 
15.11.24
11:21
(13) Я знаю что говнокод, пока оставил для отладки, позже переделаю нормально
ПользователиИнформационнойБазы.ТекущийПользователь()
16 YaMal77
 
15.11.24
11:19
(14)Запрос для отладки возвращает одно значение
  мне больше пока не нужно
17 Garykom
 
гуру
15.11.24
11:21
(16) ты же сам написал в (2) "Там тип Неопределено" для Бп.Предметы[0].Предмет
что ты хочешь?

строку добавь в ТЧ Предметы
а уже затем .Предмет заполняй
18 Мультук
 
гуру
15.11.24
11:22
(15)

В строчке ставим точку останова

Бп.Предметы[0].Предмет =   ВыборкаДетальныеЗаписи.Ссылка;


В табло вписываем строки

Бп.Предметы[0].Предмет
ТипЗНЧ(Бп.Предметы[0].Предмет)
ВыборкаДетальныеЗаписи.Ссылка
ТипЗНЧ(ВыборкаДетальныеЗаписи.Ссылка)


И показываем
1) скриншот из табло
2) скриншт описание типа реквизита "Предмет" из таб.части "Предметы"
19 YaMal77
 
15.11.24
11:23
(17)Там уже есть строка с индексом ноль[0] а предмет имеет тип неопределенно
Поэтому я так и написал
Бп.Предметы[0].Предмет =   ВыборкаДетальныеЗаписи.Ссылка;
20 YaMal77
 
15.11.24
11:30
(18)
Бп.Предметы[0].ИмяПредмета = СтроительныйОбъект
Бп.Предметы[0].НомерСтроки = 1
Бп.Предметы[0].Предмет = неопределено
Бп.Предметы[0].РольПредмета = Основной(Перечисл.)
22 YaMal77
 
15.11.24
11:29
Скрин в отладчике
23 Волшебник
 
15.11.24
11:30
Мы когда выйдем из этой когнитивной ловушки?

1. Предмет имеет тип "неопределено"
2. Как установить предмет?
24 YaMal77
 
15.11.24
11:33
ТипЗНЧ(Бп.Предметы[0].Предмет)    Не определено    Тип
ТипЗНЧ(ВыборкаДетальныеЗаписи.Ссылка)    Строительные объекты    Тип
25 YaMal77
 
15.11.24
11:35
Киньте, пожалуйста в меня какой ни будь пример по заполнению БП с заполнением предмета
26 YaMal77
 
15.11.24
11:40
Мне нужно просто установить значение ссылки в Задачу как на скрине.
27 Мультук
 
гуру
15.11.24
11:44
(26)

>> скриншт описание типа реквизита "Предмет" из таб.части "Предметы"

См пример
28 YaMal77
 
15.11.24
11:51
(27) Мультук,Спасибо!
29 Волшебник
 
15.11.24
11:51
(24) Если реквизит составного типа, то его значение по умолчанию = Неопределено.
30 Garykom
 
гуру
15.11.24
11:53
(25) Бесполезно кидать, не поймешь
У тебя .Предмет составного типа, поэтому отображает Неопределено

А ТипЗнч(ВыборкаДетальныеЗаписи.Ссылка) = "Строительные объекты"
С чего взял что твои "Строительные объекты" находятся в
составном типе Предмет
СправочникСсылка.УведомленияПрограммы, СправочникСсылка.ТемыОбсуждений, СправочникСсылка.Контрагенты, СправочникСсылка.Проекты, СправочникСсылка.ПротоколыМероприятий, ДокументСсылка.ВходящееПисьмо, ДокументСсылка.ИсходящееПисьмо, СправочникСсылка.Файлы, СправочникСсылка.ВходящиеДокументы, ДокументСсылка.Бронь, СправочникСсылка.ВнутренниеДокументы, СправочникСсылка.СообщенияОбсуждений, СправочникСсылка.ИсходящиеДокументы, СправочникСсылка.Мероприятия, СправочникСсылка.ПроектныеЗадачи
31 YaMal77
 
15.11.24
12:12
(30)///С чего взял что твои "Строительные объекты" находятся в составном типе Предмет
Да, Строительных объектов там не было, их нужно добавить в тип данных.
потому что справочник  не типовой
32 YaMal77
 
15.11.24
12:30
(27)всё получилось,Спасибо Мультук, прочитав всё снова,понял как же жестко я тупил))
    Хотя всё было перед глазами
        Бп = БизнесПроцессы.Исполнение.СоздатьБизнесПроцесс();
///говнод,исправлю позже )        Бп.ЗаполнитьПоШаблонуИПредмету(Справочники.ШаблоныИсполнения.НайтиПоКоду("ДО-0002"),ВыборкаДетальныеЗаписи.Ссылка,ПользователиИнформационнойБазы.ТекущийПользователь());
        Бп.Наименование ="Обработка строительного объекта:" + ВыборкаДетальныеЗаписи.Ссылка;
        Бп.Дата=ТекущаяДата();  
        Мультипредметность.ПередатьПредметыПроцессу(Бп, ВыборкаДетальныеЗаписи.Ссылка);
        СтартПроцессовСервер.СтартоватьПроцесс(Бп);
33 Garykom
 
гуру
15.11.24
12:49
(32) ну да ВыборкаДетальныеЗаписи.Ссылка - это у тебя не Предмет а ПроцессИсточник оказался
34 YaMal77
 
15.11.24
16:15
(33) нет Справочник ссылка Строительные объекты
35 Valdis2007
 
15.11.24
16:15
(0) давай начнем с объявления типового решения
36 Garykom
 
гуру
15.11.24
14:18
(35) нечто на основе ДО
отраслевая под строительство или допиленная своими справочниками
37 YaMal77
 
15.11.24
16:12
ДО 3.0 типовой релиз 14, допиленный под строительство
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой