Справочники в 1С:Предприятие — это основа любой учетной системы, содержащая нормативно-справочную информацию: номенклатуру, контрагентов, сотрудников, единицы измерения и другие объекты. Без доступа к этим данным невозможно вести учет, формировать отчеты или интегрировать систему с внешними сервисами. Однако не всегда понятно, как именно извлечь нужный справочник — особенно если требуется передать его в другую программу, проанализировать в Excel или использовать в стороннем ПО.
В этой статье мы разберем все актуальные способы получения справочников из 1С — от ручных методов через интерфейс программы до автоматизированных решений с использованием встроенного языка и REST API. Особое внимание уделим нюансам для разных версий платформы (1С:Предприятие 8.3 и 7.7), а также типичным ошибкам, которые возникают при выгрузке данных. Если вам нужно не просто посмотреть справочник, а экспортировать его для дальнейшей обработки — здесь вы найдете пошаговые инструкции с примерами кода и скриншотами.
Прежде чем приступить, уточните: какой именно справочник вам нужен? От этого зависит выбор метода. Например, для разовой выгрузки номенклатуры в Excel подойдет стандартный отчет, а для автоматической синхронизации с сайтом потребуется настройка обмена данными или написание скрипта.
1. Получение справочника через интерфейс 1С (ручные методы)
Самый простой способ — использовать встроенные инструменты 1С:Предприятие. Он подходит для разовых задач и не требует знаний программирования. Рассмотрим два основных варианта: просмотр непосредственно в базе и выгрузка в Excel/PDF.
Чтобы открыть справочник в интерфейсе программы:
- 📌 Перейдите в раздел меню, соответствующий нужному справочнику (например,
Справочники → НоменклатураилиСправочники → Контрагенты). - 🔍 Используйте поле поиска вверху списка, если справочник содержит тысячи записей.
- 📄 Для просмотра детальной информации дважды кликните по строке или нажмите
Enter.
Если требуется выгрузить данные в файл:
- Откройте нужный справочник (например,
Справочники → Организации). - Нажмите кнопку
Ещё(илиДействияв старых версиях) →Вывести список. - В открывшемся окне выберите формат: Excel, PDF, HTML или TXT.
- Укажите путь для сохранения файла и нажмите
Сохранить.
В 1С:Предприятие 8.3 при выгрузке в Excel можно настроить состав колонок: кликните по заголовку столбца правой кнопкой и выберите Настройка списка.
Ограничения ручного метода:
- ⚠️ Выгружаются только видимые в интерфейсе поля (скрытые реквизиты не экспортируются).
- ⚠️ В больших справочниках (более 10 000 записей) выгрузка может занять несколько минут.
- ⚠️ Нет возможности автоматизировать процесс — каждый раз приходится повторять действия вручную.
Как выгрузить справочник с иерархией?
Чтобы сохранить структуру подчиненности (например, группы номенклатуры), в окне выгрузки отметьте галочку Сохранять иерархию. В Excel группы будут отображаться с отступами.
2. Выгрузка справочника через «Универсальный отчет»
Универсальный отчет — это гибкий инструмент 1С, позволяющий формировать произвольные выборки данных, включая справочники. Его преимущество в том, что можно указать любые поля (включая скрытые реквизиты) и применить фильтры.
Инструкция по настройке отчета:
- Перейдите в
Отчеты → Универсальный отчет(в некоторых конфигурациях путь может отличаться, например,Сервис → Универсальные отчеты). - В поле
Объектвыберите нужный справочник (например,Справочник.Номенклатура). - На вкладке
Поляотметьте галочками все необходимые колонки (название, артикул, группа, цены и т.д.). - Примените фильтры, если нужно выгрузить только часть данных (например, номенклатуру определенной группы).
- Нажмите
Сформировать, затемВывести в Excelили другой формат.
Пример фильтра для выгрузки только активной номенклатуры:
ПометкаУдаления = Ложь И ЭтоГруппа = Ложь
Преимущества универсального отчета:
- 🔹 Гибкая настройка состава данных (можно добавить даже расчетные поля).
- 🔹 Возможность сохранять шаблоны отчетов для повторного использования.
- 🔹 Поддержка выгрузки в Excel, ODS, XML и другие форматы.
Проверить права доступа (требуется роль с правом на просмотр справочника)
Уточнить состав полей (включить все необходимые реквизиты)
Применить фильтры (например, по дате создания или группе)
Выбрать формат выгрузки (Excel рекомендуется для дальнейшей обработки)
-->
3. Программная выгрузка справочника (1С:Предприятие 8.3)
Если ручные методы не подходят (например, требуется регулярная выгрузка или интеграция с внешней системой), можно использовать встроенный язык 1С. Этот способ требует минимальных знаний программирования, но дает максимальную гибкость.
Пример кода для выгрузки справочника Номенклатура в файл CSV:
// Получаем данные справочника
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Номенклатура.Ссылка КАК Ссылка,
| Номенклатура.Наименование КАК Наименование,
| Номенклатура.Артикул КАК Артикул,
| Номенклатура.Группа КАК Группа
|ИЗ
| Справочник.Номенклатура КАК Номенклатура
|ГДЕ
| НЕ Номенклатура.ЭтоГруппа
| И НЕ Номенклатура.ПометкаУдаления";
Результат = Запрос.Выполнить;
Выборка = Результат.Выбрать;
// Создаем файл CSV
ИмяФайла ="C:\Temp\Номенклатура.csv";
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8, Истина);
// Записываем заголовки
Текст.ЗаписатьСтроку("Ссылка;Наименование;Артикул;Группа");
// Записываем данные
Пока Выборка.Следующий Цикл
Текст.ЗаписатьСтроку(СтрШаблон("%1;%2;%3;%4",
Выборка.Ссылка.УникальныйИдентификатор,
Выборка.Наименование,
Выборка.Артикул,
Выборка.Группа.Наименование));
КонецЦикла;
Текст.Закрыть;
Сообщить("Выгрузка завершена:" + ИмяФайла);
Где разместить этот код:
- 🖥️ В конфигураторе: создайте внешнюю обработку или добавьте код в модуль объекта.
- 📄 В пользовательском режиме: используйте
Отладчик(клавишаF5в конфигураторе) или создайтеВнешнюю обработкуи подключите ее черезФайл → Открыть.
Важно: при выгрузке больших справочников (более 50 000 записей) разбейте запрос на части с помощью параметра ПАКЕТНЫЙ или используйте Позиционирование, чтобы избежать таймаута.
Для выгрузки иерархических справочников (например, групп номенклатуры) используйте рекурсивный обход или запрос с параметром ИЕРАРХИЯ.
4. Обмен данными через XML (универсальный формат)
Формат XML — стандарт для обмена данными между системами. В 1С предусмотрены встроенные механизмы для выгрузки справочников в XML, которые затем можно импортировать в другие программы или базы данных.
Пошаговая инструкция:
- Откройте конфигуратор (
1С:Предприятиев режимеКонфигуратор). - Перейдите в
Администрирование → Обмен данными → Универсальный обмен данными в формате XML. - Нажмите
Выгрузить данныеи выберите нужный справочник (например,Контрагенты). - Укажите путь для сохранения файла (расширение
.xml). - Запустите выгрузку кнопкой
Выполнить.
Пример структуры полученного XML-файла для справочника Контрагенты:
<?xml version="1.0" encoding="utf-8"?>
<Документ>
<Контрагенты>
<Контрагент Ссылка="123e4567-e89b-12d3-a456-426614174000">
<Наименование>ООО"Ромашка"</Наименование>
<ИНН>7701234567</ИНН>
<КПП>770101001</КПП>
</Контрагент>
<!-- Другие записи -->
</Контрагенты>
</Документ>
Преимущества выгрузки в XML:
| Плюс | Минус |
|---|---|
| 🔹 Сохраняется структура данных (иерархия, ссылки между объектами) | ⚠️ Файлы могут быть очень большими при экспорте крупных справочников |
| 🔹 Поддерживается большинством систем (1С, CRM, ERP) | ⚠️ Требуется знание XSD-схемы для корректного импорта в другие программы |
| 🔹 Можно выгружать связанные данные (например, контрагенты + их банковские счета) | ⚠️ Медленнее, чем бинарные форматы (например, DT) |
Для уменьшения размера XML-файла используйте архивацию (например, ZIP) или выгружайте данные порциями по 1000 записей.
5. Автоматизированный обмен через REST API (для 1С:Предприятие 8.3.20+)
С появлением REST API в 1С:Предприятие 8.3.20 появилась возможность получать данные справочников по HTTP-запросам. Это удобно для интеграции с веб-сервисами, CRM-системами или мобильными приложениями.
Пример запроса для получения списка номенклатуры:
GET /hs/exchange/rest/Справочник_Номенклатура?$top=100
Host: ваш-сервер:порт
Authorization: Basic base64-кодированный-логин-пароль
Ответ сервера будет в формате JSON:
{
"value": [
{
"Ref_Key":"123e4567-e89b-12d3-a456-426614174000",
"DeletionMark": false,
"Description":"Стул офисный'Эрго'",
"Article":"ART-001",
"Parent_Key":"00000000-0000-0000-0000-000000000000"
},
// Другие записи
]
}
Как настроить REST-сервис в 1С:
- В конфигураторе откройте
Администрирование → Публикация на веб-сервере. - Установите флажок
Опубликовать REST-сервиси укажите путь (например,/hs/exchange/rest). - Настройте аутентификацию (обычно используется
Basic AuthилиOAuth 2.0). - Перезапустите веб-сервер (Apache или IIS).
Ограничения REST API в 1С
Максимальное количество записей в одном запросе — 1000 (используйте пагинацию с параметром $skip).
Не все реквизиты справочников доступны по умолчанию — может потребоваться донастройка прав.
Для больших объемов данных рекомендуется использовать ODATA-протокол вместо REST.
Пример скрипта на Python для автоматической выгрузки справочника через REST API:
import requests
import base64
Кодируем логин и пароль
auth = base64.b64encode(b"admin:password").decode("ascii")
Запрашиваем данные
url ="http://localhost:8080/hs/exchange/rest/Справочник_Контрагенты"
headers = {"Authorization": f"Basic {auth}"}
response = requests.get(url, headers=headers)
Сохраняем в файл
with open("контрагенты.json","w", encoding="utf-8") as f:
f.write(response.text)
REST API — самый современный способ интеграции, но требует настройки веб-сервера и защиты канала (рекомендуется использовать HTTPS).
6. Выгрузка через внешние обработки и расширения
Если встроенные механизмы 1С не покрывают ваши нужды, можно использовать внешние обработки или расширения конфигурации. Это актуально для нестандартных задач, например:
- 📊 Выгрузка справочника с дополнительными расчетными полями.
- 🔄 Синхронизация с Google Sheets или Yandex Диском.
- 📦 Архивация данных с историей изменений.
Где взять готовые решения:
| Источник | Примеры решений | Стоимость |
|---|---|---|
| Инфостарт | Обработки для выгрузки в Excel, JSON, SQL | От 500 до 5000 руб. |
| Кодерлайн | Расширения для обмена с Bitrix24, АмоCRM | От 1000 руб. |
| Гитхаб (GitHub) | Бесплатные скрипты для выгрузки через COM-соединение |
Бесплатно |
Пример подключения внешней обработки:
- Скачайте файл обработки (расширение
.epfили.erf). - В 1С перейдите в
Файл → Открытьи выберите скачанный файл. - Следуйте инструкциям обработки (обычно нужно указать справочник и путь для сохранения).
Перед использованием сторонних обработок проверьте их на тестовой базе — некоторые решения могут содержать вредоносный код.
7. Особенности работы со справочниками в 1С:Предприятие 7.7
Если вы работаете со старой версией 1С:Предприятие 7.7, то многие современные методы (например, REST API или универсальный отчет) недоступны. Однако есть альтернативные способы:
Способы выгрузки в 1С 7.7:
- 📑 Текстовый файл (TXT/CSV): через встроенный механизм
Выгрузка данныхв менюСервис. - 📥 DBF-файлы: используйте обработку
ВыгрузкаВDBF.ert(поставляется с дистрибутивом). - 🔌 COM-соединение: для автоматизации из внешних программ (например, VBA в Excel).
Пример кода для выгрузки справочника Номенклатура в DBF:
Процедура ВыгрузитьВDBF
Если Не ВыбратьСправочник("Номенклатура",, Спр) Тогда
Прервать;
КонецЕсли;
ИмяФайла ="C:\Temp\Номенклатура.dbf";
Если ВыгрузитьДанные(Спр, ИмяФайла) = 1 Тогда
Сообщить("Выгрузка завершена:" + ИмяФайла);
Иначе
Сообщить("Ошибка выгрузки!");
КонецЕсли;
КонецПроцедуры
Ограничения 1С 7.7:
⚠️ Внимание: В версии 7.7 отсутствует поддержка UTF-8 в текстовых файлах — при выгрузке кириллических данных используйте кодировку Windows-1251. Также нет встроенной поддержки JSON или XML (требуются внешние компоненты).
8. Типичные ошибки и их решения
При работе со справочниками в 1С пользователи часто сталкиваются счными проблемами. Разберем самые распространенные и способы их устранения.
Ошибка 1:"Недостаточно прав для просмотра справочника"
- 🔐 Решение: Запросите у администратора роль с правом на чтение нужного справочника (например,
ЧтениеСправочников). - 🔐 В конфигураторе проверьте настройки ролей:
Администрирование → Пользователи → Настройка прав.
Ошибка 2:"Превышен лимит памяти при выгрузке"
- 🗑️ Решение: Разбейте выгрузку на части (например, по 5000 записей) или используйте пакетный режим:
Запрос.ПакетныйРежим = Истина;
Ошибка 3:"Файл не найден при сохранении"
- 📁 Решение: Убедитесь, что путь для сохранения существует и у программы есть права на запись. В Windows проверьте разрешения для папки.
- 📁 Используйте относительные пути (например,
".\Data\Export\") вместо абсолютных.
Ошибка 4:"Некорректная кодировка в выгруженном файле"
- 🔤 Решение: Явно укажите кодировку при сохранении:
Текст = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
Ошибка 5:"Не удается подключиться к REST-сервису"
- 🌐 Решение:
- Проверьте, что сервис опубликован на веб-сервере (Apache/IIS).
- Убедитесь, что порт открыт в брандмауэре (
80или443для HTTPS). - Проверьте логин/пароль в заголовке
Authorization.
Как устранить ошибку"Объект не найден" при работе с REST API?
Эта ошибка возникает, если неверно указано имя справочника в URL. Проверьте регистр и синтаксис:
- Правильно: /hs/exchange/rest/Справочник_Номенклатура
- Неправильно: /hs/exchange/rest/номенклатура или /СправочникНоменклатура
FAQ: Частые вопросы по работе со справочниками 1С
Можно ли выгрузить справочник с историей изменений (кто и когда редактировал записи)?
Да, для этого нужно использовать журнал регистрации или подписку на события:
- В конфигураторе откройте
Администрирование → Журналы регистрации. - Настройте регистрацию изменений для нужного справочника.
- Выгрузите данные журнала через запрос:
ВЫБРАТЬ
ЖурналДокументов.Дата,
ЖурналДокументов.Пользователь,
ЖурналДокументов.Событие,
ЖурналДокументов.ПредставлениеОбъекта
ИЗ
РегистрСведений.ЖурналРегистрации КАК ЖурналДокументов
ГДЕ
ЖурналДокументов.Объект = ВЫБРАТЬ Справочник.Номенклатура.Ссылка
Как выгрузить справочник вместе с картинками (изображениями номенклатуры)?
Картинки в 1С хранятся в бинарных данных. Чтобы их выгрузить:
- Используйте запрос с полем
Картинка(если оно есть в справочнике). - Сохраните бинарные данные в файл:
Картинка = Выборка.Картинка.Получить;
Картинка.Записать("C:\Temp\image.jpg");
Для пакетной выгрузки используйте обработку ВыгрузкаИзображений (доступна на Инфостарте).
Можно ли автоматически обновлять справочник в 1С из Excel?
Да, для этого:
- Создайте обработку загрузки данных из Excel (например,
ЗагрузкаИзExcel.epf). - Настройте соответствие колонок файла полям справочника.
- Используйте метод
НайтиПоНаименованиюилиНайтиПоРеквизитудля поиска существующих записей.
Пример кода для обновления цены номенклатуры:
Таблица = ПолучитьДанныеИзExcel("C:\Temp\цены.xlsx");
Для Каждого Строка Из Таблица Цикл
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Строка.Наименование);
Если Номенклатура <> Неопределено Тогда
Номенклатура.Цена = Строка.Цена;
Номенклатура.Записать;
КонецЕсли;
КонецЦикла;
Как перенести справочник из одной базы 1С в другую?
Есть несколько способов:
- Через обмен данными: настройте план обмена между базами (
Администрирование → Обмен данными). - Через XML: выгрузите справочник в XML в первой базе и загрузите во второй.
- Через DT-файл: используйте обработку
ВыгрузкаЗагрузкаДанныхXML(поставляется с платформой).
Для больших объемов данных рекомендуется использовать распределенную информационную базу (РИБ).
Почему при выгрузке в Excel русские буквы отображаются кракозябрами?
Проблема связана с неверной кодировкой. Решения:
- При сохранении файла явно укажите кодировку
UTF-8илиWindows-1251. - В Excel при открытии файла выберите кодировку вручную:
- Откройте Excel →
Файл → Открыть. - Выберите файл CSV → нажмите
Импорт. - На шаге"Формат данных" укажите кодировку
1251илиUTF-8. - Если используете 1С 7.7, выгружайте данные в DBF — этот формат не имеет проблем с кодировкой.