Много важного и полезного можно почерпнуть, зная, что делает бухгалтер, который запустил обработку. В большом мире вэба сбор статистики на сайте дело привычное и даже обязательное. Эта статья покажет практику применения инструментов сбора статистики из мира веба для обработок на платформе 1С:Предприятие.
Что это?
Данная публикация на примере демонстрационной обработки показывает, как отправлять статистику на сайт analytics.google.com. После встраивания библиотеки для работы с Google Analytics ваша обработка сможет отправлять статистику о:
- количестве пользователей
- переходах по формам
- событиях интерфейса пользователя
- событиях бизнес-логики обработки
- ошибках
- и другой информации
Данная разработка результат совместной работы сотрудников нашей компании. Коллега заложил основы проекта. Я сделал демонстрационный пример и это описание.
Исходный код библиотеки и демонстрационной обработки находятся в репозитории на GitHub
Для тех, кто торопится
Как подключить и внедрить. Шесть простых шагов:
- Заведите аккаунт на сайте analytics.google.com и получите идентификатор отслеживания
- Скопируйте в свою обработку форму "модGA" из демонстрационной обработки
- В основной форме вашей обработки инициализируйте модуль GA, так, как это сделано в примере
- Добавьте вызов метода отправки данных в GA во все контролируемые места вашей обработки
- Добавьте опцию отключения отправки данных в GA и текст дисклеймера на форме настройки вашей обработки
- Настройте отчеты на сайте analytics.google.com
Что это за название у публикации?
Фраза из советского художественного фильма подошла как нельзя лучше:
Google Analytics для обработок. Что это дает?
Признаюсь, Google Analytics это целая вселенная. Понимать от и до, у меня пока не получается. Многое постигаю методом "тыка", а он как известно не очень эффективен. Про Google Analytics есть свежая книжка на русском, возможно она ответит на некоторые вопросы. Буду рад советам коллег, как этот инструмент использовать более полно. Вопросы у меня уже есть. Далее несколько примеров, как GA может помочь разработчику тиражных обработок.
Аудитория пользователей обработки
В GA доступна информация о количестве пользователей в том числе о новых и вернувшихся. Количество сеансов и их длительность тоже очень полезные знания особенно в динамике. Например вы выпустили новую версию обработки и продолжительность сеансов снизилось. Возможно это положительный эффект.
Важно! Для надежного подсчета количества пользователей необходимо правильно устанавливать поле библиотеки ИдКлиента
Местоположение пользователей
Google Analytics дает информацию о местоположении пользователей и их активности. Если ваша обработка или конфигурация распространяется через региональных партнеров, то данная статистика поможет определиться с регионами, которые требуют помощи.
Вовлечение пользователей
Информация о времени проведенном за вашей обработкой показывает наиболее популярный сценарий использования. Длительность сеанса и количество открытых форм укажет на полноту использования функционала вашей обработки. Например, вы можете снять хронометраж "образцового" использования вашей обработки и в дальнейшем сравнивать эти параметры со статистикой вовлечения.
Карта поведения
Совершенно очаровательный и совершенно непонятный "шайтан" отчет
Просмотр страниц
Информация о просмотре форм в обработке. На мой взгляд, интерес представляют наименее популярные формы. Почему пользователи редко их открывают? Нужно разобраться. Так же интересен анализ в динамике. После изменений в новой версии стали ли формы более популярными?
События
В Google Analytics события детализируются по категориям, событиям и деталям (ярлыкам). Я рекомендую категории и события прописать заранее в "перечислениях" библиотеки а вот ярлыки можно оформлять "живым текстом". Пример события:
Действие пользователя — щелчок на кнопке — B2BПолучитьДокумент
Тут красный текст — категория события, зеленый текст — событие а синий текст — ярлык события.
И последнее, о событиях. В GA событие помимо трех вышеназванных параметров имеет четвертый количественный параметр "Количество". Его удобно использовать для подсчета событий бизнес логики. Например, пользователь отметил 5 документов и отправил в ЕГАИС, тогда в GA можно отправить сообщение о событии типа:
Событие бизнес-логики — отправка данных — справка "Б" — 5
Пример пользовательского отчета "Конфигурации"
С чем я не разобрался
Measurement Protocol позволяет передавать на сервер GA много полезной информации однако не все что я отправляю на сервер смог увидеть в отчетах. Что не получилось:
Посмотреть значения обязательных параметров, которые я передаю при каждом обращении в GA. Здесь "an", "av" и "cdx" параметры Measurement Protocol, через которые я передаю данные в обращенииВопрос решен. Спасибо Крапивину Андрею.- an Наименование конфигурации
- av Версия конфигурации
- cd1 Версия платформы
- cd2 Версия ОС
- cd3 Наименование обработки
- cd4 Версия обработки
- Посмотреть информацию обращения об ошибках в обработке. В данном обращении используется параметр "exd" Measurement Protocol
- Пакетный режим отправки обращений в GA
Google Analytics, начало работы с ресурсом
Регистрация
Для работы потребуется зарегистрироваться на сайте Google Analytics. Для регистрации в GA нужен аккаунт в gmail.com. Войдите под своим аккаунтом в Google и зарегистрируйтесь на сайте analytics.google.com
Заполните параметры нового аккаунта. Обратите внимание на подчеркнутые поля. Далее необходимо нажать кнопку “Получить идентификатор отслеживания”, прочитать и согласиться с лицензионным соглашением.
В настройках аккаунта найдите "Идентификатор отслеживания". Он нам в дальнейшем понадобиться.
В приложенном примере обработки у идентификатора отслеживания сохранено рабочее значение. Это не является проблемой безопасности.
Google Analytics для сайтов
Тут все просто. В настройках аккаунта есть код для встраивания на страницы сайта. Он делает все что нужно но нас этот вариант не интересует.
Google Analytics для обработок
Компания Google разработала Measurement Protocol, который позволяет заливать данные в Google Analytics откуда угодно. Коротко о возможностях этого протокола:
- Данные в Google Analytics отправляются с помощью POST запросов к ресурсу https://www.google-analytics.com/collect
- Данные в Google Analytics передаются с помощью обращений, которые состоят из параметров. Список всех параметров
- Из множества всех параметров, для обработок полезны, на мой взгляд, только некоторые. Используемые в библиотеке параметры.
- Поддерживается специальный режим отладки для которого создан отдельный ресурс https://www.google-analytics.com/debug/collect
- Рабочий режим всегда возвращает код ответа 200.
- Протокол поддерживает пакетный режим отправки. Подробнее тут. Пакетный режим реализован в описываемой библиотеке, однако он у меня не работает. В Google Analytics попадает только первое обращение из пакета. Буду рад помощи коллег.
Возможности этого протокола были положены в основу этого решения
Настройка Google Analytics
В настройках GA необходимо сделать:
Создать новое представление с вариантом отслеживания данных "Мобильное приложение"
Прописать пользовательские параметры в разделе "Ресурс" в соответствии с настройками библиотеки
Индекс параметра в настройке на сайте должен соответствовать параметру в библиотеке
Библиотека для работы с Google Analytics через Measurement Protocol
Библиотека для отправки данных в Google Analytics реализована в виде управляемой формы обработки "модGA". Библиотека содержит публичный методы и публичные поля. Библиотеку необходимо встроить в собственную обработку и в контролируемых местах обработки вызывать методы отправки данных в GA.
Устройство библиотеки
Конструктор / деструктор
Для начала работы с библиотекой в основной форме обработки необходимо вызвать метод конструктора библиотеки. Данный метод удобно вызывать из метода "ПриОткрытии" основной формы обработки
НачатьРаботуС_GA(сИДПриложения, сИДКлиента)
где параметры:
сИДПриложения — Строка — (необязательно) Идентификатор отслеживания. Может быть ранее установлен методом УстановитьИдентификаторПриложения(сИдПриложения)
сИДКлиента — Строка — (необязательно) Идентификатор клиента. Может быть ранее установлен методом УстановитьИдентификаторКлиента(сИДКлиента)
возвращаемое значение: Булево — флаг успешного выполнения
ЗакончитьРаботуС_GA()
Метод для корректного завершения работы с библиотекой. Данный метод удобно вызывать из метода "ПриЗакрытии" основной формы обработки.
Интерфейс библиотеки
Метод отправки обращений в Google Analytics
GA_ОтправитьСведения(мДанные)
где параметр:
мДанные — Массив — (обязательно) Массив с данными. Элемент массива — структура с параметрами обращения в Google Analytics
Метод "GA_ОтправитьСведения" вызывается всегда, когда необходимо отправить подготовленное обращение. Если массив с данными содержит один элемент, то будет отправлен одиночный запрос. Если массив содержит несколько элементов, то будет отправлен пакетный запрос.
Данный метод проверяет состояние реквизита формы библиотеки "р_бРазрешено" и если состояние "Ложь", то отправка не происходит. Флаг "р_бРазрешено" устанавливается методом УстановитьРазрешениеОтправкиСтатистики(бРазрешено).
Так же метод проверяет состояние реквизита формы библиотеки "р_бРежимОтладки" и если состояние "Истина" то работает режим отладки.Флаг "р_бРежимОтладки" устанавливается методом УстановитьРежимОтладки(бРежимОтладки).
Методы подготовки данных обращений
GA_Сеанс(сСеансИнфо, мДанные)
где параметры:
сСеансИнфо — Строка — (обязательно) Значение "перечисления" SC
мДанные — Массив — (необязательно) Данные для GA, подготовленные ранее. Для пакетного режима
Возвращаемое значение: Массив — Данные для обращения в Google Analytics
Данный метод добавляет в массив мДанные элемент, который содержит параметры обращения о сеансе работы обработки. Этот метод удобно вызывать из методов "ПриОткрытии" и "ПриЗакрытии" основной формы обработки
GA_Форма_Страница(сОбработкаНаименование, сФормаНаименование, мДанные)
сОбработкаНаименование — Строка — (обязательно) наименование обработки. Для удобства доступен экспортный метод Обработка_Имя(), который возвращает наименование обработки в виде строки.
сФормаНаименование — Строка — (обязательно) наименование формы на которую совершен переход. Для удобства доступен экспортный метод Форма_Имя(оФорма), который возвращает имя формы в виде строки
мДанные — Массив — (необязательно) Данные для GA, подготовленные ранее. Для пакетного режима
Возвращаемое значение: Массив — Данные для обращения в Google Analytics
Данный метод добавляет в массив мДанные элемент, который содержит параметры обращения о переходе на форму обработки. Этот метод оставлен для совместимости. Рекомендуется использовать метод GA_Форма_Экран
GA_Форма_Экран(сФормаНаименование, мДанные)
сФормаНаименование — Строка — (обязательно) наименование формы на которую совершен переход. Для удобства доступен экспортный метод Форма_Имя(оФорма), который возвращает имя формы в виде строки
мДанные — Массив — (необязательно) Данные для GA, подготовленные ранее. Для пакетного режима
Возвращаемое значение: Массив — Данные для обращения в Google Analytics
Данный метод добавляет в массив мДанные элемент, который содержит параметры обращения о переходе на форму обработки. Рекомендуется использовать этот метод, так как он передает обращение с типом "Просмотр экрана".
Этот метод удобно вызывать из методов "ПриОткрытии" форм обработки а так же в методе описания оповещения о закрытии, для отслеживания возврата в родительскую форму из дочерней.
GA_Ошибка(сОшибкаОписание, бОшибкаФатальная, мДанные)
где параметры:
сОшибкаОписание — Строка — (обязательно) Значение "перечисления" EXD
бОшибкаФатальная — Булево — (обязательно) Признак фатальной ошибки.
мДанные — Массив — (необязательно) Данные для GA, подготовленные ранее. Для пакетного режима
Возвращаемое значение: Массив — Данные для обращения в Google Analytics
Данный метод добавляет в массив мДанные элемент, который содержит параметры обращения об ошибках в обработке. Этот метод удобно вызывать из операторных скобок "TRY — CATCH" или из кода проверок на ошибки.
GA_Событие(сСобытиеКатегория, сСобытиеНаименование, сЭлемент, чКоличество, мДанные)
где параметры:
сСобытиеКатегория — Строка — (обязательно) Категория события. Значение "перечисления" EC
сСобытиеНаименование — Строка — (обязательно) Наименование события. Значение перечисления "перечисления" EA
сЭлемент — Строка — (необязательно) Наименование элемента формы или иное описание события
чКоличество — Число — (необязательно) Количественная характеристика события
мДанные — Массив — (необязательно) Данные для GA, подготовленные ранее. Для пакетного режима
Возвращаемое значение: Массив — Данные для обращения в Google Analytics
Данный метод добавляет в массив мДанные элемент, который содержит параметры обращения о событиях в обработке. Этот метод, в зависимости от категории события, удобно вызывать из команд формы, из бизнес или сервисных методов обработки.
Методы установки параметров
УстановитьРазрешениеОтправкиСтатистики(бРазрешено)
бРазрешено — Булево — (обязательно) команда на разрешение отправки статистики в GA. Если "Истина", то отправка разрешена.
Данный метод устанавливает приватное поле библиотеки "р_бРазрешено", которое проверяется перед каждой отправкой обращения в GA. Если значение поля "Ложь", то отправка данных не производится.
УстановитьРежимОтладки(бРежимОтладки)
бРежимОтладки — Булево — (обязательно) команда на работу обработки в режиме отладки. Если "Истина" то режим отладки включен.
Данный метод устанавливает значение приватного поля библиотеки "р_бРежимОтладки", которое проверяется перед каждой отправкой в GA. Режим отладки длится до его выключения пользователем.
Немного о режиме отладки при работе с GoogleAnalytics
- режим отладки это по сути отправка запросов на особый ресурс Google Analytics
- информация отправленная в режиме отладки в статистике не учитывается
- если режим отладки выключен, то GA всегда возвращает код ответа 200 (OK), даже если данные приняты с ошибкой
- в режиме отладки GA возвращает в теле HTTP ответа строку в формате JSON, которая содержит диагностику
- в данной библиотеке отладочная информация записывается в журнал регистрации
Пример записи в журнал:
УстановитьИдентификаторПриложения(сИдПриложения)
сИдПриложения — Строка — (обязательно) код отслеживания, полученный при регистрации в GoogleAnalytics. Код отслеживания, также может быть установлен в конструкторе и в таком случае вызов этого метода не требуется. Данный метод должен быть вызван до вызова метода конструктора.
УстановитьИдентификаторКлиента(сИдКлиента)
сИдКлиента — Строка | УникальныйИдентификатор — (обязательно) идентификатор УИД, который характеризует пользователя обработки. Идентификатор клиента, также может быть установлен в конструкторе и в таком случае вызов этого метода не требуется. Данный метод должен быть вызван до вызова метода конструктора.
Немного об идентификаторе клиента:
- Google строго регламентирует способ формирования идентификатора. Главное, с помощью идентификатора не должно быть возможности идентифицировать личность пользователя.
- По ИдКлиента GoogleAnalytics учитывает статистику об аудитории в разрезе пользователей
- Источником для ИдКлиента, на мой взгляд, оправданно использовать УИД Организации или УИД Пользователя БД
Пример кода для получения идентификатора, который можно подать в параметр сИдКлиента
&НаСервереБезКонтекста
Функция ПолучитьИдентификаторКлиента_Сервер()
Перем рефОрганизация, ИдКлиента;
рефОрганизация = БухгалтерскийУчетПереопределяемый.ПолучитьЗначениеПоУмолчанию("ОсновнаяОрганизация");
Если ТипЗнч(рефОрганизация) = Тип("СправочникСсылка.Организации") И НЕ рефОрганизация.Пустая() Тогда
ИдКлиента = рефОрганизация.УникальныйИдентификатор();
Иначе
ИдКлиента = ПользователиИнформационнойБазы.ТекущийПользователь().УникальныйИдентификатор;
КонецЕсли;
Возврат ИдКлиента;
КонецФункции
Вспомогательные методы интерфейса
Форма_Имя(оФорма)
оФорма — УправляемаяФорма — (обязательно) объект управляемой формы, имя которого нужно получить
Возвращаемое значение: Строка — Имя формы
Данный метод удобно использовать в аргументе "сФормаНаименование" метода GA_Форма_Экран(сФормаНаименование, мДанные)
Обработка_Имя()
Возвращаемое значение: Строка — Имя обработки. Синоним, если доступно или имя объекта ВнешняяОбработка.
Данный метод удобно использовать в аргументе "сОбработкаНаименование" метода GA_Форма_Экран(сФормаНаименование, мДанные)
GA_ПолучитьТекстДисклеймера()
Данный метод возвращает строку — текст дисклеймера. При необходимости вы можете переопределить текст предупреждения. Данный текст желательно показывать пользователю на форме, где происходит настройка (разрешение) отправки данных в GA
ВерсияМодуляGA()
Данный метод возвращает номер версии библиотеки как строка.
Публичные реквизиты "Перечисления"
Для однообразия значений параметров отправляемых в Google Analytics в библиотеке присутствуют предопределенные "перечисления". Термин взят в кавычки, так как это реквизит формы с типом ФиксированнаяСтруктура, который имитирует работу с перечислениями. В библиотеке предопределены следующие структуры:
- EC — категория события. Элементы структуры — литералы, обозначающие категории событий. Метод, отвечающий за построение перечисления: Перечисление_КатегорияСобытия_Создать()
- EA — событие. Элементы структуры — литералы, обозначающие виды событий. Метод, отвечающий за построение перечисления: Перечисление_Событие_Создать()
- EXD — ошибка. Элементы структуры — литералы, обозначающие виды ошибок в обработке. Метод, отвечающий за построение перечисления: Перечисление_Ошибка_Создать()
- SC — сеанс. Элементы структуры — литералы, обозначающие начало и конец сеанса. Метод, отвечающий за построение перечисления: Перечисление_Сеанс_Создать()
Вы можете переопределить значения "перечислений", если этого требует задача. Для этого внесите изменения в методы, которые указаны выше.
Встраивание библиотеки в собственную обработку
Принцип встраивания библиотеки
Встраивание библиотеки в собственную обработку простая задача. Необходимо выполнить несколько условий.
- Интерфейс библиотеки реализован только клиентскими методами. Следовательно из серверных методов обработки статистику отправить не получится.
- На протяжении всего времени работы обработки в памяти должна существовать форма "модGA".
- Модуль основной формы обработки должен иметь экспортную переменную которой присвоена ссылка на форму "модGA" Эта переменная будет "точкой доступа" к методам библиотеки.
- Все формы обработки должны иметь удобный доступ к "точке доступа"
Пример встраивания
К публикации приложен пример обработки со встроенной библиотекой. Прокомментирую последовательность встраивания:
добавьте форму библиотеки в вашу обработку
в модуле основной формы, в моем примере это "ФормаГлавная", добавьте переменные модуля из области "Встраивание_GA_в_модуль_формы_ПЕРЕМЕННЫЕ".
#Область Встраивание_GA_в_модуль_формы_ПЕРЕМЕННЫЕ
&НаКлиенте
Перем м_GA Экспорт; // Только для основной формы.
// Переменная содержит ссылку на форму "модGA". Это точка доступа к методам библиотеки.
&НаКлиенте
Перем м_ОФ; // Требуется в каждой форме
// Переменная содержит ссылку на основную форму обработки
#КонецОбласти
в модуле основной формы добавьте методы встраивания из области "Встраивание_GA_в_модуль_формы_МЕТОДЫ"
в модуле основной формы в методе "ПриОткрытии" инициализируйте библиотеку, например так:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Перем сИдКлиента, мДанные;
Перем ИДПРИЛОЖЕНИЯ;
// КОНСТАНТА
ИДПРИЛОЖЕНИЯ = "UA-111111111-1"; // Идентификатор отслеживания полученный в GoogleAnalytics
// ПОДКЛЮЧЕНИЕ БИБЛИОТЕКИ модGA
Если НЕ МодульGA_Подключить() Тогда
СообщитьПользователю("Модуль GA не подключен. Подробнее, см. ЖР.");
КонецЕсли;
м_ОФ = ОсновнаяФорма_Получить(ЭтотОбъект);
Если м_ОФ = Неопределено Тогда
СообщитьПользователю("ОсновнаяФорма не определена. Модуль GA не подключен. Подробнее, см. ЖР.");
КонецЕсли;
// ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕКИ И УСТАНОВКА ПАРАМЕТРОВ GA
м_ОФ.м_GA.УстановитьИдентификаторПриложения(ИДПРИЛОЖЕНИЯ);
сИдКлиента = ПолучитьИдентификаторКлиента();
м_ОФ.м_GA.УстановитьИдентификаторКлиента(сИдКлиента);
м_ОФ.м_GA.УстановитьРазрешениеОтправкиСтатистики(р_бОтправкаРазрешена);
м_ОФ.м_GA.УстановитьРежимОтладки(р_бРежимОтладки);
Если НЕ м_ОФ.м_GA.НачатьРаботуС_GA() Тогда
СообщитьПользователю("Не удалось начать работу с GA. Подробнее, см. ЖР.");
КонецЕсли;
КонецПроцедуры
Комментарий к коду:
- Константа "ИДПРИЛОЖЕНИЯ" указана ненастоящая. Вам нужно получить свой код отслеживания
- Переменные "р_бОтправкаРазрешена" и "р_бРежимОтладки" в демонстрационном примере это реквизиты основной формы, в которых храниться состояние флагов.
- Вызов методов библиотеки производится через цепочку м_ОФ.м_GA . Это обозначает, что в контексте основной формы (м_ОФ) есть контекст формы модGA (м_GA), который в свою очередь предоставляет доступ к методам библиотеки
в модулях всех форм, кроме основной, добавьте код из областей "Встраивание_GA_в_модуль_формы_ПЕРЕМЕННЫЕ" и "Встраивание_GA_в_модуль_формы_МЕТОДЫ" взятый из приложенного примера обработки
в модулях всех форм, кроме основной в методе "ПриОткрытии" инициализируйте библиотеку, например так:
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// ИНИЦИАЛИЗАЦИЯ БИБЛИОТЕКИ
м_ОФ = ОсновнаяФорма_Получить(ЭтотОбъект);
Если м_ОФ = Неопределено Тогда
СообщитьПользователю("Модуль GA не подключен. Подробнее, см. ЖР.");
КонецЕсли;
// Отправка данных в GA о начале просмотра формы
мДанные = м_ОФ.м_GA.GA_Форма(м_ОФ.м_GA.Обработка_Имя(), м_ОФ.м_GA.Форма_Имя(ЭтотОбъект));
м_ОФ.м_GA.GA_ОтправитьСведения(мДанные);
КонецПроцедуры
в форме настройки обработки добавьте код позволяющий отключить передачу данных в GoogleAnalytics а так же код, который позволяет ознакомиться с содержанием текста дисклеймера
и наконец, добавьте в контролируемые места обработки код отправки статистики в GA, например такой:
сИмяДокумента = "СЧФ";
чКоличествоДокументов = 4;
мДанные = м_ОФ.м_GA.GA_Событие(м_ОФ.м_GA.EC.UX, м_ОФ.м_GA.EA.UX_clic, Команда.Имя);
м_ОФ.м_GA.GA_ОтправитьСведения(мДанные);
мДанные = м_ОФ.м_GA.GA_Событие(м_ОФ.м_GA.EC.B2B, м_ОФ.м_GA.EA.B2B_send, сИмяДокумента, чКоличествоДокументов);
м_ОФ.м_GA.GA_ОтправитьСведения(мДанные);
Внешний вид демонстрационной обработки приведен на скриншоте ниже. Открытие форм и нажатие на кнопки отправляет данные в GA.
Дополнения
дополнение от 22.01.2024
проверил профайлером время, которое уходит на работу с GA. На мой взгляд не критично 0,16 — 0,2 с на один запрос к сервису.
дополнение от 27.01.2024
Спасибо уважаемому Андрею (Scorpion4eg) за толковые подсказки.
Решен вопрос использования параметров cd1 — cd4. Требуется настроить Google Analytics и создать пользовательский отчет
Решен вопрос использования параметров an и av. Требуется добавить представление в Google Analytics и отправлять обращения о просмотре форм используя метод GA_Форма_Экран
Уточнена таблица с параметрами обращения и добавлен новый метод GA_Форма_Экран
Выложена новая версия библиотеки 1-04
Приложения
Параметры обращения в Google Analytics
Параметр |
Имя параметра |
Тип параметра |
Назначение параметра |
---|---|---|---|
Заголовок |
|||
v |
ver |
Ч |
всегда “1” |
tid |
С:15 |
Идентификатор отслеживания. формат UA-XXXX-Y |
|
cid |
client id |
С:36 |
GUID клиента (приложения) |
uid |
user id |
С:36 |
GUID пользователя |
t |
type |
Тип обращения {event; pageview; exception} |
|
an |
app name |
C:50 |
Наименование обработки |
av |
app ver |
C:50 |
Версия обработки |
cd1 |
spec dim |
С:70 |
Версия платформы |
cd2 |
spec dim |
С:70 |
Версия ОС |
cd3 |
spec dim |
С:70 |
Наименование конфигурации |
cd4 |
spec dim |
С:70 |
Версия конфигурации |
Сеанс (t = event) |
|||
sc |
seans count |
{start; end} |
Фиксация начала и конца работы с обработкой |
Просмотр форм (t = pageview) |
|||
dh |
host |
C:50 |
Наименование обработки |
dp |
path |
С:1000 |
Наименование формы |
exd |
description |
С:70 |
Описание ошибки. Значение "перечисления" |
exf |
fatal |
Б |
признак фатальной ошибки |
Событие (t = event) |
|||
ec |
category |
С:70 |
Категория события. Значение "перечисления" |
ea |
action |
С:250 |
Событие. Значение "перечисления" |
el |
label |
С:250 |
Наименование команды или прочая информация |
ev |
value |
Ч |
Количественная характеристика события |
"Перечисления" категории и события
Категория EC |
Событие EA |
Комментарий |
---|---|---|
UX |
Действие пользователя | |
UX_clic |
щелчок на кнопке |
|
UX_select |
выбор поля, табличного поля, строки табличного поля |
|
UX_refresh |
обновление табличного поля |
|
UX_filter |
отбор в табличном поле |
|
UX_change |
изменение данных |
|
UX_delete |
удаление данных |
|
B2B |
Событие бизнес-логики | |
B2B_proc |
бизнес — процедура прочее |
|
B2B_send |
бизнес — процедура отправки |
|
B2B_receive |
бизнес — процедура получения |
|
SRV |
Сервисное событие |
|
SRV_sync |
синхронизация |
|
SRV_backup |
резервное копирование |
|
SRV_upgrade |
обновление |
|
SRV_seance |
информация о сеансе |
|
SRV_setting | настройка обработки |
"Перечисление" ошибки
Ошибка | Комментарий |
---|---|
US_inputerror |
Ошибка пользователя. Ввод неверной информации. |
US_invalidaction | Ошибка пользователя. Недопустимое действие. |
US_accesserror | Ошибка пользователя. Нет прав на совершение операции. |
B2B_diskerror | Ошибка B2B. Чтение, запись на диск. |
B2B_httperror | Ошибка B2B. Чтение, запись через http. |
B2B_dataselect | Ошибка B2B. Получение данных из БД. |
B2B_dataselect | Ошибка B2B. Получение данных из БД. |
B2B_datawrite | Ошибка B2B. Запись данных в БД. |
SRV_platform | Ошибка SRV. Недопустимая версия платформы. |
SRV_config | Ошибка SRV. Недопустимая версия конфигурации. |
"Перечисление" SC сеанс
Сеанс | Комментарий |
---|---|
start | start |
end | end |
Конец.
Классная тема, а Яндекс.Метрику рассматривали? Есть там подобный интерфейс?
(1) Уточните вопрос, пожалуйста.
(2)нет, Яндекс не имеет подобного протокола. Яндекс метрика только для сайтов.
(3) первым делом сделаю в купленной разработке // или Возврат, чтоб в интернеты всякие не лезла
(5) Вы говорите с позиции заказчика, который опасается что данный функционал доставит неудобства пользователям.
Статья написана с позиции разработчика, который сможет развивать продукт прислушиваясь к пользователю.
Если найти компромис между этими сторонами, можно, я надеюсь, поднять качество продуктов с которыми пользователи работают каждый день.
Очень интересная восзможность.
Насколько это отражается на скорости работы? Особенно при проблемах со связью.
Ну и не совсем уверена в корректности такого сбора данных с точки зрения пользователя.
Про GA знаю с 2009 года, но применять так… Идея определенно новая, по крайней мере для меня…
(6)
я говорю с точки зрения безопасника, который не оценил сбор статистики действий в корпоративной информационной системе третьими лицами, через сервисы четвертых лиц
и с точки зрения администратора сети, которому не понравилось обращение сервера 1С к внешним сетевым ресурсам 100 раз в секунду
хотя, если по умолчанию подсистема отключена — то пусть будет
(7) В целом, предупредить — это этично, но с другой стороны — там не собирается ничего такого, что бы не собирали все интернет-сайты безо всяких предупреждений.
Отличный пример концепции «1С+что-то» (термин от @lustin)
(7) Данные нужно хранить в промежуточном регистре, а в гугл отправлять уже по регламенту пакетом. Онлайн связь, конечно, не подходит. Это первое, что я доработаю у себя 🙂 А так все очень красиво.
(0) Это новый тренд, без сомнения. Спасибо за идею!
Круто. Даже не так — КРУТО! + автору!
(7)
Предоставьте пользователю возможность отключить этот режим и опубликуйте текст дисклеймера с подробностями о передаче данных. Особенно обратите внимание на полную обезличенность данных и отсутствие коммерческой информации в передаваемых данных.
Думаю, этого достаточно, что бы не создавать заказчику неудобств.
Все сайты, буквально все, отправляют данные в GA и Яндекс.Метрику даже не ставя в известность пользователя.
(15)
Сайты не учётные системы компании, не совсем правильно сравнивать.
в безопасном режиме не взлетит
(16) ну как сказать, есть такие сайты, которые для меня важнее учетной системы, например «сайт» ПланФикс в котором я веду учет задач, ошибок и т.д совершенно прекрасно все отправляет
(18)
Каждый сам определяет что ему важнее.
Я не критикую ваше решение. Пусть отправляет. Это нужное дело и хорошее если на него получено согласие пользователя.
Я про то что не корректно сравнивать с «сайтами» и аргументировать тем что «все сайты отправляют». Учетная система не сайт. Ну и могут быть требования безопасности.
очень классная штука! но реализация должна быть следующая: нужно внедрить GA в сайт (интернет-магазин) и в 1С одновременно, чтобы отдел продаж не только видел аналитики и воронку продаж до оформления заказа, а до получения денег через оформление накладных. где разнесение выписок и оформление отгрузок — операции в 1С.
Мечтал встроить сбор статистики в свои доработки/обработки в том числе и для контроля распространения, а то бывало придешь к людям знакомится, садишься за конфу а там бац, и твои наработки.
(20) очень правильное замечание. Если передавать одинаковый ИдКлиента из конфигурации и из сайта, то статистика будет объединяться.
Потребуется задействовать другие параметры протокола, но это дело техники.
Отличная идея. Спасибо.
Давно пользуюсь. Очень удобная штука по двум причинам. 1. Позволяет отследить как же все таки пользуются обработкой. 2. Счетчик в реальном времени мотивирует «Этой обработкой все таки пользуются!»
(7) Евгения, проверил профайлером время отправки данных. Каждый запрос съедает 0,12 — 0,16 с. На мой взгляд приемлемо.
При проблемах со связью задержки нет. Библиотека корректно обрабатывает эту ситуацию и пишет информацию в ЖР.
(17)
не могли бы вы уточнить сценарий, при котором обработка не будет работать?
Я тестировал на свежей БУХ30 платформа 8.3.10. Все работает штатно.
Отвечу про параметры an и av.
Их можно видеть и использовать только для мобильного приложения. Вот как это сделать. Создается проект для сайта. Потом добавляется представление — Мобильное приложение. В этом случае надо менять отправку просмотра страниц на отправку просмотра экрана.
А так же представление мобильное приложение позволять отправлять замеры производительности.
(12) для конфигураций это рабочая идея. Для обработок, к сожалению, так красиво не получится.
И еще одна мысль Отправляя пакетом по регламенту вы теряете информацию о динамике времени работы пользователей. Статистика будет периодической а не плавной.
(26) Андрей, спасибо.
Эти параметры очень важны. Через них я передаю наименование и версию конфигурации в которой работает обработка.
Можно сказать, что с желания видеть эту информацию начался данный проект.
ps. теперь понимаю, что в библиотеке придется переделывать кое что
(28) Аналогично) Именно с этих данных начался мой проект, а потом понеслось.
(25) В безопасном режиме нет доступа к внешним ресурсам
Может быть офф-топик, но все же спрошу.
А есть возможность в Конфигураторе 1С зогрузить обработку из xml файлов?
(31) через файл — открыть. откроется обычное окно внешней обработки, из него можно будет пересохранить обработку в epf. Ну и пакетный режим запуска конфигуратора тоже никто не отменял.
(15) Обработку однозначно в избраное, чтоб потом оценить идею и покрасивше под себя переписать.
Для избавления от «жучков» на сайтах давным давно использую Ghostery, для меня это стало столь же обязательной вещью как «правильно» настроенный ролтер и AdBlock. Так что единственное, что могут использовать сайты, это либо в наглую настроенный JS или использовать статистику на основе ссессии бэкэнда, а это уже не «практически все», а «единицы».
(12) Или как вариант отправлять в фоновом задании без промежуточной записи в регистр.
В свете появления такого понятия как расширения конфигураций (ну чтобы не херить типовые) логичнее всего сваливать все сообщения для GA в регистр сведений, а уже оттуда регламентом собирать данные и отправлять в GA. Из плюсов основных, не нужен постоянный инет и сбор данных будет наиболее полным, так как даже при отключенном инете данные накапливаются.
(35) Спасибо за идею.
(9) не соглашусь. 1С и так делает кучу вызовов, спарки всякие, кладры и прочее. Вы тоже все это прикрываете? А скоро будет еще сервер взаимодействия и прочее.
Кроме этого — можно слать пакетами, раз в некий промежуток времени, так что тоже не засчитано.
А когда директор кричит что все тормозит и не дает возможности это анализировать, так как безопасник против — то что-то не так с безопасником, не находите?
Задача безопасника не прикрывать доступы, а обеспечивать их защиту. Что может быть надежнее защиты гугл сервисов? Если вы не доверяете уже им, то я даже не знаю, чесслово.
Кроме этого — гугл запрещает туда выгружать инфоррмацию, которая касается идентификации пользователей, и гугл забанит за это вас быстрее.
Или вы предпочтете, чтобы эти данные скапливались на серверах неких вообще левых мест?
(37)
скорее предпочту localhost, ну или по крайней мере не дальше 0/24
вообще не заморачиваюсь, по умолчанию прикрыто всё, а потом уже исключения, которые админ сети добавляет по запросу
(18) А можно узнать софт, на котором у Вас задачи как на рисунке? Ищу нормальную систему за тикетов…
(39) Это Планфикс. planfix.ru
(9)Сам когда-то был безопасником. Извечная «война». ИТ разрешает, безопасность все запрещает )
МО РФ на вас нет. Вас там быстро оштрафуют на 100 тыс. Не для всех это подойдет.