|
v7: Отбор по реквизиту. | ☑ | ||
---|---|---|---|---|
0
progaoff
30.05.18
✎
16:47
|
Делаю выборку элементов :
Спр.ВыбратьЭлементыПоРеквизиту("ВидОбъекта", Значение); Возвращает 0. Хотя три элемента с значением в реквизите есть. |
|||
1
progaoff
30.05.18
✎
16:47
|
Что я мог упустить?
|
|||
2
progaoff
30.05.18
✎
16:48
|
СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент()); СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов"); РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование"); СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",РеквизитПоиска,0,0); Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 1 Тогда ТабОбъектыБанк.НоваяСтрока(); Объектов = Объектов+1; ТабОбъектыБанк.Ном = Объектов; ТабОбъектыБанк.Объект = СпрОбъекты.ТекущийЭлемент(); ТабОбъектыБанк.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер; ТабОбъектыБанк.ДатаЗаменыЭКЛЗ = СпрОбъекты.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()); ТабОбъектыБанк.Подразделение = СпрОбъекты.Подразделение; ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1; КонецЕсли; КонецЦикла; |
|||
3
bolder
30.05.18
✎
16:48
|
(1) Реквизит должен индексироваться.
|
|||
4
progaoff
30.05.18
✎
16:49
|
(3) Сортировка включена на нем
|
|||
5
bolder
30.05.18
✎
16:53
|
(4) Значит что-то с Владельцем не так.
|
|||
6
Злопчинский
30.05.18
✎
16:55
|
попутно: вот даже навскидку не скажу учитывает ли ВыбратьПоРеквизиту ограничение, установленное по ИспользоватьВладельца()...?
|
|||
7
Злопчинский
30.05.18
✎
16:56
|
Быдлокод детектед
РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование"); |
|||
8
Злопчинский
30.05.18
✎
16:56
|
НайтиПоНаименованию(<Наименование>,<Режим>,<ФлагПоиска>)
Назначение: Найти элемент справочника по наименованию. Возвращает: 1 - если действие выполнено; 0 - если действие не выполнено (элемент не найден). |
|||
9
bolder
30.05.18
✎
16:56
|
(6) Учитывает,однозначно.Поэтому в первую очередь надо проверить установку Владельца.
|
|||
10
bolder
30.05.18
✎
16:57
|
(8) А, ну конечно же)
|
|||
11
Злопчинский
30.05.18
✎
16:58
|
и даже не то быдлокод что РеквизитОбъекта - вообще то число (результат поиска успех=1, неуспех=0), а не объект/ссылка, а то быдлокод, что нигде после поиска не проверяется - найдено или нет.
гнать за такое ссаными тряпками из клюшечников в восьмерочники - галочки там расставлять |
|||
12
progaoff
30.05.18
✎
16:59
|
Да это уже понял) убрал (7)
|
|||
13
progaoff
30.05.18
✎
17:00
|
и владельца исключил
|
|||
14
bolder
30.05.18
✎
17:00
|
(11) Там скорее наоборот,навыки 8-ки мешают писать правильный код на клюшках.
|
|||
15
Злопчинский
30.05.18
✎
17:00
|
Почему бы написать не мудачно, а нормально, по типу
СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов"); РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование"); // СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании"); СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент()); СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",РеквизитПоиска,0,0); |
|||
16
Злопчинский
30.05.18
✎
17:01
|
(13) и каков результат..?
давай текущий код |
|||
17
bolder
30.05.18
✎
17:01
|
(13) И?Не заработало?
|
|||
18
progaoff
30.05.18
✎
17:01
|
СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент()); СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов"); РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование"); СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",РеквизитПоиска,0,0); |
|||
19
progaoff
30.05.18
✎
17:02
|
СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании");
СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов"); РеквизитПоиска = СправочникВидов.НайтиПоНаименованию("Банковское оборудование"); СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",РеквизитПоиска,0,0); Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 1 Тогда ТабОбъектыБанк.НоваяСтрока(); Объектов = Объектов+1; ТабОбъектыБанк.Ном = Объектов; ТабОбъектыБанк.Объект = СпрОбъекты.ТекущийЭлемент(); ТабОбъектыБанк.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер; ТабОбъектыБанк.ДатаЗаменыЭКЛЗ = СпрОбъекты.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()); ТабОбъектыБанк.Подразделение = СпрОбъекты.Подразделение; ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1; КонецЕсли; КонецЦикла; |
|||
20
bolder
30.05.18
✎
17:02
|
(18) !!!! Ты ничего не понял, похоже...
|
|||
21
bolder
30.05.18
✎
17:04
|
(20) Реквизит поиска у тебя число будет!
|
|||
22
progaoff
30.05.18
✎
17:05
|
ВыбратьЭлементыПоРеквизиту - "Строка с именем реквизита" -так?
|
|||
23
Злопчинский
30.05.18
✎
17:05
|
(21) они ж - как дети...
|
|||
24
progaoff
30.05.18
✎
17:06
|
ВыбратьЭлементыПоРеквизиту("ИмяРеквизита", "Значение"); ?
|
|||
25
bolder
30.05.18
✎
17:08
|
(22) Злоп же уже все разжевал...Наитий по наименованию вернёт 1 если есть.А Рекизит поиска надо уже по текущему объекту выставить СправочникВидов.Текщийэлемент().
|
|||
26
Злопчинский
30.05.18
✎
17:10
|
как-то так
СправочникВидов = СоздатьОбъект("Справочник.БП_ВидыОбслуживаемыхОбъектов"); Если СправочникВидов.НайтиПоНаименованию("Банковское оборудование")=0 Тогда Возврат; КонецЕсли; РеквизитПоиска = СправочникВидов.ТекущийЭлемент(); СпрОбъекты = СоздатьОбъект("Справочник.БП_ОбъектыНаОбслуживании"); СпрОбъекты.ИспользоватьВладельца(ТекущийЭлемент()); СпрОбъекты.ВыбратьЭлементыПоРеквизиту("ВидОбъекта",РеквизитПоиска,0,0); Пока СпрОбъекты.ПолучитьЭлемент() = 1 Цикл Если СпрОбъекты.НаОбслуживании.Получить(ИспользоватьДату()) = 0 Тогда Продолжить; КонецЕсли; ТабОбъектыБанк.НоваяСтрока(); Объектов = Объектов+1; ТабОбъектыБанк.Ном = Объектов; //мутный смысл нумерации ТабОбъектыБанк.Объект = СпрОбъекты.ТекущийЭлемент(); ТабОбъектыБанк.СерийныйНомер = СпрОбъекты.СерийныйНомер.ЗаводскойНомер; ТабОбъектыБанк.ДатаЗаменыЭКЛЗ = СпрОбъекты.ДатаЗаменыЭКЛЗ.Получить(ТекущаяДата()); ТабОбъектыБанк.Подразделение = СпрОбъекты.Подразделение; ОбслуживаемоеКоличество = ОбслуживаемоеКоличество + 1; КонецЦикла; |
|||
27
Злопчинский
30.05.18
✎
17:10
|
(22) ЧИТАТЬ СП! ВНИМАТЕЛЬНО!
|
|||
28
progaoff
30.05.18
✎
17:10
|
Моя все поняла, работает) Спасибо
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |