1С СКД как в отчет вывести сообщение если документ не проведен или помечен на удаление
Продолжаем изучать СКД (Систему компоновки данных), сегодня поговорим про условия в запросах, с ними обязательно нужно уметь работать, так как практически в каждом созданном отчете с помощью СКД они есть. Условий может быть просто огромное количество, сегодня рассмотрим вот такое, есть отчет в котором отображается информация по двум документам «Актам» и «Счет Фактурам», необходимо сделать так чтобы в отчет не попадали не проведенные, помеченные на удаление документы и выводилось сообщение например «Не проведен/Помечен на удаление». Реализовать все это можно с помощью добавления условий в конструкторе запроса.
Для того чтобы лучше понять этот пример, необходимо прочитать предыдущею статью, в которой я описывал процесс создания отчета с использованием временных таблиц, так как я буду использовать именно его и для решения задач подобного рода без них не обойтись.
В простых запросах отобрать только проведенные документы еще проще.
И так у нас есть отчет следующего вида.
В него попадают все акты и созданные на их основе счет фактуры, не важно помеченные они на удаление, проведенные или нет, так же в нем будут отображаться акты и счет фактуры не связанные между собой, просто напротив будет пустое поле.
Нам необходим добавить проверку документов и если скажем акт не проведен или помечен на удаление, выводить в соответствующие поле сообщение.
1С СКД использование условий в запросах
Для того чтобы все это реализовать необходимо немного изменить запрос, добавив пару условий. Сначала открываем временную таблицу «Отобранные Акты» в ней мы объединяли поля табличной части и документа. Переходим во вкладку условие и добавляем его.
Акт.Проведен = Истина
Дальше точно такое же условие добавляем во временную таблицу «Отобранные СФ».
СФ.Проведен = Истина
Теперь в отчет не будут попадать документы которые не проведены либо помечены на удаление.
Для того чтобы реализовать вывод сообщений необходимо в запросе изменить поля «Отобранные.Акт» и «Отобранные.СФ».
В открывшемся окне добавляем проверку.
ЕСТЬNULL(ОтобраныеАкты.АктСумма, "Не проведен/Помечен на удаление")
Для поля «Отобранные.СФ» пишем тоже самое.
ЕСТЬNULL(ОтобраныеСФ.СФ, "Не проведен/Помечен на удаление")
Теперь будет выполнять проверка на наличие ссылки, т.е. если ссылки на документ нет, то там будет NULL, и если он есть то будет выводиться сообщение «Не проведен/Помечен на удаление».
Так как мы изменили выбранные поля в запросе, их так же необходимо перевыбрать в настройках основной схеме компоновки данных.
В принципе на этом все, можно проверять что получилось. Для начала откроем Акты и скажем один под номером «000000001» не будем проводить.
Далее откроем счет фактуры, тут так же один документ с номером «000000003» не проведем а один с номером «000000004» пометим на удаление.
И сформируем отчет, видим что не проведенные и помеченные на удаления документы не попали в отчет, а на их месте выводиться соответствующие сообщение.
Вот один пример использования условий в запросах. На самом деле это самый простой пример, на практике будет все намного сложней, но зная эти основы вы легко сможете со всем разобраться, ну а если у вас возникли вопросы то пишите, будем решать их вместе!
Помог!