Публикация конфигурации 1С на GitHub

0. Elisy 947 23.02.15 12:28 Сейчас в теме
Статья показывает, как можно подготовить конфигурацию 1С к публикации в системах версионирования, отличных от хранилища конфигурации 1C. В операции задействован .Net framework и C#, позволяющий аккуратно распределить проект 1С по папкам.
Пример публикации конфигурации на основе старых обновлений БСП четырехлетней давности (с 1.0.7.5 по 1.1.3.1) можно посмотреть по адресу https://github.com/elisy/ssl . Таким же образом теоретически можно публиковать конфигурации в другие системы версионирования.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. izidavld 113 24.02.15 00:14 Сейчас в теме
Вообще инструментария для методологии CI, работы с тем же github, а тем более применение unittest-ов в 1С сильно не хватает. Нашелся бы умелец... )
6. pumbaE 24.02.15 09:33 Сейчас в теме
(1) izidavld, про тестирование здесь http://infostart.ru/public/326820/ , http://infostart.ru/public/328695/
Для ci использую jenkins, можно teamcity, некоторые даже bamboo(но сложнее).
2. jobkostya1c_ERP 97 24.02.15 08:05 Сейчас в теме
Посмотрел реализацию альтернативного механизма. Так полагаю, "подсад" на разработчика? В чем получается практическое преимущество в отличие от стандартного механизма хранилища?
Если только большая надежность хранения данных (выгрузка текстов в XML пишут даже помогает увидеть глюки стандартного сравнения и объединения при обновлениях)?
Путешествовать по веб-каталогу еще затруднительнее. В конфигураторе то сразу видно где что и как?
Прикрепленные файлы:
3. minimajack 77 24.02.15 08:32 Сейчас в теме
(2) kostyaomsk, вы смотрите не туда
в гите смотреть сюда
12. Elisy 947 24.02.15 12:50 Сейчас в теме
(2) kostyaomsk,
В чем получается практическое преимущество в отличие от стандартного механизма хранилища?

Преимущества GitHub по сравнению с хранилищем конфигураций 1С: ветвления, встроенный багтрэккер, возможность ревизии и обсуждения кода, исправление кода в браузере, отчеты и графики, открытый API.
4. pumbaE 24.02.15 09:20 Сейчас в теме
1. Нет разбора толстых форм, которые не так просто раскладываются.
2. Нет сборки обратно, я поменял текст в файле модуля, как мне обратно загрузить это все в cf файл?
3. При загрузке обратно из исходников поведение и результат сборки отличаются от ручного варианта и автоматического.
4. Для макетов и сейчас нет никакой возможности нормально смержить результат, а для просмотра различий можно этот xml преобразовать в табличный документ и рассматривать различия с помощью стандартных средств 1с.
5. Для кириллицы необходимы специфичные настройки git.
6. В некоторых случаях длина пути для git не должна превышать 260 символов (в windows) - для длинных наименований метаданных это часто встречается.

Итого: Как концепт - плюс, реализация - минус(велосипед).
ya.Avoronov; ojiojiowka; jobkostya1c_ERP; +3 Ответить
5. jobkostya1c_ERP 97 24.02.15 09:30 Сейчас в теме
Посмотрел. Вижу структурированный каталог с описанием объектов 1С 8 на одной странице в *.txt и *.xml. В чем удобство? Только если это корпоративный стандарт работы. Видно, правда что все на одной странице и проще найти что-то в модулях, но зачем?!
7. pumbaE 24.02.15 09:39 Сейчас в теме
(5) kostyaomsk, все ради этого , и этого . Скорость сравнения значительно быстрее чем у хранилища, скорость сравнения 3х веток значительно лучше чем у 1с(у 1с даже нет сравнения 3х cf файлов(от вендора, вашего измененого, от вендора нового)), в git есть возможность частичного объединения (когда вы объединили 2 или 3 подиситемы, разрешели конфликты и вечером сохранили промежуточный результат), в 1с такого нет.
kote; jobkostya1c_ERP; +2 Ответить
8. jobkostya1c_ERP 97 24.02.15 09:44 Сейчас в теме
(7) pumbaE, может быть для таких специфических задач и нужны сторонние решения, но, чувствую этот самый "гит" платный?
9. minimajack 77 24.02.15 10:17 Сейчас в теме
(8) kostyaomsk, Git свободный продукт, распространяется бесплатно. Можно поднять свой приватный сервер.
Публичные популярные репозитории:
на гитхабе публичные бесплатные, приватные - платные
на битбакете бесплатные и публичные и приватные
10. awk 737 24.02.15 11:49 Сейчас в теме
(7) pumbaE, gradle скрипт для сборок-разборок. тебе должно понравиться.


// Очистить директории
task clean {
    delete 'src'
    mkdir 'src'
}

// Выгрузить конфигурацию в текстовые файлы
task dumpSrc(type:Exec) {
	workingDir './'
 	standardOutput = new ByteArrayOutputStream()
	args = ['DESIGNER', '/F"./db"', '/DumpConfigToFiles"./target"'];
	executable = 'C:/Program Files (x86)/1cv8/8.3.5.1443/bin/1cv8.exe'
	
 	ext.output = {
    	return standardOutput.toString()
  	}
}

// Запуск конфигуратора
task conf(type:Exec) {
	workingDir './'
 	standardOutput = new ByteArrayOutputStream()
	args = ['DESIGNER', '/F"./db"'];
	executable = 'C:/Program Files (x86)/1cv8/8.3.5.1443/bin/1cv8.exe'
	
 	ext.output = {
    	return standardOutput.toString()
  	}
}

// Загрузка конфигурации из исходников
task loadSrc(type:Exec) {
	workingDir './'
 	standardOutput = new ByteArrayOutputStream()
	args = ['DESIGNER', '/F"./db"', '/LoadConfigFromFiles"./target"'];
	executable = 'C:/Program Files (x86)/1cv8/8.3.5.1443/bin/1cv8.exe'
	
 	ext.output = {
    	return standardOutput.toString()
  	}
}

// Построить каталоги
task imp(type: Copy) {
    from 'target'
    into 'src'
    // Исключено из-за непонятных ошибок
    exclude '**/*.cf'
    rename { String fileName ->
        fileName = fileName.replace('.','/')
        if(fileName.toLowerCase().endsWith('txt')) {
        	fileName = fileName.replace('/txt','.oneC')
        } else { 
    		fileName = fileName.replaceAll('(/[^/]+)/([^/]+)$','$1/$1.$2')
    	}
    	fileName
    }

}
Показать
11. Elisy 947 24.02.15 12:43 Сейчас в теме
Кстати, впервые статью публиковал на Хабре. На нем можно найти много хороших и дельных комментариев
http://habrahabr.ru/post/248303/
13. Serg82 24.02.15 13:41 Сейчас в теме
Идея интересная. Теперь осталось написать open IDE для 1с с кучу плагинами. )
14. Elisy 947 24.02.15 15:09 Сейчас в теме
(13) Serg82,
Эта идея идет в комплекте ))), только за основу предлагается взять готовую IDE:
Миниконфигуратор 1С на Visual Studio
http://infostart.ru/public/324382/
15. awk 737 24.02.15 15:18 Сейчас в теме
(14) Есть другое предложение. Взять эклипс.
16. Elisy 947 24.02.15 15:29 Сейчас в теме
(15) awk,
Проект из (14) на уровне фантазий пока. Сейчас в нем нет привязки к конкретной IDE. На вход ему поступает C# csproj-проект. А сам проект не важно в какой IDE сформирован.
17. Serg82 03.03.15 06:53 Сейчас в теме
http://www.pcweek.ru/business/article/detail.php?ID=164640
«1С» большое внимание уделяет развитию отношений с независимыми разработчиками прикладных решения на базе своей платформы, и здесь важная роль отводится совершенствованию инструментальных средств. Как сообщил руководитель отделения разработки ПО фирмы «1С» Сергей Нуралиев, начата работа по созданию качественно новой версии средств разработки на базе открытой платформы Eclipse с возможностью использования Java-технологий.

Ждем Eclipse)
18. lustin 04.03.15 08:36 Сейчас в теме
(17) Serg82, около 2-ух месяцев до превью осталось. Вроде как.
19. Elisy 947 10.03.15 06:41 Сейчас в теме
Обработка Xml-выгрузки будет доступна здесь после модерации:
http://infostart.ru/public/335018/
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

Программист 1С
Москва
зарплата от 200 000 руб.
Полный день

Аналитик
Москва
зарплата от 150 000 руб. до 300 000 руб.
Полный день

Системный архитектор
Москва
зарплата от 150 000 руб.
Полный день

Ведущий консультант аналитик 1С ERP, УХ
Ульяновск
зарплата от 120 000 руб.
Полный день