|
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