|
|
|
1C Запрос. В 27 платформе запрос выдает Документ.Менеджер.Наименование = NULL А в 26 = ""? Злопчинский, laeg, sergey yevsenya, Доминошник, Ненавижу 1С, ansh15, Гость из Мариуполя, igouranga, Indian, Timon1405, leonidkorolev, lubitelxml, Крэкпэк, RomanYS, Prog_man, craxx, Олдж, Мультук, b_ru, av_x86, okmail, Lazy Stranger, ЯнСмит, zva, ДиВаH2, ads55, Trinitron, denk32, banco, Alex7771, e053nk, SleepyHead, Anchorite, Voronve
| ☑ | ||
|---|---|---|---|---|
|
0
Emichael
01.11.25
✎
18:11
|
Вечер добрый, коллеги ! Платформа 8.3.27.1688. Вопрос такой - случайно заметил в консоли запросов что запрос:
"Выбрать ЗаказПоставщику.Ссылка КАК Заказ, ЗаказПоставщику.Менеджер.Наименование КАК Наименование ИЗ Документ.ЗаказПоставщику КАК ЗаказПоставщику" В результате у Наименование = Null при пустой ссылке Менеджер. Задумался. Запустил 26 платформу, сформировал тот же запрос и в результате получил "". Понятно, что получение таким образом данных считается неправильным :-). Но 1С ники в типовых решениях тоже страдают получением в запросе Наименование таким же образом. Может кто видел в описании 27 платформы описание такого поведения языка запросов? Или это ошибка платформы? |
|||
|
1
Мультук
гуру
01.11.25
✎
18:23
|
(0)
А так ? Одинаковые результаты в реквизитах т1, т2? ВЫБРАТЬ ПЕРВЫЕ 100 ЗаказПоставщику.Ссылка КАК Ссылка, ЗаказПоставщику.Менеджер КАК Менеджер, ЗаказПоставщику.Менеджер.Наименование КАК МенеджерНаименование, ТИПЗНАЧЕНИЯ(ЗаказПоставщику.Менеджер) как т1, ТИПЗНАЧЕНИЯ(ЗаказПоставщику.Менеджер.Наименование) как т2 ИЗ Документ.ЗаказПоставщику КАК ЗаказПоставщику Имхо так правильно. Во избежании последствий. Ну или "потом" разгребать что там в "Наименование" Выбрать
ЗаказПоставщику.Ссылка КАК Заказ,
ЕСТЬNULL(ЗаказПоставщику.Менеджер.Наименование, "") КАК Наименование
ИЗ Документ.ЗаказПоставщику КАК ЗаказПоставщику
|
|||
|
2
lubitelxml
01.11.25
✎
18:24
|
(0) 2 точки в запросе рождает неявное (ну или как оно там называется) соединение таблиц, со всеми полями, что приводит к тормозам. Про запрос по таблице документов - вообще отдельная тема, но сейчас не про это. Сделай Левое соединение с таблицей Справочник.Пользователи и через ЕСТЬNULL выведи правильно наименование.
|
|||
|
3
Ненавижу 1С
гуру
01.11.25
✎
18:27
|
(0) какие субд в обоих случаях? Есть ли уверенность, что в обоих случаях у менеджера пустая ссылка?
|
|||
|
4
Ненавижу 1С
гуру
01.11.25
✎
18:28
|
(0) опять же правильно ли вы интерпретируете данные. Например проблема в консоли или вы погружаете в типизированную колонку
|
|||
|
5
RomanYS
01.11.25
✎
18:30
|
(0) это база, которая не зависит от версии платформы. Должен быть null при описанных условиях.
|
|||
|
6
RomanYS
01.11.25
✎
18:32
|
(2) Делать явное соединение не обязательно, ЕстьNULL можно и к неявному соединению (полю с 2+ точками) применять
|
|||
|
7
Emichael
01.11.25
✎
18:58
|
Вопрос же не в этом. Технически я понимаю к чему это приводит и из-за чего. Попробуйте на 26 платформе сделать данный запрос. Изменилось поведение - да. Джуны (да и сами 1С ники) часто получают наименование через точку. Только раньше это обрабатывалось нормально, а теперь выпадет в ошибку. Ну вот я и хочу понять это теперь норма стало что любой реквизит через точку есть NULL или это особенность 27 платформы? И хотелось бы ссылочку на изменение работы запроса в платформе 27. Я пролистал описание изменений 27 платформы связанные со словом Null и ничего не нашел.
|
|||
|
8
craxx
01.11.25
✎
19:02
|
(7) Вероятно, баг, но очень полезный.
Заставит думать и правильно писать запросы. |
|||
|
9
Мультук
гуру
01.11.25
✎
19:10
|
(0)
В файловой базе на движке 8.3.25.1546 запрос при пустом реквизите "Менеджер" ЗаказПоставщику.Менеджер.Наименование возвращает NULL, как и положено. 8.3.26 у меня локально нет. Что там ломали, что там чинили - я, увы, не в курсе. |
|||
|
10
Emichael
01.11.25
✎
19:10
|
Возможно вылезет где то в старых разработках, возможно изменится логика работы отчетов и обработок где не заморачивались проверкой на Null и ставили условие на ПустоеЗначение реквизитов полученных через 2 точки.
|
|||
|
11
craxx
01.11.25
✎
19:16
|
(10) Режим совместимости конфы какой?
|
|||
|
12
RomanYS
01.11.25
✎
19:18
|
(10) бред. Не могли не заморачиваться. Должен быть null
|
|||
|
13
Emichael
01.11.25
✎
19:50
|
(12) Про режим совместимости забыл Надо проверить Чисто ииз спортивного интереса :-)
|
|||
|
14
Ненавижу 1С
гуру
01.11.25
✎
22:24
|
(13) автор, ты (3) и (4) чего проигнорировал?
Я вот считаю, что ошибка скорее в твоих действиях, а не платформе |
|||
|
15
Garykom
гуру
01.11.25
✎
22:49
|
Скорее всего там Менеджер с пустым Наименование
Должно быть NULL |
|||
|
16
Злопчинский
02.11.25
✎
08:15
|
(15) если там менеджер с пустым наименованием - значит в "менеджер" вполне себе валидная ссылка на существующий объект данных. У этого объекта ПУСТОЕ "наименование", "наименование" - тип Строка. Пустое Наименование - там что? Пустая строка? Или Null?
|
|||
|
17
Мультук
гуру
02.11.25
✎
10:36
|
(16)
В (1) я привёл запрос, который "раскрывает" все эти вопросы, но ТС так и не решился ответить на них |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |