Уникальный id инф. базы

1. mirrr 88 20.10.11 11:25 Сейчас в теме
Подскажите, есть ли для информационной базы какой-то уникальный код, такой, чтобы его можно было получить программно.

Суть в том, чтобы при выполнении какой-либо операции проверять, из той ли нужной базы она запускается.
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
7. SuhoffGV 20.10.11 12:57 Сейчас в теме
(1) mirrr, База на postgres. Проверяю по строке подключения к БД. С файловой бд - может не прокатить.

как-то так.
//Проверяет, является ли эта база рабочей
Функция ЭтоРабочаяБаза() Экспорт
	Возврат (СтрокаСоединенияИнформационнойБазы()="Srvr=""servername"";Ref=""basename"";");
КонецФункции // ЭтоРабочаяБаза()


Делал, чтобы в рабочей бд не выскакивали отладочные сообщения. И чтобы тестовые БД не выполняли мои регламентные задания.
8. tusv 210 20.10.11 14:12 Сейчас в теме
(1) mirrr, Самому интересно. То что уникальных идентификатор существует и по нему хранятся настройки в /.Application Data\1C\1Cv82\Гуид базы, догадываюсь. Только как его получить?
Тоже приходится писать такой код
Если Найти(СтрокаСоединенияИнформационнойБазы(),<Нужная база>)>0 Тогда
//то выполняем такой то код только для нужной базы
КонецЕсли
Если кто то развернет детешник в не в <Нужная база> работать не будет. К сожалению
12. herfis 498 20.02.17 17:59 Сейчас в теме
(8)(9) Это не ID базы. Это идентификатор настроек, по сути. Если перезаполнить список баз - будут другие ID (зуб не дам, но вроде так).
13. ksv74 90 20.02.17 18:16 Сейчас в теме
(12) Согласен. Будет новый уид - сам этим пользуюсь
2. WaterSmith 355 20.10.11 12:19 Сейчас в теме
Очертите задачу конкретнее.
Хотите привязать внешнюю обработку к конфигурации?
Насколько мне известно такого уникального идентификатора нет, другое дело, что вы можете его организовать. Можно генерировать GUID, запомнить его где нибудь, в каком нибудь регистре сведений, и потом выполнять соответствующую проверку.
3. tango 506 20.10.11 12:24 Сейчас в теме
вопрос интерсный, но, автор, что вы предложите для детешников?
4. tango 506 20.10.11 12:25 Сейчас в теме
имхо, юникод для конкретной базы - ее месторасположения, типа IP
5. tango 506 20.10.11 12:26 Сейчас в теме
имхо, юникод для конкретной базы - ее месторасположения, типа IP
6. tango 506 20.10.11 12:26 Сейчас в теме
ну, дубли на ИС шерифа не
9. ksv74 90 20.10.11 14:38 Сейчас в теме
mirrr пишет:
Подскажите, есть ли для информационной базы какой-то уникальный код, такой, чтобы его можно было получить программно.

Если программно, то читать вот это Формирование списка зарегистрированных информационных баз системы 1Cv8, затем парсить файл C:\Documents and Settings\%CurrentUser%\Application Data\1C\1CEStart\ibases.v8i, в нем каким-то образом получать ID.
Если не получается, то искать другие варианты.
10. tusv 210 20.10.11 14:56 Сейчас в теме
(9) ksv74, Проверил. Это только для локальной машины:(
11. AGLux 20.02.17 16:23 Сейчас в теме
Да, при соединении через веб-клиент это не сработает.
14. Dnki 4 20.02.17 22:45 Сейчас в теме
Я подобную проблему решаю тупо: есть константа с именем вроде "код базы". В ней 2-3 буквы.
Но эффективно.
15. AGLux 21.02.17 13:32 Сейчас в теме
(14) Есть задача интереснее, в которой такой подход не поможет. Например как определить конкретную БД, и суметь отличить бекап от оригинала? :) Анализ строки соединения не совсем помогает, т.к. в ней иногда может фигурировать не имя сервера, а IP. Подозреваю, что может там быть и FQDN имя сервера, что ещё больше увеличивает путаницу.
16. japopov 68 21.02.17 13:40 Сейчас в теме
(15) ну, это можно, и достаточно просто. Думаю, 1С тот же алгоритм реализовали:
1) При первоначальном заполнении базы сохраняем строку доступа. Для файловой базы можно поизвращаться ещё про дату создания. Можно также при начальном заполнении взводить флажок "надо запомнить строку соединения", и для файловой базы снимать этот флажок только тогда, когда путь к файлу начинается с "\\" (так обработаем ситуацию, когда локальный путь отличается от сетевого).
2) При запуске проверяем, и если текущая строка соединения отличается от ожидаемой, выводим сообщение "Айяйяй, базу переместили, больно же! Вы её насовсем переместили, или как?". Если "насовсем", то обновляем запомненные параметры. Если "или как" - то отключаем лишнее.

В случае с 1С они для файловой базы изобразили ещё один файлик "DoNotCopy", но, по-моему, решение даже более сомнительное, чем то, что я предложил.
17. AGLux 20.03.17 20:10 Сейчас в теме
(16) Ну в моём случае была пара отличий: во-первых все базы (и оригинал, и копии) были SQL-ные. Во-вторых именно на анализ строки запуска изначально я и полагался. К нему привязал автоопределение прод/не_прод база. И если не_прод - то при любом запуске сеанса производился сброс всяких интеграционных настроек к тестовым значениям. Всё было хорошо, пока в базу не стали заходить юзера из Румынии, у которых в строке соединения почему-то был IP, а не имя сервера. После чего на проде настройки сбросились к непродовским и естественно случились мега-паника, скоростные хотфиксы и прочие головные боли)))
Изначально хотел сделать как вы и предложили - диалог для юзера, чтоб он подтвердил выбор. Но начальство зарубило интерактивщину, в итоге весь этот функционал просто закомментили в долгий ящик, от греха подальше)))
18. japopov 68 21.03.17 09:47 Сейчас в теме
(17) Ну, как же так! Просто же: при начале работы пользователя на сервере исполняете команду системы ping к серверу (параметры подобрать надо будет), сохраняете результат во временный текстовый файл. Потом из 1С считываете файл, и получаете IP сервера! Всё просто, и можно сравнивать именно адреса серверов.
19. AGLux 21.03.17 18:09 Сейчас в теме
(18) ну да, примерно что-то такое было в идеях, но к тому времени этот функционал всё равно уже зарубили))) Так что, теперь просто спортивный интерес. :)
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)