Вопрос по запросу

1. Krotov_Valery 21.03.24 10:09 Сейчас в теме
Добрый день друзья. Имеется самописный регистр сведений с лишними записями которые требуется удалить. Вопрос как их выбрать? Например на скрине видим что в ТЧ документа который сделал записи в РС количество строк меньше чем в регистре, и эту лишнюю строку требуется удалить. Мусорные строки не бьются в документом по колонке Количество.
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
15. Sashares 34 21.03.24 14:28 Сейчас в теме
(14)Запрос на скрине конечно работать не будет.
У вас одновременно условия ТЧДокумента.Ссылка = &Ссылка и ТЧДокумента.Ссылка Есть Null.
Из-за условия ТЧДокумента.Ссылка = &Ссылка устанавливается внутреннее соединение.
При внутреннем соединении Null быть не может. И результат пустой.

Если делаете отбор по ТЧДокумента.Ссылка = &Ссылка, то результат надо сначала во временную таблицу поместить, а потом уже эту временную таблицу соединять с РС.
И в этом запросе с РС уже условие ТЧДокумента.Ссылка Есть Null.

Либо уберите в вашем запросе отбор
ТЧДокумента.Ссылка = &Ссылка
тоже будет работать.

Но учтите, что у вас в РС 2 поля количества, а в документе, как я понимаю одно.
Тут скорее надо 2 разных запроса делать, когда количество выдано, и когда запланировано.
С отбором по статусу.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Sashares 34 21.03.24 11:14 Сейчас в теме
(1)Отобрать данные регистра только по данному документу.
Соединить выбранные данные регистра с табличной частью данного документа по всем полям левым соединением.
Задать условие на NULL по полю ТЧ.
5. Krotov_Valery 21.03.24 11:48 Сейчас в теме
(3) Предлагаете вот такой способ? Пробовал, не получилось. По какому конкретно полю ТЧ условие на Null задавать? Ну и если отбирать данные по конкретному документу, то запрос в цикле придется делать. Документов-то много.
Прикрепленные файлы:
10. Sashares 34 21.03.24 12:28 Сейчас в теме
(5)
Регистр сведений подчинен регистратору?
Если да, то соединяться по всем полям регистра и регистратору с ТЧ.

По какому конкретно полю ТЧ условие на Null задавать?

По любому. Строки в ТЧ по данной строке регистра не будет, все поля в ТЧ будут NULL.

Пробовал, не получилось.

Приводите ваш вариант, можно будет сказать, что не так в нем.
11. Krotov_Valery 21.03.24 12:45 Сейчас в теме
(10)
Регистр независимый.
Прикрепленные файлы:
12. Sashares 34 21.03.24 13:30 Сейчас в теме
(11)Еще по количеству надо соединить.
Отличия же у вас по полю количество.
Причем у вас 2 ресурса Количества.

Еще раз.
Смысл в следующем:
Нужно соединить по всем полям регистра и всем полям ТЧ, по которым формируются записи в регистр, чтобы было видно, по каким записям регистра нет соответствующей строки в ТЧ.
13. Krotov_Valery 21.03.24 13:43 Сейчас в теме
(12) К сожалению не помогло
Прикрепленные файлы:
14. Krotov_Valery 21.03.24 13:48 Сейчас в теме
(13) Любопытно, почему-то правильно работает вот такое условие.

ГДЕ
ТЧДокумента.Ссылка Есть НЕ NULL

Но при условии в соединении на Неравенство по полю количеству.
15. Sashares 34 21.03.24 14:28 Сейчас в теме
(14)Запрос на скрине конечно работать не будет.
У вас одновременно условия ТЧДокумента.Ссылка = &Ссылка и ТЧДокумента.Ссылка Есть Null.
Из-за условия ТЧДокумента.Ссылка = &Ссылка устанавливается внутреннее соединение.
При внутреннем соединении Null быть не может. И результат пустой.

Если делаете отбор по ТЧДокумента.Ссылка = &Ссылка, то результат надо сначала во временную таблицу поместить, а потом уже эту временную таблицу соединять с РС.
И в этом запросе с РС уже условие ТЧДокумента.Ссылка Есть Null.

Либо уберите в вашем запросе отбор
ТЧДокумента.Ссылка = &Ссылка
тоже будет работать.

Но учтите, что у вас в РС 2 поля количества, а в документе, как я понимаю одно.
Тут скорее надо 2 разных запроса делать, когда количество выдано, и когда запланировано.
С отбором по статусу.
2. anton13m 2 21.03.24 10:45 Сейчас в теме
Хоть структуру регистра покажите о котором говорите. Из картинки и текста ничего не понятно.
7. Krotov_Valery 21.03.24 11:59 Сейчас в теме
(2) Структура
Прикрепленные файлы:
4. soft_wind 21.03.24 11:20 Сейчас в теме
так у вас в регистре все "правильно" записано что в документе то и в регистре!
наведите порядок в документе! удалите строчки где нет количества! и перепроведите документ
(или что там в нем в РС пишет?)
6. Krotov_Valery 21.03.24 11:55 Сейчас в теме
В документе правильно. Неправильно была обработка проведения прописана и по этой причине появлялись лишние записи. Сейчас алгоритм поправлен, нужно привести РС к актуальному состоянию, но функционалом постоянно пользуются пользователи и документов требуемых к перепроведению около 10 тыс. База высоконагруженная - в среднем 5-10 тыс активных пользователей круглосуточно и просто так взять и перепровести все документы можно только в технологическое окно раз в неделю в котором и так много работы надо уместить. Поэтому записи нужно удалить без перепроведения.
8. Krotov_Valery 21.03.24 12:06 Сейчас в теме
Упрощу вопрос. Есть 2 временных таблицы, как их соединить так, чтобы получить в выборке данные которые отсеются после соединения этих таблиц.
9. Kvark5d 21.03.24 12:20 Сейчас в теме
ВР1 ЛЕВОЕ СОЕДИНЕНИЕ ВР2
ГДЕ
ВР2.Ссылка Есть NULL

//ссылка для примера, заменить на любой реквизит ВР2
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот