СКД проставляет отборы в виртуальные таблицы. Как отключить это?
СКД проставляет отборы в виртуальные таблицы.
В моём примере: имеется 2 виртуальные таблицы, разные регистры. В них есть измерение номенклатура. Если поставить отбор по номенклатуре, то СКД ставит в обе виртуальные таблицы условия. В одной таблице это необходимо, в другой НЕТ.
Как отключить или обойти это?
В моём примере: имеется 2 виртуальные таблицы, разные регистры. В них есть измерение номенклатура. Если поставить отбор по номенклатуре, то СКД ставит в обе виртуальные таблицы условия. В одной таблице это необходимо, в другой НЕТ.
Как отключить или обойти это?
ВЫБРАТЬ
ЗаменыОстаткиИОбороты.Номенклатура КАК Номенклатура
ПОМЕСТИТЬ вт1
ИЗ
РегистрНакопления.Замены.ОстаткиИОбороты(, , , , ) КАК ЗаменыОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
СвободныеОстаткиОстаткиИОбороты.Номенклатура
ПОМЕСТИТЬ вт2
ИЗ
РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(, , , , ) КАК СвободныеОстаткиОстаткиИОбороты
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ЕСТЬNULL(вт1.Номенклатура, вт2.Номенклатура) КАК Номенклатура
ИЗ
вт1 КАК вт1
ВНУТРЕННЕЕ СОЕДИНЕНИЕ вт2 КАК вт2
ПО вт1.Номенклатура = вт2.Номенклатура
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) Anton64, Это не помогает, пробовал. Например, если поставить в 2х таблицах псевдонимы "номенклатура1" и "номенклатура2", соответственно, то условия работают, НО НЕ В ВИРТУАЛЬНЫХ ТАБЛИЦАХ.
Если поставить отбор на номенклатуру, то картина не меняется, СКД всё равно в виртуальную таблицу ставит ограничение на всё.
Если поставить отбор на номенклатуру, то картина не меняется, СКД всё равно в виртуальную таблицу ставит ограничение на всё.
нашёл возможность
Если в ВТ вписать конструкцию
{(Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура}, тогда и этот код удаляет, и свой не проставляет. Пока не понял, почему так получается. Но в целом меня это устраивает
Если в ВТ вписать конструкцию
{(Номенклатура <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)) КАК Номенклатура}, тогда и этот код удаляет, и свой не проставляет. Пока не понял, почему так получается. Но в целом меня это устраивает
Нет никакой (документированной) возможности отключить отбор по установленному автополю. Если и найдется, то это очевидно баг, требующий исправления.
Решение - не использовать поле, совпадающее по имени с измерением регистра. То есть СКД его автосоздаст, но нужно запретить его в отборах. Вместо него добавить явно поле с другим именем, например, "НоменклатураОтбор", и его явно прописать во всех где надо виртуальных таблицах. Отбор пользователю нужно делать по этому полю, для этого ему лучше дать псевдоним "Номенклатура".
Решение - не использовать поле, совпадающее по имени с измерением регистра. То есть СКД его автосоздаст, но нужно запретить его в отборах. Вместо него добавить явно поле с другим именем, например, "НоменклатураОтбор", и его явно прописать во всех где надо виртуальных таблицах. Отбор пользователю нужно делать по этому полю, для этого ему лучше дать псевдоним "Номенклатура".
РегистрНакопления.Замены.ОстаткиИОбороты(, , , , {Номенклатура.* КАК НоменклатураОтбор}) КАК ЗаменыОстаткиИОбороты
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот