Единый семинар «1С» для бухгалтеров и руководителей

Хранилище 1С. Просмотр истории хранилища обработкой

Программирование - Инструментарий

Всем привет. Недавно пришлось реализовать выгрузку изменений из хранилища 1С для конфигураций, у которых установлен режим совместимости 8.2.13 и ниже. В рамках задачи появилась вот эта обработка, решил ее выложить отдельно, вдруг кому-то еще пригодится.

Адрес проекта на GitHub: https://github.com/BlizD/HistoryStorage

Выгрузка таблиц из хранилища выполняется программой Tool_ 1 C D (автор Валерий Агеев дал разрешение на использование). 

 

Спасибо, Александру за доп сведения:

на версии платформы 8.3.5.1383 у меня не заработало правильно. Файл читался, но типы "дата",

"булево" загружались строкой. Пришлось сделать парсинг строк.

 

UPDATE 081217:  

* В макет классов добавлены объекты: общие реквизиты.

UPDATE 090817:  

* В обработку добавлена колонка "Версия конфигурации".
* В макет классов добавлены объекты: РегистрРасчета, Форма списка регистра расчета, Перерасчет регистра расчета, 
Форма регистра бухгалтерии, НумераторДокументов.
* Добавлен реквизит "Вывести служебную таблицу" по этой таблице, можно определить класс объекта.
* Убраны лишние закомментированные блоки.

 

UPDATE 070717:  

Можно использовать и без копирования файла хранилища, это безопасно, по заверению тех кто уже давно использует Tool_1CD:

Артур Аюханов (artbear): А почему не пользоваться не монопольным доступом утилиты? 
я лично уже несколько лет юзаю этот режим с боевыми хранилищами для gitsync, проблем ни разу не было :)

Артур Аюханов (artbear): Да и не я один юзаю gitsync в течение нескольких лет, 
так что немонопольный доступ правильно работает и в бою можно юзать.

 

Пример работы:

В публикации файл выгрузки базы DT.

 

 
Старое описание

ВНИМАНИЕ! Используйте данную обработку в качестве эксперимента. 

ВНИМАНИЕ! Из за того, что выгрузка таблиц происходит не в монопольном режиме, поэтому лучше копируйте файл хранилище 1cv8ddb.1CD в другое место и просматривайте его. 

Из справки к Tool_1 C D

.

d:\Cloud\Dev\Tasks\Tool_1CD>ctool_1cd /?
cTool_1CD (с) 2009-2017 awa

 -ne
 -NotExclusively
   открыть базу не монопольно (Это небезопасно, возможны ошибки!).

 

 

 

 

Скачать файлы

Наименование Файл Версия Размер
Хранилище 1с. Просмотр истории обработкой:
.dt 781,72Kb
06.07.17
19
.dt 081217 781,72Kb 19 Скачать

См. также

Комментарии
1. Евгений Мартыненков (JohnyDeath) 290 06.07.17 21:34 Сейчас в теме
2. Антон Иванов (BlizD) 413 06.07.17 21:51 Сейчас в теме
(1)
А почему штатными средствами не обошлись?
Например вот так: https://github.com/Stepa86/1C-Gitter/blob/master/src/CommonModules/ПакетныйРежим/Ext/Modul­­e.bsl#L2


До этого и обходился штатными средствами, но для конфигураций в которых указан режим совместимости 8.2.13 и ниже
отчет выдается в другом формате он мне не подходил в нем нет нужных мне сведений:
нет версии, нет пользователя, нет даты версии, нет признака (добавлен, изменен, удален) или не было комментария.
+ сведений группируются по объектам метаданных.

Возможно, что то делал не так, но не получилось сформировать нужный мне отчет.
Bukaska; gubanoff; artbear; awa; JohnyDeath; +5 Ответить
3. Артур Аюханов (artbear) 902 07.07.17 10:49 Сейчас в теме
А почему не пользоваться не монопольным доступом утилиты?
я лично уже несколько лет юзаю этот режим с боевыми хранилищами для gitsync, проблем ни разу не было :)
4. Антон Иванов (BlizD) 413 07.07.17 11:01 Сейчас в теме
(3)
А почему не пользоваться не монопольным доступом утилиты?
я лично уже несколько лет юзаю этот режим с боевыми хранилищами для gitsync, проблем ни разу не было :)


Должен был предупредить, тех кто собирается использовать.
У меня просто такой практики еще нет, поэтому доверяюсь описанию к Tool_1CD.
5. Артур Аюханов (artbear) 902 07.07.17 11:15 Сейчас в теме
Да и не я один юзаю gitsync в течение нескольких лет,
так что немонопольный доступ правильно работает и в бою можно юзать.
JohnyDeath; +1 Ответить
6. Антон Иванов (BlizD) 413 07.07.17 11:29 Сейчас в теме
(5)
Да и не я один юзаю gitsync в течение нескольких лет,
так что немонопольный доступ правильно работает и в бою можно юзать.


Спасибо, поправил описание.
7. Евгений Мартыненков (JohnyDeath) 290 07.07.17 12:48 Сейчас в теме
Соглашусь с artbear: Tool_1CD корректно работает с файлом боевого хранилища уже давно и не на одном проекте.
Можно и не заморачиваться на постоянное копирование
8. Александр Губанов (gubanoff) 44 07.07.17 15:21 Сейчас в теме
(0) Работает. К тому же быстро работает. Очень крутая вещь. По задумке 1С, это можно получить парсингом файла по истории хранилища, который формируется при пакетном запуске конфигуратора:
/ConfigurationRepositoryReport <имя файла> [-NBegin <номер версии>] [-NEnd <номер версии>] [-GroupByObject] [-GroupByComment] — построение отчета по истории хранилища. 


но беда в том, что этот отчет формируется некорректно - всегда с группировкой по объектам, а не по комментариям (если я правильно помню, я даже посылал такую ошибку в 1С).

Не знал, что Tool_1CD умеет работать в командной строке, это тоже полезно было. Будем брать на вооружение.
9. Антон Иванов (BlizD) 413 07.07.17 15:32 Сейчас в теме
(8)
Александр, спасибо за отзыв.

но беда в том, что этот отчет формируется некорректно - всегда с группировкой по объектам, а не по комментариям (если я правильно помню, я даже посылал такую ошибку в 1С).


Для конфигураций в которых указан режим совместимости 8.2.16 и выше, отчет для парсинга выходит нормальный.
А вот для тех, что в режиме совместимости 8.2.13 и ниже то там да беда.
10. Артур Аюханов (artbear) 902 07.07.17 15:55 Сейчас в теме
(8)
Не знал, что Tool_1CD умеет работать в командной строке, это тоже полезно было. Будем брать на вооружение.

Эту возможность @awa (Валерий Агеев) по нашим просьбам давно добавил, сначала даже в GUI-версию
11. Дмитрий Фатов (Fatov_DI) 20.07.17 10:03 Сейчас в теме
(10) Извиняюсь за оффтоп, а эта программка случайно не может захватывать объекты в хранилище под определенным пользователем?
12. Антон Иванов (BlizD) 413 20.07.17 11:27 Сейчас в теме
(11)
Добрый день, Дмитрий.

Извиняюсь за оффтоп, а эта программка случайно не может захватывать объекты в хранилище под определенным пользователем?


Нет, такого функционала в ней не заложено.
13. Виталий Онянов (Tavalik) 598 01.08.17 19:21 Сейчас в теме
Спасибо. Возникла подобная задача, очень кстати подвернулась ваша конфигурация. С некоторыми допилами обработка заработала на нашем проекте.

Что хотелось бы добавить:

1. Почему-то вы не считываете версию конфигурации и метку из истории хранилища.
2. Если решение в виде конфигурации, то разумно было бы добавить подсистему, роль (не "ПолныеПрава", а на запуск обработки). В общем оформить в виде готового к объединению и внедрению решения. Я добавлял еще регистр сведений для хранения истории, регламентное задание для обновления регистра сведений по истории хранилища, подсистему, константы, роли.
3. Ловлю ошибки вида:
Ошибка! Не найдена строка в "мТЗИменаКлассов" для CLASSID = a2cb086c-db98-43e4-a1a9-0760ab048f8d
Ошибка! Не найдена строка в "мТЗИменаКлассов" для CLASSID = f2de87a8-64e5-45eb-a22d-b3aedab050e7
Ошибка! Не найдена строка в "мТЗИменаКлассов" для CLASSID = 274bf899-db0e-4df6-8ab5-67bf6371ec0b
Ошибка! Не найдена строка в "мТЗИменаКлассов" для CLASSID = d3b5d6eb-4ea2-4610-a3e2-624d4e815934

4. Уж извините, что придираюсь, но хотелось бы некой чистоты кода. Я имею в виду удаление отладочных комментариев, описание к экспортным процедурам и т. д. Например, вот это:
    #Если Тромбон тогда
		ТЗИзФайла = Новый ТаблицаЗначений;
	#Конецесли

Что за тромбон, простите? Я что-то не знаю в синтаксисе 1С? :)

Но в целом, все работает. Конечно, ставлю звездочку.
14. Антон Иванов (BlizD) 413 02.08.17 09:18 Сейчас в теме
(13)
Добрый день, Виталий.
Спасибо за отзыв.

1. Почему-то вы не считываете версию конфигурации и метку из истории хранилища.

Версия конфигурации считывается, по поводу метки - она не выгружается и в типовой выгрузке, только комментарий выгружается.

2. Если решение в виде конфигурации, то разумно было бы добавить подсистему, роль (не "ПолныеПрава", а на запуск обработки). В общем оформить в виде готового к объединению и внедрению решения. Я добавлял еще регистр сведений для хранения истории, регламентное задание для обновления регистра сведений по истории хранилища, подсистему, константы, роли.

Согласен с Вами, но данное решение не планировалось как готовое к объединению с чем то. Данная загрузка используется в конфигурации "Управление задачами" https://infostart.ru/public/552480/


3. Ловлю ошибки вида:

Это ошибки означают, что в макете "ИменаКлассов" нет записи для CLASSID.
Можете сказать из какой конфигурации такие ошибки появляются?
Если есть возможность, то скиньте конфигурацию и добавлю запись в макет.

4. Уж извините, что придираюсь, но хотелось бы некой чистоты кода. Я имею в виду удаление отладочных комментариев, описание к экспортным процедурам и т. д. Например, вот это:


Как вариант, могу выложить на Github данную разработку и там через Pull request исправите то, о чем описываете.

Что за тромбон, простите? Я что-то не знаю в синтаксисе 1С? :)
Но в целом, все работает. Конечно, ставлю звездочку.


Что касается Тромбон, данный подход был взять из мастер группы профессионального программирования от Евгения Гилева и Насипова Фарита.
Данной инструкции препроцессора в 1с точно нет, поэтому весь код который обрамлен этой конструкцией будет удален в режиме исполнения. Но при написании кода, данный подход позволяет избежать ошибок синтаксических, т.к. становятся доступны методы вызываемые через точку. Чаще всего данную конструкцию удобно использовать в подписках на событиях, там есть Источник, чтобы обратиться к его методам или свойствам достаточно вставить такую конструкцию:

#Если Тромбон Тогда
       Источник = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
#Конецесли
gubanoff; +1 Ответить
15. kiruha Д (kiruha) 363 08.08.17 17:37 Сейчас в теме
(14)

Что касается Тромбон, данный подход был взять из мастер группы профессионального программирования от Евгения Гилева и Насипова Фарита.
Данной инструкции препроцессора в 1с точно нет, поэтому весь код который обрамлен этой конструкцией будет удален в режиме исполнения. Но при написании кода, данный подход позволяет избежать ошибок синтаксических

Мы пишем
Если Ложь Тогда
       Источник = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
Конецесли

Без Тромбона ) и сворачивается
16. Антон Иванов (BlizD) 413 09.08.17 08:20 Сейчас в теме
(15)
С тромбоном всегда веселее :)
17. Виталий Онянов (Tavalik) 598 09.08.17 12:44 Сейчас в теме
(14)
Версия конфигурации считывается, по поводу метки - она не выгружается и в типовой выгрузке, только комментарий выгружается.

Я имею в виду версию конфигурации поставщика. Она есть в истории хранилища, но нет в обработке.

Можете сказать из какой конфигурации такие ошибки появляются?

УПП с большим числом доработок. Но я так понимаю, сама конфигурация не обязательна. Можно добавить новые объекты во все возможные ветки конфигурации и поместить в хранилище.

Данной инструкции препроцессора в 1с точно нет, поэтому весь код который обрамлен этой конструкцией будет удален в режиме исполнения

Интересный метод. Спасибо. Я обычно скрываю подобный код под комментарием.
20. Алексей Князьков (AKnyazkov) 09.10.17 09:15 Сейчас в теме
(14)
Добрый день, вместо Тромбон (что режет глаз) лучше писать:
#Если Клиент И Не Клиент Тогда
...
#КонецЕсли
21. Антон Иванов (BlizD) 413 09.10.17 14:15 Сейчас в теме
(20)
Добрый день, вместо Тромбон (что режет глаз) лучше писать:
#Если Клиент И Не Клиент Тогда
...
#КонецЕсли


Добрый день, Алексей.
Тут дело привычки, просто тромбон это гарантированное имя, по которому код точно не выполнится.
А вот инструкция препроцессора:
#Если Клиент И Не Клиент Тогда 

За нее всегда будет цепляться глаз и каждый раз надо думать, а вдруг тот кто писал это просто ошибся и зря поставил такое не выполнимое условие.
gubanoff; +1 Ответить
22. Алексей Князьков (AKnyazkov) 10.10.17 17:06 Сейчас в теме
(21)
Добрый день!
У меня такая конструкция даже добавлена в шаблон под названием "Заглушка", чтобы никто глазами не спотыкался, можно добавить комментарий ), а по поводу несуществующих команд препроцессору, вдруг их перестанут поддерживать и они станут вызывать ошибку (гипотетически) ?
Про привычки - согласен, люди ко всему привыкают )
23. Антон Иванов (BlizD) 413 11.10.17 11:44 Сейчас в теме
(22)
Добрый день, Алексей.

по поводу:
вдруг их перестанут поддерживать и они станут вызывать ошибку (гипотетически) ?


Сомневаюсь, что такое случиться, это будет означать, что могут быть проблемы и по другим конструкция препроцессора (если кто то в коде указал неправильное имя конструкции например &НаКлиенте1), что повлечет проблемы. Думаю вряд ли фирма 1с, пойдет на такой шаг.

Но даже если такое случиться, слово Тромбон отлично подходит для глобальной замены во всей конфигурации =)
18. Антон Иванов (BlizD) 413 09.08.17 18:30 Сейчас в теме
UPDATE 090817:

* В обработку добавлена колонка "Версия конфигурации".
* В макет классов добавлены объекты: РегистрРасчета, Форма списка регистра расчета, Перерасчет регистра расчета,
Форма регистра бухгалтерии, НумераторДокументов.
* Добавлен реквизит "Вывести служебную таблицу" по этой таблице, можно определить класс объекта.
* Убраны лишние закомментированные блоки.
19. Антон Иванов (BlizD) 413 09.08.17 18:32 Сейчас в теме
(13)
1. Почему-то вы не считываете версию конфигурации и метку из истории хранилища.

Добавил.

3. Ловлю ошибки вида:


Добавил в макет классов новые классы, теперь ошибки должны уйти.

4. Уж извините, что придираюсь, но хотелось бы некой чистоты кода. Я имею в виду удаление отладочных комментариев, описание к экспортным процедурам и т. д. Например, вот это:


Убрал часть закомментированных блоков, теперь должно быть чище немного.
24. Александр Губанов (gubanoff) 44 08.12.17 09:58 Сейчас в теме
(0) Еще раз спасибо за обработку. Применил у себя.
Что изменил/с чем столкнулся:
1. Добавил имя класса HTTPСервис
0fffc09c-8f4c-47cc-b41c-8d5c5a221d79	HTTPСервис

2. Не хватает имени класса ОбщийРеквизит, но у меня такого пока нет, поэтому и проблем нет.
3. Для хранилища с количеством версий 24566 файл HISTORY.XML получился 680 МБ и формировался более 10 минут. После этого загрузка не получилась из-за недостатка памяти на сервере 1С. Это связано с тем, что чтение файлов XML реализовано методом, который загружает сразу весь файл в ОЗУ:
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаXML);
	
	ПакетХранилищаXDTO = ФабрикаXDTO.Тип(ИмяПространстваИмен,ИмяПакетаXDTO);
	Если ПакетХранилищаXDTO = Неопределено Тогда
		//ВызватьИсключение "Ошибка! не удалось определить Тип пакета XDTO";
		ФайлХранилища = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML);
	Иначе
		ФайлХранилища = ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ПакетХранилищаXDTO);
	Конецесли;
Показать

что сделал - добавил параметры
-BlobToFile yes
и
-ParseBlob no
, чтобы blob строки из файла HISTORY выгружались в отдельные файлы. В результате выгрузка стала происходить еще медленнее, но файл HISTORY.xml стал весить 98Мб (+800 МБ blob-файлов), что позволило его загрузить на сервере без нехватки памяти.
4. Не заметил разницы между параметром
-ParseBlob no
и
-ParseBlob yes
. По справке, разница должна была быть - в одном случае blob должен был остаться зашифрованным, в другом нет.
5. По идее, чтение XML можно сделать последовательными методами, чтобы читать большие файлы. Так можно выиграть время при выгрузке файлов (не выделять blob), но потерять время на чтении файлов. Я подумал, что потери примерно одинаковые и последовательное чтение не делал.
6. Для хранилища с числом версий около 3000 выгрузка-загрузка истории с выделением BLOB файлов занимает около 5 минут. Без выделения blob будет быстрее, но нужно следить, чтобы памяти хватало на сервере 1С. В связи с этим самый печальный вывод - для оперативной работы в онлайн-режиме это медленно (даже для маленьких хранилищ). Поэтому ряд бонусов от истории хранилища невозможно использовать. Остается вариант с регламентной загрузкой по расписанию, но это не онлайн-режим.
7. Чтение через
ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ПакетХранилищаXDTO);
на версии платформы 8.3.5.1383 у меня не заработало правильно. Файл читался, но типы "дата", "булево" загружались строкой. Пришлось сделать парсинг строк.
26. Антон Иванов (BlizD) 413 08.12.17 10:14 Сейчас в теме
(24)
Добрый день, Александр.
Спасибо за отзыв, приятно, что обработка Вам пригодилась.

1. Добавил имя класса HTTPСервис
0fffc09c-8f4c-47cc-b41c-8d5c5a221d79 HTTPСервис


Подскажите как точно называется HTTPСервис? Он также проходит и при типовой выгрузке 1с?

2. Не хватает имени класса ОбщийРеквизит, но у меня такого пока нет, поэтому и проблем нет.

Да, с этим уже столкнулся где то 2-3 недели назад, все некогда было обновить обработку. Спасибо.

что сделал - добавил параметры
-BlobToFile yes
и
-ParseBlob no


Подскажите, куда Вы их добавили? Тоже добавлю в основную версию.

6. Для хранилища с числом версий около 3000 выгрузка-загрузка истории с выделением BLOB файлов занимает около 5 минут. Без выделения blob будет быстрее, но нужно следить, чтобы памяти хватало на сервере 1С. В связи с этим самый печальный вывод - для оперативной работы в онлайн-режиме это медленно (даже для маленьких хранилищ). Поэтому ряд бонусов от истории хранилища невозможно использовать. Остается вариант с регламентной загрузкой по расписанию, но это не онлайн-режим.


Самое правильное было ускорение, это если бы утилита Tool_1CD могла накладывать отбор на версии, которые надо выгружать.
У нас более 9000 версий, загружается через регл. задание, но для нас 5-10 минут это не проблема.

на версии платформы 8.3.5.1383 у меня не заработало правильно. Файл читался, но типы "дата", "булево" загружались строкой. Пришлось сделать парсинг строк.


Добавлю в описании.
28. Александр Губанов (gubanoff) 44 08.12.17 11:10 Сейчас в теме
(26)
Подскажите как точно называется HTTPСервис? Он также проходит и при типовой выгрузке 1с?
- не понял вопрос, это объект в ветке Общие - HTTP-сервисы, появились в платформе 8.3.

Подскажите, куда Вы их добавили? Тоже добавлю в основную версию.
добавил в функцию ВыгрузитьТаблицыХранилищаВФайлы, получилось вот так:
		ДобавитьВКомандуКлючЗначение(ТекстКоманды,,ИмяФайлаХранилища);
		ДобавитьВКомандуКлючЗначение(ТекстКоманды,"-ne");
		ДобавитьВКомандуКлючЗначение(ТекстКоманды,"-ex",КаталогВыгрузкиФайлов);
		ДобавитьВКомандуКлючЗначение(ТекстКоманды,"USERS,HISTORY,VERSIONS,OBJECTS");
		Если ОбщиеПараметры.мХранилищеКонфигурации.ВыгружатьBLOBОтдельно Тогда
			ДобавитьВКомандуКлючЗначение(ТекстКоманды,"-BlobToFile yes");
			ДобавитьВКомандуКлючЗначение(ТекстКоманды,"-ParseBlob no");
		КонецЕсли;
Показать


Самое правильное было ускорение, это если бы утилита Tool_1CD могла накладывать отбор на версии, которые надо выгружать.
согласен, но думаю, навряд ли автор это доработает.
30. Антон Иванов (BlizD) 413 08.12.17 11:44 Сейчас в теме
(28)
Александр,

- не понял вопрос, это объект в ветке Общие - HTTP-сервисы, появились в платформе 8.3.

Есть типовая (платформенная) выгрузка истории изменений из хранилища. И есть вот эта альтернативная выгрузка.
Важно, чтобы и типовая и альтернативная выгрузка на выходе получало одинаковое имя класса.

Типовая выгрузка это примерно вот такая строка запуска конфигуратора с ключами:
"C:\Program Files (x86)\1cv8\8.3.9.2170\bin\1cv8.exe" DESIGNER  /F "D:\Storage_transit\Kons" /N "UserStorage" /P "123" /ConfigurationRepositoryF "D:\Storage\Kons" /ConfigurationRepositoryN "UserStorage" /ConfigurationRepositoryP "123" /ConfigurationRepositoryReport "C:\\Temp\StorageHistory_08122017_114726.mxl" -NBegin "183"
32. Александр Губанов (gubanoff) 44 08.12.17 11:52 Сейчас в теме
(30)
Есть типовая (платформенная) выгрузка истории изменений из хранилища. И есть вот эта альтернативная выгрузка.
Важно, чтобы и типовая и альтернативная выгрузка на выходе получало одинаковое имя класса.
как использовать типовую выгрузку? Я не в курсе этого. Если речь об отчете по истории хранилища, так в нем нет идентификаторов.
33. Антон Иванов (BlizD) 413 08.12.17 11:57 Сейчас в теме
(32)
как использовать типовую выгрузку? Я не в курсе этого. Если речь об отчете по истории хранилища, так в нем нет идентификаторов.

Да, речь об отчете.
Неправильно выразился, да там нет идентификаторов.
Скажу по другому, важно, чтобы в альтернативной выгрузке было ровно такое же имя для метаданных, что и в типовой.
Чтобы не получилось так, что в типовой объект называется "HTTP-Сервис", а в альтернативной "HTTPСервис" т.е. без дефиса.
34. Александр Губанов (gubanoff) 44 08.12.17 12:00 Сейчас в теме
(33) да, так и называется HTTPСервис :)
Прикрепленные файлы:
35. Антон Иванов (BlizD) 413 08.12.17 12:05 Сейчас в теме
(34)
Спасибо добавлю в обработку чуть позже
29. Александр Губанов (gubanoff) 44 08.12.17 11:14 Сейчас в теме
(26)
У нас более 9000 версий, загружается через регл. задание, но для нас 5-10 минут это не проблема.
подскажите, для чего используете историю? При регламентной загрузке у меня только такие идеи к использованию:
1. самые часто/редко меняемые объекты - определять, нужен ли рефакторинг.
2. количество версий за период по программистам - для определения тренда скорости.

В онлайн-режиме можно было это дело связать с системой учета задач и ошибок.
31. Антон Иванов (BlizD) 413 08.12.17 11:51 Сейчас в теме
(29)
подскажите, для чего используете историю? При регламентной загрузке у меня только такие идеи к использованию:
1. самые часто/редко меняемые объекты - определять, нужен ли рефакторинг.
2. количество версий за период по программистам - для определения тренда скорости.


Это используется в конфигурации Управление задачами https://infostart.ru/public/552480/
Если в двух словах, то измененные метаданные связываются с конкретными задачами.
А задачи в свою очередь собираются в релиз, в документ выпуск релиза.
В котором уже видно, какие метаданные необходимо перенести в рабочую базу по этому релизу.

Вот пример видео на эту тему:
https://www.youtube.com/watch?v=XzWCFyrIPcI
27. Антон Иванов (BlizD) 413 08.12.17 10:39 Сейчас в теме
(24) Александр,

выложил на Github конфигурацию: https://github.com/BlizD/HistoryStorage
25. Антон Иванов (BlizD) 413 08.12.17 10:04 Сейчас в теме
UPDATE 081217:

* В макет классов добавлены объекты: общие реквизиты.
Оставьте свое сообщение