Имя: Пароль:
1C
1C 7.7
v7: Поиск по реквизиту
0 progaoff
 
31.05.18
13:43
ОбъектПоиска = СоздатьОбъект("Справочник.БП_ДоговорыСервисногоОбслуживания");
         Если ОбъектПоиска.НайтиПоРеквизиту("НомерДоговора","05149") = 1 Тогда
в ответ получаю
{Справочник.БП_ДоговорыСервисногоОбслуживания.Форма.Модуль(573)}: Недостаточное число параметров передано при вызове функции/процедуры объекта.

Уже 1000 раз делал, поиск и выборки по реквизитам, этого справочника, сортировка у реквизита указана, что ему еще нужно?
1 1Сергей
 
31.05.18
13:44
СП не читал, да?
2 progaoff
 
31.05.18
13:45
(1) Читал
3 1Сергей
 
31.05.18
13:46
(2) и сколько там параметров?
4 ADirks
 
31.05.18
13:47
(2) и чё пишут?
5 progaoff
 
31.05.18
13:47
(3) 3
6 progaoff
 
31.05.18
13:48
(5) Вот б....я пробовал и с тремя) Тогда гавкало что много параметров)
7 Cool_Profi
 
31.05.18
13:50
Запрос напиши.
8 Вася Теркин
 
31.05.18
13:50
Врут поди. 2,5 вводи. Без пробелов
9 Вася Теркин
 
31.05.18
13:50
А ты реквизит индексировал?
10 progaoff
 
31.05.18
13:58
(9) Да
11 1Сергей
 
31.05.18
14:00
(10) сейчас в чём трабла?
12 progaoff
 
31.05.18
15:20
(11) Да норм уже, параметр подставил, и пошло
13 Злопчинский
 
31.05.18
16:59
(12) Чудеса, не правда ли..?
14 progaoff
 
01.06.18
11:43
В продолжении темы 7.7
Процедура ПриОткрытии() //предопределенная
    //ЗаполнитьТабОбъекты();  
            СпрОбъектыБанк.НоваяКолонка("Выбран","Строка","1",,,5);
            СпрОбъектыБанк.НоваяКолонка("Объект");
            СпрОбъектыБанк.НоваяКолонка("СерийныйНомер",,,,"Заводской №",10);
            СпрОбъектыБанк.НоваяКолонка("Механик",,,,,30);
               СпрОбъектыБанк.НоваяКолонка("ДатаРемонта","Дата");
            СпрОбъектыБанк.НоваяКолонка("Подразделение",,,,"Подразделение",25);
            СпрОбъектыБанк.ВидимостьКолонки("Объект",1);
            СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов");
            РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование");
            СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
            СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);
            СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
            Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл          
                Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 1 Тогда
                    СпрОбъектыБанк.НоваяСтрока();
                    СпрОбъектыБанк.Объект = СпрОбъекты.ТекущийЭлемент();
                    СпрОбъектыБанк.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер;
                    СпрОбъектыБанк.Выбран = "-";
                    СпрОбъектыБанк.Механик = СпрОбъекты.Сотрудник;
                    СпрОбъектыБанк.ДатаРемонта =  СпрОбъекты.ДатаРемонта.Получить(ТекущаяДата());
                    СпрОбъектыБанк.Подразделение  =  СпрОбъекты.Подразделение;
                    ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1;        
                КонецЕсли;
               КонецЦикла;
Не работает строка :
СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
Не могу понять в чем, причина. Есть аналогичная конструкция-там все норм;
15 Cool_Profi
 
01.06.18
11:44
Может, записать элемент?
16 Злопчинский
 
01.06.18
11:46
РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование");
СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);

- быдлокод детектед. Нигде не проверяется успешность  найтипонаименованию
17 Злопчинский
 
01.06.18
11:48
Если Выбран()<>0 Тогда
             СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);
            СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());


..
ну и я бы посоветовал сначала ОПРЕДЕЛЯТЬ УСЛОВИЯ ВЫБОРКИ, а потом ее выполнять - поменяй местами ИсрпользоватьВладельца сдвинь на 1 строку вверх
18 progaoff
 
01.06.18
12:00
(17) хм...не выходит
19 progaoff
 
01.06.18
12:16
СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
            СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
            Если Выбран()<>0 Тогда
                СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);
            КонецЕсли;
20 Злопчинский
 
01.06.18
12:29
(19) фу, бяка
21 progaoff
 
01.06.18
12:30
(20) Блин....
22 Злопчинский
 
01.06.18
12:32
Обработку СпрОбъекты надо делать при условии что ты открыл форму УЖЕ СУЩЕСТВУЮЩЕГО элемента. Иначе ТекущийЭлемент() возвернет пусто и использоватьвладельца поставит тебе фильтр, который занулит выборку так как нет в подчиненном спр элементов где владелей=пусто
23 progaoff
 
01.06.18
12:33
(22) Так естественно он существует
24 progaoff
 
01.06.18
12:35
(22) похоже я чего то не понял, на счет УЖЕ СУЩЕСТВУЮЩЕГО.
Владелец пустой
25 Карст
 
01.06.18
12:38
если владельца нет у элемента то прОбъекты.ИспользоватьВладельца; нинада
26 progaoff
 
01.06.18
13:26
Если добавляю условие выбора по реквизиту, то и в другом списке отваливается отбор по владельцу.
27 Злопчинский
 
01.06.18
15:47
мутность тотальная
стучись в телеграм @Dobrop если что - разрулим по удаленке
28 Злопчинский
 
01.06.18
16:40
СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),1,0);

ИспользоватьВладельца() в ВыбратьПоРеквизиту(0 учитывается если только 3-ий параметр (учитывать иерархию) = 1
29 Kigo_Kigo
 
01.06.18
17:14
Семерка еще сырая(с) :)
30 Злопчинский
 
01.06.18
17:21
(29) восьмерка тогда - ваще рваная тряпка... ;-)
31 Карст
 
18.06.18
10:13
6.0 работала на маке )))
32 Эльниньо
 
18.06.18
10:25
А 2.0 на DOSе
33 hhhh
 
18.06.18
10:35
(31) пропаганда наркотиков здесь запрещена.