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

0. Semen Tyan (oyti) 7 26.02.16 20:29 Сейчас в теме
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. Алексей Головченко (aleksey.g29) 24 06.03.16 16:42 Сейчас в теме
Может стоит доработать решение, и сделать более универсальным, вместо версии платформы указывать путь к файлу chdbfl, версия предприятия 8.2 все еще актуальна, и данную утилиту можно было бы использовать и для нее
А так да утилита полезная
2. Semen Tyan (oyti) 7 08.03.16 21:13 Сейчас в теме
(1) aleksey.g29, спасибо за замечание. Постараюсь выкроить время. Просто многое навалилось... переустановка на Fedora, перенос сайтов на "домашний хостинг"...
3. Олег Шалимов (CaSH_2004) 348 16.08.16 16:52 Сейчас в теме
Спасибо за решение, я тоже делал аналогичное но только скриптами. Сначала уперся в передачу рускоязычного адреса расположения файла базы, поборов эту проблему уперся в получение результата тестирования из текстового поля, скажите а есть вариант его получить?
Без него автоматизация теряет смысл когда нужно в автомате проверять много баз, а результата проверки нет - бывает что частое возникновение ошибок первый признак проблем с ПК (жесткий диск или электропитание вырубается)
5. Semen Tyan (oyti) 7 17.08.16 14:54 Сейчас в теме
(3) CaSH_2004, спасибо за развернутый отзыв. В ближайшее время постараюсь выкроить время и обмозговать Ваш вариант.
4. Роберт В е р т и н с к и й (v3rter) 16.08.16 17:05 Сейчас в теме
errorlevel и текст сообщения возвращаются?
6. Semen Tyan (oyti) 7 17.08.16 14:55 Сейчас в теме
(4) v3rter, к сожалению пока нет. Однако надеюсь, что получится реализовать данный функционал
8. Олег Шалимов (CaSH_2004) 348 26.08.16 16:25 Сейчас в теме
(6) Попробуйте, все только спасибо скажут, пока аналогов нет, вот кстати тоже на скрипте есть вариант Запуск chdbfl с параметрами с помощью PowerShell, но тоже без вазврата результата, попросил автора рассмотреть такой вариант

(7) Я к сожалению "чистый" 1С-к и не читаю доку на английском да и с АПИ знаком только в рамках использования в DynWrap(Х), конечно вариант есть и не думаю что сложный для прогеров, но мало кто пишет на АПИ и примеров подобных мало, а DynWrap иногда непонятно себя ведет с АПИ функциями
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

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