7.7 Как лучше хранить настройки обработки?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем mnv, 6 апр 2011.

  1. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Обработка может запускаться с разных компьютеров. Обработка соединяется с внешней базой и обменивается с ней данными.
    Надо хранить настройки соединения с этой базой. Хотелось бы, чтобы после внесения настроек, они сохранялись как-то централизованно и при запуске обработки с другого компьютера уже не надо было бы их вносить заново.
    Подскажите, как лучше это делать? Сохранять настройки в базу? Но тогда надо добавлять в конфигурацию константы или новый справочник? Это можно сделать программно из обработки? Или есть какой-то более элегантный вариант?
  2. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Причем, как я понимаю, константы могут видеть пользователи...
    А мне надо, чтобы параметры программно были доступны пользователю, но просмотреть он их никак не мог. А администратор сможет редактировать эти параметры через форму обработки.

    Подскажите элегантный способ хранить в 1С таким образом настройки...
  3. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    ЗначениеВФайл(<ИмяФайла>,<Объект>,<Формат>)
    ЗначениеИзФайла(<ИмяФайла>,<Объект>,<Формат>)

    Этого более чем достаточно.
    Все параметры храни в списке значений.
  4. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Я сделал по аналогии, только другой командой, с помощью ФС. Но мне не нравится это тем, что файл сохраняется на локальном компьютере. А пользователь с другого компьютера должен также выполнить настройки. Это не удобно... Поэтому и интересуюсь возможностью хранить настройки в 1С как-то цетрализованно. Я так понимаю, что ЗначениеВФайл сохраняет файл ведь тоже локально?

    Есть ли какой-то хороший метод хранить настройки централизованно?
  5. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Все не просто, а очень просто...

    КаталогИБ()
    Назначение:
    Возвращает имя каталога базы данных.

    локальный или сетевой путь будет... без разницы
    храните настройки внитри каталога БД (можно в служебном подкаталоге)
  6. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Теперь понял :) Спасибо. Использовал КаталогПользователя(), видимо КаталогИБ - более правильное решение в этом случае. Правильно я понимаю, что если этот путь с компьютера не доступен, то 1С и на нём запускаться не будет? Т.е. можно не беспокоиться, что этот каталог может быть недоступным?

    Заодно спрошу, есть ли возможность открыть файл так, чтобы другой пользователь его не мог открыть?
  7. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Правильно.
    Тут не совсем понятно, что имеется ввиду.
    1. Можно сделать подкаталог, и доступ к нему разграничить средствами ОС.
    2. Можно в файле хранить значение не в явном виде, а в каком-нибудь зашифрованном.
    ...Можно много чего еще придумать, но не зная цели - все это колыхание воздуха.
  8. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Спасибо :)

    Я делаю обработку, которая интегрирует базу 1С с внешней базой. Интеграцию могут инициировать разные пользователи 1С. И чтобы было все хорошо, надо запрещать запускать интеграцию параллельно 2-м пользователям. Т.е. если обработка запущена, то при втором запуске (с другого компа) обработка должна сказать пользователю, чтобы он подождал. И сразу завершить свою работу.
    Для этого думаю создать файл и при запуске обработки открывать его. А при завершении обработки закрывать. Так, чтобы при повторном запуске обработки возникала ошибка при открытии этого же файла. Если в ходе выполнения обработки отрубить процесс 1С, то файл освободится и можно будет снова запускать обработку (т.е. случай сбоя обрабатывается).
    Вопрос в том, как в 1С открыть файл так, чтобы он был заблокирован на уровне файловой системы? Или по умолчанию файлы так и открываются?
    Возможно, в 1С есть более элегантный способ для исключения ситуации повторного запуска обработки?
  9. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Спасибо за идею. Я как раз озадачился тем, что если файл доступен для чтения по сети, то его могут считать и узнать содержимое. А там есть логин пароль :angry:
    Поэтому его действительно стоит шифровать.
    Есть ли в 1С какие-то стандартные функции для шифрования/расшифровки данных? Желательно, чтобы они не требовали подключения дополнительных dll. Или может быть есть готовые примеры кода для шифрования RSA или другим надёжным алгоритмом?
  10. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    По поводу "метки" что обработка запущена можно использовать файл-ключ (создается/проверяется при открытии, удаляется при закрытии) Конечно возможен варант сбоя когда 1с зависла/слетела и файл остался. Но это уже детали.
    По поводу шифрования.... У вас же логин/пароль это строка и особая криптостойкость не думаю что нужна. Главное чтобы было "не читабельно". Можно XORить или просто смещением кода символа по счетчику или смещением в зависимости от четности/нечетности в строке. Выриантов прорва.
  11. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Есть, пока намекну, если не "дойдешь", тогда доведу :angry:

    Можно использовать метод справочника / документа Блокировка(<ВклВыкл>)

    Тут я полностью согласен с Угодником - можно шифровать известным алгоритмом, степень защищенности которого зависит от длины ключа. А можно шифровать простейшим алгоритмом, который никому не известен, и этим держать защиту. Не думаю, что кому то будет интересно вкладывать средства на взлом защиты.

    На сколько я знаю, в 1С так можно открыть только DBF-файл
  12. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Действительно... Как-то не подумал. Так практичнее. Служебный справочник с единственной записью-флагом

    Можно через WMS - CreateTextFile (флаг перезаписи в 0)
  13. TopicStarter Overlay
    mnv
    Offline

    mnv

    Регистрация:
    6 апр 2011
    Сообщения:
    12
    Симпатии:
    0
    Баллы:
    1
    Вариант со справочником понравился!
    Мне пожалуй будет удобно хранить в справочнике не только служебную запись для блокировки, но и все параметры соединения.
    Но у меня вопрос по переносу такой настройки конфигурации. Справочник создать программно видимо не получится в 1С 7.7. Если обработку можно выгрузить в ert и загрузить в другую базу 1С, то как можно выгрузить справочник? В контекстном меню (которое появляется при клике на справочник в конфигураторе) нет команды выгрузки справочника... Возможно справочник (только структуру, без данных) можно выгрузить другим способом?
  14. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Создай чистую структуру, в ней только один справочник. А потом объединяй с рабочей ИБ. Там в сравнении будет только этот справочник.

    Это уже идет подключение внешних DLL. Не на каждой оси она есть.
  15. Бухгалтерский угодник
    Online

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    НЕТ. Это средства ОС с ХР по Win7 стандартное
  16. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Согласен что стандартное, но может быть отключено.... я на эти грабли уже наступал.

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