Приветствую!
В этой статье речь пойдет об ошибках. Но не о тех, которые допускают программисты в коде, а о самой платформе. Да-да, разработчики платформы тоже ошибаются! Особенно это заметно при разработке под мобильные устройства - продукт еще сырой, поэтому ошибки встречаются сплошь и рядом.
К сожалению, сталкиваясь с ошибками платформы, большинство людей попросту не обращают на них внимания. Они вспоминают об 1С недобрым словом, и с мыслями “та они уже в курсе, в следующей версии поправят” продолжат работать. Надеюсь, после прочтения статьи таких программистов станет меньше. :)
Мы рассмотрим несколько реальных ошибок, примеры обращений в фирму 1С, а также то, как можно отслеживать исправление ошибки. Сразу скажу, что будут рассмотрены примеры для мобильной платформы. Впрочем, порядок регистрации для настольной платформы практически не отличается.
Для регистрации ошибок существует два адреса - v8@1c.ru и testplatform@1c.ru.
Первый адрес (v8@1c.ru) используется для регистрации ошибок в финальной версии платформы; также обрабатываются вопросы по типовым решениям, лицензированию и т.п. Учитывая то, сколько обращений поступает в фирму 1С за один день, скорость ответа оставляет желать лучшего. Через 3 дня может только прийти сообщение о том, что письмо принято и переадресовано разработчикам; ответ от разработчиков может затянутся еще на неделю. Кроме того, для отправки писем на этот адрес нужно иметь действующую подписку ИТС.
Второй адрес (testplatform@1c.ru) представляет куда больший интерес. Он предназначен только для регистрации обращений, связанный с тестовыми версиями платформы. Скорость ответа на порядок выше - на письмо, отправленное в будний день, в течение часа приходит ответ и регистрируется ошибка. Второе преимущество - не требуется подписка ИТС, поэтому вы можете свободно регистрировать ошибки, обладая учебной версией платформы. Единственное условие - платформа должна быть тестовой.
Для обращения по второму адресу нужно выполнить 3 простых пункта:
1. Указать версию платформы.
2. Кратко описать сценарий воспроизведения ошибки, и на каких устройствах она воспроизводится.
3. Приложить к письму сопутствующие файлы - базу данных или скриншот ошибки.
И помните: одна ошибка - одно обращение. Не следует в одном письме описывать сразу несколько ошибок, на такое обращение вы получите отказ. Кроме того, перед обращением следует проверить, не была ли зарегистрирована данная ошибка ранее. Подробнее об этом будет написано ниже.
Рассмотрим несколько примеров обращений в тех. поддержку.
Пример 1. В управляемых формах есть возможность группировать элементы на разных страницах. На мобильной платформе это работает в точности, как и на настольной:
На скриншоте заголовки страниц размещены сверху. Однако если разместить их, например, слева, то начинаются проблемы. Вот, как это выглядит на настольной платформе:
А так - на мобильной:
Думаю, ошибка очевидна.
Начнем с подготовки базы. Может возникнуть вопрос - зачем, неужели недостаточно скриншотов? Давайте не забывать о том, что в 1С тоже работают люди. И учитывая то, что вы далеко не единственный разработчик, который к ним обращается, будет не очень культурно заставлять сотрудников самим создавать базу и воспроизводить вашу ошибку.
Создаем пустую базу, создаем форму в Общих формах. На форме рисуем простейший пример - 2 страницы с одной кнопкой на каждой из них.
Запускаем базу на мобильном устройстве, делаем скриншоты. Выгружаем базу в dt.
Теперь перейдем к написанию письма. Вот пример моего обращения:
Тема: Мобильная платформа: неверное отображение вкладок
Текст письма:
Добрый день!
Мобильная платформа: 8.3.5.52
В мобильной платформе не корректно отображаются страницы с вариантом отображения "Закладки слева". Воспроизводится на Samsung Galaxy S2 и S4.
Во вложении - пример базы, в которой возникает ошибка.
Вложения:
Страницы.dt
Скриншот страниц.jpg
Обратите внимание - не забудьте в письме указать версию мобильной платформы. Также не лишним будет указать устройство, на котором воспроизводится ошибка.
Спустя полчаса получаем ответ:
Это означает, что ваше письмо было принято, и сейчас ошибка рассматривается. Спустя 10 минут приходит еще одно сообщение:
Отлично, ошибка зарегистрирована! Более того, у нас есть ее номер. Что с ним делать дальше?
На сайте 1С есть специальный раздел “Публикация ошибок” - https://bugboard.v8.1c.ru/ (доступен только тем, у кого есть подписка ИТС). В этом разделе можно отслеживать исправленные и неисправленные ошибки для разных версий настольной и мобильной платформы.
Страница “Поиск ошибок” предназначения для удобного поиска нужной ошибки. Ошибки можно искать по коду, номеру обращения (если обращение было через адрес v8@1c.ru) и по словесному описанию. Например, в предыдущих версиях мобильной платформы на моем телефоне Samsung Galaxy S4 был неприятный глюк - при попытке сделать фото с помощью метода СредстваМультимедиа.СделатьФотоснимок() устройство полностью уходило в перезагрузку. Попробуем найти ошибку по строке “Galaxy S4”.
Как видим, такая ошибка уже зарегистрирована, и была исправлена в тестовой версии платформы. Помните - прежде чем регистрировать ошибку, сначала попробуйте найти ее в этом разделе - возможно, ее регистрировали ранее.
Обратите внимание на ссылки внизу. Первые две предназначены для определения приоритетов - чем больше человек сообщит о важности ее исправления, тем быстрее (теоретически) она будет исправлена. По крайней мере разработчики на партнерском форуме говорили, что обращают внимание на эти показатели.
Ссылка “Включить подписку” нужна для удобного отслеживания ошибки. Чтобы каждый раз не искать по словам, можно “подписаться” на ошибку, после чего она будет отображаться в разделе “Подписки”. Так этот раздел выглядит у меня:
Вернемся к нашей зарегистрированной ошибке. Попробуем найти ее по коду из письма:
И видим, что ошибка с таким номером не найдена. :) Да, и такое бывает - информация об ошибках появляется не сразу. Причем в некоторых случаях процесс может очень затянуться - приведенная в данном примере ошибка была зарегистрирована 19 мая, однако до сих пор (на момент написания статьи - 10 июля) не выложена на сайт.
Но это просто неудачный пример. В любом случае, рано или поздно ошибка будет опубликована и исправлена.
Рассмотрим еще один пример обращения.
Пример 2. Как известно, в мобильной платформе 8.3.5 добавили средства работы с SMS сообщениями. Можно отправлять и получать сообщения, смотреть содержимое, прикрепленные файлы (для MMS) и т.п. При этом нельзя читать сообщения, хранящиеся в памяти телефона - можно только подписаться на появление новых сообщений, пока работает 1С. Делается это так:
ПолучательСообщений =Новый ОписаниеОповещения("ПолучениеСообщения", ЭтотОбъект);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ПолучательСообщений);
Метод ПодключитьОбработчикSMSСообщений подключает обработчик ожидания, который срабатывает в момент прихода нового сообщения. Есть и другой метод - ОтключитьОбработчикSMSСообщений, который выполняет обратное действие. Проблема только в том, что он... Не работает. :) После вызова этого метода, обработчик всё равно продолжает вызываться при получении сообщений.
Создаем простейший пример - форму с двумя кнопками подключения и отключения обработчика смс сообщения.
Исходный код модуля:
&НаКлиенте
Процедура ПодключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения("ПолученоСообщение", ЭтаФорма);
СредстваТелефонии.ПодключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры
&НаКлиенте
Процедура ОтключитьОбработчик(Команда)
ОП = Новый ОписаниеОповещения("ПолученоСообщение", ЭтаФорма);
СредстваТелефонии.ОтключитьОбработчикSMSСообщений(ОП);
КонецПроцедуры
&НаКлиенте
Процедура ПолученоСообщение(Сообщение, Параметры) Экспорт
Предупреждение(Сообщение.Текст);
КонецПроцедуры
Пишем письмо:
Тема: Мобильная платформа: не работает отключение обработчика получения сообщений
Текст письма:
Добрый день!
Мобильная платформа: 8.3.5.58
Платформа игнорирует отключения обработчика ожидания для получения смс сообщений. После отключения, при приходе смс обработчик продолжает вызываться.
Во вложении - пример мобильной БД, в которой возникает ошибка. Воспроизводится на Samsung Galaxy S2 и S4.
Вложения:
СМС сообщения - отключение обработчика.dt
Получаем ответ:
Идем на сервис публикации ошибок, ищем нашу ошибку:
Ура! Теперь наша ошибка есть на сайте и мы можем отслеживать ее статус. В дальнейшем, при выходе следующих версий мобильной платформы, мы сможем отследить, в какой из версий он была исправлена.
Возможно, после прочтения статьи у вас возникнет вопрос - а зачем это всё? В конце концов, у фирмы 1С есть свой отдел тестировщиков, и рано или поздно ошибку выявят и исправят. Ответ на этот вопрос философский. :) Лично я очень полюбил мобильную платформу, и конечно же хочу, чтобы она становилась всё лучше и лучше. Поэтому я не вижу ничего сложного в том, чтобы потратить 15 минут на составление письма, которое поможет 1С быстрее исправить недочеты в продукте.
Поменьше вам ошибок!