0. Elisy 919 23.02.15 12:28 Сейчас в теме

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

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

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

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

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

Итого: Как концепт - плюс, реализация - минус(велосипед).
ya.Avoronov; ojiojiowka; jobkostya1c8; +3 Ответить
5. jobkostya1c8 24.02.15 09:30 Сейчас в теме
Посмотрел. Вижу структурированный каталог с описанием объектов 1С 8 на одной странице в *.txt и *.xml. В чем удобство? Только если это корпоративный стандарт работы. Видно, правда что все на одной странице и проще найти что-то в модулях, но зачем?!
7. pumbaE 611 24.02.15 09:39 Сейчас в теме
(5) kostyaomsk, все ради этого , и этого . Скорость сравнения значительно быстрее чем у хранилища, скорость сравнения 3х веток значительно лучше чем у 1с(у 1с даже нет сравнения 3х cf файлов(от вендора, вашего измененого, от вендора нового)), в git есть возможность частичного объединения (когда вы объединили 2 или 3 подиситемы, разрешели конфликты и вечером сохранили промежуточный результат), в 1с такого нет.
kote; jobkostya1c8; +2 Ответить
8. jobkostya1c8 24.02.15 09:44 Сейчас в теме
(7) pumbaE, может быть для таких специфических задач и нужны сторонние решения, но, чувствую этот самый "гит" платный?
9. minimajack 52 24.02.15 10:17 Сейчас в теме
(8) kostyaomsk, Git свободный продукт, распространяется бесплатно. Можно поднять свой приватный сервер.
Публичные популярные репозитории:
на гитхабе публичные бесплатные, приватные - платные
на битбакете бесплатные и публичные и приватные
10. awk 688 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 919 24.02.15 12:43 Сейчас в теме
Кстати, впервые статью публиковал на Хабре. На нем можно найти много хороших и дельных комментариев
http://habrahabr.ru/post/248303/
13. Serg82 35 24.02.15 13:41 Сейчас в теме
Идея интересная. Теперь осталось написать open IDE для 1с с кучу плагинами. )
14. Elisy 919 24.02.15 15:09 Сейчас в теме
(13) Serg82,
Эта идея идет в комплекте ))), только за основу предлагается взять готовую IDE:
Миниконфигуратор 1С на Visual Studio
http://infostart.ru/public/324382/
15. awk 688 24.02.15 15:18 Сейчас в теме
(14) Есть другое предложение. Взять эклипс.
16. Elisy 919 24.02.15 15:29 Сейчас в теме
(15) awk,
Проект из (14) на уровне фантазий пока. Сейчас в нем нет привязки к конкретной IDE. На вход ему поступает C# csproj-проект. А сам проект не важно в какой IDE сформирован.
17. Serg82 35 03.03.15 06:53 Сейчас в теме
http://www.pcweek.ru/business/article/detail.php?ID=164640
«1С» большое внимание уделяет развитию отношений с независимыми разработчиками прикладных решения на базе своей платформы, и здесь важная роль отводится совершенствованию инструментальных средств. Как сообщил руководитель отделения разработки ПО фирмы «1С» Сергей Нуралиев, начата работа по созданию качественно новой версии средств разработки на базе открытой платформы Eclipse с возможностью использования Java-технологий.

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

Вакансии

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

Senior 1C Developer ЛЮБОЙ ГОРОД
Москва
зарплата от 80 000 руб.
Полный день

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

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

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