Имя: Пароль:
1C
1С v8
v8: Как идентифицировать базу данных?
0 aspirator23
 
10.08.12
06:49
Имеется несколько баз данных 1с. Все в формате SQL. Информация о них хранится в отдельной общей SQL базе. Как однозначно идентифицировать эти базы с тем чтобы обращаясь к общей SQL находить именно "себя" - свою базу данных?
Гуид подходит, но на базу кажется его нет?
Можно "порыться" в возможностях SQL, но базы могут быть перенесены с одного сервера на другой и тогда вероятно эта уникальность изменится. Да и базы могут быть размещены на нескольких sql серверах.
1 aleks-id
 
10.08.12
06:52
мутный поток сознания
2 goodzone
 
10.08.12
06:53
Найти себя в мастере и сгенерить имя по ид мастера и имени сервера.
Хотя возможно с сиквеле есть какой-нибуть юник-ид.
Прикольная задача
3 Lex_Liven
 
10.08.12
06:54
Несколько баз 1С в одной базе SQL??? Как? И самое главное - НАФИГА???
Выгрузите все через конфигуратор и загрузите в отдельные базы скула. Мир станет лучше.
4 aspirator23
 
10.08.12
06:57
(3) Спокойно тут все проще.
(1) Подключаясь из базы 1с к общей базе нужно найти себя(базу) и прочитать общие данные о этой базе: например ответственный ну или еще что-нибудь. Сами данные небольшие.
5 Живой Ископаемый
 
10.08.12
06:58
2(4) у базы 1С УИД есть, да. Но он может поменяться, а база в СУБД останется как и была.
6 aspirator23
 
10.08.12
06:59
(5) Как его получить? Почему он может поменяться?
7 goodzone
 
10.08.12
07:02
(5) Поскажи плиз
8 aspirator23
 
10.08.12
07:03
(2) Идея неплохая. Во всяком случае можно это проделать один раз и записать в свойства базы 1с.
9 aspirator23
 
10.08.12
07:09
Можно попробовать через какие-либо косвенные признаки идентифицировать: размер кода, количество метаданных... Но все что приходит "на ум" меняются, или могут совпасть с другой базой.
10 Живой Ископаемый
 
10.08.12
07:09
2(6,7) Всем известно как
http://screencast.com/t/EhGKwlibbh
читать ИТС "размещение данные"
11 Живой Ископаемый
 
10.08.12
07:11
может поменяться, если удалить базу из списка и добавить заново. Немного от этого может помочь список общих баз, если его хранить на сервере оттуда уже пользователь может так просто и не удалит базу. Но все равно можешь удалить ты сам.
12 goodzone
 
10.08.12
07:11
(10) Как получить на клиенте? Похоже метод не надежный.
13 goodzone
 
10.08.12
07:12
Тем более не надежный :(
14 Живой Ископаемый
 
10.08.12
07:13
Да я вообще считаю это ересью. (то что вы пытаетесь сделать)
Нет надежного.
15 goodzone
 
10.08.12
07:15
Базу в MS SQL легко идентифицировать по имени. Но сиквел, - проблемно. А если учесть, что работаем через сервер приложений, то необходимо идентифицировать сервер приложений. А если про кластер вспомнить... - та ну его на ...
16 goodzone
 
10.08.12
07:15
А задача даже очень проста: как не путать копии
17 Живой Ископаемый
 
10.08.12
07:18
Есть метод глобального контекста СтрокаСоедниенияСБазой.
18 goodzone
 
10.08.12
07:20
(17) Не катит. У тебя 100 компов. На некоторых из них по IP прописано.
19 Живой Ископаемый
 
10.08.12
07:21
И еще смотреть (40) и (41) v8: v8: Имя SQL базы
(18) не у меня а у тебя.
20 Живой Ископаемый
 
10.08.12
07:22
или например (8) из v8: Файловый или серверный вариант базы
хотя тоже ересь, но оригинально и просто
21 Живой Ископаемый
 
10.08.12
07:25
и еще есть ПолучитьНавигационнуюСсылкуИнформационнойБазы()
22 goodzone
 
10.08.12
07:40
Теоритически - надо капать в wma. Правда практически я пока этого не делал. Могу и ошибаться. Волшебники молчат?
23 Живой Ископаемый
 
10.08.12
07:42
wma? разве оно работает в Линуксе?
24 goodzone
 
10.08.12
07:54
(23) 100 пудов, - там др методы. И + еще один гайморит :)
25 aspirator23
 
10.08.12
14:09
Тема оказывается давно мусолится.

v8: Как определить GUID БД в 1С
v8: Уникальный код базы
v8: Уникальный id инф. базы (8.2)

в таблице dbo.Params нашел поле log.inf оно в разных базах вроде разное.
Во всяком случае в которых смотрел.
И дата создания довольно старая. Т.е. смахивает на время создания базы.
Где бы еще накопать пояснения по этому полю - что это?
26 vde69
 
10.08.12
14:15
(25) если я понимаю средствами скуля копию - то это одна и таже база или две разных?

вообще варианта только два
один - это читать таблицы базы мастерс
другой - использовать гуид кластера 1с
27 aspirator23
 
10.08.12
14:22
(25) поле log.inf у разных баз разное. Но если одну базу SQL скопировал в другую то поле log.inf совпадает. Получается нужно действительно из мастер-базы имена брать.
28 aspirator23
 
10.08.12
14:23
27 для(26)
29 vde69
 
10.08.12
14:37
(27) я - бы по другому вопрос поставил, что первично "кластер 1с" или "сервер SQL"

с точки зрения физического хранения данных - скуль,
с пользовательского интерфейса - кластер 1с

по этому у данной задачи нет единственного  решения :) каждый выбирает для себя!
30 aspirator23
 
10.08.12
14:55
(29) На кластер 1с видимо нельзя опираться: в sql будет база Db_Test. А в кластере можно создать базу Test, Затем удалить и создать новую Test_Db, затем снова удалить и создать DbTest. Все это будет одна и таже база sql Db_Test.
Хотя конечно это тоже спорно.
Во всяком случае спасибо за идеи.
31 vde69
 
10.08.12
15:02
(30) нет, это будет разные базы содержащие одни и те-же данные

есть еще одно мнение - это разделение по "автоматизации"

например регламентные задания привязаны к кластеру, а бекапы к скулю.

на мой взгляд правильно делать привязку кластер+скуль
32 aspirator23
 
10.08.12
15:20
(31) Да, подходит. Моя задача - как раз работает через регламентное задние.