Отправить для обработки 1с ошибка
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии 8.3.17.1091
Платформа иногда показывает ошибки, непонятные пользователю – ошибки SDBL, ошибки встроенного языка, ошибки в запросе и т.п. Это затрудняет работу пользователей.
Мы работаем над улучшением этой ситуации. Вот что мы хотим дать различным целевым группам, работающим с нашими продуктами:
Прикладные разработчики: мы хотим дать прикладным разработчикам возможность обрабатывать все ошибки, возникающие в приложении, и показывать пользователям полезную для них информацию.
ИТ-отделы компаний клиентов, а также компании, осуществляющие внедрения продуктов 1С: им мы хотим дать возможность быстрого получения информации об ошибках и возможность проинформировать пользователя о том, куда обращаться для решения проблемы.
Чтобы реализовать вышеперечисленное мы сделали в платформе ряд нововведений. Перечислим, для каких целевых групп они предназначены.
Для всех
Мы разделили ошибки по категориям:
Как категоризация ошибок будет полезна различным целевым группам – смотрите ниже.
Для конечных пользователей
Для прикладных разработчиков
У объекта ИнформацияОбОшибке есть метод ЯвляетсяОшибкойКатегории(). Одна ошибка может одновременно принадлежать к нескольким категориям.
Разработчики конфигураций получают возможность (например, исходя из категории ошибки) менять текст и форму отображения ошибки, показываемые пользователю, а также получают возможность отправки информации об ошибке (например, на сервис техподдержки).
У глобального контекста добавлено свойство ОбработкаОшибок нового типа МенеджерОбработкиОшибок. МенеджерОбработкиОшибок предоставляет доступ к функциям для обработки ошибок. В частности, у него есть методы:
ПредставлениеОшибкиДляПользователя() - возвращает текст ошибки, понятный пользователю (в виде форматированной строки).
Сервис регистрации ошибок – внешний по отношению к платформе компонент, представляющий собой набор НТТР-сервисов с определенными интерфейсами и может быть реализован с помощью любой подходящей технологии. В состав платформы «1С:Предприятие» версии 8.3.17 войдет пример реализации сервиса регистрации ошибок на платформе «1С:Предприятие».
Для администраторов
Как было сказано выше, разработчик может программно отрабатывать обработку ошибок (писать код обработки отображения) в режиме конфигуратора.
Форма «Управление настройками ошибок»:
Также есть возможность отправлять отчеты об аварийном завершении работы приложения в сервис регистрации ошибок платформы фирмы 1С.
Исправляем ситуацию
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.3 Синтакс-помощник
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Чаще всего причиной подобных ошибок выступают следующие факторы:
- Невнимательность;
- Отсутствие опыта или знаний;
- Несогласованность действий разработчиков друг с другом;
- Изменения в методах контекста в новых версиях платформы.
Лицензия на сервер + 100 рабочих мест. Электронная поставка.
Оперативные консультации по 1С:Документообороту. Первая консультация бесплатно.
Настройка и доработка 1С:Документооборот для борьбы с ошибками. Гарантия на все результаты работ.
Типовой функционал, встроенный в прикладные решения 1С
Пользователи любой информационной системой, так или иначе, допускают ошибки. Система 1С:Документооборот не является исключением. Уточним, что ошибки бывают двух типов – ошибки пользователей (человеческий фактор) и ошибки системы (техногенный фактор). Классификация системных ошибок – обширная тема, которой уже посвящено множество различных материалов, поэтому сегодня мы поговорим о наиболее часто встречающихся ошибках пользователей, о которых полезно знать, чтобы защитить бизнес от непродуктивности и потерь времени, и о том, что нужно делать, чтобы их избежать.
Причины, по которым пользователи допускают ошибки, также могут быть двух видов: первый – отсутствие знаний и опыта работы в системе, а также простой невнимательности, второй – низкое юзабилити той системы, в которой пользователи работают.
Поскольку мы говорим о системе 1С:Документооборот, основные дискуссии в части удобства интерфейса вызывает новейшая разработка 1С – интерфейс «Такси». Кому-то он нравится (как правило, это пользователи веб-систем или новички), кто-то за долгие годы работы привык к старому интерфейсу и не видит смысла что-то менять. Но в любом случае стоит учесть, что разработчики систем последнего поколения на платформе 1С:Предприятие опираются на опыт внедрений 1С, а также отзывы пользователей, которые исчисляются десятками миллионов. Поэтому, опуская небольшие недостатки в плане юзабилити, присущие данному интерфейсу, можно сказать, что «Такси» – дружественный пользователю интерфейс, нацеленный на минимизацию пользовательских ошибок путем оптимизации форм, расположения команд, меню и диалоговых окон. При этом интерфейс является единым для всех систем семейства 1С, поэтому пользователям легко обучаться работе и избегать частых мелких ошибок.
Наиболее часто встречающейся ошибкой, которую пользователи допускают при работе в системе, является:
Не завершено редактирование открытого ранее на изменение файла
Очень часто пользователи, заняв на редактирование файл, забывают или намеренно по какой-то причине не завершают редактирование, тем самым не поместив файл в хранилище на сервере. При этом файл помечен ярко-зеленым шрифтом.
Рис.1 Не завершено редактирование файла
При попытке закрыть такой документ система выдаст соответствующее предупреждение, которое сложно не заметить.
Рис.2 Предупреждение о закрытии
Если по какой-то причине файл остался занятым для редактирования, например, в связи с нарушением работы соединения с сервером, то при входе в систему у пользователя на рабочем столе будут видны все занятые им для редактирования файлы.
Рис.3 Рабочий стол, занятые файлы
Прямо из виджета можно завершить редактирование занятого файла или продолжить с ним работу.
Мы видим, что система предусматривает своевременное уведомление пользователей о том или ином нештатном поведении, что сокращает количество непреднамеренных ошибок в работе. «Намеренное» поведение пользователей можно нивелировать, если провести своевременное обучение, предоставить возможность консультации у эксперта, обеспечить наличие актуальных и всегда доступных инструкций, а также зафиксировать обязательный регламент всей работы с документами и процессами в системе. Также не стоит забывать о таком элементе системы, как контроль исполнительской дисциплины.
Для борьбы с ошибками в системе существует ряд настроек.
Настройка: протоколирование работы в системе
В Конфигураторе, меню «Администрирование», открываем пункт «Настройка журнала регистрации».
Рис.4 Настройка журнала регистрации
В открывшемся окне настраиваем события, которые необходимо протоколировать в журнал.
Рис.5 Окно настройки событий
Здесь же устанавливаем разделение журнала по периодам – год, месяц, неделя и т.д. То есть журнал будет разбит на отдельные файлы в соответствии с заданными периодами, что облегчит его дальнейшее хранение и администрирование. Здесь же можно изменить формат хранения журнала с текстового на более современный – формат SQLite.
Рис.6 Изменение формата журнала регистрации
Сохранив все необходимые изменения, можно быть уверенным, что все отмеченные нами в настройке события будут зафиксированы в журнале, что позволит быстро отыскать причину той или иной ошибки или события.
Необходимо учитывать, что журнал регистрации занимает много места на диске, поэтому его необходимо выносить в заранее подготовленное хранилище и мониторить его состояние. В этой форме есть инструмент управления журналом – команда «Сократить», который позволяет перенести ранее запротоколированные события в архив или просто удалить их за ненадобностью.
Рис.7 Сокращение журнала регистрации
Настройка: версионирование объектов
Переходим в «Общие настройки системы».
Рис.8 Общие настройки системы
Рис.9 Настройка программы
Нам нужен пункт меню «Версионирование объектов».
Рис.10 Пункт Версионирование объектов
Устанавливаем признак версионирования и переходим по ссылке «Настройки».
Рис.11 Установка признака версионирования
Здесь перечислены все объекты системы, для которых возможна настройка версионирования. Это значит – все предыдущие состояния объекта будут в системе зафиксированы, что позволит увидеть произведенные изменения, кем эти изменения были сделаны, а также вернуться к любому предыдущему состоянию.
Для каждого из объектов можно установить событие, когда необходимо создавать новую версию, а также период хранения этих версий (это также сказывается на объеме информационной базы). Для файлов версии хранятся по умолчанию, никаких настроек для этого делать не нужно. Теперь по каждому объекту, для которого установлен режим версионирования, можно посмотреть историю изменений.
Рис.12 Просмотр истории изменений
Все версии можно посмотреть, сравнить любые две, сделать любую из них актуальной.
Инструментарий системы, а также четко выстроенные и регламентированные бизнес-процессы, прозрачные и понятные пользователям, позволят использовать 1С:Документооборот без ошибок.
Гарантируем стабильный обмен без ошибок между программами 1С. Гарантии фиксируем в договоре.
Одним из самых популярных форматов данных, используемых практически в любой компании, является XML (расширяемый язык разметки). Разработчики 1С создали специальный объект XDTO для удобства своих клиентов и простого взаимодействия с файлами XML, поэтому программисту 1С важно работать с этими объектами платформы, так как обмен данными через XML встречается постоянно.
Преимущества механизма XDTO
Этот функционал создавался как удобный инструмент обмена данными между конфигурациями и другими приложениями. Также этот механизм используют для работы с web-сервисами и для обработки произвольных данных. Большое преимущество XDTO перед другими способами – в нем есть возможность обращаться к файлу XML, как к объекту 1С. То есть все реквизиты можно будет получить, описывая структуру через точку, не задумываясь о скобках, тегах и атрибутах.
Взаимодействие с файлами XML происходит по заранее установленным правилам, описанным в объекте структуры конфигурации – XDTO – пакеты в 1С 8.3. Суть этих элементов структуры в том, что они представляют собой схемы, по которым будут распознаваться данные из XML-файлов. В типовых конфигурациях уже присутствуют подобные объекты, но при работе с конкретными файлами понадобятся другие схемы.
Существует два способа добавить XDTO-пакет в конфигурацию:
-
Собственноручно создать. Этот вариант подойдет при самостоятельной работе с XML определенного формата. Зная, какие данные будут подаваться на вход для импорта с использованием XDTO, можно заранее создать в конфигурации нужный объект. Этот вариант хорош, если обмен данными налажен и никаких изменений не планируется;
Рис.1 XDTO пакеты
Чтобы загрузить данные из присланной нам схемы, необходимо в режиме конфигуратор открыть раздел «Общие» и «XDTO-пакеты». Через контекстное меню выбрать пункт «Импорт XML-схемы…», выбрать файл и подтвердить пространство имен, взятое из файла. После этого необходимо обновить конфигурацию, и предварительные настройки сделаны.
Но на самом деле в последнем случае нам необязательно создавать XDTO-пакеты в конфигурации 1С 8.3. Существует возможность только использовать XSD-схему, присланную нам из отдельного файла, не внося изменения в структуру базы 1С. Для этого нужно воспользоваться кодом, объясняющим платформе 1С, какой тип объекта с какими параметрами будет загружаться.
Это происходит следующими командами:
Экспорт и импорт файла
После того как мы разобрались с принципами использования пакетов XDTO, нужно посмотреть на механику работы с файлами XML. Лучше всего это будет видно на простом примере, чтобы понять основы. Добавим новый элемент в раздел XDTO-пакетов и настроим его следующим образом:
- Заполняем URI-пространство имен в свойствах XDTO пакета. Среди разработчиков 1С принято заполнять этот реквизит адресом страницы, заполненной описанием тех данных, с которыми происходит работа. Это помогает в работе, но не всегда возможно. В иных случаях заполняют произвольным текстом;
- Задаем тип объекта и его свойства, используя контекстное меню. Задаем имя этих параметров и для свойств определяем тип, выбирая его из предложенных платформой.
Рис.2 Параметры пакета
Следующим этапом будет написание процедуры для создания файла XML по описанной выше схеме. Код достаточно прост, поскольку создан XDTO-пакет, а у элемента всего 2 свойства – «Наименование» и «Артикул». Обращаться к конкретной схеме позволяет объект платформы «ФабрикаXDTO». Сама процедура состоит из:
- Определение схемы будущей XML;
- Заполнение свойств номенклатуры;
- Создание нового XML файла.
Чтение XML-файлов с помощью конкретной фабрики XDTO по уже созданному в конфигурации пакету ничуть не сложнее. Алгоритм похож по структуре и отличается только операциями взаимодействия с XML-файлами. В данном случае нам нужно воспользоваться объектом платформы «ЧтениеXML» и прочитать содержимое в переменную. На выходе у нее будет тип «ОбъектXDTO», и вы сможете обращаться ко всем ее свойствам через точку.
Теперь попробуем прочитать файл, схемы которого нет в нашей конфигурации. Для этого экспортируем XDTO-пакет в файл формата xsd и удалим схему из конфигурации. После этого нам придется объяснить платформе, откуда ей брать схему читаемой XML-кодом, продемонстрированным ранее. Однако в простейших случаях 1С самостоятельно может распознать все свойства.
Рис.3 Экспорт XDTO-пакета
Лучше все-таки не рассчитывать на понятливость платформы 1С, а использовать точную схему XML. Многие специалисты используют сторонний софт для их создания, но для этого необходим достаточно большой опыт и уровень подготовки. Работа с пакетами XDTO требует внимания и соблюдения точного соответствия файлов заданной схеме, чтобы минимизировать возможные ошибки.
Исправление ошибок
Одной из достаточно распространенных ошибок, связанных с работой с XDTO-пакетами, является «Ошибка преобразования данных XDTO». Ее суть заключается в том, что платформа не может разобрать данный ей XML-файл по заданной схеме. При получении подобной ошибки при импорте данных, необходимо проверить формат файлов – возможно, присутствуют незакрытые теги.
Зачастую проблема с ошибками преобразования данных возникает и по другим причинам:
- Ошибки в обновлении платформы или конфигурации;
- Обмен между базами разных версий;
- Недочеты в алгоритме приема данных;
- Проблемы с временной памятью конкретного компьютера.
Рис.4 Ошибка преобразования данных
Рис.5 Ошибка проверки данных
Более сложная для анализа проблема, если при обмене информацией 1С выдает ошибку о несоответствии типов XDTO. В этом случае придется проверять все данные, находить ошибки и их причины. В некоторых случаях ошибки могут быть в коде, иногда – в данных информационной базы. Чтобы это понять, необходимо иметь доступ к базам причастным к обмену и четко понимать всю суть происходящего экспорта и импорта.
Рис.6 Несоответствие типов XDTO
На первый взгляд работа с XDTO достаточно сложна, поэтому на первое время рекомендуется добавлять XDTO-пакеты в 1С для большего порядка и учета. Конечно, все нюансы изучить сразу невозможно, но в процессе работы вы будете продолжать учиться. Но с уверенной теоретической базой намного удобнее начинать разбираться в этом вопросе.
Как в любом языке программирования, в платформе 1С есть предопределенные методы, которые облегчают жизнь разработчикам. Но выполнение этих команд требует правильного соблюдения синтаксиса языка программирования.
Самые распространенные ошибки при вызове типовых методов:
- Записать
- Создать
- Подключиться
- Connect
- ПроверитьВывод
- PreviewFile1C
- Прочитать
- Выполнить
- ВыполнитьПакет
- ПрочитатьИзменения
Рассмотрим пример. Мы программно создали запрос (справочник по запросам), передав в параметры «текст» вот такой фрагмент:
: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
<(13, 4)>: Синтаксическая ошибка
И >
Рассмотрим еще один пример:
Получите понятные самоучители по 1С бесплатно:
Перенесем ошибочный код в обработчик «ПередЗаписью» справочника «Версии программ» и попробуем записать справочник программно. Видим ошибку:
: Ошибка при вызове метода контекста (Записать)
Выборка.ПолучитьОбъект().Записать();
по причине:
Ошибка при выполнении обработчика — ‘ПередЗаписью’
по причине:
: Ошибка при вызове метода контекста (Выполнить)
РезультатЗапроса = Запрос.Выполнить();
по причине:
<(13, 4)>: Синтаксическая ошибка
И >
Несмотря на то, что ошибка заключается в выполнения метода «Выполнить», система ругается и на строчку кода, где вызывается программная запись объекта.
Решение проблемы
Для решения проблемы достаточно понять, в чем именно заключается ошибка. В 99% случаев проблема решается банальным чтением справки и анализом проблемы.
Для того чтобы узнать, как пользоваться тем или иным методом, достаточно установить курсор на интересующей Вас функции и нажать «Ctrl + F1». Платформа 1С выдаст Вам контекстную подсказку по требуемому методу:
Проверьте параметры, передаваемые в функцию, и правильность её использования.
Другие статьи по 1С:
Читайте также: