Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

СКД к тексту запроса добавляется непонятный авто отбор "NULL В(&П)"

СКД к тексту запроса добавляется непонятный авто отбор "NULL В(&П)"
Я
   NikP123
 
04.08.20 - 14:11
Есть отчет на СКД, и если пользователь устанавливает определенный отбор, то к одной (только к ней, а их много) из временных таблиц лепится NULL В(&П), хотя логики в этом быть не может! У этой временной таблицы нет полей с такими ни именами, ни псевдонимами, ни типами как у этого отбора.. В чем может быть дело? Можно ли отключить автозаполнение отдельно только для временной таблицы?
Отключать автозаполнение для всего набора данных не предлагать.
   NikP123
 
1 - 04.08.20 - 14:31
По какому вообще принципу отбор автоматически добавляется в запрос в скд, где-то можно почитать?
Что-бы это был официальный перечень случаев?
   toypaul
 
2 - 04.08.20 - 14:42
Можно почитать тут http://catalog.mista.ru/1c/articles/1219807/

отключить можно указав в каких местах отбор по этому полю должен применяться. но это еще зависит от релиза. может не взлететь
   Вафель
 
3 - 04.08.20 - 14:54
нет полей - нет выборки
   NikP123
 
4 - 04.08.20 - 15:00
(2) не нахожу, то о чем вы написали, не могли бы точнее описать?
   Franchiser
 
5 - 04.08.20 - 15:03
   Franchiser
 
6 - 04.08.20 - 15:04
С определенной версии платформы поменялось поведение скд в части объединения наборов данных , читай изменения к релизам.
   Franchiser
 
7 - 04.08.20 - 15:06
В твоём случае нужно попробовать разыменование полей
   NikP123
 
8 - 04.08.20 - 15:16
(7) Вроде сделал, но не работает. То есть просто в выборке есть поле, у которого есть реквизит с именем, как и отбор. Наверно поэтому в суд оно и добавляется, хоть и не понятно почему как null...
Так вот я в компанией это таблицы написал {Поле.Реквизит.* КАК ИмяОтличноеОтНазванияОтбора}
И не сработало
   NikP123
 
9 - 04.08.20 - 15:35
Franchiser, помоги, пожалуйста!)
   Ager
 
10 - 04.08.20 - 16:00
В последнем модуле обмена с Битрикс есть код:
// бага в платформе.. 

ТекстЗапроса = Запрос.Текст;  
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П ", "ИСТИНА = ИСТИНА ");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П1", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П2", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П3", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П4", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П5", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL = &П6", "ИСТИНА = ИСТИНА");
            
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П)", "ИСТИНА = ИСТИНА ");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П1)", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П2)", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П3)", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П4)", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П5)", "ИСТИНА = ИСТИНА");
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "NULL В (&П6)", "ИСТИНА = ИСТИНА");
   Ager
 
11 - 04.08.20 - 16:01
Возможно проще заменить текст запроса, а не разбираться с багом.
   NikP123
 
12 - 04.08.20 - 16:34
(10) Здраво, спасибо
   Franchiser
 
13 - 04.08.20 - 16:45
Как стало    Как было    Результат изменения
Система компоновки данных.
При добавлении отбора в запрос набора данных схемы компоновки данных, содержащего объединения, отбор обязательно добавляется во все части объединения, если отбор удалось поместить хотя бы в одну часть объединения. При этом, в тех частях объединения, в которых отбор применить не удается из-за отсутствия в них полей, использующихся в отборе, в добавляемые условия вместо отсутствующего поля проставляется выражение NULL.
В режиме совместимости с версией 8.3.12 поведение не изменилось.

При добавлении отбора в запрос набора данных схемы компоновки данных, содержащего объединения, отбор помещался только в те части объединения, в которых было доступно поле, к которому применяется отбор.    Унифицировано применение отборов в системе компоновки данных между набором данных-объединение и набором данных-запрос с объединением в запросе.

Источник: https://dl03.1c.ru/content/Platform/8_3_13_1644/1cv8upd_8_3_13_1644.htm#03441b2e-7856-11e8-a3f7-0050569f678a
   Franchiser
 
14 - 04.08.20 - 16:46
Это фича начиная с 8.3.1644. каждый от этого избавляется по разному.

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