#0
by Лефмихалыч
Коллеги, кто-нибудь пробовал как-то исхитриться и программно получить список захваченных объектов из хранилища? Платформа имеет какую-то культяпку для автоматизации работы с хранилищем в виде ключей запуска конфигуратора, но культяпка не позволяет получить хотя бы отчет по захватам. Хотя, может я мануал поперек читал и кто-то знает какие-то тайные ключи? Необходимость обусловлена тем, что у меня два хранилища от на самом деле одной конфигурации, которые я руками время от времени сращиваю. В идеале хочу автоматически сращивать не захваченные объекты между ними по определенному правилу. Но существенным подспорьем будет даже и просто возможность сравнить захваты по объектам.
#1
by Maxus43
имхо нет, тока если парсить файлы в каталоге с 1ЦД, захваты хранилища наверняка там, как и блокировки в файловом варианте
#2
by Maxus43
хотя не уверен... инфа о захватах сохранится и при удалении файлов наверно. надо пробовать)
#3
by Лефмихалыч
да, забыл сказать - я покрутил в руках поделие 1CD_Tool для этой цели и то ли руки у меня не туда вставлены, то ли не для того поделие предназначено, но я не нашел нич его по поводу сабжа
#4
by Maxus43
имхо файлы о захватах отдельно лежат, не в 1ЦД. как инфа о блокировках в файловом варианте
#5
by Лефмихалыч
Экспериментально удалось только подтвердить, что вся эта бодяга живет в файле 1cv8ddb.1CD в каталоге хренилища. Если из каталога хранилища поудалять всё к чертям, кроме 1cv8ddb.1CD, то при повторном коннекте захваты остаются. А вот как выцарапать из этого файла захваты - ума не приложу...
#7
by Лефмихалыч
Там один этот файл и больше и чего. 1CD_Tool этот файл, но я не нашел там ни чего похожего на блокировки. Искал долго, наверное 20 минут аж.
#9
by Maxus43
это миста а не фирма 1с, ты думаеш мы знаем структуру хранения в файлах 1с? я хотя бы предположил где оно лежит, и вроде правильно. парсить файл за тебя никто не будет
#10
by pumbaEO
Так и не понял, какой профит получишь от этого [В идеале хочу автоматически сращивать не захваченные объекты между ними по определенному правилу] каким образом, если не секрет будешь автоматом сращивать?
#11
by Лефмихалыч
я ветку создал для того, чтобы узнать два вопроса: 1. Знает ли кто-то готовое решение 2. Не упустил ли я каких-то очевидных фактов парсить за меня ни чего не надо. Да и, где оно лежит, я вроде и сам догадался не знаю еще - это второй вопрос :)
#12
by pumbaEO
Ну если бы я себе такую задачу ставил, я бы тогда брал снегопат и парсил дерево метаданных на предмет захвата доступности для записи, те что доступны, значит захвачены... Но второй вопрос будет посложнее и для его решения я бы советовал использовать версионный контроль другой с 2-мя ветками production и dev ... В комментариях при commit писать объекты изменненые, ну а для просмотра, что же изменилось можно придумать варианты.
#13
by Лефмихалыч
ты прям меня заинтриговал. А каким образом использовать этот версионный контроль с ветками?
#15
by pumbaEO
Пока конечно-же только под версионный контроль класть cf ... Пробовал делать выгрузку модулей, но все равно непонятно, что в формах изменилось, а что в ролях или реквизитах. Сейчас использую bzr + для снегопата
#16
by Лефмихалыч
у нас 25+ разработчиков, класть сам cf под версионный контроль просто не получится. С обработками/отчетами-то понятно, под это дело сейчас svn затачиваем
#17
by pumbaEO
25 c х[...]м разработчиков... Как тогда использовать хранилище, я не представляю. Тормозит хранилище?
#18
by Лефмихалыч
а будет еще больше. Хранилище само по себе не тормозит. Зело мешает жить отсутствие ветвлений. Подошли к осознанию того, что без второго хранилища жизни нет. Сейчас разделили release и trunk вот так врукопашную, создав два хранилища. Сейчас размышляем, как облегчить жизнь с двумя хранилищами. Для начала надо обеспечить синхронность не захваченных объектов.
#19
by pumbaEO
со снегопатом имхо это решаемо, в принципе небольшой скриптик, который пройдется по метаданным, выдаст их статус и запишет куда либо не проблема. Хм, в теории в release только мержи должны попадать и там красивая незаляпаная (всякими высказываниями разработчиков) история, типа "[+]Добвленна фигня раз [*] Исправленна ошибка 2 [-] Все будет хорошо." И это можно как бы автоматизировать, выгрузить из trunk версию и загрузить в release... В принципе ради ветвления я начал смотреть как бы прикрутить dvcs к 1С... Жду 8.2.16, если кардинально не поменяется, что либо в выгрузке/загрузке файлов конфигураций, надо будет все таки в v8reader добавлять экспорт дерева конфигурации в файловую систему.
#20
by Лефмихалыч
Фткание красными глазами в tool_1cd дало результаты - я понял, где там захваты хранятся - они хранятся в таблице OBJECTS, как ни странно. Осталась одна проблема - как узнать по objid, что это за объект? Есть тут спецы по внутренним идентификаторам метаданных? Попробовал ЗначениеВСтрокуВнутр от пустой ссылки в режиме предприятия, но там какой-то другой гуид.
#22
by Лефмихалыч
Всё просто. Ну, как то есть просто?.. Не просто на самом деле ни фига, но решаемо. Захваты живут в таблице OBJECTS, имена и классы объектов хранятся в таблице HISTORY. Имея OBJECTS.Objid, можно найти его в HISTORY. Оттуда серией переходов по HISTORY.Parentid можно выйти на один из ГУИДов из макета вот этой обработки и из этого понять, что это за объект. Геморройно, но, учитывая, что имя объекта может поменяться, другого способа, видимо, нет.
#23
by Лефмихалыч
, а снегопат чего может? Он может объединить конфу с файлом? ЗЫ Понимаю, что звучит дико, но мало ли что и вдруг...
#25
by Лефмихалыч
ну, даже предположим, что имена объектов заранее известны. Я к чему клоню - подключенную к хранилищу конфигурацию нельзя обновить загрузкой cf-ника. Можно обновить только сравнением/объединением. Вот я и подумал - может ли снегопат сделать объединение без сравнения. Чтобы я какое-нить регламентное задание или еще как время от времени запускал для синхронизации не захваченных объектов. Дюже руками работать не хочется в этом плане, а хочется наоборот - автоматизацяйца...
#26
by pumbaEO
В принципе сейчас через скрипты можно послать команду "Сравнить, объединить с конфигурацией из файла!" Потом перехватить событие выбора пути к cf, передать правильный путь к cf файлу. В теории, когда появиться диалог сравнения через send key можно послать Ctrl+Enter, единственное не знаю какие там диалоги появляются для заблокированных объектов.
#27
by Лефмихалыч
ни каких - у всего, что не захвачено, галки не проставятся. Ноя понял из твоего ответа, что сейчас вариантов нет, а когда появятся, то это будет адский велосипед :) Ладноть, будем довольствоваться отчетами.
#28
by pumbaEO
почему, велосипед? Если не захвачено и галки не проставятся, то часа 2 на скрипт. Тем более примеры работы есть: для перехвата выбора файла Clipboard.js, для диалога сравнения traymessage.js.
#29
by pumbaEO
Пример traymessage.js после окончания сравнения выводит сообщение пользователю, тебе надо будет послать send key и готово.
#31
by Лефмихалыч
главным образом потому, что все эти круть-верть на сервере не поедут (ну, или почти не поедут). Так что это по сути то же самое, что руками галки проставить по списку, только дороже - т.к. снегопат денег стоит (что само по себе, конечно, правильно).
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- Лишние субконто по счету при обновлении
- Работа файловой базы 8.2 под ОС Lunix
- Как программно можно получить префикс базы в РИБ 8.2
- регламентый обмен данными как-то странно работает
- Значение не является значением объектного типа (CreateObject)
- Высота и биссектриса в прямоугольном треугольнике
- v7: unrecognized field name sp4057
- v7: Можно ли взять Акт сверки для ТиС 77 с диска ИТС?
- Перенос документов из УТ 10.3 в БП 2.0
- v8: УТ 11 Внешний отчет. Нет итогов.
- УТ 11 и регистр ГрафикДвиженияТоваров
- ЗУП 2.5.46.1 - Прием на работу сотрудника
- Параметры вирт. таблицы "ОстаткиИОбороты"
- УТ 11 как вести данные о сертификатах номенклатуры
- Премия по отработанным дням, средний заработок
- Удалить запись периодического регистра сведений
- 1с 8.1 Удалить записи регистра, выбранные запросом
- Классификатор банков Беларусии.
- БГУ где хранится учреждение
- Как автоматически заполнить поле табличной части при выборе другого поля