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

02.07.24

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

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

Файлы

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

Наименование Скачано Купить файл
Расширение с исправлением:
.cfe 12,40Kb
1 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Ошибка возникает на версии СППР 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 расширение

См. также

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

Проектная разработка в 1С живет в условиях жестких дедлайнов, меняющихся команд и нестабильных CI/CD. В статье показываем, как быстро и без лишних затрат внедрить Git на ERP-проектах, продать идею себе и команде и избежать типичных подводных камней. Разберем ветвление, подходы к командной работе, интеграцию с таск-трекерами и особенности тяжелых конфигураций.

04.09.2025    6377    bozo    42    

12

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

Плагин, расширяющий функциональность EDT, предоставляя возможность работы с хранилищем конфигурации 1С без использования 1С:ГитКонвертер.

04.08.2025    5637    ZigRinat85    7    

36

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

Дорогой дневник, мне не подобрать слов, чтобы описать боль и унижение, которые я испытал за последнее время, моя жизнь никогда не будет прежней... мне не удалось найти механизма поставки расширения конфигурации... но зато я научился это делать с помощью команд запуска "1С:Предприятие" и GIT...

1 стартмани

29.07.2025    3267    4    gorsheninsn    6    

27

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

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

22.07.2025    7443    ktb    17    

38

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

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

14.07.2025    3231    bborisko    0    

9

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

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

11.06.2025    4623    AlexF1    4    

9

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

В процессе использования 1С:EDT и репозитория Git для обновлений релизов доработанных конфигураций появилась необходимость в регулярной загрузке конфигураций от вендора 1С в Git-репозиторий. Описанное в статье решение позволяет автоматизировать эту операцию и может быть полезным специалистам, занимающимися обновлениями с использованием 1C:EDT+Git

21.05.2025    5946    vladimir_iclsoft    3    

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

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

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


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

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

и все заработало!
Student1C; Alex_Iz; Live; +3 Ответить
Для отправки сообщения требуется регистрация/авторизация