К статье
Практический материал

Разработка и Конфигурация · 9 мин

Как в 1С выбрать непроведенные документы

Как выбрать непроведенные документы в 1С: отбор в списке, запрос с Проведен = Ложь, консоль запросов и поиск по всем видам документов. Пошаговые инструкции.

Непроведенные документы — это документы, которые записаны в базу, но не сформировали движения по регистрам: они не влияют на остатки, взаиморасчеты и отчеты. Их часто нужно найти для доработки, удаления или массового проведения, особенно перед закрытием периода или сверкой данных.

Способ выборки зависит от задачи. Бухгалтеру обычно достаточно отбора в форме списка или универсального отчета, а разработчику нужен запрос к виртуальным таблицам или перебор видов документов через метаданные. Ниже разобраны оба подхода — от простого интерфейсного отбора до программного поиска по всей конфигурации.

Важно понимать разницу: пометка удаления и отсутствие проведения — разные состояния. Помеченный на удаление документ обычно тоже не проведен (при пометке проведение отменяется), но непроведенный документ может быть вполне рабочим черновиком, который просто еще не довели до конца.

Отбор непроведенных документов в форме списка

Самый простой способ доступен любому пользователю без прав разработчика. Откройте список нужного вида документов, например «Реализация товаров и услуг», и нажмите «Ещё → Настроить список» (в некоторых интерфейсах — кнопка отбора на панели). Добавьте условие: поле «Проведен», вид сравнения «Равно», значение «Нет». Список покажет только непроведенные документы.

В типовых конфигурациях на управляемых формах отбор часто уже вынесен в быстрые настройки: поле «Состояние» или «Проведен» доступно прямо над списком. Если такого поля нет, проверьте, что в настройке списка включен показ соответствующей колонки — иногда отбор по невидимому полю сбивает с толку.

Дополнительно можно сузить выборку по периоду, организации или ответственному. Это полезно, когда непроведенных документов много и нужно обработать их порциями — например, только за закрываемый месяц.

Порядок действий в форме списка
  1. 1
    Откройте список нужного вида документов
  2. 2
    Нажмите «Ещё → Настроить список»
  3. 3
    Добавьте отбор: Проведен = Нет
  4. 4
    При необходимости добавьте период и организацию
  5. 5
    Сохраните настройку как вариант, чтобы не настраивать заново

Запрос к документам с условием Проведен = Ложь

Программный способ — запрос к таблице документа с условием по системному полю «Проведен». У каждого документа в 1С есть стандартный реквизит Проведен типа «Булево», и по нему можно фильтровать напрямую:

ВЫБРАТЬ

РеализацияТоваровУслуг.Ссылка,

РеализацияТоваровУслуг.Дата,

РеализацияТоваровУслуг.Номер

ИЗ

Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг

ГДЕ

РеализацияТоваровУслуг.Проведен = ЛОЖЬ

И НЕ РеализацияТоваровУслуг.ПометкаУдаления

Обратите внимание на второе условие: без него в выборку попадут и помеченные на удаление документы, которые обычно не нужны при поиске «живых» черновиков. Если, наоборот, ищете мусор для чистки базы — условие по пометке удаления стоит включить отдельно.

Для периодических выборок добавьте условие по дате через параметры: ГДЕ Дата МЕЖДУ &Начало И &Конец. Это заметно ускорит запрос в больших базах, потому что по дате документов обычно есть индекс.

bsl
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ Ссылка ИЗ Документ.ПоступлениеТоваровУслуг ГДЕ Проведен = ЛОЖЬ И НЕ ПометкаУдаления";
Результат = Запрос.Выполнить().Выбрать();
Пока Результат.Следующий() Цикл
	Сообщить(Результат.Ссылка);
КонецЦикла;

Как найти непроведенные документы всех видов сразу

Когда нужен полный список непроведенных документов по всей базе, запрос к одному виду не подходит. Есть два рабочих варианта: перебор метаданных в коде и типовая обработка «Проведение документов» (в конфигурациях на БСП — «Проведение документов» в разделе администрирования).

В типовых решениях на базе Библиотеки стандартных подсистем есть обработка «Групповое изменение реквизитов» и регламентная операция проведения документов: она показывает непроведенные документы по организациям за период и позволяет провести их пакетно. Это самый безопасный путь для пользователя без программирования.

Программный перебор выглядит так: цикл по Метаданные.Документы, для каждого вида — запрос с условием Проведен = Ложь. Учтите, что не все документы могут проводиться: если у вида документа проведение запрещено (свойство «Проведение» = «Запретить»), поле Проведен у него всегда ложное, и такие документы нужно исключить из поиска, иначе получите ложные срабатывания.

Консоль запросов и универсальные отчеты

Если конфигуратор недоступен, но есть права на внешние обработки, удобна консоль запросов — она позволяет выполнить произвольный запрос и сразу увидеть результат в табличном виде. Текст запроса тот же, что и в коде: выбор из таблицы документа с условием по полю Проведен.

Ещё один вариант без программирования — универсальный отчет (в типовых конфигурациях «Универсальный отчет» строится по любому виду документов). Выберите тип «Документы», нужный вид, добавьте отбор «Проведен = Нет» и сформируйте. Плюс этого способа — результат можно сразу выгрузить в табличный документ или Excel для передачи ответственным.

В управляемых приложениях многие списки поддерживают сохранение вариантов настройки. Настройте отбор один раз и сохраните как «Непроведенные» — ссылка на такой вариант появится в панели навигации, и поиск займет одну секунду.

Проверка результата и частые ошибки

После выборки убедитесь, что результат соответствует ожиданиям. Откройте несколько документов из списка: у непроведенного документа в типовых формах нет «подсветки проведения», кнопка называется «Провести» (а не «Отмена проведения»), а команда показа движений недоступна или показывает пустой набор.

Типичная ошибка — смешение пометки удаления и отсутствия проведения. Если задача «найти черновики», помеченные на удаление нужно исключать; если задача «почистить базу» — наоборот, искать именно их. Ещё одна ошибка — отбор по всем видам документов без учета запрета проведения: в выборку попадают документы, которые не проводятся по своей природе (например, некоторые служебные).

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

Типичные ошибки
01
Не исключены помеченные на удаление — в списке черновиков оказывается мусор
02
Учтены документы с запрещенным проведением — ложные позиции в выборке
03
Запрос без ограничения периода на большой базе — долгое выполнение и блокировки
04
Массовое проведение без копии базы — необратимые изменения остатков в закрытых периодах

Что делать с найденными документами

Зависит от цели поиска. Если это рабочие черновики — их нужно дозаполнить и провести, желательно через типовую обработку группового проведения, чтобы видеть ошибки по каждому документу. Документы, которые не проводятся из-за ошибок (не заполнены реквизиты, нет остатков на складе), обрабатывайте индивидуально — пакетное проведение просто пропустит их или завершится с ошибками.

Если документы устарели и не нужны, пометьте их на удаление и затем выполните штатную процедуру «Удаление помеченных объектов». Не удаляйте документы напрямую запросами или обработками в обход контроля ссылочной целостности — это гарантированно приведет к битым ссылкам в других объектах.

Маршрут решения

Как выбрать действие

Нужен быстрый список по одному виду документовИспользуйте отбор «Проведен = Нет» в форме списка
Нужны непроведенные документы по всей базеИспользуйте типовую обработку проведения документов или перебор метаданных
Нужно регулярно контролировать черновикиСохраните вариант настройки списка или сделайте отчет на СКД
Нужно массово провести найденноеСначала резервная копия, затем групповое проведение с анализом ошибок

Частые вопросы

Почему в отборе нет поля «Проведен»?

У этого вида документов в конфигураторе запрещено проведение, поэтому системного поля нет. Такие документы не могут быть «непроведенными» по определению — отбирайте их по другим признакам, например по пометке удаления или заполненности ключевых реквизитов.

Как отличить непроведенный документ от помеченного на удаление?

В списке помеченные документы обычно отображаются с перечеркнутой пиктограммой. Программно это разные поля: Проведен (булево) и ПометкаУдаления (булево). При пометке на удаление платформа автоматически отменяет проведение, поэтому помеченный документ всегда непроведен, но не наоборот.

Можно ли найти непроведенные документы без прав разработчика?

Да. Достаточно прав на просмотр списка документов: настройка отбора «Проведен = Нет» доступна любому пользователю. Универсальный отчет и типовая обработка проведения документов тоже работают без конфигуратора — нужны только права на соответствующие объекты.

Почему запрос по всем видам документов выполняется долго?

Каждый вид документа — отдельная таблица, и перебор десятков таблиц с полным сканированием занимает время. Ограничивайте выборку периодом, исключайте виды с запрещенным проведением и выполняйте такие операции вне пиковой нагрузки.

Что будет, если провести старые непроведенные документы?

Документы сформируют движения своей датой: изменятся остатки, взаиморасчеты и, возможно, себестоимость в прошлых периодах. Если периоды закрыты и отчетность сдана, это создаст расхождения. Перед проведением проанализируйте последствия и сделайте резервную копию.

Итог

Что важно запомнить

Непроведенные документы выбираются отбором «Проведен = Нет» в списке или запросом с условием Проведен = ЛОЖЬ. Исключайте помеченные на удаление и виды с запрещенным проведением, ограничивайте период, а перед массовыми операциями делайте резервную копию.