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