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