Реестр документов в 1С:Предприятие 8 — это не просто список, а мощный инструмент для анализа, контроля и отчетности. Без него сложно представить работу бухгалтера, кладовщика или менеджера по продажам, когда нужно оперативно получить данные по сотням накладных, счетов или платежных поручений. Однако стандартные отчеты платформы не всегда покрывают специфические потребности бизнеса: где-то требуется особая группировка, где-то — дополнительные реквизиты, а иногда и вовсе нужна автоматизация формирования реестра по расписанию.
В этой статье мы разберем все актуальные способы создания реестров — от простых отчетов до программных решений на встроенном языке 1С. Вы узнаете, как настроить вывод нужных полей, экспортировать данные в Excel, а также избежать типичных ошибок при работе с большими объемами документов. Материал будет полезен как начинающим пользователям, так и опытным специалистам, которые хотят оптимизировать рутинные операции.
Особое внимание уделим автоматизации формирования реестров через регламентные задания — это позволит сэкономить до 40% времени на подготовку регулярной отчетности. Все примеры приведены для актуальных релизов 1С:Бухгалтерии 3.0, 1С:Управление торговлей 11 и 1С:ERP 2.5, но принципы универсальны для любой конфигурации на платформе 8.3.
1. Что такое реестр документов и зачем он нужен
Реестр документов — это структурированный перечень документов определенного типа (накладные, счета, платежки и т.д.), сгруппированный по заданным критериям. В отличие от обычного списка, реестр может включать:
- 📌 Дополнительные реквизиты (например, ответственный менеджер, статус оплаты, дата отгрузки)
- 📊 Агрегированные данные (суммы по группам, количество документов за период)
- 🔄 Связи между документами (счет → оплата → отгрузка)
- 📄 Экспорт в внешние форматы (
Excel,PDF,XMLдля обмена с контрагентами)
Основные сценарии использования реестров:
| Отдел | Типичный реестр | Цель использования |
|---|---|---|
| Бухгалтерия | Реестр платежных поручений | Контроль оплат поставщикам, сверка с банком |
| Склад | Реестр накладных на отгрузку | Анализ оборотов по номенклатуре, планирование закупок |
| Продажи | Реестр счетов на оплату | Контроль дебиторской задолженности, работа с просрочками |
| Логистика | Реестр транспортных накладных | Отслеживание грузов, расчет транспортных расходов |
Без реестров приходится вручную собирать данные из разных разделов системы, что занимает часы и чревато ошибками. Например, бухгалтеру для сверки с банком нужно выгрузить все платежки за месяц с указанием назначения платежа, суммы и статуса проведения. Вручную это сделать практически невозможно, если документов больше 50.
2. Способ 1: Стандартные отчеты 1С
Самый простой способ получить реестр — использовать встроенные отчеты конфигурации. Они уже содержат основные настройки и не требуют программирования. Рассмотрим на примере 1С:Бухгалтерии 3.0:
- Перейдите в раздел
Отчеты → Стандартные отчеты → Универсальный отчет. - В поле
Объектвыберите тип документа (например,Платежное поручение). - На вкладке
Поляотметьте галочками нужные колонки: дата, номер, сумма, контрагент, назначение платежа. - На вкладке
Отборукажите период и дополнительные фильтры (например, только исходящие платежки). - Нажмите
Сформироватьи экспортируйте результат вExcelкнопкойВыгрузить.
Преимущества метода:
- ✅ Не требует знаний программирования
- ✅ Быстро настраивается (2-3 минуты)
- ✅ Подходит для разовых задач
Недостатки:
- ❌ Ограниченный набор полей (нельзя добавить произвольные реквизиты)
- ❌ Нет возможности сохранять шаблоны отчетов для повторного использования
- ❌ Сложно настроить сложную группировку данных
Если в стандартном отчете не хватает колонок, попробуйте использовать отчет Анализ субконто — он позволяет выводить дополнительные реквизиты из справочников.
3. Способ 2: Настройка пользовательских отчетов
Если стандартных отчетов недостаточно, создайте собственный отчет через конструктор. Это позволит:
- 🔧 Добавлять произвольные поля (в том числе из связанных справочников)
- 📈 Настраивать многоуровневую группировку
- 🖼️ Сохранять шаблоны для повторного использования
- 📤 Автоматически отправлять отчет по email
Инструкция для 1С:Управление торговлей 11:
- Откройте
Отчеты → Все отчеты → Создать отчет. - Выберите тип
Произвольный отчети укажите имя (например,Реестр реализаций). - В конструкторе перетащите нужные поля из документа
Реализация товаров и услуг: - Настройте группировку (например, по контрагентам) и сортировку.
- Сохраните отчет и запустите его формирование.
// Пример настройки полей в конструкторе:
Дата
Номер
Контрагент.Наименование
СуммаДокумента
Статус (из реквизитов документа)
Ответственный.Наименование
Для автоматизации экспорта в Excel используйте кнопку Еще → Выгрузить в Excel с настройками:
- 📋 Формат:
XLSX(для больших реестров) - 🔄 Разделитель листов:
По группам первого уровня - 📌 Включить заголовки:
Да
Как добавить в отчет поле из связанного документа?
Чтобы вывести в реестре реализаций данные из связанного счета, в конструкторе отчета добавьте поле типа "Документ.СчетНаОплату" и укажите путь к нужному реквизиту, например: СчетНаОплату.Дата или СчетНаОплату.Номер.
4. Способ 3: Обработки для формирования реестров
Когда нужна максимальная гибкость (например, объединение данных из нескольких документов или сложная логика отбора), используйте внешние обработки. Их можно скачать из каталога 1С-Отчетность или написать самостоятельно.
Популярные готовые решения:
| Обработка | Назначение | Ссылка на каталог |
|---|---|---|
| Универсальный реестр документов | Формирование реестра любого типа документа с произвольными полями | infostart.ru/public/123456/ |
| Реестр платежных поручений для банка | Выгрузка платежек в формате, требуемом банками (Сбер, Тинькофф, ВТБ) | infostart.ru/public/789012/ |
| Реестр счетов-фактур для ФНС | Подготовка данных для декларации по НДС | infostart.ru/public/345678/ |
Как подключить обработку:
- Скачайте файл с расширением
.epfили.erf. - В 1С откройте
Файл → Открытьи выберите скачанный файл. - Запустите обработку и настройте параметры:
- Нажмите
Сформироватьи сохраните результат.
// Пример параметров для реестра платежек:
Период: 01.07.2026 - 31.07.2026
Тип документа: Платежное поручение исходящее
Дополнительные поля: Статус, Дата списания, Банковский счет
Формат выгрузки: XLSX (с формулами)
🔹 Проверить совместимость с версией 1С
🔹 Создать резервную копию базы
🔹 Тестировать на копии данных
🔹 Настроить права доступа для пользователей-->
5. Способ 4: Программное формирование реестра (1С-код)
Для опытных пользователей и программистов 1С самый мощный метод — написание собственного кода. Это позволяет:
- 🤖 Автоматизировать формирование по расписанию
- 🔗 Объединять данные из разных документов
- 📧 Отправлять реестры по email автоматически
- 📊 Строить динамические графики на основе данных
Пример кода для формирования реестра реализаций с группировкой по контрагентам:
Процедура СформироватьРеестрРеализаций()
// Создаем запрос
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| РеализацияТоваровУслуг.Ссылка КАК Ссылка,
| РеализацияТоваровУслуг.Дата КАК Дата,
| РеализацияТоваровУслуг.Номер КАК Номер,
| РеализацияТоваровУслуг.Контрагент КАК Контрагент,
| РеализацияТоваровУслуг.СуммаДокумента КАК Сумма,
| РеализацияТоваровУслуг.Ответственный КАК Ответственный
|ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
|ГДЕ
| РеализацияТоваровУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|УПОРЯДОЧИТЬ ПО
| Контрагент.Наименование,
| Дата";
// Устанавливаем параметры
Запрос.УстановитьПараметр("НачалоПериода", НачалоМесяца(ТекущаяДата()));
Запрос.УстановитьПараметр("КонецПериода", КонецМесяца(ТекущаяДата()));
// Выполняем запрос
РезультатЗапроса = Запрос.Выполнить();
// Формируем таблицу значений для выгрузки
ТаблицаРезультат = Новый ТаблицаЗначений;
ТаблицаРезультат.Колонки.Добавить("Дата");
ТаблицаРезультат.Колонки.Добавить("Номер");
ТаблицаРезультат.Колонки.Добавить("Контрагент");
ТаблицаРезультат.Колонки.Добавить("Сумма");
ТаблицаРезультат.Колонки.Добавить("Ответственный");
// Заполняем таблицу данными
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
НоваяСтрока = ТаблицаРезультат.Добавить();
НоваяСтрока.Дата = Выборка.Дата;
НоваяСтрока.Номер = Выборка.Номер;
НоваяСтрока.Контрагент = Выборка.Контрагент.Наименование;
НоваяСтрока.Сумма = Выборка.Сумма;
НоваяСтрока.Ответственный = Выборка.Ответственный.Наименование;
КонецЦикла;
// Выгружаем в Excel
ЭкспортВExcel(ТаблицаРезультат, "Реестр реализаций " + Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy"));
КонецПроцедуры
Процедура ЭкспортВExcel(Таблица, ИмяФайла)
// Код экспорта в Excel (используйте библиотеку "РаботаСExcel83" или стандартные методы)
КонецПроцедуры
Где разместить код:
- Создайте внешнюю обработку (
Файл → Новый → Внешняя обработка). - В модуле обработки вставьте приведенный код.
- Добавьте кнопку на форму и свяжите ее с процедурой
СформироватьРеестрРеализаций.
Для работы с большими объемами данных (более 10 000 строк) используйте пакетную обработку запросов и временные таблицы, чтобы избежать перегрузки памяти.
6. Способ 5: Регламентные задания для автоматического формирования
Если реестры нужны регулярно (например, ежедневный реестр платежек для бухгалтерии), настройте регламентное задание. Это позволит:
- ⏰ Формировать отчеты по расписанию (ежедневно, еженедельно)
- 📧 Автоматически отправлять результаты на email
- 🔄 Обновлять данные без участия пользователя
Инструкция по настройке:
- Откройте
Администрирование → Регламентные задания. - Создайте новое задание с типом
Выполнение кода. - В поле
Кодвставьте процедуру формирования реестра (аналогично примеру из предыдущего раздела). - Настройте расписание (например, каждый день в 8:00).
- Укажите email для отправки результата (требуется предварительная настройка почты в 1С).
Пример кода для регламентного задания с отправкой на email:
Процедура ВыполнитьРегламентноеЗадание()
// 1. Формируем реестр (используем код из предыдущего примера)
ТаблицаРезультат = СформироватьРеестрПлатежек();
// 2. Сохраняем во временный файл
ИмяФайла = КаталогВременныхФайлов() + "РеестрПлатежек.xlsx";
ЭкспортВExcel(ТаблицаРезультат, ИмяФайла);
// 3. Отправляем на email
ПочтовыйПрофиль = ПолучаемПрофильПочты(); // Настройте заранее в "Администрирование → Организации и почта"
Письмо = Новый ПочтаMailerСообщение;
Письмо.Тема = "Реестр платежных поручений на " + ТекущаяДата();
Письмо.Текст = "Во вложении реестр платежек за сегодня.";
Письмо.Вложения.Добавить(ИмяФайла);
Письмо.Получатели.Добавить("buhgalter@company.ru");
Отправка = Новый ПочтаMailer;
Отправка.Профиль = ПочтовыйПрофиль;
Отправка.Отправить(Письмо);
КонецПроцедуры
Перед настройкой регламентного задания проверьте работу почтового профиля вручную через Администрирование → Тест почтового сообщения.
7. Типичные ошибки и как их избежать
При формировании реестров пользователи часто сталкиваются с проблемами, которые ведут к потере данных или некорректным результатам. Вот самые распространенные ошибки:
⚠️ Внимание: При работе с большими базами данных (более 50 000 документов) формирование реестра может занять несколько минут. Не прерывайте процесс, иначе возможны ошибки блокировки данных.
| Ошибка | Причина | Решение |
|---|---|---|
| Пустой реестр при наличии документов | Некорректный отбор по датам или статусам | Проверьте фильтры в запросе, особенно параметры дат |
| Дублирование строк | Ошибка в запросе (отсутствует группировка по уникальным полям) | Добавьте в запрос ГРУППИРОВКА ПО или РАЗЛИЧНЫЕ |
| Ошибка при экспорте в Excel | Слишком много данных или неверный формат ячеек | Разбейте выгрузку на части или используйте CSV вместо XLSX |
| Не хватает прав для формирования | Ограничения ролей пользователя | Настройте права в Администрирование → Пользователи |
Еще одна частая проблема — расхождение сумм в реестре и первичных документах. Это происходит, если:
- 🔹 В запросе не учтены все движения документа (например, только табличная часть без шапки)
- 🔹 Используются разные валюты (нужно привести к одной через
СуммаВВалютеУчета) - 🔹 Документы не проведены (проверьте статус
Проводка = Истина)
Как устранить ошибку "Превышен лимит памяти"?
Если при формировании реестра появляется ошибка памяти, разбейте запрос на части по периодам (например, по неделям) или используйте временные таблицы для промежуточных результатов.
8. Оптимизация работы с реестрами
Чтобы ускорить формирование и уменьшить нагрузку на базу, следуйте этим рекомендациям:
- 🚀 Индексируйте поля, по которым часто делаете отбор (настройка в конфигураторе).
- 🗃️ Архивируйте старые документы — это сократит объем обрабатываемых данных.
- ⏳ Используйте фоновые задания для длительных операций (настройка в
Администрирование → Фоновые задания). - 🔄 Кэшируйте результаты часто используемых реестров (сохраняйте в регистры сведений).
Для ускорения экспорта в Excel:
- Отключите автоматическое форматирование ячеек.
- Используйте
CSVвместоXLSX, если не нужны формулы. - Экспортируйте данные порциями (по 5 000 строк).
Пример оптимизированного запроса с использованием временной таблицы:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ПлатежноеПоручение.Ссылка КАК Ссылка,
| ПлатежноеПоручение.Дата КАК Дата
|ПОМЕСТИТЬ ВТПлатежки
|ИЗ
| Документ.ПлатежноеПоручение КАК ПлатежноеПоручение
|ГДЕ
| ПлатежноеПоручение.Дата МЕЖДУ &НачалоПериода И &КонецПериода
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТПлатежки.Ссылка КАК Ссылка,
| ВТПлатежки.Дата КАК Дата,
| ВТПлатежки.Сумма КАК Сумма
|ИЗ
| ВТПлатежки КАК ВТПлатежки
|УПОРЯДОЧИТЬ ПО
| Дата";
⚠️ Внимание: При использовании временных таблиц в регламентных заданиях убедитесь, что они удаляются после выполнения, иначе со временем база будет разрастаться.
FAQ: Ответы на частые вопросы
Как сделать реестр с данными из нескольких документов (например, счет + оплата + отгрузка)?
Используйте запрос с объединением таблиц (ЛЕВОЕ СОЕДИНЕНИЕ или ВНУТРЕННЕЕ СОЕДИНЕНИЕ). Пример:
ВЫБРАТЬ
Счет.Номер КАК НомерСчета,
Оплата.Номер КАК НомерОплаты,
Отгрузка.Номер КАК НомерОтгрузки
ИЗ
Документ.СчетНаОплату КАК Счет
ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПлатежноеПоручение КАК Оплата
ПО Счет.Ссылка = Оплата.СчетНаОплату
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Отгрузка
ПО Счет.Ссылка = Отгрузка.СчетНаОплату
Для сложных связей лучше создать виртуальную таблицу в конфигураторе.
Можно ли сделать реестр с фотографиями товаров?
Да, но для этого нужно:
- Хранить изображения в справочнике
Номенклатура(реквизит типаХранилищеЗначения). - В отчете добавить колонку с типом
Картинка. - При формировании загружать изображения из хранилища:
Картинка = Новый Картинка(Номенклатура.Фотография.Получить());
ТаблицаРезультат.ТоварФото = Картинка;
Для экспорта в Excel фотографии будут сохранены как вложенные объекты.
Как автоматически нумеровать строки в реестре?
Добавьте в запрос поле с номером строки:
ВЫБРАТЬ
&НомерСтроки КАК НомерСтроки,
Документ.Номер КАК НомерДокумента
ИЗ
Документ.РеализацияТоваровУслуг КАК Документ
УПОРЯДОЧИТЬ ПО
Документ.Дата
Или программно в цикле:
Счетчик = 0;
Пока Выборка.Следующий() Цикл
Счетчик = Счетчик + 1;
НоваяСтрока.НомерСтроки = Счетчик;
КонецЦикла;
Почему в реестре не отображаются суммы в иностранной валюте?
Проблема в том, что по умолчанию суммы выводятся в валюте учета. Чтобы показать оригинальную валюту документа, модифицируйте запрос:
ВЫБРАТЬ
Документ.СуммаДокумента КАК СуммаВВалютеДокумента,
Документ.ВалютаДокумента.Код КАК КодВалюты,
Документ.СуммаДокумента / Документ.КурсВалюты КАК СуммаВВалютеУчета
ИЗ
Документ.РеализацияТоваровУслуг КАК Документ
Или используйте функцию СуммаВВалюте() в отчете.
Как сделать реестр с цветовой индикацией (например, просроченные платежи красным)?
В пользовательском отчете настройте условное оформление:
- В конструкторе отчета перейдите на вкладку
Условное оформление. - Добавьте правило: если
ДатаОплаты < ТекущаяДата(), то цвет текста — красный. - Примените оформление к колонке с датой или суммой.
Для программного решения используйте:
Если ДатаОплаты < ТекущаяДата() Тогда
ТаблицаРезультат.ЦветТекста = ВебЦвета.Красный;
КонецЕсли;