В процессе работы с лояльностью клиентов часто возникает необходимость массового оповещения покупателей. Например, при смене бонусной программы на дисконтную или при запуске новой акции. Основной задачей в этом случае становится получение актуального списка номеров телефонов, которые привязаны к картам лояльности. В конфигурации 1С:Управление торговлей 11.5 эта информация распределена между несколькими объектами системы, и простого копирования списка часто недостаточно. Рассмотрим подробно несколько эффективных способов решения этой задачи: от использования консоли запросов до стандартных отчетов.
Для программиста или опытного администратора наиболее быстрым и точным способом будет написание запроса. Это позволит выбрать только нужные поля и отфильтровать неактивные карты. Рассмотрим структуру запроса, который позволит вытащить телефон партнера (клиента), за которым закреплена карта.
Проанализируем пример запроса, который обращается к справочнику КартыЛояльности и извлекает контактную информацию владельца:
ВЫБРАТЬ
КартыЛояльности.Ссылка КАК Карта,
КартыЛояльности.Партнер КАК Клиент,
КартыЛояльности.Партнер.КонтактнаяИнформация.(
НомерТелефона КАК НомерТелефона,
Представление КАК Представление
) КАК КонтактныеДанные,
КартыЛояльности.Статус КАК Статус
ИЗ
Справочник.КартыЛояльности КАК КартыЛояльности
ГДЕ
КартыЛояльности.Статус = ЗНАЧЕНИЕ(Перечисление.СтатусыКартЛояльности.Действует)
И КартыЛояльности.Партнер.КонтактнаяИнформация.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Телефон)
УПОРЯДОЧИТЬ ПО
Клиент
Разберем, что происходит в этом запросе. Мы обращаемся к справочнику КартыЛояльности. Поскольку в 1С:УТ 11.5 номер телефона обычно привязан не к самой карте, а к Партнеру (владельцу карты), мы обращаемся через точку к полю Партнер, а затем к его табличной части КонтактнаяИнформация.
Важный нюанс: В последних версиях платформы 8.3 контактная информация может храниться не только в табличных частях справочников, но и в отдельном регистре сведений. Если вышеуказанный запрос возвращает пустые строки, попробуем обратиться к регистру РегистрСведений.КонтактнаяИнформация, установив связь по полю Объект.
После выполнения запроса в Консоли запросов, чтобы сохранить данные в Excel, необходимо выполнить следующие действия:
Если нет доступа к консоли запросов или желания писать код, воспользуемся мощным инструментом Универсальный отчет. Он позволяет выгружать данные любых справочников и регистров со всеми их связями.
Перейдем по шагам к настройке отчета:
Партнер (или выберем текущий объект), найдем группу Контактная информация.Представление для типа «Телефон».Карта лояльности.Статус Равно Действует, чтобы не выгружать лишние данные.Преимущество этого метода в том, что 1С автоматически обрабатывает сложные связи таблиц, и пользователь видит понятные названия полей вместо технических имен.
Часто у пользователей возникает вопрос: почему в запросе мы пишем Ссылка, а в результате видим название карты? Выясним причину этого поведения системы.
В 1С объект типа Ссылка (Ref) — это уникальный идентификатор записи (GUID). Однако для удобства человека платформа всегда отображает Основное представление этого объекта. Обычно это либо Наименование, либо Код.
Рассмотрим основные поля, с которыми мы сталкиваемся при выгрузке:
Представление содержит уже отформатированный номер телефона (например, «+7 (999) 000-00-00»), в то время как НомерТелефона может содержать только цифры.Когда данные выгружены в Excel, их часто нужно «причесать» для загрузки в SMS-сервисы. Сервисы обычно требуют формат 79991234567 без лишних символов.
Проанализируем ситуацию: в поле телефона могут быть пробелы, скобки и тире. Чтобы очистить их в Excel, воспользуемся функцией Найти и заменить (Ctrl+H):
Если же вы хотите получить чистый номер сразу из 1С, в запросе следует обращаться к полю НомерТелефона табличной части КонтактнаяИнформация. В типовых конфигурациях 1С старается хранить там только цифровую последовательность.
Рассмотрим еще один важный момент. Руководство часто просит выгрузку для рассылки, но безопаснее и быстрее делать рассылку прямо из 1С. Это исключает риск утечки базы данных (персональных данных клиентов) на внешние носители.
В 1С:УТ 11.5 для этого есть встроенный механизм:
Таким образом, мы рассмотрели как технические способы извлечения данных через Конструктор запросов, так и пользовательские методы через Универсальный отчет. Выбор способа зависит от ваших полномочий в системе и конечной цели использования данных.