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

отключить можно указав в каких местах отбор по этому полю должен применяться. но это еще зависит от релиза. может не взлететь
3 Вафель
 
04.08.20
14:54
нет полей - нет выборки
4 NikP123
 
04.08.20
15:00
(2) не нахожу, то о чем вы написали, не могли бы точнее описать?
5 Franchiser
 
гуру
04.08.20
15:03
6 Franchiser
 
гуру
04.08.20
15:04
С определенной версии платформы поменялось поведение скд в части объединения наборов данных , читай изменения к релизам.
7 Franchiser
 
гуру
04.08.20
15:06
В твоём случае нужно попробовать разыменование полей
8 NikP123
 
04.08.20
15:16
(7) Вроде сделал, но не работает. То есть просто в выборке есть поле, у которого есть реквизит с именем, как и отбор. Наверно поэтому в суд оно и добавляется, хоть и не понятно почему как null...
Так вот я в компанией это таблицы написал {Поле.Реквизит.* КАК ИмяОтличноеОтНазванияОтбора}
И не сработало
9 NikP123
 
04.08.20
15:35
Franchiser, помоги, пожалуйста!)
10 Ager
 
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)", "ИСТИНА = ИСТИНА");
11 Ager
 
04.08.20
16:01
Возможно проще заменить текст запроса, а не разбираться с багом.
12 NikP123
 
04.08.20
16:34
(10) Здраво, спасибо
13 Franchiser
 
гуру
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
14 Franchiser
 
гуру
04.08.20
16:46
Это фича начиная с 8.3.1644. каждый от этого избавляется по разному.