|
Условие в результате запроса( | ☑ | ||
---|---|---|---|---|
0
MrFilO
24.01.17
✎
12:46
|
Товарищи, уверен, что для местных это выглядит элементарно, но я в упор не вижу способа обратиться к результату запроса. Очень мало опыта.
Вот процедура Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | МО.Менеджер КАК ИДМенеджер |ИЗ | (ВЫБРАТЬ | МенеджерыОрганизации.Супервайзер КАК Супервайзер, | МенеджерыОрганизации.Ссылка КАК Менеджер, | МенеджерыОрганизации.менеджерСети.Код КАК КодМенеджера | ИЗ | Справочник.МенеджерыОрганизации КАК МенеджерыОрганизации | ГДЕ | МенеджерыОрганизации.ПометкаУдаления = ЛОЖЬ | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | МенеджерыОрганизации.Супервайзер, | МенеджерыОрганизации.Ссылка, | МенеджерыОрганизации.менеджерТрадиции.Код | ИЗ | Справочник.МенеджерыОрганизации КАК МенеджерыОрганизации | ГДЕ | МенеджерыОрганизации.ПометкаУдаления = ЛОЖЬ) КАК МО |ГДЕ | МО.КодМенеджера = &КодМенеджера"; Запрос.УстановитьПараметр("КодМенеджера", КодМенеджера); МенеджерЗапрос = Запрос.Выполнить().Выгрузить(); Если МенеджерЗапрос.Количество() > 0 Тогда Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); Иначе Возврат Формат(Число(?(обПустоеЗначение(КодМенеджера),0,КодМенеджера)),"ЧГ=0"); КонецЕсли; Хочу вставить проверку для значения поля ИДМенеджера на НЕОПРЕДЕЛЕНО и NULL, типа Если МенеджерЗапрос.КодМенеджера = Неопределено ИЛИ МенеджерЗапрос.КодМенеджера = NULL Тогда МенеджерЗапрос.КодМенеджера = 0 КонецЕсли; НО, какое бы поле не указал - ошибка - "поле объекта не обнаружено"((( |
|||
1
MrFilO
24.01.17
✎
12:47
|
Новое условие пытаюсь всунуть перед уже имеющимся
|
|||
2
shadow_sw
24.01.17
✎
12:48
|
а что мешает проверять на эти условия прям в запросе, конструкцией Выбор когда тогда конец?
|
|||
3
Ёпрст
24.01.17
✎
12:48
|
Если МенеджерЗапрос.пустой() Тогда
Возврат 0 |
|||
4
MrFilO
24.01.17
✎
12:49
|
По идее в результате запроса описать метод "Выбрать()", но как его 3-им указать?( или вообще не туда копаю
|
|||
5
shadow_sw
24.01.17
✎
12:49
|
ЕСТЬNULL(МенеджерЗапрос.КодМенеджера,0)
|
|||
6
MrFilO
24.01.17
✎
12:49
|
(2) не, нужно выбрать все записи, а пустые забить нулями
|
|||
7
Джинн
24.01.17
✎
12:49
|
Что это такое вообще? Думаю проблема не в коде, а в логике. На кой ляд Вам код? Зачем объединение?
|
|||
8
Джинн
24.01.17
✎
12:50
|
(6) В запросе и забейте.
|
|||
9
MrFilO
24.01.17
✎
12:50
|
код не мой, разраб в больнице, приходится мне отдуваться, т.к. какое-то понимание есть. (7)
|
|||
10
mkalimulin
24.01.17
✎
12:51
|
(0) У тебя в результате запроса три колонки:
ИДменеджера, ссылка, код к ним и обращайся. |
|||
11
shadow_sw
24.01.17
✎
12:51
|
(8) через выбор все и сделать :)
|
|||
12
MrFilO
24.01.17
✎
12:51
|
(5) а можно чуток подробнее, куда вставить? в условие?
|
|||
13
MrFilO
24.01.17
✎
12:52
|
ребят, не сочтите за наглость, а можно "пальцем" ткнуть, что куда написать?))
|
|||
14
shadow_sw
24.01.17
✎
12:52
|
в первый выбор и сделай
"ВЫБРАТЬ | ЕстьNULL(МО.Менеджер,0) КАК ИДМенеджер |
|||
15
MrFilO
24.01.17
✎
12:54
|
"ВЫБРАТЬ
| ЕстьNULL(МО.Менеджер,0) КАК ИДМенеджер //| МО.Менеджер КАК ИДМенеджер |ИЗ | (ВЫБРАТЬ | МенеджерыОрганизации.Супервайзер КАК Супервайзер, | МенеджерыОрганизации.Ссылка КАК Менеджер, | МенеджерыОрганизации.менеджерСети.Код КАК КодМенеджера | ИЗ Сделал так - "Поле объекта не обнаружено "КодМенеджера"" |
|||
16
shadow_sw
24.01.17
✎
12:55
|
параметры?
|
|||
17
MrFilO
24.01.17
✎
12:55
|
черт, стоп, мой косяк дальше)
|
|||
18
MrFilO
24.01.17
✎
12:56
|
блин, не помогло, все равно
{Форма.Форма.Форма(288)}: Преобразование значения к типу Число не может быть выполнено Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); Это и было изначальной проблемой |
|||
19
shadow_sw
24.01.17
✎
12:58
|
смотри отладчиком, что у тебя в
МенеджерЗапрос[0].ИДМенеджер |
|||
20
MrFilO
24.01.17
✎
13:02
|
(19) Есть и код и т.п., все заполнено
|
|||
21
MrFilO
24.01.17
✎
13:02
|
а как скрин приложить?)
|
|||
22
MrFilO
24.01.17
✎
13:13
|
(19) задал условия так
Если МенеджерЗапрос[0].ИДМенеджер = Неопределено ИЛИ МенеджерЗапрос[0].ИДМенеджер = NULL Тогда МенеджерЗапрос[0].ИДМенеджер = 0 КонецЕсли; Если МенеджерЗапрос.Количество() > 0 Тогда Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); Иначе Возврат Формат(Число(?(обПустоеЗначение(КодМенеджера),0,КодМенеджера)),"ЧГ=0"); КонецЕсли; хз, что это за логика, но преобразовать в число все равно не могу |
|||
23
MrFilO
24.01.17
✎
13:15
|
Пепец, не может преобразовать в число даже корректные данные, в отладчике видно, что КОДМенеджера заполнен (000017), но все равно на следующем условии валится(
|
|||
24
nordbox
24.01.17
✎
13:22
|
(23) Нули лидирующие убери
|
|||
25
nordbox
24.01.17
✎
13:27
|
Функция УбратьНули(Номер)
Пока Лев(Номер, 1) = "0" Цикл Номер = Прав(Номер, СтрДлина(Номер) - 1); КонецЦикла; Возврат Номер; КонецФункции |
|||
26
MrFilO
24.01.17
✎
13:32
|
(25) в МенеджерЗапрос[0].ИДМенеджер содержится значение "Желудов Игорь", не понимаю, на кой черт его в число преобразовывать?
|
|||
27
MrFilO
24.01.17
✎
13:32
|
(25) а вот уже КодМенеджера содержит его код с нулями
|
|||
28
MrFilO
24.01.17
✎
13:33
|
(25) ругается то именно на попытку преобразовать ИДМенеджер, кто эту ересь писал...
|
|||
29
nordbox
24.01.17
✎
13:38
|
Ты же в (23) говорили что КОДМенеджера заполнен (000017)
я тебе и говорю что сделать ИДменеджера это другое |
|||
30
MrFilO
24.01.17
✎
13:39
|
(29) я понял, но ошибка то
{Форма.Форма.Форма(289)}: Преобразование значения к типу Число не может быть выполнено Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); |
|||
31
nordbox
24.01.17
✎
13:40
|
(28) Вот почему он ИДМенегера крутит
Если МенеджерЗапрос[0].ИДМенеджер = Неопределено ИЛИ МенеджерЗапрос[0].ИДМенеджер = NULL Тогда МенеджерЗапрос[0].ИДМенеджер = 0 КонецЕсли; |
|||
32
MrFilO
24.01.17
✎
13:41
|
так без этого условия тоже, это условие выше, на проверку НУЛЛ или неопределено я попробовал воткнуть, она секйчас закоментирована, но ошибка та же
|
|||
33
nordbox
24.01.17
✎
13:49
|
Тут ни чего супер нет к пониманию
Если ИДМенегера пусто то насильно присвоить ему "0" если нет то оставить, далее.. Либо вернуть ноль из ИДМенегера либо вернуть КОДМенегера |
|||
34
nordbox
24.01.17
✎
13:50
|
Ну попробуй через
Попытка Исключение правда так не красиво делать )) |
|||
35
MrFilO
24.01.17
✎
13:54
|
(33) нет, ну попытка попыткой, не совсем понимаю что это условие означает
Если МенеджерЗапрос.Количество() > 0 Тогда Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); Иначе Возврат Формат(Число(?(обПустоеЗначение(КодМенеджера),0,КодМенеджера)),"ЧГ=0"); КонецЕсли; исходя из вычисления значения выражения получается, что МенеджерЗапрос[0].ИДМенеджер = Евгений Пупкин, Код у него 000017, что и зачем возвращать? почему пытаемся вроде правильное значение Евгений Пупкин преобразовать в число? |
|||
36
Волшебник
модератор
24.01.17
✎
13:54
|
(9) Что с разрабом? Руки переломали?
|
|||
37
MrFilO
24.01.17
✎
13:55
|
(33) "Тут ни чего супер нет к пониманию
Если ИДМенегера пусто то насильно присвоить ему "0" если нет то оставить, далее.. " вот это условие я дописывал, оно не влияет на образование проблемы. |
|||
38
MrFilO
24.01.17
✎
13:56
|
(36) Аппендикс лопнул вроде позавчера, в реанимации
|
|||
39
nordbox
24.01.17
✎
14:04
|
Нуууу.....
если ИДМенеджер=Пупкин то строка Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); действительно не понятна Может он раньше с этим ИДМенегером что то делал? |
|||
40
MrFilO
24.01.17
✎
14:09
|
(39) хз, оставил так
Если МенеджерЗапрос.Количество() > 0 Тогда //Возврат Формат(Число(МенеджерЗапрос[0].ИДМенеджер),"ЧГ=0"); Возврат МенеджерЗапрос[0].ИДМенеджер; Иначе Возврат Формат(Число(?(обПустоеЗначение(КодМенеджера),0,КодМенеджера)),"ЧГ=0"); КонецЕсли; вроде все огонек. Пойду бухов трясти, все ли у них норм после таких телодвижений) |
|||
41
nordbox
24.01.17
✎
14:09
|
(36) Перепиши этот кусок кода как ты его видишь сам
|
|||
42
MrFilO
24.01.17
✎
14:10
|
(41) так и сделал) погоняю, чуть что отпишу) спасибос за помощь)
|
|||
43
MrFilO
24.01.17
✎
14:23
|
(41) Крч, исходя из логики, в условии стояла проверка на МенеджерЗапрос[0].ИДМенеджер.Код, который как раз содержит 000017, и простое его преобразование в 17. Добавил "Код" - завелось
... рукалицо |
|||
44
nordbox
24.01.17
✎
14:25
|
(43) Однако.....
)) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |