Загрузка метаданных в СППР под Linux (исправление ошибки)

02.07.24

Разработка - Групповая разработка (Git, хранилище)

Столкнулся с проблемой при загрузке метаданных в СППР из GitLab на сервере 1С под Linux (РЭД ОС 7.3). При загрузке метаданных конфигурации, процесс загрузки длился несколько секунд и "благополучно" (без сообщений об ошибке) завершался. При этом метаданные не загружались.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Расширение с исправлением:
.cfe 12,40Kb
1
1 Скачать (1 SM) Купить за 1 850 руб.

Ошибка возникает на версии СППР 2.0.10.8. На версии 2.0.12.9 предположительно тоже, так как изменений в описанных ниже модулях не произошло.

В ходе разбирательств выяснились два момента:

  1. Для загрузки файлов конфигурации из Git-репозитория, создается файл скрипта. И проблема заключается в том, что этот файл записывается без признака x (executable) и командой bash не запускается. А еще, под Linux, по какой-то причине, файл сохраняется в формате dos, а не unix (из за символов на конце строк скрипт выполняется с ошибкой). Решить эту проблему удалось с помощью команды chmod и утилиты dos2unix
     
     Установка dos2unix

    И пришлось немного дописать код модуля: ОбщийМодуль.ОбщегоНазначенияСППР -> Функция ПолучитьФайлыИзGIT(...)
    Во всех местах, где встречается конструкция: 
    Если ЭтоWindowsСервер Тогда
    	ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
    Иначе
    	ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.Системная);
    КонецЕсли;

    сделал вставку
     

    Если ЭтоWindowsСервер Тогда
    	ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
    Иначе
    	ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.Системная);
    	//Вставка
    	ЗапуститьПриложение("chmod a+x " + ФайлКомандыGit, КаталогGitРепозитория, Истина);
    	ЗапуститьПриложение("dos2unix " + ФайлКомандыGit, КаталогGitРепозитория, Истина);
    	//КонецВставки
    КонецЕсли;

    Честно сказать, в Linux не силен, так что если кто подскажет, как сделать правильнее, буду благодарен )

  1. После загрузки файлов конфигурации из репозитория начинается их разбор. Но в коде, пути к файлам Linux содержат явным образом указанный разделитель "\", по этому элементы метаданных создавались с ошибками. Для исправления внес изменения в код модуля: ОбщийМодуль.ЗагрузкаМетаданныхEDT -> Процедура ОбработатьОбъектыСодержащиеСсылкиПоТипамМетаданных(Параметры)

    все строки вида
    ТипЗначения = СтрСоединить(ЭлемТипЗнч, "\");
    заменить на
    ТипЗначения = СтрСоединить(ЭлемТипЗнч, ПолучитьРазделительПути());


После этих изменений, метаданные начали корректно загружаться.

СППР загрузка метаданных git расширение

См. также

1С-программирование DevOps и автоматизация разработки Групповая разработка (Git, хранилище) DevOps для 1С Программист Стажер Платформа 1С v8.3 Платные (руб)

Использования систем контроля версий — стандарт современной разработки. На курсе научимся использованию Хранилища 1С и GIT при разработке на 1С:Предприятие 8. Разберем подходы и приемы коллективной разработки, научимся самостоятельно настраивать системы и ориентироваться в них.

4900 руб.

29.06.2022    12085    104    4    

134

Групповая разработка (Git, хранилище) Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Когда в хранилище одновременно разрабатывают несколько команд, сортировка сделанного и несделанного при формировании релиза и проведение code review по задачам превращаются в непроходимый квест. В таких случаях нужен бранчинг. Расскажем об опыте перехода на новую схему хранения кода для ИТ-департамента.

23.09.2024    3200    kraynev-navi    3    

26

Групповая разработка (Git, хранилище) Программист Бесплатно (free)

Называть Git новой технологией – уже смешно, но для многих 1С-ников это действительно «новое и неизведанное». Расскажем о плюсах и минусах двух главных систем контроля версий в мире 1С: Git и хранилища.

17.09.2024    7849    Golovanoff    69    

26

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во многих командах незаслуженно забывают о том, что в базе меняются расширения (как от вендора, так и собственные) и внешние отчеты и обработки. Вплоть до того, что релиз происходит каждый день – меняются печатные формы, отчеты, обработки. Расскажем о том, как выгружать в Git не только изменения конфигурации рабочего контура, но и файлы внешних обработок и расширений.

05.09.2024    2470    ardn    12    

15

EDT Групповая разработка (Git, хранилище) Программист Платформа 1С v8.3 Бесплатно (free)

Заказчики любят EDT+Git за прозрачность и контроль качества. А у разработчиков есть две основные причины не любить EDT – это тормоза и глюки. Расскажем о том, что нужно учесть команде при переходе на EDT+Git.

14.08.2024    7950    lekot    34    

8

Групповая разработка (Git, хранилище) Программист Платформа 1С v8.3 Бесплатно (free)

В «долгоиграющих» проектах стандартный захват объектов 1С в хранилище может привести к длительным простоям других разработчиков. Но и создавать под каждую доработку отдельное хранилище, чтобы использовать технологию разветвленной разработки конфигураций от фирмы «1С» – избыточно. Расскажем о том, как разрабатывать в отдельной базе без ожиданий, а потом с легкостью перенести изменения в хранилище, используя основную идею технологии 1С – конфигурацию на поддержке хранилища.

05.08.2024    4809    sinichenko_alex    16    

25

Групповая разработка (Git, хранилище) Программист Руководитель проекта Стажер Бесплатно (free)

Про изменения и новинки в агрегаторе открытых проектов OpenYellow, которые появились с момента его создания: про портал, Github и Telegram

15.07.2024    3525    bayselonarrend    8    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Armando 1401 05.07.24 21:42 Сейчас в теме
Есть подозрение, что разработчики СППР ни разу его не тестировали в Linux. Загрузка метаданных из хранилища тоже не работает.
2. check2 380 23.07.24 07:38 Сейчас в теме
(1) 100% проверенная инфа они работают под форточками.
3. bo0s 17 09.08.24 23:18 Сейчас в теме
Доброго времени суток, может подскажете почему может грузить метаданные частично причем без каких либо ошибок ?
5. Live 42 03.09.24 14:29 Сейчас в теме
(3) Посмотрите имена метаданных какие формируются. У меня такое было из-за некорректного разделителя пути (если речь идет о загрузке под Linux). Как раз это вторая из двух проблем.
4. newtraveller 24 30.08.24 17:32 Сейчас в теме
Спасибо, добрый человек! В файловом варианте на ubuntu 22.04 так же из гитлаба не загружалось.

Мне помогла замена на

ТипЗначения = СтрСоединить(ЭлемТипЗнч, ПолучитьРазделительПути());


и добавить аргумент в запись файла скрипта (пример такой в этой же конфигурации в другом месте есть):

		Если ЭтоWindowsСервер Тогда
			ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.OEM);
		Иначе
			ФайлКоманды.Записать(ФайлКомандыGit, КодировкаТекста.Системная, Символы.ПС);
		КонецЕсли;

и все заработало!
Alex_Iz; Live; +2 Ответить
Оставьте свое сообщение