|
Программный доступ к хранилищу конфигурации | ☑ | ||
---|---|---|---|---|
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С-ников. Просто намыль свою задачу, может и срастетесь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |