Разработка и Конфигурация · 9 мин
Как в 1С выбрать непроведенные документы
Как выбрать непроведенные документы в 1С: отбор в списке, запрос с Проведен = Ложь, консоль запросов и поиск по всем видам документов. Пошаговые инструкции.
Непроведенные документы — это документы, которые записаны в базу, но не сформировали движения по регистрам: они не влияют на остатки, взаиморасчеты и отчеты. Их часто нужно найти для доработки, удаления или массового проведения, особенно перед закрытием периода или сверкой данных.
Способ выборки зависит от задачи. Бухгалтеру обычно достаточно отбора в форме списка или универсального отчета, а разработчику нужен запрос к виртуальным таблицам или перебор видов документов через метаданные. Ниже разобраны оба подхода — от простого интерфейсного отбора до программного поиска по всей конфигурации.
Важно понимать разницу: пометка удаления и отсутствие проведения — разные состояния. Помеченный на удаление документ обычно тоже не проведен (при пометке проведение отменяется), но непроведенный документ может быть вполне рабочим черновиком, который просто еще не довели до конца.
Отбор непроведенных документов в форме списка
Самый простой способ доступен любому пользователю без прав разработчика. Откройте список нужного вида документов, например «Реализация товаров и услуг», и нажмите «Ещё → Настроить список» (в некоторых интерфейсах — кнопка отбора на панели). Добавьте условие: поле «Проведен», вид сравнения «Равно», значение «Нет». Список покажет только непроведенные документы.
В типовых конфигурациях на управляемых формах отбор часто уже вынесен в быстрые настройки: поле «Состояние» или «Проведен» доступно прямо над списком. Если такого поля нет, проверьте, что в настройке списка включен показ соответствующей колонки — иногда отбор по невидимому полю сбивает с толку.
Дополнительно можно сузить выборку по периоду, организации или ответственному. Это полезно, когда непроведенных документов много и нужно обработать их порциями — например, только за закрываемый месяц.
- 1Откройте список нужного вида документов
- 2Нажмите «Ещё → Настроить список»
- 3Добавьте отбор: Проведен = Нет
- 4При необходимости добавьте период и организацию
- 5Сохраните настройку как вариант, чтобы не настраивать заново
Запрос к документам с условием Проведен = Ложь
Программный способ — запрос к таблице документа с условием по системному полю «Проведен». У каждого документа в 1С есть стандартный реквизит Проведен типа «Булево», и по нему можно фильтровать напрямую:
ВЫБРАТЬ
РеализацияТоваровУслуг.Ссылка,
РеализацияТоваровУслуг.Дата,
РеализацияТоваровУслуг.Номер
ИЗ
Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ГДЕ
РеализацияТоваровУслуг.Проведен = ЛОЖЬ
И НЕ РеализацияТоваровУслуг.ПометкаУдаления
Обратите внимание на второе условие: без него в выборку попадут и помеченные на удаление документы, которые обычно не нужны при поиске «живых» черновиков. Если, наоборот, ищете мусор для чистки базы — условие по пометке удаления стоит включить отдельно.
Для периодических выборок добавьте условие по дате через параметры: ГДЕ Дата МЕЖДУ &Начало И &Конец. Это заметно ускорит запрос в больших базах, потому что по дате документов обычно есть индекс.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПоступлениеТоваровУслуг ГДЕ Проведен = ЛОЖЬ И НЕ ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
Сообщить(Результат.Ссылка);
КонецЦикла;Как найти непроведенные документы всех видов сразу
Когда нужен полный список непроведенных документов по всей базе, запрос к одному виду не подходит. Есть два рабочих варианта: перебор метаданных в коде и типовая обработка «Проведение документов» (в конфигурациях на БСП — «Проведение документов» в разделе администрирования).
В типовых решениях на базе Библиотеки стандартных подсистем есть обработка «Групповое изменение реквизитов» и регламентная операция проведения документов: она показывает непроведенные документы по организациям за период и позволяет провести их пакетно. Это самый безопасный путь для пользователя без программирования.
Программный перебор выглядит так: цикл по Метаданные.Документы, для каждого вида — запрос с условием Проведен = Ложь. Учтите, что не все документы могут проводиться: если у вида документа проведение запрещено (свойство «Проведение» = «Запретить»), поле Проведен у него всегда ложное, и такие документы нужно исключить из поиска, иначе получите ложные срабатывания.
Консоль запросов и универсальные отчеты
Если конфигуратор недоступен, но есть права на внешние обработки, удобна консоль запросов — она позволяет выполнить произвольный запрос и сразу увидеть результат в табличном виде. Текст запроса тот же, что и в коде: выбор из таблицы документа с условием по полю Проведен.
Ещё один вариант без программирования — универсальный отчет (в типовых конфигурациях «Универсальный отчет» строится по любому виду документов). Выберите тип «Документы», нужный вид, добавьте отбор «Проведен = Нет» и сформируйте. Плюс этого способа — результат можно сразу выгрузить в табличный документ или Excel для передачи ответственным.
В управляемых приложениях многие списки поддерживают сохранение вариантов настройки. Настройте отбор один раз и сохраните как «Непроведенные» — ссылка на такой вариант появится в панели навигации, и поиск займет одну секунду.
Проверка результата и частые ошибки
После выборки убедитесь, что результат соответствует ожиданиям. Откройте несколько документов из списка: у непроведенного документа в типовых формах нет «подсветки проведения», кнопка называется «Провести» (а не «Отмена проведения»), а команда показа движений недоступна или показывает пустой набор.
Типичная ошибка — смешение пометки удаления и отсутствия проведения. Если задача «найти черновики», помеченные на удаление нужно исключать; если задача «почистить базу» — наоборот, искать именно их. Ещё одна ошибка — отбор по всем видам документов без учета запрета проведения: в выборку попадают документы, которые не проводятся по своей природе (например, некоторые служебные).
В клиент-серверных базах большой объем запрос без ограничения периода может выполняться долго и блокировать работу. Всегда ограничивайте выборку датами, а массовые операции выполняйте в нерабочее время или через регламентные задания.
Что делать с найденными документами
Зависит от цели поиска. Если это рабочие черновики — их нужно дозаполнить и провести, желательно через типовую обработку группового проведения, чтобы видеть ошибки по каждому документу. Документы, которые не проводятся из-за ошибок (не заполнены реквизиты, нет остатков на складе), обрабатывайте индивидуально — пакетное проведение просто пропустит их или завершится с ошибками.
Если документы устарели и не нужны, пометьте их на удаление и затем выполните штатную процедуру «Удаление помеченных объектов». Не удаляйте документы напрямую запросами или обработками в обход контроля ссылочной целостности — это гарантированно приведет к битым ссылкам в других объектах.
Как выбрать действие
Частые вопросы
Почему в отборе нет поля «Проведен»?
У этого вида документов в конфигураторе запрещено проведение, поэтому системного поля нет. Такие документы не могут быть «непроведенными» по определению — отбирайте их по другим признакам, например по пометке удаления или заполненности ключевых реквизитов.
Как отличить непроведенный документ от помеченного на удаление?
В списке помеченные документы обычно отображаются с перечеркнутой пиктограммой. Программно это разные поля: Проведен (булево) и ПометкаУдаления (булево). При пометке на удаление платформа автоматически отменяет проведение, поэтому помеченный документ всегда непроведен, но не наоборот.
Можно ли найти непроведенные документы без прав разработчика?
Да. Достаточно прав на просмотр списка документов: настройка отбора «Проведен = Нет» доступна любому пользователю. Универсальный отчет и типовая обработка проведения документов тоже работают без конфигуратора — нужны только права на соответствующие объекты.
Почему запрос по всем видам документов выполняется долго?
Каждый вид документа — отдельная таблица, и перебор десятков таблиц с полным сканированием занимает время. Ограничивайте выборку периодом, исключайте виды с запрещенным проведением и выполняйте такие операции вне пиковой нагрузки.
Что будет, если провести старые непроведенные документы?
Документы сформируют движения своей датой: изменятся остатки, взаиморасчеты и, возможно, себестоимость в прошлых периодах. Если периоды закрыты и отчетность сдана, это создаст расхождения. Перед проведением проанализируйте последствия и сделайте резервную копию.
Что важно запомнить
Непроведенные документы выбираются отбором «Проведен = Нет» в списке или запросом с условием Проведен = ЛОЖЬ. Исключайте помеченные на удаление и виды с запрещенным проведением, ограничивайте период, а перед массовыми операциями делайте резервную копию.