Запуск chdbfl с параметрами с помощью PowerShell

22.11.13

Задачи пользователя - Корректировка данных

Что делать если Вам часто приходится запускать chdbfl на разных компьютерах для базы, которая располагается всегда в одном месте? Например, это может быть конфигурация АРМ кассира сети розничных магазинов. Каждый раз подключаться к пользователю или тем более объяснять как это сделать самостоятельно - никаких сил и нервов не хватит. Но можно написать скрипт, поместить его на рабочий стол и отдать пользователю.

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

Наименование Файл Версия Размер
script
.ps1 2,93Kb
5
.ps1 2,93Kb 5 Скачать

Данный скрипт запускает chdbfl, вводит путь к базе данных, ставит флажок "Исправлять обнаруженные ошибки" и нажимает кнопку "Выполнить". Дождаться завершения и нажать кнопку "Закрыть" пользователь должен самостоятельно.

Скрипт предназначен для запуска chdbfl на компьютерах, на которых установлена платформа 1С 8.2, но Вы легко можете изменить путь расположения chdbfl самостоятельно.

Текст скрипта:

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")

function Send-Keys ([string]$Window,[int]$Interval=50) #Устанавливаем аргументы и значение по умолчанию для $interval
{
    begin #Блок begin выполняется 1 раз в начале скрипта
    {
        $shell = new-object -com WScript.Shell #Создаем объект WScript.Shell

        $Comp = new-object Microsoft.VisualBasic.Devices.Computer

        if ($window) #Если переменная $window не пуста
        {
            write-host "Waiting for window '$Window'" #Пишем на консоль состояние
            while (!$shell.AppActivate($Window)) #Пока не активируем указанное окно...
            {
                start-sleep -milliseconds $Interval #...Ждем заданное время
            }
        }
    }

    process #Блок process выполняется для каждого объекта пришедшего через конвеер |, текущий объект доступен в переменной $_
    {
        $Comp.KeyBoard.SendKeys($_,$true)        
        start-sleep -milliseconds $Interval #Ждем
    }
}


if (Test-Path -path "C:\Program Files (x86)\1cv82") 
{
    $PathTo1C = "C:\Program Files (x86)\1cv82\";
}
else 
{
    $PathTo1C = "C:\Program Files\1cv82\";
}
$Version1C = (Get-Command ($PathTo1C+"common\1cestart.exe")).FileVersionInfo.FileVersion;

$xpath = "C:\InfoBase\1cv8.1cd";
$app = start-process ($PathTo1C+$Version1C+"\bin\chdbfl.exe");
$app;
$xpath,"{TAB}","{+}","{TAB}", "{TAB}", "{ENTER}" | Send-Keys "Проверка физической целостности файла БД"
 

 

Обновление от 22.11.2013: необходимо, чтобы путь к базе данных не содержал символов кириллицы, иначе они будут заменены на абракадабры. Благодаря подсказке Serj1C, теперь путь к базе можеть содержать и кириллицу.

Так же можно создать ярлычок на рабочий стол с указанием базы: powershell.exe <ПутьКСкрипту> <ПолноеИмяФайлаБазыДанных>

Тогда объявление переменной $xpath будет иметь вид: $xpath = $args[0];

См. также

Тестирование и исправление ключей аналитики ERP, УТ11, КА

Корректировка данных Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Незаменимая обработка для сопровождения конфигураций: ERP, УТ, КА. Позволяет вычистить многие ошибки в ключах аналитики, в ключевых справочниках конфигурации.

3600 руб.

10.02.2017    103880    616    167    

654

QR -кодирование документов БЕЗ изменения печатных форм, с произв. алгоритмами создания QR -кода и обработки (в т.ч прикрепление сканов к документам) для УТ 11 (все), ERP 2, КА 2, Розница 2, УНФ 1.6/3.0, БП 3, ЗУП 3

Корректировка данных Платформа 1С v8.3 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Представьте, что есть система, которая НЕ ТРЕБУЕТ изменения конфигурации, НЕ ТРЕБУЕТ изменения ни одной печатной формы для добавления QR-кода, включая внешние, НЕ ХРАНИТ данные штрихкодов и их связь, от чего база не "пухнет", ИМЕЕТ возможность закодировать в QR-коде произвольные данные параметров для последующей обработки полученных данных, УМЕЕТ прикреплять сканы, УМЕЕТ обработать считанный QR-код как ВЫ захотите. А также ХРАНИТ историю операций в обход базы для каждого пользователя в отдельности и УМЕЕТ работать с 2D - сканерами. А также автоматически распознавать отсканированные печатные формы (картинки или pdf-файлы) и выполнять заданные произвольные алгоритмы, в том числе прикрепление их к документам! Обновление 3.1 от 09.11.2023!

8400 руб.

26.08.2018    49564    12    60    

53

Заполнение документа "Корректировка регистров" произвольными данными

Закрытие периода Корректировка данных Платформа 1С v8.3 Система компоновки данных 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    49320    165    29    

116

Исправление ошибки закрытия месяца "Обнаружены ненулевые остатки по суммам при нулевом остатке по количеству в регистре себестоимости по организации". УТ 11.4,УТ 11.5, КА 2.4,КА 2.5, ERP 2.4, ERP 2.5, КА 2 Казахстан, Управление торговлей 3 для Казахстана

Закрытие периода Корректировка данных Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Закрытие месяца - важный процесс в современных конфигурациях, таких как УТ 11.4, УТ 11.5, КА 2.4, КА 2.5 ERP 2.4,ERP 2.5, КА 2 Казахстан, УТ 3 Казахстан регламентные операции влияют на расчет себестоимости, и ошибки в данном расчете не дают картины деятельности организации.

2400 руб.

27.10.2021    21130    295    35    

65

Помощник исправления порядка расчетов

Взаиморасчеты Корректировка данных Платформа 1С v8.3 Конфигурации 1cv8 Бухгалтерский учет Управленческий учет Платные (руб)

Вы наконец разобрались с закрытием месяцев и пора начать контролировать сроки оплаты поставщикам и задолженности клиентов, но в базе расчеты не идут из-за развернутого сальдо? Не беда, есть решение!

7200 руб.

02.11.2020    6506    4    0    

7

Исправление в 1С:ЗУП/ЗКГУ ошибок по НДФЛ и взаиморасчетам с сотрудниками на начало расчетного года.

Корректировка данных Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ Платные (руб)

Обработка исправляет технические ошибки по НДФЛ, взаиморасчетам с сотрудниками в 1С:ЗУП (1С:ЗКГУ) на начало года. Фактически все ошибки, которые проявляются в ведомостях на выплату, расчетных листках, при заполнении ведомостей на выплату и отчетах 6-НДФЛ и т.д. нужно начинать исправлять с начала расчетного года. Это позволит быть уверенными, что после завершения расчетов предыдущего года, начали работать с «чистого листа» без ошибочных остатков.

4320 руб.

06.10.2023    843    3    5    

5

Групповое изменение реквизитов номенклатуры для УТ 11/КА 2

Загрузка и выгрузка в Excel Корректировка данных Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Обработка для группового редактирования реквизитов номенклатуры. Позволяет редактировать реквизиты (как основные, так и дополнительные реквизиты и сведения) непосредственно в таблице, устанавливать новые значения реквизитов на выбранную номенклатуру, а также загружать новые значения из Excel. Предусмотрена возможность добавления фото к товарам перетаскиванием файла из проводника на строку с товаром (drag'n'drop)

4200 руб.

16.11.2020    16920    11    5    

10

Автоматическая корректировка НДФЛ в ЗКГУ

Корректировка данных Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Налоговый учет НДФЛ Платные (руб)

На этот раз действительно автоматическая корректировка НДФЛ! С помощью данной обработки можно автоматически скорректировать НДФЛ, не тратя целые часы на его ручную корректировку. Можно в считанные минуты изменить НДФЛ по всем сотрудникам в организации. Что бережет деньги на оплату специалиста и время! Обновлена и адаптирована к новым правилам исчисления и удержания НДФЛ с 01.01.2023 г.

4500 руб.

23.06.2022    11078    77    32    

40
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Serj1C 483 22.11.13 14:37 Сейчас в теме
Победил проблему с русскими буквами:
[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.VisualBasic")

function Send-Keys ([string]$Window,[int]$Interval=200) #Устанавливаем аргументы и значение по умолчанию для $interval
{
    begin #Блок begin выполняется 1 раз в начале скрипта
    {
        $shell = new-object -com WScript.Shell #Создаем объект WScript.Shell

        $Comp = new-object Microsoft.VisualBasic.Devices.Computer

        if ($window) #Если переменная $window не пуста
        {
            write-host "Waiting for window '$Window'" #Пишем на консоль состояние
            while (!$shell.AppActivate($Window)) #Пока не активируем указанное окно...
            {
                start-sleep -milliseconds $Interval #...Ждем заданное время
            }
        }
    }

    process #Блок process выполняется для каждого объекта пришедшего через конвеер |, текущий объект доступен в переменной $_
    {
        $Comp.KeyBoard.SendKeys($_,$true)        
        start-sleep -milliseconds 50 #Ждем
    }
}


if (Test-Path -path "C:\Program Files (x86)\1cv82") 
{
	$PathTo1C = "C:\Program Files (x86)\1cv82\";
}
else 
{
	$PathTo1C = "C:\Program Files\1cv82\";
}
$Version1C = (Get-Command ($PathTo1C+"common\1cestart.exe")).FileVersionInfo.FileVersion;

$xpath = "C:\Кассандра\1cv8.1cd";
$app = start-process ($PathTo1C+$Version1C+"\bin\chdbfl.exe");
$app; $xpath,"{TAB}","{+}","{TAB}", "{TAB}", "{ENTER}" | Send-Keys "Проверка физической целостности файла БД"
Показать
CyberWo1f; cheburashka; +2 Ответить
2. DAnry 8 27.11.13 19:52 Сейчас в теме
Если часто приходится запускать chdbfl - это ненормально.
3. cheburashka 41 27.11.13 19:55 Сейчас в теме
(2) DAnry, согласен, но бывают такие ситуации, когда выявить причину, из-за которой приходится прибегать к chdbfl, не получается.
5. CaSH_2004 372 26.08.16 16:19 Сейчас в теме
(2) Это так, но что если у вас 100 баз на 10 серверах и все нужно протестить? Будете вручную везде везде запускать и указывать базы? И к то му же эот для профилактики неплохо - точно будеш знать что тут все в порядке.

(0) Я кстати тут в аналогичной разработке Запуск тестирования БД из командной строки. задавал вопрос автору как получить результат без визуального контроля - чтобы текст из окна возвращался, обещал подумать, но пока глухо.
Было-бы неплохо авторам что то придумать иначе толку от таких поделок только 50%, т.к. ккак я говорил уже проверять результат всех проверок очень сложно.
8. user1012671 28.01.22 12:13 Сейчас в теме
(2) Угу, а еще в случае с использованием chdbfl даже если это редко случается, нужно еще сделать копию базы, а когда база большая, то еще дождаться когда скопируется, потом открыть chdbfl выбрать файл, запустить проверку, и снова ждать. Я иногда забываю что у меня там база копируется, когда вспоминаю процесс копирования уже завершен, и сколько времени упущено сказать сложно. А тут хоть не будет потери времени между завершением создания резервной копии и началом тестирования
4. DAnry 8 27.11.13 20:04 Сейчас в теме
Но это же не работа. В таком случае большая вероятность, что база рухнет и её не поднимешь chdbfl. Слишком большой риск.
6. user635667 137 18.05.21 14:09 Сейчас в теме
Данный скрипт надо сохранить как *.vbs? А можно сделать чтоб и закрывалось на автомате???
7. cheburashka 41 18.05.21 18:04 Сейчас в теме
Есть терминальный сервер
(6)нет, надо как *.ps1, т.к. это скрипт PowerShell. Уже не помню как он отрабатывает, но вроде запускаемые приложения сами должны завершаться.
Оставьте свое сообщение