Как выгрузить номера телефонов владельцев карт лояльности из 1С:Управление торговлей 11.5 в Excel?

Программист 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В процессе работы с лояльностью клиентов часто возникает необходимость массового оповещения покупателей. Например, при смене бонусной программы на дисконтную или при запуске новой акции. Основной задачей в этом случае становится получение актуального списка номеров телефонов, которые привязаны к картам лояльности. В конфигурации 1С:Управление торговлей 11.5 эта информация распределена между несколькими объектами системы, и простого копирования списка часто недостаточно. Рассмотрим подробно несколько эффективных способов решения этой задачи: от использования консоли запросов до стандартных отчетов.

Способ 1: Использование консоли запросов для гибкой выгрузки

Для программиста или опытного администратора наиболее быстрым и точным способом будет написание запроса. Это позволит выбрать только нужные поля и отфильтровать неактивные карты. Рассмотрим структуру запроса, который позволит вытащить телефон партнера (клиента), за которым закреплена карта.

Проанализируем пример запроса, который обращается к справочнику КартыЛояльности и извлекает контактную информацию владельца:


ВЫБРАТЬ
    КартыЛояльности.Ссылка КАК Карта,
    КартыЛояльности.Партнер КАК Клиент,
    КартыЛояльности.Партнер.КонтактнаяИнформация.(
        НомерТелефона КАК НомерТелефона,
        Представление КАК Представление
    ) КАК КонтактныеДанные,
    КартыЛояльности.Статус КАК Статус
ИЗ
    Справочник.КартыЛояльности КАК КартыЛояльности
ГДЕ
    КартыЛояльности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыКартЛояльности.Действует)
    И КартыЛояльности.Партнер.КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
УПОРЯДОЧИТЬ ПО
    Клиент

Разберем, что происходит в этом запросе. Мы обращаемся к справочнику КартыЛояльности. Поскольку в 1С:УТ 11.5 номер телефона обычно привязан не к самой карте, а к Партнеру (владельцу карты), мы обращаемся через точку к полю Партнер, а затем к его табличной части КонтактнаяИнформация.

Важный нюанс: В последних версиях платформы 8.3 контактная информация может храниться не только в табличных частях справочников, но и в отдельном регистре сведений. Если вышеуказанный запрос возвращает пустые строки, попробуем обратиться к регистру РегистрСведений.КонтактнаяИнформация, установив связь по полю Объект.

После выполнения запроса в Консоли запросов, чтобы сохранить данные в Excel, необходимо выполнить следующие действия:

  1. Нажать правой кнопкой мыши на область результата или найти кнопку Вывести список (в некоторых консолях это кнопка с иконкой таблицы).
  2. В появившемся окне выбрать колонки, которые нужно перенести.
  3. После формирования табличного документа нажать Файл — Сохранить как и выбрать формат Лист Excel (.xlsx).

Способ 2: Настройка «Универсального отчета» (без программирования)

Если нет доступа к консоли запросов или желания писать код, воспользуемся мощным инструментом Универсальный отчет. Он позволяет выгружать данные любых справочников и регистров со всеми их связями.

Перейдем по шагам к настройке отчета:

  1. Откроем раздел НСИ и администрированиеОбслуживаниеОтчеты и обработкиУниверсальный отчет.
  2. В поле «Тип объекта» выберем Справочник.
  3. В поле «Имя объекта» выберем Партнеры (или Карты лояльности, если нужно идти от карт).
  4. Нажмем кнопку Настройки... и перейдем в режим Расширенный.
  5. На вкладке Поля и сортировки нажмем Добавить. Развернем узел Партнер (или выберем текущий объект), найдем группу Контактная информация.
  6. Выберем поле Представление для типа «Телефон».
  7. На вкладке Отборы добавим условие: Карта лояльности.Статус Равно Действует, чтобы не выгружать лишние данные.

Преимущество этого метода в том, что 1С автоматически обрабатывает сложные связи таблиц, и пользователь видит понятные названия полей вместо технических имен.

Понимание структуры данных: Ссылка, Наименование и Представление

Часто у пользователей возникает вопрос: почему в запросе мы пишем Ссылка, а в результате видим название карты? Выясним причину этого поведения системы.

В 1С объект типа Ссылка (Ref) — это уникальный идентификатор записи (GUID). Однако для удобства человека платформа всегда отображает Основное представление этого объекта. Обычно это либо Наименование, либо Код.

Рассмотрим основные поля, с которыми мы сталкиваемся при выгрузке:

Подготовка данных для внешней рассылки

Когда данные выгружены в Excel, их часто нужно «причесать» для загрузки в SMS-сервисы. Сервисы обычно требуют формат 79991234567 без лишних символов.

Проанализируем ситуацию: в поле телефона могут быть пробелы, скобки и тире. Чтобы очистить их в Excel, воспользуемся функцией Найти и заменить (Ctrl+H):

  1. Заменим «(» на пустоту.
  2. Заменим «)» на пустоту.
  3. Заменим «-» на пустоту.
  4. Заменим пробел на пустоту.

Если же вы хотите получить чистый номер сразу из 1С, в запросе следует обращаться к полю НомерТелефона табличной части КонтактнаяИнформация. В типовых конфигурациях 1С старается хранить там только цифровую последовательность.

Альтернатива: Встроенная рассылка без выгрузки в Excel

Рассмотрим еще один важный момент. Руководство часто просит выгрузку для рассылки, но безопаснее и быстрее делать рассылку прямо из 1С. Это исключает риск утечки базы данных (персональных данных клиентов) на внешние носители.

В 1С:УТ 11.5 для этого есть встроенный механизм:

  1. Создадим Сегмент партнеров. В правилах формирования сегмента укажем наличие действующей карты лояльности определенного вида.
  2. Перейдем в раздел CRM и маркетингРассылки клиентам.
  3. Создадим новый документ, выберем наш сегмент и подготовим текст сообщения.
  4. Если подключен шлюз SMS-провайдера, программа сама отправит сообщения по всем номерам, привязанным к картам, без промежуточных выгрузок в Excel.

Таким образом, мы рассмотрели как технические способы извлечения данных через Конструктор запросов, так и пользовательские методы через Универсальный отчет. Выбор способа зависит от ваших полномочий в системе и конечной цели использования данных.

← На главную