В процессе работы с программой 1С часто возникает необходимость сформировать и сохранить в Excel список контрагентов не просто в виде наименований, а с детальной контактной информацией: юридическими и фактическими адресами, телефонами, электронными адресами, а также с ограничением по конкретной группе (папке). Стандартная функция Вывести список из формы справочника не всегда позволяет гибко настроить вывод подчиненных данных и контактной информации по отдельным колонкам.
Рассмотрим, как правильно решить эту задачу с помощью встроенных отчетов платформы и дополнительных настроек.
В большинстве типовых конфигураций 1С предусмотрен встроенный инструмент — Универсальный отчет. Он позволяет извлекать данные из любых справочников, документов и регистров без написания доработок.
Разберем порядок действий по шагам:
.xlsx или .xls.Если в вашей конфигурации присутствует специальный типовой отчет Контактная информация (или Реестр контрагентов), выгрузить данные можно еще быстрее:
При самостоятельной настройке отчетов или разработке внешних обработок проанализируем следующие особенности хранения данных в 1С:
1. Фильтрация по папкам (группам):
Для того чтобы при отборе по папке выгружались не только контрагенты первого уровня вложенности, но и все элементы из внутренних подпапок, всегда используем условие с типом сравнения В ИЕРАРХИИ, а не простое равенство Родитель = &Группа.
2. Избежание дублирования строк:
В современных конфигурациях 1С контактная информация хранится в подчиненном регистре сведений КонтактнаяИнформация. Поскольку у одного контрагента может быть задано сразу несколько видов контактов (телефон, email, несколько адресов), при обычном связывании таблиц в запросе контрагент будет дублироваться в строках столько раз, сколько контактов для него заполнено.
Чтобы избежать дублирования, в запросах или Системе компоновки данных (СКД) применяют сворачивание группировок или соединение регистра по конкретным видам информации, например:
ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
Контрагенты.ИНН КАК ИНН,
ТелефонЗапись.Представление КАК Телефон,
АдресЗапись.Представление КАК Адрес Юридический
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК ТелефонЗапись
ПО ТелефонЗапись.Объект = Контрагенты.Ссылка
И ТелефонЗапись.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ТелефонКонтрагента)
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресЗапись
ПО АдресЗапись.Объект = Контрагенты.Ссылка
И АдресЗапись.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресКонтрагента)
ГДЕ
Контрагенты.Ссылка В ИЕРАРХИИ(&ВыбраннаяГруппа)
И НЕ Контрагенты.ЭтоГруппа
Поле Представление позволяет получить готовый текстовый адрес или номер телефона в понятном пользователю виде без необходимости разбирать внутренние XML/JSON-структуры хранилища адресов.