1Script – язык для автоматизации рутины в жизни специалиста по 1С




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

76 Comments

  1. artbear

    +1 Хорошее выступление и хорошее статья

    Reply
  2. infosoft-v

    на сайте http://www.oscript.io/ выводится:

    No Application Found

    Unable to find a matching application for request:

    Host http://www.oscript.io

    Port 80

    Request Path /Home

    Physical Path /var/www/oscript.io/Home

    Инфостарт эффект?

    Reply
  3. infosoft-v

    Спасибо за отличную статью.

    Коллеги, поделитесь опытом, как отлаживать скрипты? Какие инструменты доступны?

    Reply
  4. infosoft-v

    Ещё вопрос. Разработка в среде VSC возможна?

    Reply
  5. pumbaE

    (3) infosoft-v, отлаживать принтами, скажите спасибо, что не алертами.

    Reply
  6. infosoft-v

    (5) pumbaE, Спасибо

    Reply
  7. json

    А существует ли аналог процедуры Состояние() для индикации долговыполняющихся процессов?

    Reply
  8. white-mount

    (2) infosoft-v,

    Скачать OneScript загружает.

    Reply
  9. kirillkr

    (4) infosoft-v, да.

    Подробнее на github.

    Reply
  10. ret-Phoenix

    (7) yurii_host, Можно реализовать используя GUI библиотеку. синтаксис практически идентичен 1С: https://github.com/ret-Phoenix/oscript-simple-gui

    Reply
  11. davdykin

    Спасибо! Интересно и познавательно

    Reply
  12. json

    (10) ret-Phoenix, спасибо

    Круто что даже формы есть (правда пока обычные)) )

    Reply
  13. ret-Phoenix

    (12) yurii_host, а какие хочется?

    для решения текущих задач этого хватает, даже больше чем нужно.

    Reply
  14. tormozit

    С ростом количества и сложности кода на любом языке будет расти и потребность в отладчике. У всех распространенных скриптовых языков есть отладка. Так что по-прежнему очень ждем ее.

    Также была бы полезна и подсказка после точки. Какие здесь перспективы?

    Reply
  15. pumbaE

    Мы помним свой вопрос (14)

    Reply
  16. kraynev-navi

    В разделе «На каком языке удобнее всего писать скрипты автоматизации?» еще можно упомянуть AutoIt. Вторая колонка как у PowerShell ))

    (0)

    Необходимо сделать всего лишь пару настроек, и программа Notepad

    Я бы сюда ссылку на вашу же статью подставил

    Reply
  17. baton_pk

    (0)

    И https://bitbucket.org/EvilBeaver/1script/ – репозиторий самого движка.

    я понимаю, что это по мотивам 2015-го года, но как бы это… https://github.com/EvilBeaver/OneScript

    и https://github.com/oscript-library

    Reply
  18. Evil Beaver

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

    Reply
  19. Evil Beaver

    (2) infosoft-v, адрес без WWW

    Reply
  20. Evil Beaver

    (18) baton_pk, да, это чистый транскрипт выступления 2015 года, сделанный командой Инфостарта. Помимо того, что ты сказал, еще и Notepad++ стал неактуален, с выходом Visual Studio Code.

    Поправлю.

    Reply
  21. Evil Beaver

    (1) artbear, спасибо!

    Reply
  22. Evil Beaver

    (14) tormozit, А что ты про подсказку после точки спрашивал? Есть же она.

    Reply
  23. tormozit

    (23) Это в каком редакторе?

    Reply
  24. Evil Beaver

    (24) tormozit, я имел в виду VSC, она не такая умная, какую ты хочешь, но ее хватает за глаза

    Reply
  25. LeXXuS_ju

    Доброго времени суток.

    Вот решил попробовать Gitsync, но опыта нет. Может ткнете носом почему может выдавать ошибку как на скрине.

    Reply
  26. capitan

    Все скриптовые языки рано или поздно упираются в отсутствие форм.

    А затем в отсутствие БД в которой можно хранить настройки/результаты.

    Но если в упомянутых выше и упомянутом всуе AutoIt, который я например считаю самым быстрым стартом в автоматизацию рутинных операций, их изначально не было, то в 1С изначально все это есть.

    И упрощение — это на любителя.

    ИМХО при всех упомянутых выше операциях было бы неплохо хранить результаты их выполнения.

    В чем выигрыш по сравнению с БД 1С в которой живут те же скрипты, кроме свободной лицензии?

    Хотя задания по администрированию обычно запускаются при отключенных пользователях и проблемы с этим не должно быть.

    Reply
  27. ret-Phoenix

    (27) capitan,

    для OneScript есть и формы (ссылка ранее приводилась https://github.com/ret-Phoenix/oscript-simple-gui) и работа с БД (https://github.com/ret-Phoenix/oscript-sql). При этом поддерживаются СУБД: MS SQL Server, PostgreSQL, MySQL, Sqlite. Операции DDL + DML

    Создание бекапов — самое простое применение. сейчас на язые OneScript написано много чего, стоит глянуть библиотеку скриптов.

    Reply
  28. necropunk

    Задумываюсь о полноценной работе с git, но c v8unpack не хватило времени разобраться, а без нее git не очень для меня полезен. В основном работаю не с самой конфигурацией, а с внешними обработками и алгоритмами в Инструментах разработчика, то есть все хранится вне базы, с промежуточными версиями в каталоге разработки. Можно ли с помощью 1Script связать каталог с git, чтобы в версиях хранился именно код внешних обработок? Если кто делал, подскажите, где почитать об этом? Пока попробую с 1Script поразбираться.

    Reply
  29. ret-Phoenix

    (29) necropunk, смотри на https://github.com/pumbaEO/precommit1c

    Reply
  30. ret-Phoenix

    (31) capitan, Аналог БСП? Что за бред?

    БСП — каркас для конфигураций.

    На OneScript у многих из нас сделано

    — бекапирование

    — проверка обновлений

    — чистка кеша

    — управление списком баз

    — синхронизация с git (как вместе с хранилищем так и без, например для внешних отчетов)

    — различные схемы разворота рабочего места как пользователя так и разработчика

    и много прочего. Тот же парсинг текста, приведение его в порядок. расширения конфигуратора как снегопатовские, так и мои.

    Reply
  31. comol

    По-моему этой публикацией ты лишил денег с десяток консалтинговых компаний :)))

    Reply
  32. comol

    Ещё бы подсветку синтаксиса 1С при codereview кто-нибудь доделал либо в gitlab либо в Atlassian

    Reply
  33. Evil Beaver

    (31) capitan, сайт работает, падений не залогировано. Что именно не работает? Он не открывается по префиксу www, но это так и задумано.

    Reply
  34. Evil Beaver

    (34) comol, насколько я знаю, в гитлабе уже сделали подсветку

    Reply
  35. ret-Phoenix

    (36) На GitLab есть, но какая-то плохенькая, до того, что сделали на GitHub далеко.

    Reply
  36. zqzq

    (27) capitan, у меня вот уже более 1.5 года живёт «карманная» база 1С для административных работ: обмены, обновления и т.д..

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

    Минусы: так и не смог настроить, чтобы из регламентного задания 1С запускался exe конфигуратора, что-то с правами, поэтому из планировщика винды запускаю толстый клиент базы с параметрами запуска, а он уже парсит параметры и выполняет обработки.

    Reply
  37. vasiliy_b

    (26) LeXXuS_ju, У Вас не установлен Git

    Reply
  38. capitan

    (38) zqzq, аналогично, шеф.

    Я думаю, у каждого, у кого за плечами около полсотни баз имеет такую базу.

    Reply
  39. emc2

    Спасибо! За огромный труд в облегчении рутинной работы. Спасибо! Жду дальнейших новинок!

    Reply
  40. LeXXuS_ju

    (39) vasiliy_b, да так и было))

    Теперь выдает ошибку 128.

    У меня возник вопрос как скрипт получает доступ к гитхабу, если мы нигде пароль не указываем?

    Я пробовал генерировать ключ SSH и он даже мне отозвался через Git Bash, но после вызова

    gitsync init <каталог или файл хранилища> <локальный каталог git> [-email домен почты пользователей]

    пишет: Не удалось получить изменения с удаленного узла (код : 128).

    Прописал еще это:

    git config —global user.email «you@example.com»

    git config —global user.name «Your Name»

    P.S. [-email домен почты пользователей] — это просто email,под которым зарегистрирован на Гитхабе?

    Reply
  41. vasiliy_b

    (42) LeXXuS_ju, пароль будет спрашиваться тогда когда вы будете выполнять обмен с сервером например после команды «git push -u origin master»

    Reply
  42. tehas

    Крутая вещь!

    Есть маленький недочет (я так думаю).

    Что бы передать переменную с текстом (например) а = «1C:Enterprise 8.3 Server Agent»;

    Приходится писать примерно так:

    Служба = Символ(«34») + «1C:Enterprise 8.3 Server Agent»+Символ(«34»);

    Иначе на выходе имеем 1C:Enterprise 8.3 Server Agent (то есть уже без кавычек).

    Может не совсем ясно описал, попробую привести пример:

    Так команда не выполнится, так как есть пробелы между слов:

    Служба = «1C:Enterprise 8.3 Server Agent»;
    ЗапуститьПриложение(«net stop «+Служба,,Истина);

    Сейчас выполнится, так как передастся именно с кавычками:

    Служба = Символ(«34») + «1C:Enterprise 8.3 Server Agent»+Символ(«34»);
    ЗапуститьПриложение(«net stop «+Служба,,Истина);
    Reply
  43. vasiliy_b

    (44) tehas, я тоже пока изучаю возможности, поэтому задам наводящий вопрос, а так писать пробовали:

    Служба = «»»1C:Enterprise 8.3 Server Agent»»»;

    ?

    т.е как в 1с поставить 3 кавычки в начале и 3 в конце

    Reply
  44. vasiliy_b

    (46) tehas, Все правильно, там как раз используется принцип двойных кавычек. Так что все отрабатывается как в 1с

    Reply
  45. Evil Beaver

    (48) raevsky@e1.ru, ну я не знаю….

    http://prntscr.com/cksi5h

    Вот сайт на текущий момент. Позавчера действительно был остановлен на несколько часов, но это только и всего.

    Reply
  46. Evil Beaver

    (44) (46) tehas, экранирование кавычек работает точно так же, как в 1С. Дублированием символа кавычки.

    Непонятно, почему у вас возникла необходимость использовать Символ( 34 ).

    Reply
  47. baton_pk

    (49) было-было. не ругайте человека. не был вчера сайт доступен.

    Reply
  48. Evil Beaver

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

    Reply
  49. dreadlord

    Оч познавательная статья, спасибо. Инструмент обновляем

    Reply
  50. Brawler

    Не зря 1С навела паники по поводу вирусов)))

    Скоро их реально станет больше и их налобают даже на 1Script )))

    Reply
  51. Evil Beaver

    (54) Brawler, ну да. Чтобы заразить машину нужно поставить движок, скачать вредный файл, запустить его с полными правами… А так, конечно, язык виноват, что на нем вирусы пишут, да )

    Reply
  52. necropunk

    Пытаюсь осваивать потихоньку, но есть проблемы.

    Поставил Notepad++, подсветку, поставил плагин NppExec, по F6 прописал oscript «$(FULL_CURRENT_PATH)» но у меня при запуске любого файла, даже просто с кодом Сообщить(«!»); выдается ошибка:

    oscript «C:Work est.os»

    CreateProcess() failed with error code 2:

    Не удается найти указанный файл.

    Не подскажете в чем может быть дело? И подсказок через точку нет, можно их как-то включить?

    Reply
  53. necropunk

    (56) necropunk, Хм, я запускал из тоталкоммандера, по F4, а надо запускать от администратора. Не особо удобно, но ладно, будем дальше попробовать.

    Reply
  54. serg_infostart

    Пытаюсь начать пользоваться gitsync….

    Получаю следующую ошибку:

    E:	est_gitsync_src01>git status
    fatal: Not a git repository (or any of the parent directories): .git
    
    E:	est_gitsync_src01>gitsync -init «E:	est_gitsync01»
    ИНФОРМАЦИЯ — Начинаю синхронизацию хранилища 1С и репозитария GIT
    ИНФОРМАЦИЯ — Получение изменений с удаленного узла (pull)
    ИНФОРМАЦИЯ — fatal: Not a git repository (or any of the parent directories): .gi
    t
    
    ОШИБКА — {Модуль C:Program Files (x86)OneScriptlibgitsyncsrcgitsync.os / О
    шибка в строке: 321 / Не удалось получить изменения с удаленного узла (код: 128)
    }
    
    E:	est_gitsync_src01>

    Показать

    Обратил внимание, что

    E:	est_gitsync_src01>gitsync
    Синхронизация хранилища конфигураций 1С с репозитарием GIT.
    Использование:
    gitsync <storage-path> <git-url> [local-dir] [ключи]
    gitsync <команда> <параметры команды> [ключи]
    Параметры:
    <ПутьКХранилищу> — Файловый путь к каталогу хранилища конфигурации 1С.
    <URLРепозитория> — Адрес удаленного репозитория GIT.
    <ЛокальныйКаталогГит> — Каталог исходников внутри локальной копии git-репозитар
    ия.
    -email — <домен почты для пользователей git>
    -v8version — Маска версии платформы (8.3, 8.3.5, 8.3.6.2299 и т.п.)
    -debug — <on|off>
    -verbose — <on|off>
    -branch — <имя ветки git>
    -format — <hierarchical|plain>
    
    Возможные команды:
    clone        — Клонирует существующий репозиторий и создает служебные файлы
    init         — Создает новый репозиторий и создает служебные файлы
    all          — Запускает синхронизацию по нескольким репозиториям
    set-version  — Устанавливает необходимую версию в файл VERSION
    help         — Вывести справку по параметрам команды
    export       — Выполнить локальную синхронизацию, без pull/push
    Для подсказки по конкретной команде наберите gitsync help <команда>
    ОШИБКА — Указаны некорректные аргументы командной строки
    

    Показать

    Пытаюсь без «-» выполнить:

    E:	est_gitsync_src01>gitsync init «E:	est_gitsync01»
    ОШИБКА — {Модуль C:Program Files (x86)OneScriptlibgitsyncsrcgitsync.os / О
    шибка в строке: 201 / Метод объекта не обнаружен (ПроверитьНаличиеРепозитарияГит
    )}
    
    E:	est_gitsync_src01>
    Reply
  55. Evil Beaver

    (58) serg_infostart, для gitsync и других полезных пакетов есть отдельный канал обсуждения — https://gitter.im/EvilBeaver/oscript-library.

    Там будет быстрее и продуктивнее.

    Reply
  56. su_mai

    Подскажи, что можно придумать для эмуляции нажатия кнопок экранных форм, например, по координатам. Может есть что-то уже готовое в 1Script? Может есть готовый подход, попроще?

    Reply
  57. Evil Beaver

    (60) su_mai, есть AutoIt и Sikuli. Последнее активно используется в vanessa-behavior, примеры можно посмотреть там же.

    Reply
  58. aromait

    Спасибо. Отличная статья. Надо обязательно посмотреть, более подробно, что он из себя представляет.

    Reply
  59. grumagargler

    (27)

    В чем выигрыш по сравнению с БД 1С в которой живут те же скрипты, кроме свободной лицензии?

    — есть версия платформы для обучения, она бесплатна.

    Reply
  60. c1nil

    PowerShell доступен для Linux, исправьте.

    Reply
  61. tunesoft

    Интересная разработка.

    А кто использует в реальных проектах и для каких целей ?

    Насколько стабильно работает ?

    Reply
  62. Evil Beaver

    (65) О, добро пожаловать! Использует в реальных проектах уже более сотни компаний (это минимум), включая крупный энтерпрайз. Работает стабильно, быстро и вообще, вещь хорошая.

    Посмотрите на библиотеку наработок https://github.com/oscript-library там же и цели применения, в-общем.

    В-основном, это автоматизация самих 1С-ников: обновление баз, развертывание на рабочий контур, тестирование, и вообще, это язык общего назначения. Есть, например, даже простенькие игры. Например, вот «Змейка»: http://www.oscript.io/downloads/examples/snake.os

    Проекту 5 лет почти. Основное ядро движка не менялось уже около двух лет по причине стабильности и надежности. В готовящейся к выходу версии появился отладчик и в ядро пришлось внести изменения, но они тоже достаточно стабильны, все тесты и боевые приложения на доработанном ядре работают без нареканий.

    Что касается библиотек окружения, то тут примерно, как у 1С. Все отлично работает, но иногда не работает, зато быстро исправляется. Ну а чей код всегда стабилен? Дайте-ка я брошу в него камень 🙂

    Reply
  63. tormozit

    О, отладчик будет наконец то. К НГ ждать?

    Reply
  64. artbear

    (67) В соседней статье по 1скрипт я сегодня написал — отладчик уже есть в ночной сборке 18 релиза

    Reply
  65. Evil Beaver

    (67) Уже сейчас можно смотреть: http://oscript.io/downloads/night-build/oscript-debug-0.1.0.vsix

    Устанавливаешь свежий ночник и вот этот плагин к vsc

    Reply
  66. victor_k

    Расписано на 10 листов, много возни, а реальной автоматизации нет. Только время потерял.

    Reply
  67. Evil Beaver

    (70) Мне даже подробности стали интересны. Что означает «реальной автоматизации нет?» Есть только нереальная?

    Знаете, если вы за 5 лет существования проекта только лишь сейчас услышали про 1Script, в то время, когда пол-отрасли пользуется вовсю и активно участвует в развитии инструмента, а потом говорите «возня есть, автоматизации нет», то… ну расскажите, что-ли подробнее, что вы имели в виду?

    Reply
  68. victor_k

    (71)Все что под заголовком «Что можно автоматизировать?» не впечатлило.

    Reply
  69. ildary

    (72) это (что вас не впечатлило) больше говорит о вашем профессионализме, чем о качестве 1script.

    Reply
  70. Brawler

    (73) коллеги, переставайте вести пустой треп, у человека явно просто никаких потребностей в данном продукте нет, и это ни коем образом не говорит, о профессионализме, а всего лишь об отсутствии потребности/задач решаемых при помощи него

    у нас кстати пока именно в 1Script тоже потребности нет ибо что уже нужно было, уже запилено на AutoIt

    Reply
  71. Evil Beaver

    (72) Ну ок, не впечатлило. Бывает 🙂

    Reply
  72. victor_k

    (73) IT — директор, знания по вершкам )

    Reply
  73. maklyak

    обрабатывая скрипт:

    // Получаем COMConnector

    Коннектор = Новый COMОбъект(«v» + ПараметрыЗапуска.ВерсияПлатформы + «.COMConnector»);

    получаю ошибку:

    ПолучитьСписокСеансов: {Модуль C:Program Files (x86)OneScriptlibTRun1CsrcClassesТЗапуск1С.os / Ошибка в строке: 531 / Внешнее исключение (System.Runtime.InteropServices.COMException): Не удалось получить фабрику класса COM для компонента с CLSID {181E893D-73A4-4722-B61D-D604B3D67D47} из-за следующей ошибки: 80040154 Класс не зарегистрирован (Исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).}

    при этом коннектор V83Com.Connector определен в реестре.

    При запуске обработки в 1С предприятии кусок кода

    АдресКластера = «localhost»;
    ПортАгента = «1540»;
    Коннектор = Новый COMОбъект(«v83.COMConnector»);
    // Получаем Соединение с агентом сервера
    СоединениеСАгентомСервера = Коннектор.ConnectAgent(АдресКластера + «:» + ПортАгента);
    // Получаем список кластеров
    КластерыСерверов = СоединениеСАгентомСервера.GetClusters();
    

    отрабатывает без проблем.

    Вопрос: Как побороть ошибку ?

    Reply
  74. Evil Beaver

    Скорее всего у вас стоит 64битная платформа 1с. И советую отказаться от COM в пользу RAS

    Reply
  75. ahyahy

    Для OneScript есть библиотека для создания gui. Да, простите, ещё одна. Ну не мог остановиться. Кому интересно приходите на https://onescriptgui.teriy.com/

    Только что закончил. Скриптим на русском, создаём формы на русском. Справка подробная, все свойства и методы с примерами.

    Используется библиотека KiXforms.NET v3.2.16.0 написанная Shawn Tassie.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *