Ошибка реорганизация индексов базы данных MS SQL «Невозможно реорганизовать индекс» на базах 1С Предприятие.

После обновления платформы 8.3.20.1674, обратил внимание что не выполняется реиндексация баз данных относящихся к 1С, в логах значится ошибка — «Невозможно реорганизовать индекс «_Acc48_1» в таблице «_Acc48″, поскольку отключена блокировка на уровне страницы.»

Как оказалось что начиная с версии платформы 8.3.22 необходимо выполнять дефрагментацию индексов по следующему алгоритму:

  • До дефрагментации индекса необходимо включить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = ON, ALLOW_ROW_LOCKS = ON);
  • Выполнить дефрагментацию.
  • Обратно выключить страничные блокировки. Пример команды: ALTER INDEX index_name ON table_name SET (ALLOW_PAGE_LOCKS = OFF, ALLOW_ROW_LOCKS = ON);

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

Скрипт работает по следующему принципу:

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

Читать далее

Мониторинг 1С:Предприятие 8.3 с помощью Zabbix

Поступила просьба от 1С разработчиков организовать мониторинг  сервера 1С:Предприятие 8.3 с помощью Zabbix 5.0. В частности необходимо мониторить как общие показатели системы (CPU, RAM, HDD, Службы) так и параметры относящиеся непосредственно к серверу 1С — кол-во текущих сеансов, кол-во сеансов по типам подключения, блокировки СУБД.

С мониторингом общих показателей системы прекрасно справляется zabbix-agent и штатный шаблон, а вот со вторым уже нужно прибегать к функциям cервера администрирования кластера серверов 1С, который состоит из двух утилит: непосредственно самого сервера — программы ras.exe и  утилиты командной строки rac.exe, которая обращаясь к запущенному прежде серверу ras позволяет выполнять различные операции с кластером серверов 1С:Предприятия.

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

Как итог было написано две утилиты. Первая утилита запускает ras.exe как службу Windows, а вторая это утилита которая работает с rac.exe, выполняет запросы, обрабатывает и выдает результат, который в последующем может обрабатывать zabbix-agent и передавать на сервер Zabbix.

 

Итак скачиваем первую утилиту helper_ras_1c.exe и помещаем ее в какой-нибудь отдельный каталог (прим. C:\1c_ras).

Скачать “1C:Enterprise Monitoring (helper_1c_ras)” helper_1c_ras-1.exe – Загружено 1055 раз – 2 MB

Теперь в каталоге размещения утилиты helper_ras_1c.exe создаем текстовый файл — cfg.conf со следующим содержанием:

[Parameters]
rasPath=C:\Program Files\1cv8\8.3.17.2306\bin
rasPort=1545
agentName=localhost
ctrlPort=1540
ИНФОРМАЦИЯ: обращаю внимание что в параметре rasPath нужно указывать путь с учетом какая версия 1С у вас установлена. Остальные параметры оставляем без изменения!

Теперь нужно установить службу.. (да да, можно было бы и написать еще утилиту которая будет устанавливать по одному клику, но мы же не ищем легкий путей).

Читать далее

LicDataViewer программа для просмотра/расшифровки информации из файла программной лицензии 1С (*.lic)

UPD 1. Выпущена версия 1.0.0.2. Добавлена возможность сохранять полученный результат в текстовый файл. Реализовано автосохранение и ручное.

UPD 2. Выпущена версия 1.0.0.3. Исправлен косяк при ручном сохранении, теперь расширение по-умолчанию добавляется к названию файла.

UPD 3. Выпущена версия 1.0.0.4. Немного изменена механика завершения работы. Теперь корректно программа чистит за собой файлы используемые для декодирования.

UPD 4. Выпущена версия 1.0.0.5. Добавлены утилиты (Ring, License-tools) последних версий. Исправлены некоторые ошибки и глюки в работе утилиты, описанные в комментариях.

ВНИМАНИЕ! Запрещается распространение программы через какие либо сторонние сайты\файлообменники без согласия автора.

Столкнулся недавно с ситуацией, когда необходимо было разобрать имеющиеся файлы программных лицензии 1С (*.lic) и понять какие регистрационные данные и используемый ПИН-код на них.

Эту информацию можно получить при помощи утилит Ring и License Tools поставляемых вместе с платформой 1С. Данные утилиты находятся в папке ExtDst с установленной платформой 1C.

Данные утилиты написаны на Java и соответственно требуют установленной в системе среды Java и Java Cryptography Extension (JCE). Использование утилит Ring и License Tools возможно только из командной строки, это накладывает различного рода неудобства, если файлов программных лицензий много.

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

Читать далее