gifts2017

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

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

Запускает стандартную утилиту проверки физической целостности БД из командной строки с передачей параметров.

Запуск chdbfl.exe с передачей параметров:
- ИсправлятьОшибки – исправлять обнаруженные ошибки (0 или 1)
- ИмяФайлаБД – путь к основному файлу базы данных (1Cv8.1CD)

Пример: Check1CD.exe 1 "C:\Мои документы\1С_BASE\1Cv8.1CD"

Только для 1С 8.1. Файловый режим работы, естественно.

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

Наименование Файл Версия Размер
Check1CD.zip 415
.1225461419 220,94Kb
10.07.13
415
.1225461419 220,94Kb Бесплатно

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Андрей Скляров (coder1cv8) 31.10.08 16:58
А то от 1С пока дождешься чего... :)
2. jeckfs (jeckfs) 05.11.08 09:30
"C:\Program Files\1cv81\bin\1cv8.exe" config /FD:\1 /NАдмин /DumpIBC:\1Cv8\Archiv_1C\%date%.dt /IBCheckAndRepair -ReIndex -LogIntergrity -RecalcTotals /OutC:\1.txt

типа того?
3. Андрей Скляров (coder1cv8) 05.11.08 11:20
(2) Нет конечно. Это утилита тестирования файловой базы chdbfl.exe, а не ТиИ.
4. Алексей Заболотнов (z-alexey) 10.09.09 15:42
А сообщения она куда-то сохраняет что исправлено, что повреждено?
Актуальная вещь для филиалов, чтобы по телефону не объяснять куда тыкать для тестирования базы.
5. Андрей Скляров (coder1cv8) 11.09.09 08:23
(4) Это просто обертка для chdbfl.exe, программно нажимающая кнопочки... ) Получить текст из окна, лично мне, не удалось, к сожалению...
6. abdulla teymurlu (ateymurlu) 03.10.11 11:01
7. Денис К. (stellzzz) 06.10.11 09:40
так и не воспользовался, хз почему, но в закромах лежит, может когда нибудь пригодится...
8. Lina K (Babylka) 26.12.11 14:57
а в чем кардинальное отличие от проверки не из командной строки?
9. Осипов Сергей (fixin) 21.12.12 14:16
(8) в том что можно тупо пользователи не объясняя как это работает, создать ярлык на рабочем столе.

А откуда она берет путь к файлу CHDBFL? Если например, одинэсок несколько? Можно через параметр указать путь к исполнимому файлу?

Идея супер.
10. Осипов Сергей (fixin) 15.01.13 12:35
не работает, если в имени каталога базы есть русские буквы. Меняет их на какую-то ерунду. Просьба доделать, например если есть русская буква М.
11. Serj (Serj1C) 04.07.13 07:44
(10) поддерживаю, необходима поддержка русских букв
(9) поддерживаю, каталог библиотек тоже было бы удобно указать
12. Олег Шалимов (CaSH_2004) 06.11.13 09:32
Нашел, обрадовался что кто-то сделал что-то полезное, но "малость" разочаровался.
Итак по порядку:
Кто-нибудь пользовался утилитой? Автор я так понял забил на нее, а у меня при запуске вылетает окно с заголовком "AutoIt Error" и текстом:
Line -1:
Error: Unable to execute the external program.
Не удается найти указанный файл

Явно что написана на скриптовом языке AutoIt, я его не знаю т.к. хватает VBScript, но Википедия пишет что
...этот язык компактен, самодостаточен и работает на всех версиях Windows «прямо из коробки», без внешних .dll-библиотек и записей в реестре, что позволяет безопасно использовать его на серверах.

Значит проблема не в наличии AutoIt на ПК, получается автор не зря писал:
Только для 1С 8.1 ...

Однако это связано не с какой 1С 8.1, а просто жесткой пропиской откуда берется утилита chdbfl.exe, а именно на "%SystemDir%:\Program Files\1cv81\bin\" (9), соответственно если структуру воссоздать простым копированием любой платформы 1С в такую структуру (каталога bin) то все взлетает, однако с не так гладко как бы хотелось.
С первого раза она мне вбила в строку ерунду (по несколько одинаковых букв) и вдобавок выкинула окно про то что не может найти точку входа в какую-то библиотеку. Так что стабильность под большим вопросом. Однако она работает - это факт, и восприимает русские символы в пути, странно что у (10)(11) это не взлетело, у меня на Windows XP работает.

Я такую же делал на VBScript и как раз столкнулся с проблемой что русские символы не передаются, и при помощи VBScript нельзя переключить раскладку. Конечно AutoIt в этом деле получше, но все таки очень убого я бы сказал, если бы было хоть с открытым кодом - то можно было бы подшаманить, а так непонятно что делать дальше с отработавшей chdbfl.exe - ее же по хорошему закрыть нужно после завершения, и выполнять какие-то действия еще. Сама она не закрывается после выполнения, так что в качестве инструмента автоматизации - это не прокатит.
ЗЫ:
Если кто-то подскажет как решаются проблемы с передачей руских символов и переключением раскладки то я выложу открытый вариант аналогичного скрипта только без жесткой привязки к каталогу. И с ожиданием завершения выполнения с возможностью закрытия утилиты и оповещением.
13. Олег Шалимов (CaSH_2004) 06.11.13 09:49
(1)
А то от 1С пока дождешься чего...

Без обид, но ваш результат ниже уровня 1С: нет нормального описания, и само исполнение хромает на обе ноги.
Получилась утилита к другой утилите и к которой нужно дописывать еще утилиту (для создания структуры а-ля 8.1 и отслеживанием завершения выполнения) :)
Да и на запросы сообщества вы среагировали вполне в духе 1С: несколько лет найденным багам "а воз и ныне там". Вот это меня и раздражает в разработчиках: не выкладывайте сырые или полуработающие программы если не готовы их дорабатывать - вы подаете другим дурной пример. Если уж так неймется - то хотя-бы напишите что программа имеет кучу багов, и вы ответственности не несете и поддерживать не будете.
А уж когда выкладывают утилиты с претензией на исправление чужих недоработок, то это просто улет :) А потом тишина-а-а-а...
14. Андрей Скляров (coder1cv8) 06.11.13 18:09
(13) CaSH_2004,
Да-да, Вы абсолютно правы, все так.
Уровень ниже плинтуса, багов куча и ответственности я, ясен пень, никакой не несу.

Когда-то, давным-давно, выкладывал здесь что-то.. Теперь занимаюсь более интересными вещами чем 1С и размещаю свое "творчество" в других магазинах приложений. Сожалею, надо будет выделить время и все здесь подчистить.
15. Осипов Сергей (fixin) 04.12.14 10:49
Проблема с русскими буквами решается через преобразование в 8.3 каталог так:
http://infostart.ru/public/183109/

Проблему с путем 1с81 можно решить через символьную ссылку (начиная с VISTA через mklink, ранее - через сторонние утилиты):

mklink /D "C:\Program Files (x86)\1cv8\bin" "%Program Files%\1cv81\bin"

Результат: символическая ссылка создана для C:\Program Files (x86)\1cv8\bin <<===>> %Program Files%\1cv81\bin



Проверил - вот так нужно делать:


Система = Новый COMОбъект("WScript.Shell");
Команда = "mklink /D ""%ProgramFiles%\1cv81\bin"" """ + КаталогПрограммы() + """";
Сообщить(Команда);
Система.Run("cmd /C " + Команда, 0, 0); //первый 0 - невидимо, второй 0 - не ждать.
//Система.Run("cmd /K " + Команда, 1, 0); //первый 0 - невидимо, второй 0 - не ждать. для отладки /K

Работает!!!