Кейс одного рабочего дня - от неожиданного открытия до создания вспомогательной обработки для просмотра логов 1С и удаления пользовательского кэша 1С
База данных - Инструменты администратора БД
Самый легкий день был вчера.
Всем привет!
- = Предисловие = -
Я хотел бы поделиться с Сообществом 1С-ников неожиданной находкой и последующим решением. Писать о том, что я чего-то не знаю или не знал - совсем не "комильфо". Сейчас постараюсь объяснить все по порядку, поэтому не торопитесь бросаться камнями.
Главная ценность для меня в этой истории заключается в том, что я, столкнувшись с вопросом, написал решение, позволяющее удобно и легко просматривать логи пользователей 1С. Далее, используя тот же принцип работы с файлами, я дописал решение для удаления пользовательского кэша 1С.
Вообще, в моем статейном арсенале подобных публикаций много:
например, недавно написал статью Поиск нужного кода через глобальный поиск
или вот другой пример, давно написал статью Мини-обзор разных решений задач.
Мои публикации не обладают глубокой экспертизой, но они дают направление вашей мысли. Остальное - использовать это и как - дело за вами.
Я использовал в качестве исходной обработки для работы с файлами - свою же обработку, написанную ранее - Удаление файлов на сервере из программы 1С. В прошлый раз, решив одну задачу, для меня не было очевидным решением, как решить другую задачу - выделить кэш пользователей 1С, поэтому тогда я написал витиевато
При удалении кэша 1С естественно нужно изменить путь к папке - убрать папку "ConfigSave" и удалять папку с идентификатором базы данных.
Для программистов, которые не работали программно с файлами, написать алгоритм поиска и анализа файлов будет неочевидной задачей. Поскольку платформа 1С дает нам, программистам 1С, только один метод:
НайденныеФайлы = НайтиФайлы("C:\", НазваниеФайла, Истина);
Чаще всего мы познаем мир последовательно - от проблемы к проблеме, от задачи к задаче. Эта статья является очередным опытом (кейсом) для меня. И как говорят спасатели: "Пройденная опасность - безопасна", хочется также красиво сказать про пройденную проблему - теперь это инструмент.
- = Тот самый обычный день 1С-ника = -
Удобно, когда пользователь сам звонит с проблемой, присылает скриншот, показывает по удаленке. Далее конфигуратор - отладчик - обновление. Часть проблем и последовательность операций в том числе можно посмотреть через Журнал регистрации.
Когда я чистил кэш пользователя вручную, заходя в папку Локал данного пользователя, мой взгляд зацепила папка "logs". В тот день у пользователя зависало проведение реализаций, что было странным, поскольку подобная проблема много лет не проявлялась.
Для меня стало неожиданной находкой, что платформа 1С хранит текстовые логи исключительных ситуаций и других ошибок в пользовательских служебных папках "logs" в файлах *.log. Не знаю, с какой версии платформы это началось, так, например, на платформе 8.3.11 таких логов нет, а на платформе 8.3.27 - есть.
Тут я вспомнил из своего опыта, что фирмы, которые предоставляют сервера для баз 1С и обслуживают их, закрывают доступ к этим служебным пользовательским папкам. И подумал, что это не правильно - сисадмины сами того не зная, закрывают нам, программистам 1С, доступ к такому мощному инструменту анализа исключительных ситуаций и ошибок в 1С. Не то чтобы кэш удалить нельзя, так ведь прочитать логи теперь нельзя!
Вернусь к находке. Если ваша платформа 1С пишет логи ошибок пользователей в отдельные текстовые файлы, то их можно просмотреть. Чтобы не искать логи руками, была разработана форма, в которой содержимое всех таких логов отображается в удобном для 1с-ника виде - см. рис.

Естественно, если у вас есть доступ к этим папкам и файлам. Если у вас нет доступа, но стоит задача анализа и поиска проблем, то можно запросить эти файлы у сисадминов по конкретным пользователям. Или подключиться к пользователям, скопировать логи в расшаренный каталог.
К слову сказать, обработка была разработана на обычных формах на платформе 1С:Предприятие 8.3 (8.3.27.2214), на конфигурации демо "Управление торговлей", редакция 10.3 (10.3.88.3). Позже алгоритмы были перенесены в обработку на управляемых формах. Обработку можно скачать из другой публикации Удаление файлов, логов 1С, патчей 1С и кэш 1С.
Проведя анализ логов, можно выделить логи по датам и старые логи можно удалить прямо из окна обработки. Новые логи - взять на вооружение - скопировать в отдельный текстовый файл.
К слову сказать, все эти логи относятся к технологическому журналу 1С. Который вовсе не обязательно настраивать на последних платформах. Если вы не настраивали файл конфигурации технологического журнала, то ваши логи будут "жить" одни сутки.
Поиск и отображение логов происходит быстро. В алгоритм поиска заложена проверка только 1С-овских логов - поэтому логи других программ не будут анализироваться.
- = Немного ретроспективного анализа = -
У пользователей начались проблемы долгого проведения реализаций, и они проявились только вчера и сегодня. Один день все терпели, на второй день - позвонили.
Анализ цепочки событий, которые могли повлиять на возникновение проблемы - предположительно такой. Ранее все пользователи работали в 1с в режиме 32х-бита из-за встроенной нетиповой подсистемы версионирования объектов (использовалась 32х-битная компонента ). После того, как я перевел версионирование объектов на получение Хеша через платформенную функцию, я перевел всех пользователей на режим работы 64х-бита.
И вот все работают под 64х-бита, скорость работы у всех увеличилась. Начался конфликт блокировок. В первую очередь стал анализировать журнал регистрации событий, далее почистил кэш пользователя, далее просмотрел текстовые логи пользователя. В логах была прописана строка кода, из-за которой возникали блокировки документов.
Да, сегодня получилось легко и быстро обнаружить и исправить проблему. В общем случае, не знаю, насколько логи полезны, если не настраивать конфигурационный файл ТЖ. Скажем так, проблемы конфликтов блокировок многие решают через развертывание технологического журнала - настройкой параметров какие события фиксировать - и дальнейшего парсинга событий по этому тех.журналу.
- = Рождение инструмента = -
Далее стал перебирать логи остальных пользователей. Если у пользователей нет ошибок, то логи не пишутся. Папок много, на 20ой стало лень. Написал дополнительный функционал в обработке, используя ранее написанную обработку по анализу файлов на диске "С:\" на сервере (описание есть в связанной публикации).
Увидел ошибки других пользователей и регламентных заданий, взял на вооружение. Далее, используя алгоритм поиска 1с-овских логов по всем служебным папкам пользователей, минуя логи других программ - написал поиск патчей обновлений 1С и поиск служебного кэша пользователей 1С. Над последними задачами я думал ранее, но не смог быстро решить задачу. Здесь же получилось так, что решив одну задачу, стал понятен принцип, как отбирать только 1С-овские файлы: патчи это файлы формата zip, логи это файлы формата log - файлов подобных форматов, условно говоря, на диске С много.


После обнаружения файлов, их можно удалить непосредственно из обработки 1С. Удалятся только те файлы, которые не захвачены программами 1С. Последняя находка стала решением или даже последнее решение стало находкой абсолютно неизвестной и ранее не сформулированной задачи - чистить кэш только тех пользователей, которые вышли из 1С.
Я иногда думал о неудобстве, почему чтобы почистить кэш пользователей скриптом, нужно чтобы все вышли из всех разных баз 1С. Но ни разу не мог сформулировать задачу в терминах 1С, и тем более предположить, что есть решение.
Пока разрабатывал окно логов все ошибки по работе с файлами фиксировались в своих же логах. Очередная находка, которая может претендовать на роль "Это может пригодиться!" Итак, логи могут пригодиться в собственной разработке - см. рис.

На этом все. Всем добра!
С пользой для клиентов, RustIG
- Анализ прав и ролей. Поиск подходящего профиля - алгоритмический анализ и поиск
- Оцифровка и визуализация склада - программная прорисовка склада
- Удаление документов для любых баз на управляемых формах
- Удаление справочников для любых баз на управляемых и обычных формах
- Перенумерация документов и справочников - с учетом префиксов номеров
- Свертка базы УТ 10.3 подокументно - новая концепция
- Матричное программирование - демо-стенд матричного калькулятора
- Справочное хранение товаров в КА 2.5 - кейс запуска адресного склада
- Мини-обзор разных задач - от очевидного до неочевидного
- Поиск отчета по документам - пример анализа незнакомых конфигураций
- Флажок в динамическом списке - от теории до практики "как бы простой" задачи
- Из Json в ДеревоЗначений - удобный просмотрщик json-структуры
- Внедрение адресного склада в КА 2.5 - кейс запуска адресного склада
- Фрилансеру: про цены, про клиентов, про планирование - мое исследование
- Что такое форматированный документ - прекрасная возможность раскрасить любой текст
- Программная работа с упаковками в КА 2.5 - примеры адаптаций механизмов упаковок в КА 2.5
- Универсальное сравнение регистров накопления - связь по измерениям, сравнение по ресурсам
- Обход объекта рекурсивно - просмотр реквизитов документа с бесконечным открытием подуровней
Вступайте в нашу телеграмм-группу Инфостарт
Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.