Вопрос организации взаимодействия с клиентами через 1С является классической задачей для сервисных компаний. Основная сложность заключается в поиске баланса: решение не должно быть перегруженным, как тяжелые ITIL-системы, но при этом обязано обеспечивать прозрачность статусов и учет трудозатрат. В этой статье мы разберем несколько подходов к решению этой задачи, основываясь на опыте практикующих специалистов и возможностях платформы 1С.
Проанализируем возможности 1С:УНФ, которую часто называют оптимальным выбором для малого и среднего бизнеса. В данной программе уже заложены механизмы, позволяющие реализовать функционал Service Desk без серьезных доработок.
Для учета услуг и времени выполнения заявок в УНФ используется документ Заказ-наряд. Рассмотрим его преимущества:
Для организации веб-интерфейса в УНФ существует сервис «Кабинет клиента». Это встроенный конструктор, который позволяет создать упрощенное рабочее место для ваших контрагентов. Клиент заходит через браузер или мобильное приложение, создает заказ (заявку) и отслеживает изменение его статуса в реальном времени. Это избавляет вас от необходимости покупать дополнительные лицензии 1С для каждого клиента, так как сервис работает через облачную инфраструктуру 1С.
Если ваша деятельность связана с ИТ-услугами или автоматизацией, стоит обратить внимание на специализированное расширение для УНФ — «Управление фирмой франчайзи». Это решение развивает идеи стандартной УНФ, добавляя специфические функции:
Если типовые решения кажутся избыточными, рассмотрим вариант создания собственной системы на основе Библиотеки стандартных подсистем (БСП). Разберем по шагам, как быстро спроектировать такой функционал:
Для начала нам понадобится создать справочник Контрагенты и документ ЗаявкаОтКлиента. В документе обязательно должны быть реквизиты: Заказчик, Исполнитель, Статус (перечисление) и табличная часть Трудозатраты с колонкой ВремяВЧасах.
Пример кода для простейшего расчета итогового времени в документе:
Процедура РассчитатьИтогиТрудозатрат(ДокументОбъект) Экспорт
ИтогЧасов = 0;
Для Каждого Строка Из ДокументОбъект.Трудозатраты Цикл
ИтогЧасов = ИтогЧасов + Строка.ВремяВЧасах;
КонецЦикла;
ДокументОбъект.ВсегоЗатраченоВремени = ИтогЧасов;
КонецПроцедуры
Использование БСП значительно ускоряет процесс, так как вы получаете готовые механизмы управления пользователями, настройки прав доступа и интеграции с веб-сервером. Чтобы клиенты могли заходить в базу, используется Веб-клиент 1С. База публикуется на веб-сервере (IIS или Apache), и клиенты получают доступ через обычный браузер.
Важный момент: Чтобы клиенты видели только свои заявки, необходимо настроить RLS (Record Level Security) — механизм ограничения доступа на уровне записей. Выясним причину, почему это важно: без RLS клиент с правами на просмотр справочника заявок сможет увидеть данные других контрагентов, что является критическим нарушением безопасности.
Рассмотрим более продвинутый и масштабируемый вариант. Вместо того чтобы пускать клиентов напрямую в 1С (даже через веб-клиент), можно создать легкий сайт на PHP/Python или использовать готовое решение, которое будет обмениваться данными с 1С через HTTP-сервисы.
Преимущества такого подхода:
Пример простейшего метода HTTP-сервиса для получения статуса заявки клиентом в формате JSON:
Функция ПолучитьСтатусЗаявки(Запрос)
НомерЗаявки = Запрос.ПараметрыURL.Получить("Number");
ЗапросБД = Новый Запрос;
ЗапросБД.Текст =
"ВЫБРАТЬ
| ЗаявкаОтКлиента.Статус.Наименование КАК Статус
|ИЗ
| Документ.ЗаявкаОтКлиента КАК ЗаявкаОтКлиента
|ГДЕ
| ЗаявкаОтКлиента.Номер = &Номер";
ЗапросБД.УстановитьПараметр("Номер", НомерЗаявки);
Результат = ЗапросБД.Выполнить().Выгрузить();
Если Результат.Количество() > 0 Тогда
ОтветСтруктура = Новый Структура("status", Результат[0].Статус);
Иначе
ОтветСтруктура = Новый Структура("error", "Заявка не найдена");
КонецЕсли;
Ответ = Новый HTTPСервисОтвет(200);
Ответ.УстановитьТелоИзСтроки(СформироватьJSON(ОтветСтруктура));
Возврат Ответ;
КонецФункции
Проанализируем ситуацию и выберем подходящий путь:
Выясним еще один нюанс: при работе через веб-клиент 1С критически важно качество интернет-соединения. Если ваши клиенты планируют работать с мобильных устройств в условиях нестабильной связи, тонкий или веб-клиент 1С может работать с задержками. В этом случае внешнее веб-приложение или HTTP-сервисы будут единственным стабильным решением.
В завершение разберем вопрос отчетности. Для формирования отчета по затраченному времени в любой из выбранных систем мы рекомендуем использовать Систему компоновки данных (СКД). Она позволит пользователю самостоятельно группировать данные по дням, клиентам или сотрудникам, не прибегая к помощи программиста. Достаточно один раз настроить схему компоновки с ресурсом СУММА(ВремяВЧасах), и прозрачная отчетность для ваших клиентов будет готова.