Имя: Пароль:
1C
1С v8
Как узнать номер последней версии хранилища программно
0 Ndochp
 
18.09.14
14:00
День добрый, не подскажете как программно узнать последний номер версии конфы из хранилища 1C.
1 ДенисЧ
 
18.09.14
14:09
а что, 1с уже научилась программно работать с хранилищем?
2 Dmitry1c
 
18.09.14
14:12
через DLL-ку, которая может анализировать код файлов хранилища там где-то выцеплять

напишу за $50 тыс. гривней
3 1Сергей
 
18.09.14
14:13
(1) через sendkey можно сделать очень многое :)
4 Armando
 
18.09.14
14:14
"номер последней версии хранилища"
или
"последний номер версии конфы"

Это какбе разные вещи.
"номер последней версии хранилища" у меня есть пример
5 Armando
 
18.09.14
14:21
Хотя версию конфигурации тоже меожно из хранилища получить из таблицы versions
6 Ndochp
 
22.09.14
11:39
(4) Сорри, что не ответил, сдернули на кипяток, закончившийся только в пятницу вечером.
Нужен именно номер версии хранилища.
(колонка "№" формы "История хранилища")

Версию конфы я как-нибудь получу через "Метаданные.Версия" после того как утяну конфу к себе.
7 vhl
 
22.09.14
11:41
(6) через ключи коммандной строки. Только это в 8.3 появилось вроде.
8 vhl
 
22.09.14
11:43
ConfigurationRepositoryReport
9 Ndochp
 
22.09.14
11:45
(7) Может быть. Я ключи смотрел, для 8.2 - там только можно указать какая версия нужна (и -1 для последней)
(8) И распарсить MXL... Блин, тяжелый батник получается...
10 Ndochp
 
22.09.14
12:42
+(9) Забавно... запрос отчета без параметров группировки для версии 8.2.18.96 дает отчет без номера версии (такое ощущение, что группировка по комменту), а для 8.3.5.1119 - с версией (командная строка отличалась только именем базы, через которую я обращался к хранилищу)
Несмотря на хелп и режим совместимости "не используется"

/ConfigurationRepositoryReport <имя файла> [-NBegin <номер версии>] [-NEnd <номер версии>] [-GroupByObject] [-GroupByComment] — построение отчета по истории хранилища. Если параметры группировки не указаны и режим совместимости указан "Не используется", то отчет формируется с группировкой по версиям. В режимах совместимости "Версия 8.1" и "Версия 8.2.13" отчет формируется с группировкой по объектам. Если конфигурация базы данных отличается от редактируемой по свойству совместимости, при обработке командной строки учитывается значение режима совместимости конфигурации базы данных.
11 Armando
 
22.09.14
23:12
Вот кусок моего скрипта


'Выгрузка таблицы VERSIONS из хранилища
Set objShell = wscript.createobject("wscript.shell")
RetCode = objShell.Run("c:\Scripts\Tools\Tool_1CD.exe c:\1C_Depository_ING\1C_Depository_ING_2014\1cv8ddb.1CD -quit -NotExclusively -ExportToXML e:\DepositoryFiles\1C_Depository_ING_2014 ""VERSIONS""", 1, True)

'номер текущего коммита
Set xmlParser = CreateObject("Msxml2.DOMDocument.6.0") ' обязательно 6.0, проверял на 3.0 - не работает
xmlParser.load "e:\DepositoryFiles\1C_Depository_ING_2014\VERSIONS.xml"
Set colNodes = xmlParser.selectNodes("Table/Records/Record[last()]/VERNUM")
CurrentCommitNumber = colNodes(0).nodeTypedValue



Для работы нужна тулуза Tool_1CD.exe. В переменной CurrentCommitNumber будет номер версии хранилища.
12 Armando
 
22.09.14
23:13
А тебе это зачем надо? Просто интересно
13 Ndochp
 
24.09.14
10:44
(12) Рекомендации 1С по разработке тиражных решений говорят, что должно быть одно центральное хранилище, и по хранилищу на каждое долгоживущее задание по доработке. Обмен между этими хранилищами осуществляется через поставки
(http://its.1c.ru/db/v8std#content:2149184358:1)
В этой всей их катавасии с поставками (приложение 1, 3) мне не нравится одно: так как номер сборки меняется не перед созданием новой поставки, а согласно "5. Нумерация сборок", то возможно существование отличающихся поставок одной и той же версии, что ИМХО черевато.
С другой стороны, если приписать к версии перед самым созданием поставки номер версии хранилища (пятым числом в номере версии или встык с четвертым) то получится четкая система нумерации поставок для техпроектов (каждый номер уникален, все идут по возрастанию).
А так как все эти генерации и обновления штука не быстрая, то охота сделать скрипт, который буде генерить поставки для техпроектов по шедулеру перед началом рабочего дня или по требованию, но все равно одной кнопкой.
Основная теорема систематики: Новые системы плодят новые проблемы.