Новое отображение ошибок в 1С

Публикация № 1275015

Разработка - Практика программирования

ИнформацияОбОшибке ОбработкаОтображенияОшибки ЯвляетсяОшибкойКатегории МенеджерОбработкиОшибок ОбработкаОшибок Ошибки Отчет Сервис регистрации

Рассмотрим развитие механизма отображения ошибок в 1С (начиная с 8.3.17)

Всем привет!

Сегодня давайте рассмотрим развитие механизма отображения ошибок в 1С.

Совсем недавно я снял видео. Данная статья - текстовый его вариант. 

 

 

 

Содержание

 

Подготовка

 

Где почитать?  ^

В начале этого года вышла статья на Зазеркалье с информацией о новой возможности платформы - работой с окном отображения ошибок.

Вот статья: https://wonderland.v8.1c.ru/blog/razvitie-mekhanizma-otobrazheniya-oshibok/

Многие после прочтения были воодушевлены. Естественно, ведь наконец-то мы сможем не только работать с этим окном, но и получать от пользователей полноценный отчет об ошибке!

И вот, в версии 8.3.17 мы можем видеть "новое о платформе"

https://dl04.1c.ru/content/Platform/8_3_17_1549/1cv8upd_8_3_17_1549.htm#9f36892b-eb6c-11e9-8371-0050569f678a

Реализованы следующие возможности, связанные с обработкой ошибок, возникающих при работе прикладного решения:

  • Возможность обработки всех не перехваченных ошибок, возникающих при работе прикладного решения, перед отображением ошибок пользователю. Реализован обработчик модуля приложения ОбработкаОтображенияОшибки.
  • Реализована возможность декларативной настройки текстов сообщений об ошибке.
  • Реализована возможность формирования и отправки отчета об ошибке для службы технической поддержки (в том числе полностью автоматически). Реализован объект ОтчетОбОшибке.
  • Реализовано понятие «категория ошибки», что позволяет группировать ошибки. Реализован метод ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории().
  • Изменено стандартное окно отображения ошибок пользователю.

Реализовано свойство глобального контекста ОбработкаОшибок.

Реализована стандартная функция Управление настройками обработки ошибок, позволяющая настроить тексты ошибок. Методы глобального контекста КраткоеПредставлениеОшибки(), ПодробноеПредставлениеОшибки() и ПоказатьИнформациюОбОшибке() считаются устаревшими. Рекомендуется использовать одноименные методы объекта ОбработкаОшибок.

Тем, кому будет интересно самому подробнее погрузиться в этот механизм, можно прочитать на ИТС здесь и здесь

 

Где и как тестировать? ^

Работать мы будем в демо-базе, которую можно скачать с того сайта 1С: https://releases.1c.ru/version_files?nick=Platform83&ver=8.3.17.1549

Я выбрал пункт с файлом DT. Вот прямая ссылка на скачивание. Естественно, нужен доступ на users: https://releases.1c.ru/version_file?nick=Platform83&ver=8.3.17.1549&path=Platform\8_3_17_1549\demodt_8_3_17_1549.zip

Данный ДТшник после установки платформы 8.3.17.1549 я загрузил в базу для последующих экспериментов.

 

Так же для работы сделаем обработку, в которой просто будем вызывать ошибку. 

 

 

Сделаем простую непредвиденную ошибку в коде. Просто попытаемся присвоить в зарезервированную переменную "Неопределено":

 

Далее будем работать с этой обработкой.

 

В начале были нюансы...  ^

Сразу упомяним важный нюанс работы механизма. Дело в том, что новое окно с информацией об ошибке будет появляться только в том случае, если текущий сеанс НЕ допускает отладки. 

Поэтому сразу же для удобства вынесем кнопку "1С:Предприятие", которая будет запускать базу без подключенной отладки.

 

Теперь запустим в таком режиме сеанс и попробуем выполнить нашу обработку.

 

Вуаля! Мы видим новое окно с информацией об ошибке! Здесь есть кнопка "Сформировать отчет об ошибке" и нет совершенно упоминание кода, на котором эта ошибка возникла. Но данную форму мы ещё рассмотрим. Давайте закроем сеанс, вернёмся в конфигуратор и запустим 1С в режиме отладки. Теперь, если мы попытаемся выполнить нашу обработку, то увидим старое, уже давно привычное нам, окно с информацией об ошибке:

 

 

Выходит, что с подключенной отладкой мы не увидим новое окно? Да, но более того - мы не увидим его даже, если отладка не подключена, но в сеансе есть на неё разрешение. 

 

 

То есть пользователи, у которых включена отладка в текущем сеансе, не увидят новое окошно с информацией об ошибке и не смогут сформировать отчет об ошибке.

Это странное решение 1С, может у кого в комментариях будут предположения о причинах... Но деваться некуда - нужно просто это знать, чтобы потом не удивляться.

Ещё усугубляет ситуацию то, что часто разработчики советуют пользователям включать этот режим отладки в текущем сеансе. Для того, чтобы появлялась кнопочка "Подробнее...". Покажу не примере:

Если открыть базу до 8.3.17 (у меня это будет 8.3.15), а далее без режима отладки вызвать ошибку, то мы увидим такое окно:

Что здесь не так? Нет возможности нажать "Подробнее" (чтобы увидеть полный текст ошибки), а так же нет возможности скопировать этот текст.

Для того, чтобы окно было более функциональным, пользователи включают в своих сеансах режим разрешенной отладки.

 

Выходит, что пользователи, наученные включать режим отладки, не увидят новое окно об ошибке. Их нужно будет переучить. И, поздравляю, можете начинать и сейчас. Потому что есть более "правильный" способ пользователям копировать текст ошибке (без включения отладки). Просто перейдите в "О программе" -> "Информация для технической поддержки". Это даже удобнее, чем окно с сообщением, потому что ошибки копятся и не пропадут после закрытия окна.

 

 

Что видит пользователь?  ^

Вернёмся к новому окну.

 

Вот что пользователь увидит по кнопке "Сформировать отчет об ошибке":

 

Форма формирования отчета  ^

Это новая форма платформы, в которой мы можем внести описание проблемы (например, что мы именно делали перед возникновением ошибки).

Но самое главное, что теперь разработчики могут получить от пользователя автоматически сформированные пункты. 

  1. Подробный текст ошибки. Это конкретно тот текст ошибки, который нам нужен. А не тот, который пользователь неизвестно как и откуда скопировал.

     
  2. Снимок окон приложения. Полноразмерный скрин окон 1С.


     
  3. Имя пользователя информационной базы

     
  4. Сведения об используемом приложении. Здесь у нас хранится инфа о конфигурации, режиме совместимстимости и расширениях

     
  5. Информация о компьютере. Гигабайты, гигагерцы и так далее

     
  6. Приложить файл. Пользователь может приложить, например, файл, который он пытался прогрузить в обработку. Или же саму внешнюю обработку. 

 

Самое главное, что всё это добро можно сохранить на компьютере в виде архива, а потом переслать кому нужно:

 

Содержимое отчета об ошибке  ^

Давайте посмотрим, что внутри:

 

Скриншот и файлик JSON. А вот в JSON уже хранится вся информация:

 

Здесь хранится даже больше, чем нам было показано в окне. Например, вот код локализации:

 

А вот идентификатор расширений. Их не было на скринах выше:

 

А здесь вообще подробный стек:

В общем, в JSON хранится много всего интересного. Но рассмотрим его подробнее в следующих статьях. Попытаемся его распарсить.

 

Как сохраняются скриншоты  ^

Перед тем, как перейти далее, рассмотрим то, как 1С создаёт скриншоты окон приложения. Для этого в форме нашей обработки сделаем режим открытия окна "Блокировать весь интерфейс". 

И теперь вызовем ошибку.

 

Как видите, обработка полностью закрыла собой основное окно 1С. Но как будет выглядеть скриншот?

 

1С разделила скриншот на две части - два независимых изображения окна. При этом, наложения одного окна на другое нету. В итоге, разработчик видит как скрин самой формы, в которой выпала ошибка, так и скрин основного окна 1С, в котором форма была открыта. Очень удобно 👍

 

 

Администрирование  ^

Одно из основных "фишек" нового механизма - возможность видоизменять текст окна с ошибкой в режиме предприятия.

 

Управление настройками обработки ошибок  ^

Настройки механизма в режиме Предприятие вносятся в "Управление настройками обработки ошибок". Для этого перейдём в "Функции для технического специалиста" (ранее "Все функции") -> "Стандартные" - "Управление настройками обработки ошибок".

 

 

И вот мы видим такую форму. Добавить в избранное мы, к сожалению, не можем, потому что это "стандартная форма". 

 

Теперь посмотрим на функционал этой формы. У нас уже есть одна настройка, потому что это демо-база. 

 

Настройка отображения для категории  ^

Попробуем добавить новую.

 

Мы можем выбрать

  1. Любую категорию ошибок. В 1С есть список из 12ти категорий:

    * Все ошибки
    * Прочая ошибка
    * Нарушение прав доступа
    * Ошибка доступа к локальному файлу
    * Ошибка сети
    * Ошибка работы с принтером
    * Исключение, вызванное из встроенного языка
    * Ошибка системы взаимодействия
    * Ошибка настроек компоновки данных
    * Ошибка сеанса
    * Ошибка полнотекстового поиска
    * Ошибка внешнего источника данных


     
  2. Текст для ошибки, не требующей перезапуск
  3. Текст для ошибки, требующей перезапуск

 

Шаблон с текстом ошибки позволяет задать произвольный отформатированный текст, а так же использовать встроенные "параметры".

 

 

Чтобы рассмотреть их наглядно, создадим настройку для категории "Все ошибки". И внесём в неё текст со списком всех параметров.

 

Настройки обработки ошибок применяются после перезапуска сеанса:

 

Перезапустим сеанс и снова откроем нашу обработку, которая вызовет ошибку. 

Вот так выглядят все доступные параметры для пользователя:

 

СтандартноеСообщениеОбОшибкеДляПользователя - текст, который формирует сама 1С, опираясь на категорию ошибки. Этот текст содержит рекомендации для пользователя и "призывы" к действию.

ПредставлениеОшибкиДляПользователя - отображает только описание ошибки без каких-либо рекомендаций. Так же напрямую формируется из категории

КраткоеПредставлениеОшибки - это краткое представление ошибки равнозначно тому тексту, который на ранних версиях платформы показывался пользователю в сеансе без подключенной отладки.

ПодробноеПредставлениеОшибки - Расширенное представление информации об ошибки. Как то, которое доступно пользователю по кнопке "Подробно" в окне с ошибкой.

 

Как хранить шаблоны?  ^

Вернемся в редактор и рассмотрим небольшой его недостаток и как с ним можно бороться. 

 

Сразу видно что здесь нету галочки с отключением существующих настроек. Допустим, я хочу отключить эту настройку (не удаляя ее), чтобы сохранить сам шаблон представления ошибки. Такой возможности нет. Естественно, сделать две настройки на категорию нельзя. Однако, есть вариант сохранить текст с сохранием формата. Для этого просто достаточно нажать соответствующую кнопку и сохранить шаблон в формате HTML.

А далее открыть его в браузере. 

 

И уже с этого файла можно простым копипастом вставить его в поле с настройкой 1С. 

Вот, например, содержимое файла:

 

СтандартноеСообщениеОбОшибкеДляПользователя

[СтандартноеСообщениеОбОшибкеДляПользователя]

 

ПредставлениеОшибкиДляПользователя

[ПредставлениеОшибкиДляПользователя]

 

КраткоеПредставлениеОшибки

[КраткоеПредставлениеОшибки]

 

ПодробноеПредставлениеОшибки

[ПодробноеПредставлениеОшибки]

 

Это может быть полезным, когда в рамках ТЗ вы разработали шаблон, нужно его как-то передать на внедрение на продуктив. Просто сохраняете HTML.

И если вам нужно временно отключить настройку, но не потерять её содержимое - опять же HTML.

 

Настройка пунктов отчета  ^

Теперь рассмотрим остальные настройки в редакторе:

 

Первые две группы параметров относятся к сервису регистрации ошибок. Нужно ли отправлять отчет автоматически или же спрашивать у пользователя. Сам адрес сервиса регистрации, дополнительная информация и так далее.

Сам сервис регистрации ошибок мы рассмотрим позднее следующих публикациях. Попробуем его запустить сами и обработать входящие отчеты об ошибках.

А сейчас рассмотрим третью группу настроек.

Здесь настраиваются пункты, которые будут добавляться в отчет об ошибке.

Давайте сделаем здесь разные варианты. Например, такие:

 

Перезапустим и вызовем ошибку:

 

Сразу видим, что список пунктов уменьшился. Те, что мы отключили, в принципе не предполагается к отправке. А обязательные пункты отключить нельзя.

Это очень удобно для разработчиков и администраторов. Мы можем просто запретить пользователям снимать галочки с пунктов, чтобы однозначно увидеть полные данные об ошибке. 

 

Сбросим теперь настройки на Авто (к сожалению, кнопки по сбросу настроек нет).

 

Настройки для пользователей  ^

Помимо общих параметров в редакторе есть ещё и возможность указать точечно настройки для каждого пользователя. 

 

 

Они работают точно так же, но уже для конкретного пользователя ИБ.

Можно, например, для всех пользователей задать простой текст ошибки, а администратору выводить максимально детализированную информацию (как мы делали в своей настройке с выводом всех возможных параметров).

 

 

Программная работа  ^

Вернемся к нашей обработке и рассмотрим принцип механизма. 

 

ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории()  ^

 

 

Что здесь происходит?

Мы пытаемся присвоить "Неопределено" в зарезервированную переменную. Происходит ошибка. Давайте перехватим её при помощи попытки:

 

В отладке мы видим содержимое информации об ошибке.

 

Это старый объект в 1С, но он получил новый метод: ЯвляетсяОшибкойКатегории()

Теперь каждая информация об ошибке относится к категориям. И все информации об ошибках относятся к категории "Все ошибки":

Но что нам с этим делать?

 

ОбработкаОтображенияОшибки()  ^

Дело в том, что если ранее мы НЕ перехватывали ошибку через попытку, то она сразу отправлялась на экран пользователю. И мы никак не могли с этим работать. 

Но теперь платформа позволяет использовать метод в модуле приложения: ОбработкаОтображенияОшибки()

 

И теперь, когда возникает ошибка, выполняется этот метод и мы на входе имеем информацию о ней. А так же можем видоизменять представление для пользователя.

Процедура имеет параметры:

 

ИнформацияОбОшибке - одноименный объект. Тот же самый, что мы перехватывали через попытку

ТребуетсяЗавершениеСеанса - булево - будет ли платформа требовать завершения сеанса. Изменить эту переменную вы можете, но ни на что это влиять не будет. Она нужна только для чтения.

СтандартнаяОбработка - булево - будет ли платформа сама отображать пользователю ошибку.

 

Рассмотрим пример из Демо-базы:

 

Здесь мы видим, что при нарушении прав доступа будет формироваться программно текст с фамилией, именем и номером телефона Иванова Ивана. Номер телефона будет выделен форматированием.

Вообще, данный пример можно было бы настроить и в режиме предприятия. Ведь всё здесь постоянно - и ФИ и номер телефона. Но пример показывает не кейсы применения, а саму программную работу. 

 

ОбработкаОшибок (МенеджерОбработкиОшибок)  ^

На скрине выше мы видим использование новой глобальной переменной ОбработкаОшибок. Тип у переменной МенеджерОбработкиОшибок.

 

Это переменная - самый главный объект по программному доступу к обработке ошибок.

Объект содержит методы, которые позволяют отображать информацию пользователя, получить форматированный текст с учетом настроек в базе, а так же читать и изменять эти самые настройки.

 

Это даёт разработчику возможность полностью видоизменять отображаемый пользователю форматированный текст. 

Если додумать наш  код из демо-базы, то ФИО и контактную информацию можно брать из базы. Например, добавить регистр сведений "ОтветственныеЗаОшибки". И в этом регистре указывать физ-лица в разрезе категорий ошибок. А в коде, при возникновении ошибки, выводить пользователю контактные данные этого физ-лица.

В следующих публикациях мы ещё остановимся подробнее на тех реальных кейсах, которые можно реализовать.

Ну и стоит помнить, что так как у нас появилась новая глобальная перменная, то если где-то в ваших текущих разработках она будет использоваться - после обновления платфомры будут ошибки. Так же, как когда-то случилось с переменной ЭтотОбъект внутри управляемой формы.

 

ОбработкаОшибок.КатегорияОшибкиДляПользователя()  ^

В примере из демо-базы используется ещё один метод для определения категории. На этот раз метод относится не к ИнформацияОбОшибке, а к ОбработкаОшибок. 

КатегорияОшибкиДляПользователя() возвращает конкретную категорию, к которой относится ошибка. Например, у нас это "непредвиденная ошибка".

Какой метод использовать?

На Зазеркалье использовался метод ИнформацияОбОшибке.ЯвляетсяОшибкойКатегории(). Дело в том, что одна ошибка может относится сразу к нескольким категориям. Цитата:

У объекта ИнформацияОбОшибке есть метод ЯвляетсяОшибкойКатегории(). Одна ошибка может одновременно принадлежать к нескольким категориям.

В описании нового в платформе так же указывается этот метод

И на ИТС тоже:

Не совсем понятно, почему в демо-базе использовался другой метод. Если у вас есть ответ на этот вопрос, то можете писать в комментарии. Обновлю информацию в статье.

 

Журнал регистрации  ^

Как обстоят дела с фиксацией ошибки в журнале регистрации?

Сейчас мы находимся в отладке в самом начале метода ОбработкаОтображенияОшибки(). 

 

Если зайдём в журнал регистрации, то увидим, что ошибка уже в него записана:

То есть, дополнительно фиксировать информацию в журнал регистрации не нужно, даже если мы установим "СтандартнаяОбработка = Ложь". Уже на момент входа в процедуру запись в ЖР есть.

Но есть нюанс:

 

Ошибки внутри ОбработкаОтображенияОшибки()  ^

Вот у нас в обработке произошла ошибка. 1С передала управление в метод ОбработкаОтображенияОшибки().

Но что будет, если в этом методе тоже произойдёт ошибка? Как себя поведёт платформа?

Вызовем ошибку внутри процедуры по обработке ошибки (интересно звучит). Для этого попытаемся присвоить "Неопределено" в зарезервированную переменную

 

Выполняем обработку и видим стандартный текст с инфомацией об ошибке:

Перейдём в формирование отчета:

И посмотрим подробный текст ошибки:

 

Как видим, это текст ошибки, которая возникла в обработке. Здесь не содержится информация об ошибке, которую мы совершили после.

А что в журнале регистрации?

Опять же только одна ошибка. Та, которая является первопричиной. И нет никаких данных о том, что у нас была ещё и другая.

Дело в том, что когда в процедуре ОбработкаОтображенияОшибки() происходит ошибка, то 1С дальше работает по стандартной логике. Независимо от того, успели ли вы отключить СтандартнуюОбработку.

И в журнале регистрации вторая ошибка (в самом обработчике) фиксироваться не будет. 

А что если мы успели сами уже отобразить показать информацию пользователю? Для этого внесём изменения в код:

 

Вызываем ошибку:

В этом тексте есть в конце слово "ТЕСТ". А значит, это то окно, которое мы сами программно вызвали.

Но когда мы закроем это окно, 1с откроет новое:

Это окно уже без надписи "ТЕСТ". 

Дело в том, что 1С сначала выполнила открытие окна с ошибкой, которое мы выполнили сами, а затем, после того как процедуру ОбработкаОтображенияОшибки() не удалось выполнить, открыла ещё и стандартное окно.

Этот нюанс важно помнить при разработке. И быть очень осторожным, чтобы не допустить в методе ошибку. Иначе вы как разработчик можете даже не заметить её (ведь в журнале не фиксируется), а пользователя может пытать ситуация, когда ему дважды предлагают отправить отчет.

 

Выводы  ^

Новый механизм достаточно гибок и имеет множество преимуществ. Как только он станет во всю использоваться в типовых, то знание нюансов работы с ним станет для разработчика большим плюсом. Ведь вряд ли кто откажется от удобств, которые даёт автоматически формируемый отчет с данными об ошибке. 

В следующих статьях мы продолжим разбирать данных механизм. Создадим свойс htttp-сервис регистрации ошибок. Попробуем реализовать пример использования обработчика ОбработкаОтображенияОшибки(). Будет интересно 👍

 

Понравилась статья?

Не будьте равнодушными! Поставьте лайк плюс, оставьте комментарий.

Не забудьте посмотреть видео по этой теме, в нём я наглядно показываю всё то, что говорится в статье: Отображение ошибок в 1С (новый механизм с версии 8.3.17)

И переходите к другим публикациям:

 

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. wowik 812 11.08.20 11:29 Сейчас в теме
+1 за оформление, +1 за содержание = +1.
2. Sander80 81 11.08.20 11:58 Сейчас в теме
Что удивительно (это не к автору, а к 1с), это что общая обработка ошибок
- рекомендуется к использованию как чисто клиентская
- происходит после записи в журнал регистрации

По мне так это лишает все это большей части смысла - возможности кодом собрать побольше информации и записать это в специально разработанный регистр ошибок вместо журнала регистрации.

А сервер регистрации ошибок у вас не получилось еще поднять? Было бы крайне интересно
3. SeiOkami 1579 11.08.20 12:06 Сейчас в теме
(2)
А сервер регистрации ошибок у вас не получилось еще поднять?

Сделал сервис регистрации (http-сервисом в базе 1С).
Позже сделаю обзор на это. Там несложно, но интересно.
В планах ещё сделать буферный http-сервис (возможно, на python). Он будет основным сервисом. Принимать отчеты от пользователей, складировать их, а далее (с заданной частотой) передавать их в базу 1С. Чтобы уменьшить количество затрачиваемых лицензий
5. Sander80 81 11.08.20 19:29 Сейчас в теме
(3) http-сервисом в базе 1С это прямо очень интересно!
Спасибо, будем ждать
6. untru 4 23.09.20 23:56 Сейчас в теме
(3)а где почитать как организовать свой сервис? Можете подсказать? Это же наверно обычный пост запрос с json в теле или как?
4. dimonb123 11.08.20 15:40 Сейчас в теме
спасибо!

подписался на ю-туб канал.
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    61041    user700211_a.straltsou    27    

Описание почти всех событий технологического журнала

Технологический журнал v8 Бесплатно (free)

Краткое описание событий технологического журнала с примерами. Все для быстрого старта.

19.08.2020    4924    YPermitin    22    

Серверные вызовы, которые нельзя вызывать

Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    5982    SeiOkami    29    

Как ограничить поля отбора в динамическом списке и ничего не сломать

Практика программирования v8::УФ 1cv8.cf Бесплатно (free)

С чем разработчик может столкнуться при попытке установки ограничений в динамическом списке.

06.05.2020    4712    SeiOkami    3    

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

Решение проблемы, когда значения скопированных ячеек из табличных документов 1С в Excel воспринимаются последним как текст, т.е. без дополнительного форматирования значений невозможно применить арифметические операции. Поводом для публикации послужило понимание того, что целое предприятие с более сотней активных пользователей уже на протяжении года мучилось с такой, казалось бы на первый взгляд, тривиальной проблемой. Варианты решения, предложенные специалистами helpdesk, обслуживающими данное предприятие, а так же многочисленные обсуждения на форумах, только подтвердили убеждение в необходимости описания способа, который позволил мне качественно и быстро справиться с ситуацией.

15.01.2019    24487    itriot11    26    

Ограничения полей, или как обмануть СКД?

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Каждое из ограничений полей можно обойти. Рассмотрим варианты обхода и способы обезопасить свой отчет.

15.04.2020    6705    SeiOkami    38    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    25594    ids79    26    

[СКД] Программное создание схемы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    23054    John_d    22    

Как настроить сервер 1С по умолчанию для ПРОФ лицензии после 10.09.2019 Промо

Администрирование данных 1С v8 Бесплатно (free)

Здесь мы собираем все данные по настройкам сервера для работы ПРОФ лицензии.

11.09.2019    72443    Infostart    90    

Таблица значений. Нюансы

Практика программирования v8 Бесплатно (free)

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    32568    Yashazz    50    

[Шпаргалка] Программное создание элементов формы

Практика программирования Работа с интерфейсом v8 1cv8.cf Бесплатно (free)

Программное создание практически всех популярных элементов формы.

06.09.2019    48587    rpgshnik    63    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    48496    ids79    54    

Использование программных перечислений, ч.1: строковые константы Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    37242    unichkin    74    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    79906    ids79    49    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    58349    ids79    11    

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ

Инструментарий разработчика Практика программирования v8 v8::СКД Бесплатно (free)

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    35448    ids79    27    

Вспомогательные инструкции в коде 1С Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Помогаем редактору кода 1С помогать нам писать и анализировать код.

15.10.2018    30104    tormozit    100    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    19554    SeiOkami    50    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    51782    ids79    25    

Регистры накопления. Структура хранения в базе данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Структура хранения регистров накопления в базе данных для платформы 1С:Предприятие 8.x. Первая часть в серии публикаций.

16.05.2019    42483    YPermitin    30    

Отчет по размерам таблиц в базе данных как одно из средств анализа проблем Промо

Статистика базы данных v8 1cv8.cf Бесплатно (free)

Зачастую, когда пользователи обращаются с жалобами на производительность, бывает полезно посмотреть на отчет по размерам таблиц базы данных. Он может отчетливо показать ряд распространенных проблем, устранение которых даст существенный эффект. Приведенная информация вряд ли покажется чем-то новым для опытных специалистов.

21.07.2015    33887    Aleksey.Bochkov    15    

Выгрузка документа по условию

Практика программирования Разработка v8 Бесплатно (free)

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16015    m-rv    2    

5 простых шагов и 15 минут на разворачивание инструмента мониторинга проблем производительности базы 1С

Производительность и оптимизация (HighLoad) v8 Бесплатно (free)

В этой статье мы разберем механизм использования конфигурации "Анализ технологического журнала" на практике, и всего через 15 минут работы вы получите функциональный, удобный инструмент мониторинга проблем производительности базы 1С.

18.04.2019    29606    ivanov660    77    

Как прикрутить ГУИД к регистру сведений

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

... и немного теории обмена данными. В частности, разберем боль всех, кто пишет небанальные обмены данными: как набору записей регистра сведений назначить гуид и далее использовать его в обмене для идентификации этого набора.

16.04.2019    20146    m-rv    17    

Оформление и рефакторинг сложных логических выражений Промо

Практика программирования v8 Россия Бесплатно (free)

В сложных логических выражениях нередко самому автору спустя какое-то время тяжело разобраться, не говоря уже о других программистах. Предлагаемая методика позволяет повысить наглядность таких выражений путем оформления в виде И-ИЛИ дерева и одновременно выполнять их рефакторинг.

20.09.2012    77870    tormozit    131    

О расширениях замолвите слово...

Практика программирования Разработка v8 Бесплатно (free)

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    35158    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

Практика программирования v8 Бесплатно (free)

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    27302    ellavs    89    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    38954    ids79    9    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Иногда возникает необходимость после записи значения в какое либо поле ввода/формы вызвать для него обработчик события ПриИзменении, а о вызове самого события приходится только мечтать. В этой статье приводится программный способ вызова этого события.

11.07.2007    48208    tormozit    41    

Малоизвестная хитрость определения модуля и номера строки при возникновении исключения (без запуска отладки и конфигуратора). Несколько очень удобных, но малоиспользуемых возможностей работы в конфигураторе

Тестирование и исправление v8 Россия Бесплатно (free)

В статье описана возможность получить место возникновения исключения при работе пользователей без участия конфигуратора. Подробно описаны еще некоторые очень полезные приемы при работе в отладке.

17.01.2019    27681    PoZiTiFFF    53    

Чем PostgreSQL может быть полезен разработчику 1С

Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

В статье будут рассмотрены примеры, которые могут оказаться полезными в повседневной работе разработчика 1С и не только: как можно сделать снимок рабочей базы без файла резервной копии, как можно эффективно использовать табличные пространства СУБД PostgreSQL, а также как организовать простой и удобный доступ к админке СУБД посредством мобильных устройств.

20.12.2018    22965    Shmell    38    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

Практика программирования v8 1cv8.cf Россия Бесплатно (free)

Как сделать метод формы, доступный на клиенте и на сервере одновременно, и сохранить при этом удобство разработки

10.09.2017    44641    tormozit    74    

Новый подход к обмену данными EnterpriseData

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Хочу предложить Вашему вниманию цикл статей, посвященных обмену данными через универсальный формат (EnterpriseData или ED).

14.12.2018    41112    ids79    72    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    34533    ids79    40    

Кластер серверов 1С

Администрирование СУБД v8 Бесплатно (free)

Какой уровень отказоустойчивости при проектировании серверов 1С выбрать? В чем отличия центрального и рабочего сервера? Как правильно настроить требования назначения функциональности? На что влияют настройки кластера и сервера 1С и как в них не запутаться? Антон Дорошкевич дает на эти и многие другие вопросы подробные ответы.

24.09.2018    44904    a.doroshkevich    67    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

Практика программирования v8 1cv8.cf Бесплатно (free)

Вариант решения задач с проведением по типовым регистрам нетиповыми регистраторами. Зачем - чтобы при сравнении конфигурации не обращать внимание на свойства регистров и исключить вероятность допущения горькой оплошности при обновлении информационных баз, заменив типы регистраторов основной конфигурации типами конфигурации поставщика. Для программных продуктов, имеющих в своем составе метаданных документ "Корректировка регистров"("Корректировка записей регистров").

05.12.2017    28206    itriot11    34    

Тестер: частые вопросы

Практика программирования v8 Бесплатно (free)

Ошибкам бой - тесты норма жизни!

25.07.2018    29177    grumagargler    28    

Повышаем эффективность разработки правил обмена

Практика программирования Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    28287    olegtymko    47    

Как сделать запрос на изменение данных

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    30490    m-rv    21    

Строим графы средствами 1С (без GraphViz)

Практика программирования v8 Бесплатно (free)

Множество статей на Инфостарте описывают, как работать с компонентой GraphViz, чтобы построить ориентированный граф. Но практически нет материалов, как работать с такими графами средствами 1С. Сегодня я расскажу, как красиво строить графы с минимальным пересечением. Нам этот метод пригодился для отрисовки алгоритмов в БИТ.Финансе, т.к. типовой механизм не устраивал. Еще это может быть полезно для визуализации различных зависимостей: расчета себестоимости, графы аффилированности компаний и т.д. Надеюсь, эта статья поможет сделать мир 1С красивее и гармоничней:) Итак, поехали...

23.05.2018    24102    slozhenikin_com    20    

Распределение расходов пропорционально продажам

Финансовый учет и бюджетирование (FRP) Учет доходов и расходов Практика программирования Финансовый учет и бюджетирование (FRP) Учет доходов и расходов v8 v8::ОУ УТ10 УУ Бесплатно (free)

Финансовая модель. Распределение административных расходов по подразделениям пропорционально продажам за месяц. Дополнительные реквизиты против бизнес-процессов!

13.05.2018    18193    Rustig    9    

Несколько версий сервера 1С на одном компьютере

Администрирование данных 1С v8 Бесплатно (free)

Как установить несколько экземляров сервера 1С на один компьютер. Как установить несколько служб агента 1С на один сервер? Как запустить сервера разных платформ на одном компьютере.

18.04.2018    83009    spezc    87    

О лицензиях 1С

Администрирование данных 1С v8 Россия Бесплатно (free)

Разбираем вопросы по получению и переполучению лицензии 1С.

30.03.2018    125121    D_e_X_T_e_R    166    

[ВсеПросто] "Оперативный" информатор из 1С за 5 мин.

Практика программирования v8 Бесплатно (free)

Быть всегда в курсе дел, даже в дороге!

22.02.2018    26321    DarkAn    25    

Минимализмы 3

Практика программирования Универсальные функции v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    46363    ildarovich    45    

Ликбез 8.Х: Управляем чем-нибудь железным. Скажем, светофорами на автомобильных весах

Весы v8 Россия Бесплатно (free)

Как управлять внешними приборами/механизмами через COM-порт.

23.12.2017    14544    Арчибальд    19