Имя: Пароль:
1C
 
Расшифровка таблицы Config. Узнать версию конфигурации средствами SQL
0 zarcom
 
24.03.09
12:52
Как узнать какая версия конфигурации у базы, к которой ты имеешь полный доступ, средствами SQL.

Телепат Бот помоги.
1 asady
 
24.03.09
12:55
(0) двоичные данные читать придется - там же конфига в виде binaryData
2 zarcom
 
24.03.09
12:57
А как их прочитать, средствами 1С возможно? А на SQL?
6 zarcom
 
24.03.09
13:00
Расшифровка таблицы Config. Узнать версию конфигурации средствами SQL.
ТелепатБот, ответь
7 zarcom
 
24.03.09
13:03
Где все УМЫ ???
8 MMF
 
24.03.09
13:06
именно средствами sql фиг, вернее геморно и не везде хватит прав и т.п. sp_OACreate 'ScriptControl' и разбирай
9 zarcom
 
24.03.09
13:20
А если у меня есть все права, на все таблицы, на все базы
10 Нуф-Нуф
 
24.03.09
13:21
посмотреть значение константы релиз?
11 zarcom
 
24.03.09
13:22
Нету такой константы, конфигурация не типовая
12 Нуф-Нуф
 
24.03.09
13:26
(11) а где в 1с храниться версия конфигурации?
13 Gamm
 
24.03.09
14:22
(0) Отлови профайлером выполнение
Метаданные.Версия
и увидишь где они лежат.
14 Gamm
 
24.03.09
14:53
Вот мне интереснее как любыми программными средствами узнать версию конфигурации поставщика. А то она доступна только из меню Конфигурация-Поддержка-Настройка поддержки.
15 EasyRider
 
24.03.09
14:54
По конфигурации в конфигураторе клик-свойтсва,там есть версия
16 MMF
 
24.03.09
15:17
(13, 14) Сам попробуй и убейся об стену. Тупые советы давать каждый может.
И версия конфы и версия поставщика достаточно легко достать, но не средствами sql
17 Ferz
 
24.03.09
15:47
Узнать можно читаем Select BynaryData From Config Where Filename='root'
Там смотрим ID потом Select BynaryData From Config Where Filename=ID.0 (или .1 или .2 не помню) там будет структура. И в ней найдете Для УПП 1.2.21.
Если вам нужен ID версии конфигурации то он в таблице Params
18 EasyRider
 
24.03.09
15:55
Если ты про запись Locale.inf,то в ней нет версии,только что выгрузил в файл
19 Ferz
 
24.03.09
16:11
(13) Гаааа. :) :)
Если вs это сможете и напишите стать пришлю Вам 100$
20 MMF
 
24.03.09
16:26
(17) а раззиповать и разпарсить как? Чувак-то жаждет запросом извлечь
21 fisher
 
24.03.09
17:12
(20) Думаю, чуваку вовсе не обязательно запросом. Ставлю дайм, что никаких спецовых ограничений у него нет. Просто ему так хочется, потому что кажется что так проще :)
22 zarcom
 
25.03.09
12:10
У меня есть 80 информационных баз, после того как я обновил в этих базах конфигурацию, мне необходимо одним щелчком мыши увидеть какая версия конфигурации в этих базах
23 zarcom
 
25.03.09
12:24
У колонке BynaryData данные, вот такого вида:0x7BBF7B7F352F57B5A181998E412D2F572D00, как расшифровать (прочитать) эти данные,
26 zarcom
 
25.03.09
12:27
да уж... такой сайт, а помочь ни кто не может
28 zarcom
 
25.03.09
12:46
Помоему нашел подходящее решение:
29 zarcom
 
25.03.09
12:47
ПодключитьВнешнююКомпоненту("GameWithFire.ADOUtils");
ADOUtils = Новый("AddIn.ADOUtils");
Connection = Новый COMОбъект("ADODB.Connection");
Connection.Open("Provider=sqloledb;Server=MyServer;Database=MyDatabase;Trusted_Connection=yes;");
RecSetRead=Connection.Execute("Select BinaryData from Config Where FileName='"+Ключ+"'");
Если RecSetRead.State=1
       И RecSetRead.RecordCount>0 Тогда
  МассивБайт = ADOUtils.InflateData(RecSetRead.Fields(0), 4).Выгрузить();
  СимволыМаркера=""+МассивБайт[0]+ МассивБайт[1]+МассивБайт[2]+ МассивБайт[3];
  RecSetRead.MoveFirst(); //это для того чтобы внутренее состояние объекта ADODB.Recordset изменилось и мы могли         снова получать данные длинного поля, т.к. один раз мы его уже получили выше методом ADOUtils.InflateData

Если Лев(СимволыМаркера,9)="239187191" Тогда

//Строковые данные
Содержание=ADOUtils.InflateToString(RecSetRead.Fields(0));

ИначеЕсли СимволыМаркера="77798867" Тогда

//MXL
ADOUtils.InflateToFile(RecSetRead.Fields(0), ИмяФайла);
Файл=Новый Файл(ИмяФайла);

ИначеЕсли СимволыМаркера="255255255127" Тогда

//Внутренее хранилище
ADOUtils.InflateToFile(RecSetRead.Fields(0), ИмяФайла);
Файл=Новый Файл(ИмяФайла);
ПодключитьВнешнююКомпоненту("GameWithFire.V8Storage");
V8Storage = Новый ("AddIn.V8Storage");
V8Storage.Open(ИмяФайла);
Для каждого Item из V8Storage.Items Цикл
   МассивБайт = Item.GetData(Ложь, 4).Выгрузить();
   СимволыМаркера=""+МассивБайт[0]+ МассивБайт[1]+МассивБайт[2];
   Если Лев(СимволыМаркера,9)="239187191" Тогда
   //на данном уровне только строковые данные
      ТекстДок=Новый ТекстовыйДокумент;
                   ТекстДок.УстановитьТекст(Item.GetDataToString(Ложь));

   КонецЕсли;
КонецЦикла;
V8Storage.Close();

КонецЕсли;

КонецЕсли;
30 AiR
 
25.03.09
12:52
Код обработки Enterprise Integrator ))
31 zarcom
 
25.03.09
12:53
что такое Enterprise Integrator
32 zarcom
 
25.03.09
13:06
33 zarcom
 
25.03.09
13:07
где можно скачать библиотеку GameWithFire.dll
34 Gamm
 
25.03.09
13:34
(16)(19) Ну ладно уели. В самом деле метаданные при подключении на клиента сбрасываются.
35 zarcom
 
26.03.09
06:48
Но они сбасываются откуда??? С таблиц которые лежат на SQL. Как в таблицах расшифровать BinaryData ???

Скажет кто нибудь? Или нет ?
37 Нуф-Нуф
 
26.03.09
07:05
а цель какая?
38 zarcom
 
26.03.09
07:40
Расшифровка таблицы Config. Узнать версию конфигурации средствами SQL.
40 Нуф-Нуф
 
26.03.09
07:57
(38)  зачем?
41 Нуф-Нуф
 
26.03.09
07:57
зачем средствами скуль?
42 zarcom
 
26.03.09
07:59
А как еще??? Есть мысли?
43 Fynjy
 
26.03.09
08:06
Ээээ, а объект Метаданные уже не кошерно использовать?
44 zarcom
 
26.03.09
08:08
я из одной базы, запускаю обработку и по COM-соединению, открываю по очереди 80 баз, и проверяю версию конфигурации (Метаднные->Версия), это сильно долго....
45 Fynjy
 
26.03.09
08:09
(44) Ты бы задачу описал ... А то как то сильно долго разговаривать ...
46 zarcom
 
26.03.09
08:35
Узнать версию конфигурации, сразу у всех 80 баз
47 MMF
 
26.03.09
10:25
(46) напиши com-сервер, ты ему логин к базе, он тебе - версию
48 zarcom
 
26.03.09
12:05
меня кто нибудь понимает???
49 toypaul
 
гуру
26.03.09
12:13
все понимают, только как собаки сказать ничего не могут :)
50 zarcom
 
26.03.09
12:27
пипец
51 DmitrO
 
26.03.09
12:32
zarcom, ты же уже нашел код, что еще?
52 MMF
 
26.03.09
12:38
(48) может, дело в тебе?
BinaryData нужно раззиповать без заголовка. Выше Ferz тебе уже говорил - из Root получаешь ID основного файл описания метаданных, потом берешь запись с нужным индексом, разпарсиваешь и ... вот оно, счастие.
53 zarcom
 
26.03.09
12:42
Я не пойму как распарсить строку типа :0x7BBF7B7F352F57B5A181998E412D2F572D00
54 toypaul
 
гуру
26.03.09
12:48
похоже товарищ не фкуривает в термин "раззиповать". может это не лечится?
55 MMF
 
26.03.09
12:49
(53) ты вменяемый? РАЗЗИПОВАТЬ нужно. Причем анзипом, понимающим формат без заголовка. Средствами чистого SQL - задача нерешаема. К mssql можно написать dll расширения или использовать хранимки поддержки скриптов, но у тебя, судя по всему - не получится. Поэтому успокойся
56 zarcom
 
26.03.09
13:36
Объесните как мне РАЗЗИПОВАТЬ ?
57 DmitrO
 
26.03.09
13:47
(56) методами объектов из состава компоненты GameWithFire. InflateTo...
Это и есть раззиповка.
58 zarcom
 
26.03.09
13:56
где можно скачать библиотеку GameWithFire.dll
59 MMF
 
26.03.09
14:01
+ 20 постов
"как загрузить в 1С библиотеку GameWithFire.dll"
+ 20 постов
"где искать идентификатор основного потока конфигурации"
+ 20 постов
"что такое разпарсить текст"
+ 100 постов
"ну почему никто мне не помогает!"
60 DmitrO
 
26.03.09
14:03
(58) разве ее нет в составе Enterprise Integrator?
61 shuhard
 
26.03.09
14:04
(58) скачай и не нуди:
http://www.dev.citykirov.ru/
62 DmitrO
 
26.03.09
14:07
(61) там лежит старая версия, в ней нет того что нужно zarcom-у
63 zarcom
 
26.03.09
14:10
нету ???
64 DmitrO
 
26.03.09
14:14
щас выдожу тогда в (61), жди несколько минут, часов, дней.. :)
65 DmitrO
 
26.03.09
14:46
выложил
66 KAO111
 
26.03.09
15:25
Скорее всего номер версии можно брать еще и из констант (если это более-менее типовая конфигурация).

Но ведь и через com-соnnector выйдет не очень долго 80 баз, ну потратится 5 минут. Неужели это так критично.
2 + 2 = 3.9999999999999999999999999999999...