Как перенести список сотрудников из 1С во внешний файл
Содержание
Самый короткий путь: откройте список сотрудников, нажмите Ещё → Вывести список, выберите нужные колонки и сохраните результат через Файл → Сохранить как в формат .xlsx, .ods или .mxl. Эта команда есть в любом списке 1С на платформе 8.3 и не требует ни прав разработчика, ни внешних обработок.
Способов на самом деле несколько, и выбирают их по задаче. Нужен разовый файл для руководителя — хватит «Вывести список ». Нужны поля, которых в списке нет (паспорт, оклад, подразделение) — берут кадровый отчёт. Нужно регулярно отдавать данные в другую программу — настраивают обмен через XML или OData. А если выгрузку надо гонять по расписанию без участия человека — пишут обработку и COM-соединение.
Разберём каждый вариант: где находится, что умеет и в какой формат отдаёт.
«Вывести список» — быстрый экспорт без обработок
Это универсальный механизм платформы. Работает в 1С:ЗУП 3.1, 1С:Бухгалтерии 3.0, 1С:УНФ — везде, где есть справочник сотрудников.
Порядок действий:
- Откройте список сотрудников:
- в ЗУП —
Кадры → Сотрудники; - в Бухгалтерии —
Зарплата и кадры → Сотрудники.
- в ЗУП —
- Настройте колонки, которые должны попасть в файл. Нажмите
Ещё → Изменить форму(илиЕщё → Настроить список) и добавьте нужные поля — например, подразделение, должность, дату приёма. - Нажмите
Ещё → Вывести список. - В открывшемся окне выберите тип: Табличный документ (аналог таблицы, удобно для Excel) или Текстовый документ. Отметьте галочками колонки для выгрузки.
- Нажмите
ОК— 1С построит документ. - Сохраните его:
Файл → Сохранить как, в поле «Тип файла» выберите нужный формат.
В файл попадают только видимые колонки списка. Если в выгрузке не хватает поля — сначала добавьте его в список (шаг 2), потом выводите.
Команда «Вывести список» выгружает именно то, что показано на экране. Если список отфильтрован (например, по подразделению) — в файл уйдут только отфильтрованные строки. Это удобно, когда нужен срез, но легко забыть снять фильтр и получить неполный список.
В какие форматы сохраняется список и какой выбрать
Табличный документ, который строит «Вывести список», сохраняется в несколько форматов. Выбор зависит от того, кто и чем будет открывать файл.
| Формат | Расширение | Когда брать |
|---|---|---|
| Лист Excel 2007 | .xlsx | Передать бухгалтеру или в кадры — открывается в Excel и LibreOffice |
| Лист Excel 97–2003 | .xls | Нужна совместимость со старым ПО |
| Таблица ODF | .ods | У получателя LibreOffice/OpenOffice |
| Табличный документ 1С | .mxl | Открыть позже в другой базе 1С без потери форматирования |
| Текстовый документ | .txt | Простая выгрузка, разделитель — табуляция |
| PDF-документ | .pdf | Файл для печати, без правок |
Для .xlsx Excel на компьютере не нужен — платформа 8.3 пишет этот формат своим движком.
С форматом CSV есть нюанс. В списке «Сохранить как» для табличного документа его обычно нет. Самый надёжный путь — сохранить в .xlsx, открыть в Excel или LibreOffice и пересохранить как CSV, выбрав разделитель (точка с запятой или запятая) и кодировку.
При сохранении в CSV следите за кодировкой. Для российских систем обычно берут UTF-8 или Windows-1251. Неверная кодировка превращает русские фамилии в «кракозябры».
Формат MXL стоит особняком. Это родной табличный формат 1С. Он сохраняет оформление, объединённые ячейки и структуру один в один. Смысл в нём есть, только если файл будут открывать снова в 1С (Файл → Открыть). Для Excel и прочих программ MXL бесполезен — им нужен .xlsx.
Кадровые отчёты, когда нужны поля помимо списка
Список сотрудников показывает базовый набор колонок. Если нужны паспортные данные, адреса, сведения о подразделении или история приёма — списка мало. Здесь работают кадровые отчёты.
В 1С:ЗУП 3.1 отчёты собраны в разделе Кадры → Кадровые отчёты. Среди них:
- 📋 Личные данные сотрудников — ФИО, дата рождения, ИНН, СНИЛС, паспорт.
- 👥 Штатные сотрудники (списки работающих) — кто числится на выбранную дату.
- 🗂️ отчёты по приёмам, переводам и увольнениям — кадровое движение за период.
Любой отчёт после формирования выгружается так же: Ещё → Сохранить как или Файл → Сохранить как, формат .xlsx.
Преимущество отчёта перед «Вывести список» — настройка через Ещё → Изменить вариант. Там добавляют поля, группировки и отборы, которых в обычном списке нет. Один раз настроили вариант, сохранили — и дальше выгружаете одним нажатием.
Точные названия кадровых отчётов зависят от релиза конфигурации. Если нужного пункта не видно — откройте Все отчёты (или воспользуйтесь строкой поиска в разделе «Кадры») и найдите отчёт по слову «сотрудники» или «личные данные».
В 1С:Бухгалтерии 3.0 набор кадровых отчётов скромнее — она не кадровая программа. Для полноценной выгрузки персональных данных берут ЗУП.
Выгрузка для обмена с другой базой и внешними системами
Когда сотрудников надо не просто показать в Excel, а передать в другую программу, экспорт в таблицу не подойдёт — нужен структурированный формат.
Обмен между базами 1С. Для переноса справочников между одинаковыми конфигурациями используют типовую обработку выгрузки-загрузки данных XML (ВыгрузкаЗагрузкаДанныхXML). Она берёт справочник Сотрудники целиком, со всеми ссылками, и выгружает в XML-файл, который загружается в другую базу.
Важная деталь: вместе с сотрудником в XML уходят связанные объекты — физические лица, подразделения, должности. Иначе на приёмной стороне ссылки окажутся «битыми». Поэтому для осмысленного переноса кадров отмечают к выгрузке не один справочник сотрудников, а всю связанную группу. Между разными конфигурациями (например, из Бухгалтерии в ЗУП) эта обработка не годится — там нужен универсальный обмен по правилам конвертации.
Передача во внешнюю систему по OData. Платформа 8.3 умеет отдавать любые справочники через стандартный REST-интерфейс (протокол OData). Это и есть «работа с API», про которую спрашивают кадровики, когда нужно связать 1С с внешним порталом или 1С-Битрикс.
Настройка в два шага:
- Включите интерфейс:
Администрирование → Интернет-поддержка и сервисы → Настройка стандартного интерфейса ODataи отметьте, какие объекты публиковать (в нашем случае — справочник сотрудников). - Опубликуйте базу на веб-сервере (
Конфигуратор → Администрирование → Публикация на веб-сервере), в публикации разрешите OData.
После этого сотрудники доступны по HTTP-адресу вида .../odata/standard.odata/Catalog_Сотрудники. Внешняя система запрашивает его и получает данные в XML (AtomPub) или JSON — зависит от параметра запроса. Логин и пароль пользователя 1С передаются как Basic-авторизация.
OData понимает стандартные параметры отбора и выбора полей. Чтобы получить только ФИО и код в формате JSON, к адресу добавляют строку запроса:
.../odata/standard.odata/Catalog_Сотрудники?$format=json&$select=Code,Description&$filter=DeletionMark eq false
Здесь $select ограничивает список полей, $filter отсекает помеченных на удаление, $format=json задаёт формат ответа. Так внешняя система тянет актуальный список без выгрузки всей базы.
Через OData видны персональные данные сотрудников. Выдавайте для этого отдельного пользователя 1С с минимальными правами — только чтение нужных справочников, без доступа к зарплате.
Выгрузка запросом через Консоль запросов
Когда стандартных полей не хватает, а городить отчёт долго, помогает запрос. Инструмент — обработка Консоль запросов (есть в составе типовых конфигураций и на диске ИТС).
Логика простая:
- Откройте Консоль запросов (
Файл → Открыть, если это внешняя обработка.epf). - Напишите запрос к справочнику сотрудников. Например:
ВЫБРАТЬ
Сотрудники.Наименование КАК ФИО,
Сотрудники.Код,
Сотрудники.ДатаРождения,
Сотрудники.Физлицо.ИНН КАК ИНН
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
НЕ Сотрудники.ПометкаУдаления
УПОРЯДОЧИТЬ ПО
ФИО
- Выполните запрос.
- Результат выгрузите командой консоли «Вывести в табличный документ» (или аналогичной в вашей версии обработки), а дальше —
Сохранить какв.xlsx.
Так в выгрузку попадают любые реквизиты и реквизиты связанных объектов (физлицо, подразделение, должность) в нужном порядке. Это гибче, чем «Вывести список», и не требует менять настройку списка.
Через точку можно дотянуться до данных на несколько уровней: Сотрудники.Физлицо.ИНН, Сотрудники.Физлицо.АдресПоПрописке. Главное — не выгружать лишнего: чем меньше персональных полей в файле, тем меньше потом хлопот с его хранением и доступом.
Для повторяемых сложных выгрузок пишут внешнюю обработку
(.epf): в ней запрос, формирование файла и отбор параметров оформлены один раз. Запускается через Файл → Открыть, без изменения конфигурации.
Поле Наименование у справочника сотрудников — это и есть ФИО. Отдельных реквизитов «Фамилия», «Имя», «Отчество» в справочнике сотрудников обычно нет: они хранятся у связанного элемента справочника «Физические лица».
Автоматизация: COM-соединение и регламентная выгрузка
Если список надо выгружать регулярно и без участия человека, применяют два подхода.
Внешнее COM-соединение. Отдельный скрипт (VBScript, PowerShell, Python) подключается к базе через COM-объект V83.COMConnector, читает справочник сотрудников и пишет файл. Пример на VBScript:
Set Connector = CreateObject("V83.COMConnector")
Set Conn = Connector.Connect( _
"Srvr=""server1c"";Ref=""ZUP"";Usr=""Выгрузка"";Pwd=""пароль"";")
Set Выборка = Conn.Справочники.Сотрудники.Выбрать()
Set fso = CreateObject("Scripting.FileSystemObject")
Set Файл = fso.CreateTextFile("C:\exchange\employees.csv", True)
Do While Выборка.Следующий()
Если Выборка.ПометкаУдаления Then
Else
Файл.WriteLine Выборка.Код & ";" & Выборка.Наименование
End If
Loop
Файл.Close
Conn = Nothing
Перед первым запуском COM-объект нужно зарегистрировать в системе:
regsvr32 "C:\Program Files\1cv8\8.3.24.1234\bin\comcntr.dll"
(путь — под вашу версию платформы).
Разрядность важна. Для 64-битной платформы регистрируйте 64-битный comcntr.dll и запускайте скрипт 64-битным хостом, для 32-битной — соответственно 32-битными. Несовпадение разрядности — частая причина ошибки «класс не зарегистрирован».
Регламентное задание внутри 1С. Второй способ не выходит за пределы конфигурации: в расширении или обработке создают процедуру выгрузки и вешают её на регламентное задание. На клиент-серверной базе оно отработает на сервере по расписанию — например, каждую ночь кладёт свежий файл в сетевую папку. Этот путь надёжнее COM: не зависит от внешнего планировщика и разрядности.
Файловую базу так автоматизировать сложнее — у неё нет сервера, который держит регламентные задания в фоне. Для файловой базы остаётся COM-скрипт в планировщике Windows либо периодический запуск обработки вручную. Если выгрузка нужна каждый день, это аргумент за перевод базы в клиент-серверный режим.
Частые ошибки при выгрузке сотрудников
Ниже — сбои, которые не очевидны из самой инструкции.
Ещё → Изменить форму, затем выводите заново.UTF-8 или Windows-1251 — той, которую ждёт принимающая программа.Ещё → Настроить список → Отбор) перед выгрузкой..xlsx, откройте в Excel и пересохраните в CSV.comcntr.dll или не совпала разрядность. Выполните regsvr32 для dll нужной разрядности из каталога bin вашей версии платформы.Частые вопросы
Можно ли выгрузить сотрудников без доступа к Конфигуратору?
Ещё → Вывести список и кадровые отчёты работают в режиме 1С:Предприятие под обычным пользователем. Конфигуратор нужен только для публикации OData и внешних обработок.В каком поле хранится ФИО — одной строкой или по частям?
Как выгрузить только работающих на определённую дату?
Нужен ли Excel на компьютере, чтобы сохранить в xlsx?
.xlsx своим движком. Excel понадобится, только если вы пишете выгрузку через COM-объект Excel.Application.Законно ли выгружать персональные данные сотрудников в файл?
Источники
- Федеральный закон от 27.07.2006 № 152-ФЗ «О персональных данных»