gifts2017

Запуск тестирования БД из командной строки.

Опубликовал Semen Tyan (oyti) в раздел Администрирование - Сервисные утилиты

UPD. 16.11.2016 Добавлено время проверки, по истечении которого будет произведена запись логов в файл. UPD. Снято ограничение на запуск только для платформы 8.3 Запускает стандартную утилиту проверки физической целостности БД из командной строки с передачей параметров. Запуск chdbfl.exe с передачей параметров: - ПолныйПутьchdbfl.exe - напр. C:\Program Files\1cv8\8.3.9.1850\bin\chdbfl.exe - ИсправлятьОшибки – исправлять обнаруженные ошибки (0 или 1) - ИмяФайлаБД – путь к основному файлу базы данных (1Cv8.1CD) - ВремяПроверки - время в миллисекундах по истечении которого данные chdbfl.exe будут записаны в файл - ИмяЛогфайла - полный путь для сохранения лог-файла Пример: runchdbfl.exe C:\Program Files\1cv8\8.3.9.1850\bin\chdbfl.exe 1 "C:\Мои документы\1С_BASE\1Cv8.1CD 120000 C:\Users\username\Documents\1C\logs\1cbdlog.txt" Файловый режим работы.

Здравствуйте, коллеги.

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

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

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

Спецы знают, что у данной утилиты нет ключей командной строки, а одним из немногих решений было уже устаревшая (жестко задан путь к платформе 8.1) программа Check1CD.exe (http://infostart.ru/public/16653/).

Исполняемый файл сгенерирован все тем же старым добрым AutoIt, только добавлена возможность задания произвольного пути к chdbfl.exe.

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

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
runchdbfl.7z
.7z 446,51Kb
16.11.16
3
.7z 0.3 446,51Kb 3 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Алексей Головченко (aleksey.g29) 06.03.16 16:42
Может стоит доработать решение, и сделать более универсальным, вместо версии платформы указывать путь к файлу chdbfl, версия предприятия 8.2 все еще актуальна, и данную утилиту можно было бы использовать и для нее
А так да утилита полезная
2. Semen Tyan (oyti) 08.03.16 21:13
(1) aleksey.g29, спасибо за замечание. Постараюсь выкроить время. Просто многое навалилось... переустановка на Fedora, перенос сайтов на "домашний хостинг"...
3. Олег Шалимов (CaSH_2004) 16.08.16 16:52
Спасибо за решение, я тоже делал аналогичное но только скриптами. Сначала уперся в передачу рускоязычного адреса расположения файла базы, поборов эту проблему уперся в получение результата тестирования из текстового поля, скажите а есть вариант его получить?
Без него автоматизация теряет смысл когда нужно в автомате проверять много баз, а результата проверки нет - бывает что частое возникновение ошибок первый признак проблем с ПК (жесткий диск или электропитание вырубается)
4. Роберт В е р т и н с к и й (v3rter) 16.08.16 17:05
errorlevel и текст сообщения возвращаются?
5. Semen Tyan (oyti) 17.08.16 14:54
(3) CaSH_2004, спасибо за развернутый отзыв. В ближайшее время постараюсь выкроить время и обмозговать Ваш вариант.
6. Semen Tyan (oyti) 17.08.16 14:55
(4) v3rter, к сожалению пока нет. Однако надеюсь, что получится реализовать данный функционал
7. Роберт В е р т и н с к и й (v3rter) 17.08.16 16:00
Нетривиальная это штука, оказывается - перехват текста из окна другого приложения. Нагуглил наскидку, вдруг Вам пригодится:
https://github.com/zastrowm/Win32Interop.WinHandles
http://stackoverflow.com/questions/19867402/how-can-i-use-enumwindows-to-find-windows-with-a-specific-caption-title
https://blogs.msdn.microsoft.com/oldnewthing/20030821-00/?p=42833
http://stackoverflow.com/questions/352236/reading-from-a-text-field-in-another-applications-window

Я не программист - админ, но очень уж результат интересен )
8. Олег Шалимов (CaSH_2004) 26.08.16 16:25
(6) Попробуйте, все только спасибо скажут, пока аналогов нет, вот кстати тоже на скрипте есть вариант Запуск chdbfl с параметрами с помощью PowerShell, но тоже без вазврата результата, попросил автора рассмотреть такой вариант

(7) Я к сожалению "чистый" 1С-к и не читаю доку на английском да и с АПИ знаком только в рамках использования в DynWrap(Х), конечно вариант есть и не думаю что сложный для прогеров, но мало кто пишет на АПИ и примеров подобных мало, а DynWrap иногда непонятно себя ведет с АПИ функциями
9. Semen Tyan (oyti) 16.11.16 16:30
Получить значение контрола из утилиты 1С оказалось совсем нетривиальной задачей, по крайней мере стандартные функции WinAPI не заработали :(
В будущем надеюсь сделать более удобоваримый результат.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа