8.х Как определить из программы в серверном или файловом режиме работаем?

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

  1. TopicStarter Overlay
    svet
    Offline

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

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Собственно топик.

    Суть вопроса:
    Есть подписка на событие, которая перед проведением, скажем, требования вызывает процедуру из общего модуля.
    Эту процедуру надо запускать только тогда, когда программа выполняется НЕ НА сервере.

    Ставлю в процедуру проверку:
    Код:
    ЭтоФайловаяБаза = ОбщегоНазначения.ИнформационнаяБазаФайловая(СтрокаСоединенияИнформационнойБазы());
    Если ЭтоФайловаяБаза Тогда
    
    текст процедуры
    
    КонецЕсли;
    
    Ноль эмоций, пролетает не заметив.

    Какие еще есть варианты?
  2. nickpugachev
    Offline

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

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    сорри, не совсем понял и сгоряча написал :)

    пошел эксперименты устраивать
  3. yzek
    Offline

    yzek Опытный в 1С

    Регистрация:
    13 окт 2010
    Сообщения:
    713
    Симпатии:
    0
    Баллы:
    26
    Самое простое, что приходит в голову:
    Код:
    Если Лев(СтрокаСоединенияИнформационнойБазы(),4) = "Srvr" Тогда
    ... //серверная
    ИначеЕсли Лев(СтрокаСоединенияИнформационнойБазы(),4) = "File" Тогда
    ... //файловая
    КонецЕсли;
  4. TopicStarter Overlay
    svet
    Offline

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

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Да похоже это я вопрос не о том задаю... На самом деле срабатывает ОбщегоНазначения.ИнформационнаяБазаФайловая, все определяется.
    Это я, похоже, вызываю не оттуда и не так.
    И, скорее всего, надо действительно исправить как "сгоряча" написал nickpugachev, вставить в процедуру # Если Клиент.

    Проверить пока не могу - сервак завис, админ разбирается. :vis:

    А в ОбщегоНазначения.ИнформационнаяБазаФайловая кстати как раз и вызывается:
    Код:
    Функция ИнформационнаяБазаФайловая(Знач СтрокаСоединенияИнформационнойБазы = "") Экспорт
    
    Если ПустаяСтрока(СтрокаСоединенияИнформационнойБазы) Тогда
    СтрокаСоединенияИнформационнойБазы =  СтрокаСоединенияИнформационнойБазы();
    КонецЕсли;
    Возврат Найти(Врег(СтрокаСоединенияИнформационнойБазы), "FILE=") = 1;
    
    КонецФункции
    
    Отвис, собака. Все сработало. Действительно, хватило # Если Клиент. Вопрос решен, всем спасибо.
  5. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.638
    Симпатии:
    948
    Баллы:
    204
    Я думаю надо поставить

    • &НаСервере (&AtServer) — определяет серверную процедуру (функцию);

    Либо процедуру можно перенеси отдельно в другой модуль, который будет только серверным
  6. TopicStarter Overlay
    svet
    Offline

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

    Регистрация:
    9 ноя 2007
    Сообщения:
    1.971
    Симпатии:
    59
    Баллы:
    54
    Дык, вся и радость-то в том, что мне эту функцию в серверном виде не надо, там вопрос задается и ответ требуется.
    Обработка туда попадает из "проведения по партиям" и приходится ее отсекать.

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