Имя: Пароль:
1C
1С v8
Программный доступ к хранилищу конфигурации
0 Лефмихалыч
 
02.04.12
10:22
Коллеги, кто-нибудь пробовал как-то исхитриться и программно получить список захваченных объектов из хранилища?
Платформа имеет какую-то культяпку для автоматизации работы с хранилищем в виде ключей запуска конфигуратора, но культяпка не позволяет получить хотя бы отчет по захватам. Хотя, может я мануал поперек читал и кто-то знает какие-то тайные ключи?

Необходимость обусловлена тем, что у меня два хранилища от на самом деле одной конфигурации, которые я руками время от времени сращиваю. В идеале хочу автоматически сращивать не захваченные объекты между ними по определенному правилу. Но существенным подспорьем будет даже и просто возможность сравнить захваты по объектам.
1 Maxus43
 
02.04.12
10:25
имхо нет, тока если парсить файлы в каталоге с 1ЦД, захваты хранилища наверняка там, как и блокировки в файловом варианте
2 Maxus43
 
02.04.12
10:26
хотя не уверен... инфа о захватах сохранится и при удалении файлов наверно. надо пробовать)
3 Лефмихалыч
 
02.04.12
10:27
(1) да, забыл сказать - я покрутил в руках поделие 1CD_Tool для этой цели и то ли руки у меня не туда вставлены, то ли не для того поделие предназначено, но я не нашел нич его по поводу сабжа
4 Maxus43
 
02.04.12
10:32
(3) имхо файлы о захватах отдельно лежат, не в 1ЦД. как инфа о блокировках в файловом варианте
5 Лефмихалыч
 
02.04.12
10:36
(4) Экспериментально удалось только подтвердить, что вся эта бодяга живет в файле 1cv8ddb.1CD в каталоге хренилища. Если из каталога хранилища поудалять всё к чертям, кроме 1cv8ddb.1CD, то при повторном коннекте захваты остаются.
А вот как выцарапать из этого файла захваты - ума не приложу...
6 Maxus43
 
02.04.12
10:39
на взгляд там ничо в норм виде не лежит? 1CD_Tool этот файл не понимает?
7 Лефмихалыч
 
02.04.12
10:43
(6) Там один этот файл и больше и чего. 1CD_Tool этот файл, но я не нашел там ни чего похожего на блокировки. Искал долго, наверное 20 минут аж.
8 Лефмихалыч
 
02.04.12
11:04
Чего бы я на мисте не спросил, ответа почти ни когда нет
9 Maxus43
 
02.04.12
11:05
(8) это миста а не фирма 1с, ты думаеш мы знаем структуру хранения в файлах 1с? я хотя бы предположил где оно лежит, и вроде правильно. парсить файл за тебя никто не будет
10 pumbaEO
 
02.04.12
11:07
Так и не понял, какой профит получишь от этого [В идеале хочу автоматически сращивать не захваченные объекты между ними по определенному правилу] каким образом, если не секрет будешь автоматом сращивать?
11 Лефмихалыч
 
02.04.12
11:13
(9) я ветку создал для того, чтобы узнать два вопроса:
1. Знает ли кто-то готовое решение
2. Не упустил ли я каких-то очевидных фактов
парсить за меня ни чего не надо. Да и, где оно лежит, я вроде и сам догадался

(10) не знаю еще - это второй вопрос :)
12 pumbaEO
 
02.04.12
11:19
Ну если бы я себе такую задачу ставил, я бы тогда брал снегопат и парсил дерево метаданных на предмет захвата доступности для записи, те что доступны, значит захвачены...

Но второй вопрос будет посложнее и для его решения я бы советовал использовать версионный контроль другой с 2-мя ветками production и dev ... В комментариях при commit писать объекты изменненые, ну а для просмотра, что же изменилось можно придумать варианты.
13 Лефмихалыч
 
02.04.12
11:21
(12) ты прям меня заинтриговал. А каким образом использовать этот версионный контроль с ветками?
14 Лефмихалыч
 
02.04.12
11:21
+(13) в принципе именно этого я и добиваюсь двумЯми хранилищЯми...
15 pumbaEO
 
02.04.12
11:28
Пока конечно-же только под версионный контроль класть cf ...
Пробовал делать выгрузку модулей, но все равно непонятно, что в формах изменилось, а что в ролях или реквизитах.

Сейчас использую bzr http://infostart.ru/public/118207/ + для снегопата http://youtu.be/xo8gd7l4Lew
16 Лефмихалыч
 
02.04.12
12:35
(15) у нас 25+ разработчиков, класть сам cf под версионный контроль просто не получится. С обработками/отчетами-то понятно, под это дело сейчас svn затачиваем
17 pumbaEO
 
02.04.12
12:51
25 c х[...]м разработчиков... Как тогда использовать хранилище, я не представляю. Тормозит хранилище?
18 Лефмихалыч
 
02.04.12
12:55
(17) а будет еще больше. Хранилище само по себе не тормозит. Зело мешает жить отсутствие ветвлений. Подошли к осознанию того, что без второго хранилища жизни нет.
Сейчас разделили release и trunk вот так врукопашную, создав два хранилища. Сейчас размышляем, как облегчить жизнь с двумя хранилищами. Для начала надо обеспечить синхронность не захваченных объектов.
19 pumbaEO
 
02.04.12
13:06
со снегопатом имхо это решаемо, в принципе небольшой скриптик, который пройдется по метаданным, выдаст их статус и запишет куда либо не проблема.

Хм, в теории в release только мержи должны попадать и там красивая незаляпаная (всякими высказываниями разработчиков) история, типа
"[+]Добвленна фигня раз
[*] Исправленна ошибка 2
[-] Все будет хорошо."

И это можно как бы автоматизировать, выгрузить из trunk версию и загрузить в release...

В принципе ради ветвления я начал смотреть как бы прикрутить dvcs к 1С... Жду 8.2.16, если кардинально не поменяется, что либо в выгрузке/загрузке файлов конфигураций, надо будет все таки в v8reader добавлять экспорт дерева конфигурации в файловую систему.
20 Лефмихалыч
 
02.04.12
13:38
Фткание красными глазами в tool_1cd дало результаты - я понял, где там захваты хранятся - они хранятся в таблице OBJECTS, как ни странно. Осталась одна проблема - как узнать по objid, что это за объект?

Есть тут спецы по внутренним идентификаторам метаданных? Попробовал ЗначениеВСтрокуВнутр() от пустой ссылки в режиме предприятия, но там какой-то другой гуид.
21 pumbaEO
 
02.04.12
13:40
http://infostart.ru/public/106310/ там в макетах вроде как есть известные на текущий момент внутренние идентификаторы.
22 Лефмихалыч
 
02.04.12
14:35
Всё просто. Ну, как то есть просто?.. Не просто на самом деле ни фига, но решаемо.
Захваты живут в таблице OBJECTS, имена и классы объектов хранятся в таблице HISTORY. Имея OBJECTS.Objid, можно найти его в HISTORY. Оттуда серией переходов по HISTORY.Parentid можно выйти на один из ГУИДов из макета вот этой обработки (21) и из этого понять, что это за объект.
Геморройно, но, учитывая, что имя объекта может поменяться, другого способа, видимо, нет.
23 Лефмихалыч
 
02.04.12
14:44
pumbaEO, а снегопат чего может? Он может объединить конфу с файлом?
ЗЫ Понимаю, что звучит дико, но мало ли что и вдруг...
24 pumbaEO
 
02.04.12
14:47
Объединить, т.е. выбрать именно объекты для объединения?
25 Лефмихалыч
 
02.04.12
14:50
(24) ну, даже предположим, что имена объектов заранее известны. Я к чему клоню - подключенную к хранилищу конфигурацию нельзя обновить загрузкой cf-ника. Можно обновить только сравнением/объединением. Вот я и подумал - может ли снегопат сделать объединение без сравнения. Чтобы я какое-нить регламентное задание или еще как время от времени запускал для синхронизации не захваченных объектов. Дюже руками работать не хочется в этом плане, а хочется наоборот - автоматизацяйца...
26 pumbaEO
 
02.04.12
14:57
В принципе сейчас через скрипты можно послать команду "Сравнить, объединить с конфигурацией из файла!"
Потом перехватить событие выбора пути к cf, передать правильный путь к cf файлу.
В теории, когда появиться диалог сравнения через send key можно послать Ctrl+Enter, единственное не знаю какие там диалоги появляются для заблокированных объектов.
27 Лефмихалыч
 
02.04.12
14:59
(26) ни каких - у всего, что не захвачено, галки не проставятся. Ноя понял из твоего ответа, что сейчас вариантов нет, а когда появятся, то это будет адский велосипед :)
Ладноть, будем довольствоваться отчетами.
28 pumbaEO
 
02.04.12
15:02
почему, велосипед? Если не захвачено и галки не проставятся, то часа 2 на скрипт.
Тем более примеры работы есть: для перехвата выбора файла Clipboard.js, для диалога сравнения traymessage.js.
29 pumbaEO
 
02.04.12
15:08
Пример http://youtu.be/xKliXymWGJk traymessage.js после окончания сравнения выводит сообщение пользователю, тебе надо будет послать send key и готово.
30 MMF
 
02.04.12
15:08
у Softpoint-а есть такая разработка, обратись к ним
31 Лефмихалыч
 
02.04.12
15:09
(28) главным образом потому, что все эти круть-верть на сервере не поедут (ну, или почти не поедут). Так что это по сути то же самое, что руками галки проставить по списку, только дороже - т.к. снегопат денег стоит (что само по себе, конечно, правильно).
32 Лефмихалыч
 
02.04.12
15:10
(30) а название не подскажешь? Чего-то не могу ни чего найти http://www.softpoint.ru/products_id111.htm
33 MMF
 
02.04.12
15:15
(32) внутренняя разработка для своих 1С-ников. Просто намыль свою задачу, может и срастетесь