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

Документы и Печать · 11 мин

Как получить список документов в 1С

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

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

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

Ниже разобраны все основные методы: от простого открытия списка до запроса с отбором по периоду, организации и контрагенту. Для каждого способа указаны условия применения, ограничения и типичные ошибки.

Открытие списка документов в пользовательском режиме

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

Если нужны документы разных видов вместе, используйте журналы. Журнал — это объединённый список нескольких видов документов. Найти журналы можно через главное меню или через функцию «Все функции» (в режиме тонкого клиента: кнопка с шестерёнкой или меню «Сервис» → «Все функции») → ветка «Журналы документов».

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

Отбор и фильтрация списка без программирования

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

Для гибкого отбора нажмите «Ещё» → «Настроить список». Здесь можно добавить условия по любым реквизитам документа: сумме, складу, ответственному, признаку проведения. Условия комбинируются: например, «Организация = ООО Ромашка» И «Проведён = Да» И «Дата в диапазоне».

Дополнительные возможности фильтрации:

  • поиск по строке — сочетание Ctrl+F или поле поиска в командной панели, ищет по номеру и представлению;
  • отбор по значению в текущей колонке — Ctrl+Shift+F или пункт контекстного меню «Найти: …»;
  • сортировка по колонке — щелчок по заголовку колонки;
  • вывод списка в табличный документ — «Ещё» → «Вывести список», результат можно сохранить в Excel или распечатать.

Команда «Вывести список» — самый быстрый способ получить список документов в виде файла для передачи коллегам или для сверки. В диалоге отметьте нужные колонки и выберите формат: табличный документ (mxl), Excel или текст.

Как выгрузить список документов в файл
  1. 1
    Откройте список документов нужного вида
  2. 2
    Установите отбор по периоду и организации
  3. 3
    Нажмите «Ещё» → «Вывести список»
  4. 4
    Отметьте нужные колонки и подтвердите
  5. 5
    Сохраните табличный документ через Файл → Сохранить как

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

Для разработчиков и продвинутых пользователей основной инструмент — язык запросов 1С. Запрос возвращает таблицу документов с нужными полями и отборами. Пример запроса к документам реализации за период:

ВЫБРАТЬ

Реализация.Ссылка КАК Ссылка,

Реализация.Номер КАК Номер,

Реализация.Дата КАК Дата,

Реализация.Контрагент КАК Контрагент

ИЗ

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

ГДЕ

Реализация.Дата МЕЖДУ &НачалоПериода И &КонецПериода

И Реализация.Проведен

УПОРЯДОЧИТЬ ПО

Реализация.Дата

Запрос выполняется программно или в консоли запросов (внешней обработке, которую используют для отладки). Параметры периода передаются через объект запроса:

Запрос = Новый Запрос;

Запрос.Текст = "..."; // текст запроса выше

Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачалоПериода));

Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонецПериода));

Результат = Запрос.Выполнить().Выгрузить();

Через запрос удобно сразу получать связанные данные: суммы из табличных частей, остатки, данные контрагентов — соединяя таблицы. Это быстрее, чем обход выборки с обращением к каждому объекту, особенно на больших объёмах.

В запросе к документам всегда ограничивайте период. Запрос без условия по дате к таблице с миллионами документов может выполняться минутами и нагружать сервер. Если нужен только актуальный список, добавляйте условие на признак Проведен или ПометкаУдаления = ЛОЖЬ.
ПЗ
Практическое замечание

Программная выборка документов методом Выбрать()

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

Выборка = Документы.РеализацияТоваровУслуг.Выбрать(НачалоДня(ДатаНач), КонецДня(ДатаКон));

Пока Выборка.Следующий() Цикл

ДокументСсылка = Выборка.Ссылка;

// обработка документа

КонецЦикла;

Метод Выбрать() принимает параметры: начало и конец периода, а также структуру отбора по реквизитам (для видов документов, где это поддерживается). Для выборки по конкретному реквизиту используйте вариант Выбрать(Начало, Конец, Отбор, Порядок), где Отбор — структура вида Новый Структура("Контрагент", КонтрагентСсылка).

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

Сравнение способов получения списка

Каждый метод имеет свою область применения. Сводное сравнение поможет выбрать подходящий:

СпособКому подходитПлюсыОграничения
Журнал / форма спискаПользователиБез программирования, выгрузка в ExcelОграниченные отборы, нет произвольных полей
Настройка списка (отбор)ПользователиГибкие условия по реквизитамНельзя соединять данные разных таблиц
ЗапросРазработчикиБыстро, соединения, группировкиТолько чтение данных
Выборка Выбрать()РазработчикиДоступ к объектам для измененияМедленнее запроса на больших объёмах
СКД / отчётыАналитикиНастройки пользователем, оформлениеТребует создания схемы компоновки
Маршрут решения

Как выбрать способ

Нужно просто посмотреть или распечатать документы за периодОткройте журнал документов и установите отбор, выгрузите через «Вывести список»
Нужен список с суммами и данными контрагентов для анализаИспользуйте запрос или консоль запросов с соединением таблиц
Нужно программно обработать или изменить документыИспользуйте выборку Документы.Имя.Выбрать() с обходом в цикле
Список нужен регулярно с разными настройкамиСоздайте отчёт на СКД — пользователи сами будут менять отборы

Типичные ошибки и их последствия

При работе со списками документов пользователи и разработчики регулярно сталкиваются с одними и теми же проблемами. Знание их причин экономит время на диагностику.

Типичные ошибки
01
Пустой список из-за установленного отбора: пользователь забыл сбросить фильтр по периоду или организации — сбросьте настройки через «Ещё» → «Установить стандартные настройки»
02
Запрос без ограничения периода: на большой базе приводит к длительному выполнению и блокировкам — всегда задавайте диапазон дат
03
ПолучитьОбъект() в цикле по ссылкам: многократное чтение объектов сильно замедляет обработку — для чтения данных используйте запрос
04
Отбор по неиндексированному реквизиту: медленная выборка — отбирайте по дате, номеру, ссылочным реквизитам
05
Игнорирование помеченных на удаление: в список попадают «мусорные» документы — добавляйте условие ПометкаУдаления = ЛОЖЬ

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

Проверка результата

После получения списка убедитесь, что он полный и корректный. Сверьте количество документов с ожидаемым: например, сравните с данными отчёта или с количеством строк в журнале без отборов за тот же период.

Контрольные точки

Как проверить результат

Количество документов в списке
Норма

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

Тревожный признак

Список короче — проверьте фильтры, права и условие по пометке удаления

Границы периода
Норма

Первый и последний документ попадают в заданный диапазон дат

Тревожный признак

Документы за крайние даты отсутствуют — проверьте НачалоДня/КонецДня

Статус проведения
Норма

В списке только проведённые, если это требовалось

Тревожный признак

Присутствуют непроведённые или помеченные — добавьте условие в отбор или запрос

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

Итог

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

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

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

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

В форме списка установите курсор в колонку «Контрагент» на нужной строке и нажмите отбор по значению (Ctrl+Shift+F или пункт контекстного меню). Программно — добавьте в запрос условие «Контрагент = &Контрагент» или передайте структуру отбора в метод Выбрать().

Можно ли получить список документов за всё время без ограничения периода?

Технически да: уберите условие по дате из запроса или вызовите Выбрать() без параметров. Но на базах с большим числом документов это приведёт к долгому выполнению и нагрузке на сервер. Если период неизвестен, сначала найдите минимальную и максимальную даты агрегатным запросом.

Как выгрузить список документов в Excel?

Откройте список, установите отбор, затем нажмите «Ещё» → «Вывести список», выберите колонки и формат «Табличный документ» или сразу «Лист Excel». Полученный файл сохраните через стандартный диалог сохранения.

Почему запрос возвращает пустой результат, хотя документы есть?

Частые причины: неверные границы периода (проверьте часовой пояс и КонецДня), условие Проведен отсекает непроведённые документы, недостаточно прав на чтение документа, либо в параметр передана пустая ссылка. Проверяйте запрос поэтапно, убирая условия по одному.

Чем запрос отличается от выборки методом Выбрать()?

Запрос возвращает готовую таблицу данных и работает быстрее, но только читает. Выборка Выбрать() обходит документы по одному и позволяет получить объект для изменения. Для отчётов и анализа используйте запрос, для массовых изменений — выборку.

Как получить список документов нескольких видов одновременно?

В пользовательском режиме — через журнал документов, объединяющий нужные виды. Программно — объедините таблицы в запросе через ОБЪЕДИНИТЬ ВСЕ, приведя поля к одинаковому составу, либо выполните отдельные выборки и объедините результаты в коде.