Справочники и Данные · 12 мин
Как из 1С выгрузить контрагентов с адресами и телефонами
Пошаговая инструкция: как выгрузить контрагентов из 1С с адресами и телефонами через отчёт, обработку и консоль запросов в Excel и CSV.
Выгрузка списка контрагентов с контактной информацией — типовая задача, которая возникает при миграции в другую систему, подготовке рассылки, сверке данных или передаче базы аудитору. В 1С адреса и телефоны хранятся не в реквизитах справочника «Контрагенты», а в отдельной таблице контактной информации, поэтому простое копирование списка справочника нужного результата не даст.
Есть несколько рабочих способов получить такую выгрузку: универсальный отчёт, стандартная обработка «Выгрузка и загрузка данных», произвольный отчёт через схему компоновки данных, консоль запросов и программная выгрузка обработкой. Выбор зависит от конфигурации (Управление торговлей, Бухгалтерия, ERP, самописная), версии платформы и того, есть ли у вас права на запуск внешних обработок.
Ниже разобраны основные методы с точными действиями, ограничениями и способами проверки результата. Все примеры применимы к типовым конфигурациям на управляемых формах (БСП), где контактная информация хранится в табличной части справочника и в регистре сведений.
Где в 1С хранятся адреса и телефоны контрагентов
В типовых конфигурациях на базе Библиотеки стандартных подсистем (БСП) контактная информация — это табличная часть справочника «Контрагенты» с именем КонтактнаяИнформация. В ней каждая строка содержит тип (адрес, телефон, email, сайт), вид (юридический адрес, фактический адрес, телефон рабочий и т.д.) и само значение в полях Представление и ЗначенияПолей.
Из-за такой структуры у одного контрагента может быть несколько телефонов и адресов, и при выгрузке они либо разворачиваются в несколько строк, либо собираются в одну ячейку через разделитель. Это важно учитывать при выборе способа: универсальный отчёт выведет строки «как есть», а для формата «один контрагент — одна строка с колонками Телефон, Адрес, Email» понадобится запрос с группировкой или обработка.
В старых конфигурациях на обычных формах (например, УТ 10.3, Бухгалтерия 1.6/2.0) контактная информация хранится в регистре сведений «КонтактнаяИнформация», и логика выгрузки отличается — там удобнее работать через произвольный отчёт или консоль запросов по регистру.
Способ 1. Универсальный отчёт без программирования
Универсальный отчёт доступен в типовых конфигурациях (Бухгалтерия 3.0, УТ 11, ERP, Комплексная автоматизация) и не требует прав разработчика. Обычно он находится в разделе «Отчёты» → «Универсальный отчёт», либо открывается через «Ещё» → «Универсальный отчёт» в списке справочника.
Порядок настройки: в поле типа данных выберите «Справочник», в поле объекта — «Контрагенты». Затем в настройках отчёта добавьте поля: Наименование, ИНН, КПП, а из табличной части «Контактная информация» — поля «Тип», «Вид» и «Представление». Чтобы в выгрузку попали только телефоны и адреса, установите отбор по полю «Тип» в список «Адрес, Телефон» (и при необходимости «АдресЭлектроннойПочты»).
После формирования отчёт можно сохранить через «Файл» → «Сохранить как» в формате MXL или сразу в Excel (xlsx), если платформа предлагает такой вариант. Табличный документ из MXL затем открывается и пересохраняется в Excel без потери данных.
- 1Откройте Отчёты → Универсальный отчёт, выберите Справочник → Контрагенты
- 2В настройках добавьте поля: Наименование, ИНН, КонтактнаяИнформация.Тип, КонтактнаяИнформация.Вид, КонтактнаяИнформация.Представление
- 3Установите отбор: Тип контактной информации в списке «Адрес; Телефон»
- 4Сформируйте отчёт и сохраните результат в Excel через Файл → Сохранить как
- 5Проверьте: у контрагентов с несколькими телефонами должно быть несколько строк
Способ 2. Выгрузка через запрос (консоль запросов или СКД)
Если нужен формат «один контрагент — одна строка» с отдельными колонками под телефон, адрес и email, универсальный отчёт не подойдёт — нужен запрос. В конфигурациях с подсистемой «Дополнительные отчёты и обработки» можно создать внешний отчёт на СКД, либо использовать обработку «Консоль запросов» (входит в типовые инструменты разработчика и многие поставки).
Типовой запрос для получения телефонов и адресов выглядит так:
ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
Контрагенты.Наименование КАК Наименование,
КонтрагентыКИ.Тип КАК Тип,
КонтрагентыКИ.Вид КАК Вид,
КонтрагентыКИ.Представление КАК Значение
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКИ
ПО Контрагенты.Ссылка = КонтрагентыКИ.Ссылка
ГДЕ
КонтрагентыКИ.Тип В (&Типы)
И НЕ Контрагенты.ПометкаУдаления
В параметр &Типы передаётся список значений: Перечисление.ТипыКонтактнойИнформации.Адрес и .Телефон. Левое соединение гарантирует, что контрагенты без телефонов тоже попадут в выгрузку — с пустым значением. Если нужен только список контрагентов, у которых контакты заполнены, замените левое соединение на внутреннее.
Для сведения нескольких строк в одну (телефоны через точку с запятой в одной ячейке) в СКД используют вычисляемое поле с функцией из общего модуля, либо группировку с объединением значений в ресурсе. Это уже требует базовых навыков СКД, но даёт готовый к рассылке файл.
ВЫБРАТЬ К.Ссылка, К.Наименование, КИ.Тип, КИ.Вид, КИ.Представление ИЗ Справочник.Контрагенты КАК К ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ ПО К.Ссылка = КИ.Ссылка ГДЕ НЕ К.ПометкаУдаленияСпособ 3. Программная выгрузка обработкой
Когда объём большой (десятки тысяч контрагентов) или нужен строгий формат — CSV с разделителями, выгрузка по расписанию, транслитерация, — пишется внешняя обработка. Минимальный код обходит выборку запроса и построчно пишет в текстовый файл или табличный документ.
Пример выгрузки в CSV:
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ К.Наименование, КИ.Вид, КИ.Представление
|ИЗ Справочник.Контрагенты КАК К
|ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КИ
|ПО К.Ссылка = КИ.Ссылка
|ГДЕ НЕ К.ПометкаУдаления";
Выборка = Запрос.Выполнить().Выбрать();
Текст = Новый ТекстовыйДокумент;
Пока Выборка.Следующий() Цикл
Строка = Выборка.Наименование + ";" + Строка(Выборка.Вид) + ";" + Выборка.Представление;
Текст.ДобавитьСтроку(СтрЗаменить(Строка, Символы.ПС, " "));
КонецЦикла;
Текст.Записать("C:\Выгрузка\Контрагенты.csv", КодировкаТекста.UTF8);
Два практических момента. Во-первых, в представлении адреса часто встречаются переносы строк и запятые — их нужно очищать или экранировать, иначе CSV «поедет» при открытии в Excel. Во-вторых, сохраняйте файл в UTF-8 с BOM, иначе кириллица в Excel может отобразиться кракозябрами.
Что делать в старых конфигурациях на обычных формах
В УТ 10.3, Бухгалтерии 2.0 и подобных контактная информация лежит в регистре сведений «КонтактнаяИнформация», где измерение — объект (контрагент), а ресурсы — тип, вид и представление. Универсального отчёта в современном виде там нет, но есть «Отчёт по произвольным данным» / консоль отчётов, где строится запрос по регистру:
ВЫБРАТЬ
КИ.Объект КАК Контрагент,
КИ.Тип,
КИ.Вид,
КИ.Представление
ИЗ
РегистрСведений.КонтактнаяИнформация КАК КИ
ГДЕ
КИ.Объект ССЫЛКА Справочник.Контрагенты
Результат сохраняется в табличный документ и далее в Excel. Логика отборов по типам и видам та же, что и в управляемых конфигурациях.
Как проверить результат выгрузки
После получения файла сверьте три вещи: количество контрагентов в выгрузке с количеством элементов справочника (без помеченных на удаление), наличие контрагентов без контактов (если использовали левое соединение, они должны присутствовать с пустыми полями) и корректность кодировки при открытии в Excel.
Также проверьте несколько случайных контрагентов вручную: откройте карточку в 1С и сравните телефон и адрес с тем, что попал в файл. Особое внимание — контрагентам с несколькими адресами: убедитесь, что юридический и фактический не перепутаны и не склеились в одну строку.
Как проверить результат
Совпадает с количеством непомеченных элементов справочника
В файле меньше строк — часть контрагентов потерялась из-за внутреннего соединения
Кириллица читается нормально
Кракозябры — файл сохранён не в UTF-8
Каждый телефон в отдельной строке или объединён через разделитель
Телефоны склеены без разделителя или часть пропала
Юридический и фактический адреса различимы по колонке «Вид»
Адреса перемешаны без указания вида
Типичные ошибки и ограничения
Самая частая ошибка — выгрузка только реквизитов справочника через «Вывести список»: в таком списке нет телефонов и адресов, потому что это отдельная таблица. Вторая ошибка — использование внутреннего соединения в запросе, из-за которого из выгрузки выпадают все контрагенты без заполненных контактов.
Третья группа проблем — техническая: потеря данных из-за переносов строк в представлении адреса, неправильная кодировка CSV, выгрузка помеченных на удаление элементов и дублей. Также помните об ограничении Excel примерно в миллион строк: при очень больших базах выгружайте порциями через отбор по группам контрагентов.
Выбор способа под вашу задачу
Как выбрать действие
Для разовой задачи в типовой конфигурации почти всегда достаточно универсального отчёта. Программные способы оправданы, когда выгрузка регулярная, нужен особый формат или объём данных не позволяет работать интерактивно.
Что важно запомнить
Адреса и телефоны хранятся в табличной части «КонтактнаяИнформация» (или регистре сведений в старых конфигурациях), а не в реквизитах справочника. Используйте универсальный отчёт или запрос с левым соединением, отбирайте типы «Адрес» и «Телефон», сохраняйте в UTF-8 и проверяйте результат по количеству строк и случайным карточкам.
Частые вопросы
Можно ли выгрузить контрагентов с телефонами без доступа к конфигуратору?
Да. Универсальный отчёт, групповое изменение реквизитов и вывод списка доступны обычному пользователю с правами на справочник. Программирование нужно только для нестандартных форматов и регулярных выгрузок.
Почему в выгрузке у одного контрагента несколько строк?
Потому что контактная информация хранится построчно: каждый телефон и адрес — отдельная строка табличной части. Чтобы получить одну строку на контрагента, нужна группировка в СКД или обработка, объединяющая значения через разделитель.
Как выгрузить только юридические адреса, без фактических?
Добавьте в отбор отчёта или запроса условие по полю «Вид» контактной информации: выберите конкретный вид «Юридический адрес» из справочника видов контактной информации. Аналогично отбираются «Телефон рабочий», «Email» и другие виды.
Что делать, если в Excel вместо русских букв кракозябры?
Файл CSV сохранён не в той кодировке. Пересохраните его в UTF-8 с BOM, либо откройте через «Данные → Получение данных из текстового файла» в Excel с явным указанием кодировки 65001 (UTF-8). Альтернатива — выгружать сразу в табличный документ и сохранять в xlsx.
Как исключить из выгрузки помеченных на удаление и дубли?
В отборе отчёта или в условии ГДЕ запроса добавьте «ПометкаУдаления = Ложь». Для поиска дублей перед выгрузкой используйте типовую обработку «Поиск и удаление дублей» — она объединит повторяющиеся карточки, и выгрузка будет чище.
Можно ли выгрузить контактные лица вместе с контрагентами?
Да, но это отдельный справочник «Контактные лица» со своей табличной частью контактной информации. Потребуется запрос с соединением трёх таблиц: контрагенты, контактные лица (по владельцу) и их контактная информация. В универсальном отчёте такую связку собрать сложно — удобнее СКД или консоль запросов.