Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: Поиск по реквизиту

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

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

    //ЗаполнитьТабОбъекты();  

            СпрОбъектыБанк.НоваяКолонка("Выбран","Строка","1",,,5);
            СпрОбъектыБанк.НоваяКолонка("Объект"); 
            СпрОбъектыБанк.НоваяКолонка("СерийныйНомер",,,,"Заводской №",10); 
            СпрОбъектыБанк.НоваяКолонка("Механик",,,,,30);
               СпрОбъектыБанк.НоваяКолонка("ДатаРемонта","Дата");
            СпрОбъектыБанк.НоваяКолонка("Подразделение",,,,"Подразделение",25);
            СпрОбъектыБанк.ВидимостьКолонки("Объект",1);
            СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов");
            РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование");
            СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
            СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);
            СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
            Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл          
                Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 1 Тогда
                    СпрОбъектыБанк.НоваяСтрока();
                    СпрОбъектыБанк.Объект = СпрОбъекты.ТекущийЭлемент();
                    СпрОбъектыБанк.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер;
                    СпрОбъектыБанк.Выбран = "-";
                    СпрОбъектыБанк.Механик = СпрОбъекты.Сотрудник;
                    СпрОбъектыБанк.ДатаРемонта =  СпрОбъекты.ДатаРемонта.Получить(ТекущаяДата());
                    СпрОбъектыБанк.Подразделение  =  СпрОбъекты.Подразделение;
                    ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1;        
                КонецЕсли;
               КонецЦикла;
Не работает строка :
СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент());
Не могу понять в чем, причина. Есть аналогичная конструкция-там все норм;
   Cool_Profi
 
15 - 01.06.18 - 11:44
Может, записать элемент?
   Злопчинский
 
16 - 01.06.18 - 11:46
РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование");
СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",СправочникВидов.ТекущийЭлемент(),0,0);

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


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

ИспользоватьВладельца() в ВыбратьПоРеквизиту(0 учитывается если только 3-ий параметр (учитывать иерархию) = 1
   Kigo_Kigo
 
29 - 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е
   hhhh
 
33 - 18.06.18 - 10:35
(31) пропаганда наркотиков здесь запрещена.
 
 


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует