8.х СтрокаСоединенияИнформационнойБазы()

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Hexogon, 28 янв 2011.

  1. TopicStarter Overlay
    Hexogon
    Offline

    Hexogon

    Регистрация:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    ИскалНоНеНашел.
    Вот что я делаю.
    Создал регламентное задание.
    Метод, который отрабатывает мое регламентное задание находится в общем модуле.
    Моя цель - недопустить выполнение этого регламентного задания в бэкапе.
    Поэтому пытаюсь осуществить проверку с какой базой происходит соединение.
    Рабочая база называется "Base".
    Все бэкап'ы именуются "Base_ДатаБэкапа"
    Код:
    	
    Процедура МойМетод() Экспорт
    ЭтоРабочаяБаза = Ложь;
    Если Найти(СтрокаСоединенияИнформационнойБазы(), "Base_") = 0 Тогда
    ЭтоРабочаяБаза = Истина;
    //выполнение кода
    //Этот код в бэкапе выполняться не должен
    КонецЕсли
    КонецПроцедуры
    
    
    Проблема. Если я вызываю Процедуру МойМетод из внешней обработки, то проверка названия базы выполняется. Если это бэкап, код не выполняется. Если рабочая база- выполняется.
    А вот если я активирую регламентное задание, то в процессе его выполнения проверка не срабатывает. Выполняется код, который должен быть проигнорирован.

    В чем дело? Может быть при выполнении метода СтрокаСоединенияИнформационнойБазы() на стороне сервера возвращается что то другое?
  2. Oleg_NSK
    Offline

    Oleg_NSK Опытный в 1С

    Регистрация:
    25 окт 2010
    Сообщения:
    164
    Симпатии:
    0
    Баллы:
    26
    Недавно сам парился с регл. заданием..

    Поможет вот что.. По всему коду расставь записи в лог



    Код:
    
    Лог = Новый ЗаписьТекста("D:\Log.txt");
    Лог.ЗаписатьСтроку("Обработка запущена");
    
    ...
    
    Лог.ЗаписатьСтроку("Строка соединения" + СтрокаСоединенияИнформационнойБазы());
    
    
  3. TopicStarter Overlay
    Hexogon
    Offline

    Hexogon

    Регистрация:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Попробовал.
    Вставил в свой код вышеприведенный пример.
    Код:
    Процедура МойМетод() Экспорт
    Лог = Новый ЗаписьТекста("D:Log.txt");
    Лог.ЗаписатьСтроку("Обработка запущена");
    Лог.ЗаписатьСтроку("Строка соединения" + СтрокаСоединенияИнформационнойБазы());
    Лог.Закрыть();
    
    ЭтоРабочаяБаза = Ложь;    
    Если Найти(СтрокаСоединенияИнформационнойБазы(), "Base_") = 0 Тогда    
    ЭтоРабочаяБаза = Истина;    
    //выполнение кода    
    //Этот код в бэкапе выполняться не должен    
    КонецЕсли
    КонецПроцедуры
    
    
    Код рабочий. Когда я его выполняю как внешнею обработку - все ок, создается Log.txt и туда записывается лог. Но когда процедура запускается регламентным заданием, Log.txt не создается ни у меня на компьютере ни на сервере.
    А если посмотреть лог работы регламентного задания, то можно увидеть ошибку
    Ошибка при вызове конструктора (ЗаписьТекста): Ошибка при выполнении файловой операции 'D:\Log.txt'
  4. TopicStarter Overlay
    Hexogon
    Offline

    Hexogon

    Регистрация:
    2 июн 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Вообщем никакой проблемы не было, на самом деле.


    Код:
    Если Найти(СтрокаСоединенияИнформационнойБазы(), "Base_")
    
    Функция Найти чувствительна к регистру.
    Из за такой фигни, столько времени потерял...

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