Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
16 фев 2025, 14:41

Отбор в отчёте приводит к ошибке формирования и выводит ненужные строки

Автор IVAN0VDD, 27 июл 2018, 13:41

0 Пользователей и 1 гость просматривают эту тему.

IVAN0VDD

Ребята, всем привет.

Кто знает подскажите что можно тут поделать.

Вчера пообщался с товарищем (опытным 1с-ником), но не показывал ему ещё этот отчёт. Так он сказал что отчёт нельзя строить запросом по документам, точнее это не совсем корректно и возможно что это и есть причина создавшейся ситуации с отборами.

Собственно лирическое отступление заканчиваю и перехожу прямо к делу.

Есть у нас замечательная конфигурация в ERP 2.4 на работе и в ней подрядная организация сделала доработку, связанную с врачами и с договорами. Создаются документы договоров и записываются, а затем по ним строится отчёт.

При попытке сделать отбор по реквизиту КонецДействия и ПометкаУдаления отчёт стал выводить некорректные данные.

Самое интересное что документы помеченные на удаление нельзя удалять, они будут где-то там участвовать ещё, и не понятно почему нельзя пользователю запретить их помечать на удаление, ведь это и есть корень проблемы. Но кажется если я не разберусь как делать отбор придётся прибегнуть к этому и заставить его их просто не ставить на удаление.

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

Sy4a

Цитата: IVAN0VDD от 27 июл 2018, 13:41Так он сказал что отчёт нельзя строить запросом по документам, точнее это не совсем корректно и возможно что это и есть причина создавшейся ситуации с отборами.
Какая разница к чему строить запрос к регистру или к документу, в итоге и то и то является таблицами в базе данных.

Цитата: IVAN0VDD от 27 июл 2018, 13:41Самое интересное что документы помеченные на удаление нельзя удалять, они будут где-то там участвовать ещё, и не понятно почему нельзя пользователю запретить их помечать на удаление, ведь это и есть корень проблемы. Но кажется если я не разберусь как делать отбор придётся прибегнуть к этому и заставить его их просто не ставить на удаление.
Странная какаято схема у вас) если нужно какието отборы и признаки вести то проще создать необходимые реквизиты в конфигурации и заполнять их и по ним отборы делать, а брать за основу построения данных предопределенный реквизит пометки удаления не есть гуд. так как порой создают кривые документы и потом их реально нужно удалить, для этого и есть пометка удаления, а в отборе ставить пометка удаления = ложь обычно не делают так как это условие в сам запрос пихают сразу.
По картинке отборов ничего не понятно, впринципе неимеет значения по каким полям отбор делать и всё должно работать. У самого ERP стоит правда версии 2.1.3.
Скиньте лучше запрос по которому отчет строится, вероятнее всего что он не корректно сделан.
А ещё лучше проганите это запрос с вашими отборами в консоли запросов и посмотрите что там будет.

IVAN0VDD

Цитата: Sy4a от 27 июл 2018, 14:39создать необходимые реквизиты в конфигурации и заполнять их и по ним отборы делать

Спасибо большое, совершенно верно. По другому реквизиту четко работает....


Добавлено: 31 июл 2018, 09:41


Решение найдено.

Необходимо отбор по пометке удаления установить выше чем отбор по другим реквизитам.

Из-за того, что отбор по пометке удаления выполнялся раньше чем отбор по другому реквизиту в отчет попадали ненужные поля.

Вот скриншот правильной настройки отборов отчета:

IVAN0VDD

ребята всё неверно было, не делайте так как в моём ответе выше, тут другое решение

Проблема решилась только добавлением реквизита в отчёт с условием, этот реквизит был .ПометкаУдаления а условие у него было такое:

ВЫБОР
КОГДА ИмяДокумента.ПометкаУдаления = ИСТИНА
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ


и только сравнение этого реквизита с другими пометками удаления в этом запросе дало результат и я смог сделать такой отбор который мне был нужен.

всё из-за соединений таблиц я так понимаю и из-за соединений некорректно отображаются пометки удаления от документа и справочника

AIFrame

ВЫБОР
    КОГДА ИмяДокумента.ПометкаУдаления = ИСТИНА
        ТОГДА ИСТИНА
    ИНАЧЕ ЛОЖЬ
КОНЕЦ

Лишняя нагрузка.
ГДЕ
    ИмяДокумента.ПометкаУдаления = ИСТИНА

Сделает то же самое.
Только ты теперь в этом отчете будешь видеть исключительно данные, попадающие в это условие (.ПометкаУдаления = ИСТИНА).

Цитата: IVAN0VDD от 30 июл 2018, 12:52Из-за того, что отбор по пометке удаления выполнялся раньше чем отбор
Бессмысленно с позиции логического И.
а=б И ц=д И ж=з
Что изменится от порядка условий? Подсказка: ничего.
У построителя нет предварительных отсевов иерархически. Он добавляет свои условия к запросу как есть.

Цитата: Sy4a от 27 июл 2018, 14:39нельзя строить запросом по документам, точнее это не совсем корректно
Смотря что нужно. Если результаты продаж, логичнее обращаться к регистру накопления продаж, т.к. там данные уже сагрегированны и можно получать срезы.
Если же документ не создает движений по регистру или нужную информацию регистром не получить (элементарно, информацию по непроведенным документам), то кроме как к документам из списка обратиться то и некуда.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск