8.х ОБМЕН Авто обмен по расписанию

Тема в разделе "Обмен данными в "1С:Предприятие 8"", создана пользователем PavelBaryshev, 10 мар 2011.

  1. TopicStarter Overlay
    PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте, подскажите как заставить 1С УТ 10.3 выполнять обмен на клиенте, если база на SQL, сервер SQL крутится на серваке, а мне надо например на любой клиентской машине чтоб обмен выполнялся по расписанию под конкретным пользователем, надо потому что на сервере нет интернета, и подключать сам сервер к инету не хочется.
  2. ximera
    Offline

    ximera Опытный в 1С

    Регистрация:
    5 фев 2008
    Сообщения:
    205
    Симпатии:
    0
    Баллы:
    26
    Создаем пользователя для автообмена. Создаем новую настройку обмена. На вкладке доп. настройки выбираем этого пользователя и ставим галку при завершении работы программы. Далее пишем скрипт, который запускает 1С и к примеру через 60 секундр грохает процесс, тем самым имитирует завершение работы программы, что в свою очередь запустит процедуру обмена. Вот и все)
  3. TopicStarter Overlay
    PavelBaryshev
    Offline

    PavelBaryshev Опытный в 1С

    Регистрация:
    9 сен 2008
    Сообщения:
    316
    Симпатии:
    0
    Баллы:
    26
    Это мне понятно, дело в том что при открытии 1С проверяет:
    Код:
    ЭтоФайловаяИБ = ОпределитьЭтаИнформационнаяБазаФайловая();
    
    Если ЭтоФайловаяИБ Тогда
    
    ПользовательДляВыполненияРеглЗаданий = Константы.ПользовательДляВыполненияРегламентныхЗаданийВФайловомВарианте.Получить();
    
    Если мТекущийПользователь = ПользовательДляВыполненияРеглЗаданий Тогда
    
    // с интервалом секунд вызываем процедуру работы с регламентными заданиями
    ПоддержкаРегламентныхЗаданиеДляФайловойВерсии();
    
    ИнтервалДляОпроса = Константы.ИнтервалДляОпросаРегламентныхЗаданийВФайловомВарианте.Получить();
    
    Если ИнтервалДляОпроса = Неопределено
    ИЛИ ИнтервалДляОпроса = 0 Тогда
    
    ИнтервалДляОпроса = 60;	
    
    КонецЕсли;
    
    ПодключитьОбработчикОжидания("ПоддержкаРегламентныхЗаданиеДляФайловойВерсии", ИнтервалДляОпроса);
    
    КонецЕсли;
    
    КонецЕсли;
    
    файловая это база или клиент-сервер, и поэтому регламентированное задание выполняется на сервере, а мне надо на клиенте.
  4. nnpugachev
    Offline

    nnpugachev

    Регистрация:
    5 мар 2011
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1
    Нужно обмен запускать не регламентным заданием 1с, а скриптом, который нужно поставить в планировщик заданий windows на той машинке, которая к инету подключена. Скрипт типа этого (jscript):

    var v8c = WScript.CreateObject("V81.ComConnector");
    var v8base = v8c.Connect("File=\"F:\\Program files\\UT\";Usr=\"1CExchange\";Pwd=\"Qwerty1234\";");

    var obrab = v8base.глЗначениеПеременной("глОбработкаАвтоОбменДанными");

    var sprav = v8base.Справочники.НастройкиОбменаДанными.НайтиПоНаименованию("Центр выгрузка");
    // WScript.Echo(v8base.String(sprav.Наименование));

    v8base.ПроцедурыОбменаДанными.ВыполнитьОбменДаннымиПоПроизвольнойНастройке(sprav,true,obrab);


    И не имет значения, файловая база или клиент-сервер, разница только в строке подключения. И в настройке обмена данными снять галку Выполнять под полными правами.

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