|
1 | | -/////////////////////////////////////////////////////////////////////////////////////////////// |
| 1 | +/////////////////////////////////////////////////////////////////////////////////////////////// |
2 | 2 | // |
3 | 3 | // Модуль основан на проекте v83unpack (https://github.com/xDrivenDevelopment/v83unpack) |
4 | 4 | // и является скорее глубоким рефакторингом под 1Script, нежели самостоятельной разработкой. |
|
667 | 667 |
|
668 | 668 | Перем ТаблицаВерсий; |
669 | 669 | Перем ТаблицаПользователей; |
| 670 | + Перем ТаблицаМеток; |
670 | 671 |
|
671 | 672 | ЧтениеБазыДанных = Новый ЧтениеТаблицФайловойБазыДанных; |
672 | 673 | ЧтениеБазыДанных.ОткрытьФайл(ФайлХранилища); |
673 | 674 | Попытка |
674 | | - Таблицы = ЧтениеБазыДанных.ВыгрузитьТаблицыВXML("USERS;VERSIONS"); |
| 675 | + Таблицы = ЧтениеБазыДанных.ВыгрузитьТаблицыВXML("USERS;VERSIONS;LABELS"); |
675 | 676 | ТаблицаВерсий = ЧтениеБазыДанных.ПрочитатьТаблицуИзXml(Таблицы["VERSIONS"]); |
676 | 677 | ТаблицаПользователей = ЧтениеБазыДанных.ПрочитатьТаблицуИзXml(Таблицы["USERS"]); |
| 678 | + ТаблицаМеток = ЧтениеБазыДанных.ПрочитатьТаблицуИзXml(Таблицы["LABELS"]); |
677 | 679 | Исключение |
678 | 680 | ЧтениеБазыДанных.ЗакрытьФайл(); |
679 | 681 | ВызватьИсключение; |
|
683 | 685 |
|
684 | 686 | ТаблицаВерсий = КонвертироватьТаблицуВерсийИзФорматаБД(ТаблицаВерсий); |
685 | 687 | ТаблицаПользователей = КонвертироватьТаблицуПользователейИзФорматаБД(ТаблицаПользователей); |
| 688 | + ТаблицаМеток = КонвертироватьТаблицуМеток(ТаблицаМеток); |
686 | 689 |
|
687 | | - ДополнитьТаблицуВерсийИменамиАвторов(ТаблицаВерсий, ТаблицаПользователей); |
| 690 | + ДополнитьТаблицуВерсийИменамиАвторов(ТаблицаВерсий, ТаблицаПользователей, ТаблицаМеток); |
688 | 691 | ТаблицаВерсий.Сортировать("НомерВерсии"); |
689 | 692 |
|
690 | 693 | Возврат ТаблицаВерсий; |
|
754 | 757 | Возврат ТаблицаВерсий; |
755 | 758 | КонецФункции |
756 | 759 |
|
| 760 | +Функция КонвертироватьТаблицуМеток(Знач ТаблицаБД) |
| 761 | + ТаблицаМеток = НоваяТаблицаМеток(); |
| 762 | + |
| 763 | + Для Каждого СтрокаБД Из ТаблицаБД Цикл |
| 764 | + НоваяСтрока = ТаблицаМеток.Добавить(); |
| 765 | + НоваяСтрока.НомерВерсии = Число(СтрокаБД.VERNUM); |
| 766 | + НоваяСтрока.Метка = СтрокаБД.NAME; |
| 767 | + КонецЦикла; |
| 768 | + |
| 769 | + Возврат ТаблицаМеток; |
| 770 | + |
| 771 | +КонецФункции |
| 772 | + |
757 | 773 | Функция КонвертироватьТаблицуПользователейИзФорматаБД(Знач ТаблицаБД) |
758 | 774 | ТаблицаПользователей = НоваяТаблицаПользователейХранилища(); |
759 | 775 |
|
|
769 | 785 |
|
770 | 786 | КонецФункции |
771 | 787 |
|
| 788 | +Функция НоваяТаблицаМеток() |
| 789 | + |
| 790 | + Таблица = Новый ТаблицаЗначений; |
| 791 | + Таблица.Колонки.Добавить("НомерВерсии"); |
| 792 | + Таблица.Колонки.Добавить("Метка"); |
| 793 | + |
| 794 | + Возврат Таблица; |
| 795 | + |
| 796 | +КонецФункции |
| 797 | + |
772 | 798 | Функция НоваяТаблицаИсторииВерсий() |
773 | 799 |
|
774 | 800 | Таблица = Новый ТаблицаЗначений; |
|
795 | 821 |
|
796 | 822 | КонецФункции |
797 | 823 |
|
798 | | -Процедура ДополнитьТаблицуВерсийИменамиАвторов(Знач ТаблицаВерсий, Знач ТаблицаПользователей) |
| 824 | +Процедура ДополнитьТаблицуВерсийИменамиАвторов(Знач ТаблицаВерсий, Знач ТаблицаПользователей, Знач ТаблицаМеток) |
799 | 825 |
|
800 | 826 | Для Каждого Строка Из ТаблицаВерсий Цикл |
| 827 | + СтрокаМеток = ТаблицаМеток.Найти(Строка.НомерВерсии, "НомерВерсии"); |
| 828 | + Если Не СтрокаМеток = Неопределено Тогда |
| 829 | + Если Врег(Лев(СтрокаМеток.Метка, 15)) = Врег("--GitSyncAuthor") Тогда |
| 830 | + ПользовательДляЗамены = СокрЛП(Сред(СтрокаМеток.Метка, 17)); |
| 831 | + СтрокаПользователя = ТаблицаПользователей.Найти(ПользовательДляЗамены, "Автор"); |
| 832 | + Если СтрокаПользователя = Неопределено Тогда |
| 833 | + Сообщение = "Не удалось найти пользователя для замены <%1> в номере версии <%2>, метка <%3> - ПолучитьТаблицуВерсийИзФайлаХранилища1С"; |
| 834 | + Лог.Ошибка(СтроковыеФункции.ПодставитьПараметрыВСтроку(Сообщение, ПользовательДляЗамены, Строка.НомерВерсии, СтрокаМеток.Метка)); |
| 835 | + Иначе |
| 836 | + Строка.Автор = СтрокаПользователя.Автор; |
| 837 | + Строка.ГУИД_Автора = СтрокаПользователя.ГУИД_Автора; |
| 838 | + Продолжить; |
| 839 | + КонецЕсли; |
| 840 | + КонецЕсли; |
| 841 | + КонецЕсли; |
801 | 842 | строкаПользователя = ТаблицаПользователей.Найти(Строка.ГУИД_Автора, "ГУИД_Автора"); |
802 | 843 | Если строкаПользователя = Неопределено Тогда |
803 | 844 | Сообщение = "Не удалось найти автора коммита из хранилища 1С по номеру версии <%1>, комментарий <%2>, ГУИД-у <%3> - ПолучитьТаблицуВерсийИзФайлаХранилища1С"; |
|
0 commit comments