8.х Выполнить отчет по COM

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Yury, 26 дек 2012.

  1. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Здравствуйте,

    подскажите как переписать вот этот код на vbs. Ну не хочет он понимать русские символы.
    Код:
     V8 = Новый COMОбъект("V82.COMConnector");
    Попытка
    Открытие = V8.Connect("File=\\t125\database$\СкладТерминалМО;Usr=ххх;Pwd=*********");
    Исключение
    Предупреждение("База данных не открыта!!!");
    Возврат;
    КонецПопытки;
    //
    Отчет = Открытие.Отчеты.ДвиженияТМЦ_v03.Создать ();
    Отчет.СформироватьОтчетНеОтображаяФорму ();
    //
    
    Как выполнять на vbs манипуляции с 1с-совской БД? Там же все кирилицей.
  2. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    vbs вполне понимает кириллицу, вопрос в том, что не во всех кодировках. попробуйте скрипт сохранять в win-1251, utf-8, 866 - в одной из них он оживет.
    ну или переименовать отчет в конфигурации и процедуру в его модуле на латиницу, тогда можно будет так:

    set v8 = CreateObject("V82.COMConnector")
    set conn = v8.Connect "....."
    set rep = conn.Reports.VashtOchet.Create()
    rep.VashaPereimenovannayaProcedura
  3. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Не не помогло. Попробовал во всех 3-х кодировках.
  4. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Решил сделать через прослойку. Т.е. внешней обработкой выполнить отчет в открытой БД.
    Вот такой скритп:
    SET v82 = CreateObject("V82.Application")
    connection = v82.Connect ("File=\\t125\database$\СкладТерминалМО;Usr=ххх;Pwd=*********")

    SET obrabotka = v82.ExternalDataProcessorsManager.Create("D:\Tools\run_report_01.epf")
    obrabotka.RunReport ()

    v82.Exit(false)

    Так теперь валиться на SET obrabotka = v82.ExternalDataProcessorsManager.Create("D:\Tools\run_report_01.epf") объект не поддерживает это свойство или метод.

    Почему, что не так?

    Вложения:

    • vbs.jpg
      vbs.jpg
      Размер файла:
      38,5 КБ
      Просмотров:
      21
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    не v82.ExternalDataProcessorsManager.Create, а connection.ExternalDataProcessorsManager.Create
  6. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    При SET obrabotka = connection.ExternalDataProcessorsManager.Create("D:\Tools\run_report_01.epf")
    ругается по другому. И все равно не работает.

    Вложения:

    • vbs01.jpg
      vbs01.jpg
      Размер файла:
      36,4 КБ
      Просмотров:
      14
  7. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    SET connection = v82.Connect ("File=\\t125\database$\СкладТерминалМО;Usr=ххх;Pwd=*********")
  8. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    Ругается так на эту сторочку.

    Вложения:

    • vbs02.jpg
      vbs02.jpg
      Размер файла:
      37,3 КБ
      Просмотров:
      14
  9. TopicStarter Overlay
    Yury
    Offline

    Yury Опытный в 1С

    Регистрация:
    22 дек 2011
    Сообщения:
    355
    Симпатии:
    4
    Баллы:
    29
    На всякий случай. Задачу решил таким скиптом:

    SET v82 = CreateObject("V82.Application")

    connection = v82.Connect ("File=""\\t125\database$\СкладТерминалМО"";Usr=""ххх"";Pwd=""*********""")
    connection = v82.ExternalDataProcessors.Create("D:\Tools\run_report_01.epf").ThisObject.RunReport()

    v82.Exit(false)


    Спасибо всем, кто помогал.

Поделиться этой страницей