Git-репозитории для 1С-кода (опыт использования при небольших проектах)

16.08.19

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

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

Краткое содержание статьи:

  1. Установка Git для Windows
  2. Установка TortoiseGit (для удобства работы с git)
  3. Клонирование репозитория с файлами из облака на локальный ПК
  4. Внесение изменений в проект, выгрузка в файлы исходных кодов из конфигуратора
  5. Отправка изменений на сервер (commit и push)
  6. Получение измененных файлов с сервера (например, изменены другим разработчиком)
  7. Создание своего репозитория для новой задачи (в VSTS)

    
Многое уже было написано на тему контроля версий для 1С-кода, использование хранилищ конфигураций и тому подобное. Здесь я попытаюсь описать именно свой опыт и привести свои инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий", не будет ни форков, ни мерджа, ни фетча и т.п., только основы). 
Возможно, кому-то пригодится данный опыт для начала работы.
И ни в коем случае не хочется претендовать на то, что этот опыт лучший, но для маленькой команды, он оказался довольно эффективным. С удовольствием почитаю Ваши предложения по организации работы с хранилищами при разработке "не конфигураций".
Забегая вперед, скажу, что сейчас, когда вышла вполне вменяемая и пригодная к использованию версия 1C:EDT (Enterprise Development Tools), разработку непосредственно конфигураций перенесли в него, также с выгрузкой кода в git-репозиторий. Не всё в нем гладко, но зато работа с синтаксис-помощником намного удобнее, анализ кода "на лету" и многое другое (но эта тема претендует на совершенно другую статью и не будет обсуждаться здесь, если кому станет интересно, могу выложить небольшие инструкции по работе с git из ETD не через внутренний его механизм, а также через TortoiseGit, созданию нового проекта и загрузке в него изменений, сделанных через конфигуратор).

UPDATE: статья про EDT написана, см. тут ;)

Это вместо вступления, а теперь перейдем непосредственно к теме.

Предисловие к написанным ниже инструкциям:
Основное направление разработки у нас было не создание/редактирование конфигураций, а написание отчетов, обработок и расширений. Поэтому вариант с "хранилищем конфигураций" не рассматривался, как довольно тяжелое и немного замороченное в использовании решение. Поэтому было решено использовать какое-нибудь git-хранилище для маленьких проектов (именно под отчеты/обработки/расширения).
Так как работаю в государственном образовательном учреждении с крайне ограниченным бюджетом, то выделения средств на платные репозитории у нас не предполагались. Начинали мы думать об использовании репозитория три года назад, а тогда GitHub был еще платным в случае закрытых репозиториев (сейчас, после покупки его Microsoft, закрытые репозитории сделали бесплатными, если программистов не более трех). Поэтому на тот момент мы выбрали закрытые онлайн хранилища от Microsoft (которые позволяют работать до пяти программистов бесплатно) - а именно сервисы VSTS (visual studio online).
Почему заостряю на этом внимание - скриншоты в описанных ниже инструкциях будут сделаны именно из него. Но на самом деле это абсолютно не важно. Точно также можно делать и в случае с любым другим хранилищем, например, на гитхабе. Поэтому от скриншотов из "студии" можно немного абстрагироваться и приводятся они просто, чтобы дать представление о том, что можно делать.
Если Вы захотите тоже поработать именно с этим сервисом репозиториев, то данная инструкция поможет Вам быстрее его освоить.

Итак, в нашем примере будут использоваться следующие сведения и условия:
    1) Ссылка на общее хранилище (VSTS) для примера: mygit.visualstudio.com (домен третьего уровня задается при создании хранилища в данном сервисе, например, можно назвать его по имени Вашей организации)
    2) Пользователь для примера: user@outlook.com (имеющий соответствующий доступ к репозиторию на чтение/запись)
    3) Условимся, что в Git-репозиторий выкладывается не только исходный код, но и скомпилированная версия отчета/обработки/расширения для оперативного использования последней версии без необходимости ее "собирать из кода".

1. Установка Git для Windows
Чтобы начать работу с git, нам потребуется установить утилиту Git для Windows (рекомендуется скачивать дистрибутив с официального сайта git-scm.com/download/win).
Возможные примерные параметры при установке:
    - Выбрать все компоненты
    - Use Git from the Windows Command Prompt
    - Use the OpenSSL library
    - Checkout Windows-style, commit Unix-style line ending
    - Use MinTTY (the default terminal of MSYS2)
    - Enable file system caching
    - Enable Git Credential Manager

 

2. Для удобства работы с git (не через командную строку, а через контекстное меню проводника операционной системы) рекомендуется установить TortoiseGit (я его обычно называю просто "черепашкой").
Опять же скачиваем дистрибутив с официального сайта программы: tortoisegit.org/download
При необходимости там же можно скачать русский language pack.
Установка производится без особых дополнительных настроек. В конце рекомендуется согласиться на запуск мастера настройки, где зададим пути для запуска гит и пользователя, под которым будем работать с репозиториями:
    - Проверяем, что путь к ранее установленному git.exe указан верно:
    
    

    - В следующем окне мастера пишем имя (под ним будут делаться коммиты - т.е. написано, кто вносил изменения в код) и свой адрес почты (учетной записи с соответствующими правами на хранилище):
    
    
    
    - Настройку ключей в следующем окне производить не обязательно, поэтому можно пропустить, нажав "Готово":
    
    

3. Клонирование репозитория с файлами из облака на локальный ПК:
Чтобы начать работать над проектом, нужно создать его локальную "копию" у себя в системе.
Для этого переходим на сайт общих проектов VSTS (в нашем примере mygit.visualstudio.com), выбираем нужный проект, затем нажимаем Code и указываем нужный репозиторий (в данном сервисе один проект может содержать несколько репозиториев). Далее нажимаем ссылку Clone:

В открывшемся окне копируем HTTPS ссылку на репозиторий:

В проводнике создаем папку, в которой будет локально располагаться репозиторий (лучше всего назвать ее также, как репозиторий, чтобы потом было легче ориентироваться при возросшем количестве проектов), затем в контекстном меню данной папки выбираем пункт "Git Clone…" (этот пункт появляется после установки TortoiseGit):

В открывшемся окне вводим ранее скопированный URL репозитория и обязательно проверяем правильность пути папки, в которую он будет загружен (по умолчанию программа добавляет название репозитория к пути текущей папки, поэтому удалите лишнее, если потребуется):

По нажатию ОК будут запрошены учетные данные пользователя, после введения которого, репозиторий из облака загрузится в локальное хранилище.

Загрузка файлов из облака (полетела "черепашка"):

В локальную папку будет загружено содержимое выбранного репозитория:


4. Внесение изменений в проект

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

В случае расширений конфигурации: пункт меню "Конфигурация" - "Выгрузить конфигурацию в файлы":

В качестве места сохранения необходимо указать локальный репозиторий. Также после выгрузки файла необходимо туда же в корень разместить оригинал рабочего файла, если работа с ним происходила в другом месте (файл 1С формата erf  и т.п.), на случай, если другой разработчик не сможет "собрать" его из выгруженных файлов-исходников (XML) или нужно сразу использовать результат без перекомпилирования.


Примечание: замечено, что при выгрузке в файлы, если папка и файлы уже существовали, то они не всегда перезаписываются и остаются предыдущие версии. В этом случае необходимо выгрузить файлы в другую (пустую) папку, а затем скопировать их вручную в локальный репозиторий (предварительно очищенный). В этом случае перезапись неизмененных файлов не фиксируется, как изменение, и в коммите будут фигурировать только файлы, где было изменение кода.

5. Отправка изменений на сервер: (commit и push)

После выгрузки обновленных версий файлов из 1С нужно "зафиксировать" результат, т.е. сделать коммит.
В контекстном меню папки репозитория выбираем Git Commit:

В открывшемся окне пишем комментарий к коммиту (что мы изменили/добавили/удалили из предыдущей версии, чтобы другому разработчику при первом взгляде стало примерно понятно, чтобы было сделано) и выбираем измененные и добавленные файлы (ставим галочки у всех файлов, изменения которых нужно отправить в облако репозитория):

Затем нажимаем Commit. До отправки на сервер можно сделать несколько коммитов (отправки в облако при этом не происходит).
Теперь необходимо отправить изменения в облако, для этого в контекстном меню папки репозитория выбираем Git Sync:

В открывшемся окне видим все сделанные нами коммиты. Чтобы отправить их в облачный репозиторий, нажимаем кнопку "Push":


6. Получение измененных файлов с сервера (например, изменены другим разработчиком).
Допустим, теперь нам необходимо получить изменения, сделанные другим разработчиком. Предполагается, что локальная папка проекта у нам уже имеется (если нет, то нужно выполнить пункт 3).
В проводнике в контекстном меню локальной папки репозитория выбираем Git Sync - затем Pull (будут загружены последние версии файлов репозитория):

Ждем, когда загрузятся изменения, в итоге увидим коммиты, сделанные другими программистами, затем нажимаем Close (новые версии уже будут лежать в локальной папке).

7. Создание своего репозитория для новой задачи (пример в сервисе VSTS)
Если потребовалось создать репозиторий под новый проект, то делаем следующие действия.
На сайте облачного хранилища создаем новый репозитарий - New repository:

Указываем наименование (желательно на латинице, т.к. оно используется в URL) и соглашаемся с созданием README файла:

Далее подключаемся к нему, как написано в пункте 3, и располагаем там как выгруженные XML файлы 1С-решения, так и сам исходный файл.

Заключение:
Теперь в облаке можно смотреть историю изменения кода:

На данный момент у нас в этом хранилище около 50 проектов, работа с ними ведется постоянно тремя программистами при помощи методов, описанных выше. Преимущества использования git, наверное, описывать не требуется, так как все понимают для чего это нужно и чем это полезно. Даже если Вы являетесь единственным разработчиком проекта, всё равно рекомендуется использовать систему контроля версий, хотя бы для себя (всегда будет возможность откатиться на предыдущую версию в случае случайной порчи релиза, да и всегда самому интересно после push'а зайти да посмотреть, что Вы сегодня сделали и порадоваться своей работе, ну или наоборот расстроиться…). И не важно - код 1С это или любой другой код. Плюс можно дать доступ на просмотр коммитов и истории изменений кода Вашему начальству (менеджеру проектов или любому другому заинтересованному лицу), чтобы видели процесс Вашей работы наглядно (главное, чтобы не считали зарплату по количеству написанных строк  кода :).

Что мне не нравится в вышеназванном сервисе (VSTS): нет подсветки кода 1С. Поэтому если Вы только начали этим заниматься, то рекомендую воспользоваться новым предложением от GitHub (про бесплатный репозиторий) и организовывать хранилище уже там, т.к. на нем подсветка 1С-кода уже присутствует. 

Пример сравнения версий файла на GitHub:

Пример подсветки кода на GitHub:

 

git версионирование ДляЧайников начинающим коммит репозиторий

См. также

Системы контроля версий для 1С-разработчиков.

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

Основы командной разработки на 1С. Использование систем контроля версий при разработке на платформе 1С:Предприятие 8

4900 руб.

29.06.2022    9144    78    4    

110

Особенности национального Workflow: Github Actions и OneScript

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

Сегодня мы посмотрим на Github Actions - встроенный инструментарий Github для автоматизации рабочих процессов. Разберем, что это такое, зачем и причем тут OneScript.

25.03.2024    1186    bayselonarrend    3    

35

Автоматизация процесса разработки с помощью сервиса GitFlic

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

GitFlic – первая в России полностью самостоятельная реализация сервиса для хранения репозиториев с исходным кодом. За три года разработки сервис GitFlic стал полноценным инструментом, которым можно заменить GitLab, GitHub и BitBucket. Расскажем о том, как выстроить в GitFlic процесс автоматического тестирования, статического анализа кода и сборки приложений.

05.03.2024    1866    user1989937    6    

15

OpenYellow - рейтинг открытых GitHub репозиториев для платформы 1С:Предприятие

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

Обновляемый топ GitHub репозиториев для 1С по всем языкам программирования и еще немного рассуждений про open-source.

05.02.2024    3780    bayselonarrend    15    

61

Насколько глубок 1С-ный GitHub?

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

Open-source проекты - важная часть мира программного обеспечения. 1С привычно держится немного в стороне от глобальных трендов, но бросить холодный статистический взгляд на положение дел мне показалось небезынтересным.

22.01.2024    7843    bayselonarrend    50    

86

TCP прокси-сервер хранилища конфигурации 1С

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

Продолжение истории с прокси хранилища, но уже не на HTTP, а на TCP и без падений по памяти веб-сервера. Проверяем комментарии хранилища, вызываем веб-хуки, старты пайплайнов, gitsync по событию помещения версии в хранилище. И все это полностью на знакомом и понятном OneScript.

17.01.2024    2773    kamisov    17    

57

Отдай корень! Библиотека OneScript для получения информации о захваченных объектах в хранилище

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

Хранилище конфигурации 1С - это инструмент групповой разработки. Работают с хранилищем следующим образом: захватывают какой-либо объект, редактируют, потом отдают его в хранилище. Хранилище помечает уже захваченные объекты и не дает возможности захватить их другим пользователям. Это рождает и самый большой недостаток хранилища - невозможность работы с одним объектом нескольких пользователей, например в случае доработки разных методов в одном большом модуле. Корень конфигурации - это самый верхний ее узел. Только захватив корень, мы можем добавить в конфигурацию новые общие модули, документы, справочники, регистры и подобное. Только захватив корень можно изменить настройки поддержки конфигурации. Соответственно, если корень захвачен одним программистом, другой программист не может добавить новые объекты или снять что-то с поддержки. Потому то и всплывает эта фраза - отдай корень, мне нужно тоже что-то добавить.

26.12.2023    1336    ardn    1    

26

Git Code Review - инструмент для рецензирования кода

Групповая разработка (Git, хранилище) Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Абонемент ($m)

Git Code Review - инструмент, позволяющий быстро анализировать изменения из git-репозитория прямо в 1С

1 стартмани

20.12.2023    3958    59    salexdv    26    

81
Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. user1190757 29.03.19 09:34 Сейчас в теме
А что так можно было? спасибо
John_Bel; _7445_; bimy22; wowik; ellavs; +5 Ответить
2. user1190757 29.03.19 09:47 Сейчас в теме
16. ellavs 1022 29.03.19 11:05 Сейчас в теме
(2) 1С:Enterprise Development Tools - edt.1c.ru
Среда для разработки (для 1С-кода), можно использовать вместо конфигуратора.
67. dvpk1c 12.04.19 09:12 Сейчас в теме
(16)нужно* использовать вместо конфигуратора.
68. ellavs 1022 12.04.19 11:18 Сейчас в теме
(67) наш программист с Вами бы поспорил ))
У нас вообще смешная ситуация: я пишу проект в EDT, он этот же проект в конфигураторе (потом ему приходится загружать конфу в EDT, чтобы залить исходники на гит).
69. dvpk1c 12.04.19 11:25 Сейчас в теме
(68)
Звучит все это странно, как минимум. Если проект уже есть в EDT, в функционал которого входит использование репозитория, какой смысл пользоваться конфигуратором, в котором, мягко говоря, неудобно кодить.
70. ellavs 1022 12.04.19 11:42 Сейчас в теме
(69) думаете я не задавала ему такой вопрос. Но если человеку "так удобней", то заставлять его пересаживаться на EDT, только из-за того, что я уже это сделала, не буду. Пусть кодит там, где ему хочется, лишь бы работало )
71. dvpk1c 12.04.19 12:36 Сейчас в теме
(70) Что-то сродни тому, как олдскульные кодеры кичатся виртуозным владением vim-а))
72. AntonSm 30 12.04.19 12:43 Сейчас в теме
(71) а если обычные формы?
jsfilatov; dvsidelnikov; +2 Ответить
90. leoxz 254 22.09.20 17:27 Сейчас в теме
(71)Год назад решили проверить EDT. В компании на корпоративном сервере разработки, работали с ЗУП 3, пробовал один человек, был запущен один сеанс на сервере с EDT и эта зверюга съела всю память))) Возможно за год ситуация стала лучше, но я бы аккуратно переходил на EDT и понимаю того программиста.
83. KRIHA 111 21.07.19 18:45 Сейчас в теме
(67) EDT, как спецы из раруса выяснили - жрет память, причем очень сильно, и они пока не советуют, к примеру, ERP туда заливать.
3. hillsnake 35 29.03.19 09:54 Сейчас в теме
Круто Возьму на заметку.
wowik; ellavs; +2 Ответить
4. AntonSm 30 29.03.19 09:57 Сейчас в теме
Gitlab тоже подсвечивает код 1С.
Github, конечно, побольше, но есть подозрение, что догонят.
А на гитлабе есть бесплатные приватные репозитории.
Прикрепленные файлы:
wowik; ellavs; +2 Ответить
13. ellavs 1022 29.03.19 10:59 Сейчас в теме
(4) спасибо, не изучала этот сервис, надо посмотреть.
20. headMade 144 29.03.19 13:45 Сейчас в теме
(4) на github также уже можно создавать бесплатные приватные репозитарии

jif; YPermitin; igee12; GreenDragon; wowik; +5 Ответить
43. silberRus 72 31.03.19 23:17 Сейчас в теме
(4) На gitlab много народу перебежало когда microsoft поглотил github.
48. GreenDragon 02.04.19 16:54 Сейчас в теме
(4) С недавнего времени гитхаб тоже предоставляет возможность работы с приватными репозиториями на бесплатном тарифе. Гитлаб же хорош тем, что серверную часть можно захостить у себя. И да, это бесплатно. Подсветка синтаксиса bsl в гитлабе встроена, так что глазкам будет приятно.
88. Serg O. 224 06.06.20 15:20 Сейчас в теме
(4) GitHub тоже уже сделал бесплатные репозитории...
с органичениями конечно, но уже лучше
5. karpik666 3760 29.03.19 09:59 Сейчас в теме
я же правильно понимаю, что обратно собрать определенную версию конфигурации не получится из git?
6. AntonSm 30 29.03.19 10:00 Сейчас в теме
(5) получится. Почему - нет?
7. karpik666 3760 29.03.19 10:02 Сейчас в теме
(6) т.е вы у себя используете git и уже собирали версию?
10. AntonSm 30 29.03.19 10:14 Сейчас в теме
(7) я использовал гит через gitsync, т.е. выгружал данные из хранилища.
Разок пробовал загрузить в базу для теста из репозитория. Вроде все было ок.
11. karpik666 3760 29.03.19 10:50 Сейчас в теме
18. ellavs 1022 29.03.19 13:25 Сейчас в теме
(11) вот пример: работа в EDT (похоже на конфигуратор) - скрин 1. По факту он работает сразу с исходниками - скрин 2 (вот что лежит в папке проекта (те же исходники, что можно сделать типовыми средствами - выгрузив из конфигуратора). При запуске проекта происходит сборка из исходников и загрузка скомпилированной конфигурации в базу.
Прикрепленные файлы:
igee12; RustIG; +2 Ответить
14. ellavs 1022 29.03.19 11:00 Сейчас в теме
(5) постоянно собираю конфигурацию из исходников при работе с EDT (там проект только так и собирается - один программист выкладывает исходники, другой из них проект обратно собирает).
23. for_sale 971 29.03.19 14:38 Сейчас в теме
(5)
Всё работает в обе стороны, т.е. можно как выгрузить конфигурацию в репозиторий, так и загрузить в обычном виде из оного. Огромный минус всего этого действа - скорость. В файлы конфигурация БП у меня выгружалась 20-40 минут, из файлов - и того больше. Плюс сразу в конфигурацию загрузить из файлов не получится, надо в промежуточную, откуда выгружается цфник и уже он накатывается.
RustIG; ellavs; +2 Ответить
37. nicxxx 254 31.03.19 07:11 Сейчас в теме
38. for_sale 971 31.03.19 08:57 Сейчас в теме
(37)
Спасибо, кэп, за этот бесценный совет, но я уже.
JohnConnor; +1 Ответить
62. teller 04.04.19 12:43 Сейчас в теме
(37) а чего не посоветовал сразу с pc-xt на at386 пересесть?
84. SanchoD 295 23.07.19 09:00 Сейчас в теме
(62) Потому что нельзя так сразу перескакивать. Там еще AT286 надо было пройти.
8. capitan 2466 29.03.19 10:03 Сейчас в теме
9. AntonSm 30 29.03.19 10:09 Сейчас в теме
Еще могу сказать, что вместо выгрузки в файлы мне, например, удобнее пользоваться
precommit1c.
Правда сразу надо ставить OneScript.
И дальше поехали:
opm install precommit1c
в репозитории
precommit1c --install
а потом перед коммитом
precommit1c --git-precommit
12. AntonSm 30 29.03.19 10:53 Сейчас в теме
(9) precommit1c --git-precommit, кстати нужно, чтобы видеть, что сделано перед коммитом в удобном виде.
Прикрепленные файлы:
JohnConnor; ellavs; +2 Ответить
15. ellavs 1022 29.03.19 11:03 Сейчас в теме
(12) да, тоже удобно. Нам просто нужно было поменьше заморочек и поудобнее отправка и получение, чтобы программисты не отвлекались на это (поэтому визуальный интерфейс по ПКМ из проводника оказался самым удобным, чем через командную строку).
26. olegtymko 889 30.03.19 01:57 Сейчас в теме
(15) в обработках обычные формы используете?
27. ellavs 1022 30.03.19 09:14 Сейчас в теме
(26) честно говоря, никогда не работала с обычными формами, только с управляемыми...
starik-2005; +1 Ответить
30. nvv1970 30.03.19 09:27 Сейчас в теме
(9) precommit4onec
Precommit1c - устарел

Использовать ручную выгрузку - это жесть)
Я ещё использую батник для коммита. Контекстное меню - это долго ((
51. GreenDragon 02.04.19 17:24 Сейчас в теме
(30)
Precommit1c - устарел

Если сравнить историю развития двух проектов, то мне ваши слова кажутся крайне сомнительными:

https://github.com/xDrivenDevelopment/precommit1c/release

https://github.com/bia-tech/precommit4onec/releases

Касательно выгрузки: Используйте хранилище 1С в связке с https://github.com/oscript-library/gitsync
52. nvv1970 02.04.19 17:34 Сейчас в теме
(51) годное замечание, забрал слова обратно ))
Смотрел на релизы Евгения Сосны - там 2014 год. Поэтому сделал такие выводы.
Поправлю вашу первую ссылочку https://github.com/xDrivenDevelopment/precommit1c/releases

Касательно выгрузки: Используйте хранилище 1С в связке с https://github.com/oscript-library/gitsync
К чему это замечание? Да, пробуем использовать кое-где применительно к хранилищам... Пока нет выхлопа - к сожалению никто не заинтересован, все по-старинке(((
Какое отношение к внешним обработкам/отчетам?
GreenDragon; +1 Ответить
56. GreenDragon 02.04.19 22:32 Сейчас в теме
(52) гитсинк упомянул, так как решил, что
батник для коммита
относится к выгрузке конфигурации с коммитом в гит, а не ко внешним обработкам. С обработками, да, скриптиками в ручном режиме.
89. Serg O. 224 06.06.20 15:26 Сейчас в теме
(51) да gitsync - вещь супер-классная и уже была задолго до всяких EDT... и кстати обычные формы поддерживает... и проекты 1С на платформе 8.2 на "старых" версиях oscript и gitsync
17. пользователь 29.03.19 12:02
Сообщение было скрыто модератором.
...
19. DmitryKSL 155 29.03.19 13:34 Сейчас в теме
Вопрос немного не в тему.
Использую git под linux в Visual Studio Code, и в проекте я вижу количество изменений на панели (см. скрин). А вот под Windows как не пытался, пишет система управления версиями не зарегистрирована, хотя git стоит и в консоли все работает.
Прикрепленные файлы:
21. testnv0 29.03.19 13:51 Сейчас в теме
(19)
Столкнулся с таким же поведением. В моем случае достаточно было открыть уже иницилизированный пустой проект(git init), после этого vs code стал корректно показывать репозиторий.
24. for_sale 971 29.03.19 14:41 Сейчас в теме
(19)
У меня в винде 8.1 подхватывает без проблем, и при ините, и при клонировании, и просто если подсунуть папку с проектом
22. tsukanov 29.03.19 14:03 Сейчас в теме
Что-то у вас пункт "6. Получение измененных файлов с сервера (например, изменены другим разработчиком)" странноватый.
Все в одной ветке что ли работают?
28. ellavs 1022 30.03.19 09:15 Сейчас в теме
(22) если речь про один и тот же проект, то, если правильно поняла вопрос, да.
35. tsukanov 30.03.19 19:02 Сейчас в теме
36. Vladimir Litvinenko 2869 30.03.19 19:23 Сейчас в теме
(28) В чём тогда смысл работы через Git вместо хранилища? То же расширение подключается к хранилищу и последним gitsync 3 может выгружаться в Git автоматически. Накладных расходов намного меньше. Если мердж сразу выполняется в одну мастер-ветку и нет пул/мердж реквестов, то даже при наличии практики код-ревью это всё равно будет посткоммитное ревью, которое итак возможно при применении хранилища. Сначала помещаем в мастер-ветку и пушим (закладка в хранилище) и только после этого видим код в виде диффа между двумя коммитами в мастер-ветке (выгрузка закладки хранилища в гит).

В описанной здесь схеме в качестве преимущества прослеживается только код-ревью внешних обработок. Ну и может быть тренировка разработчиков для работы с гит, чтобы потом не сильно пугались )) Хотя первую задачу опять же лучше автоматизировать через precommit, а вторую сейчас уже лучше решать сразу через изучение EDT.
25. v25i85 1 29.03.19 22:20 Сейчас в теме
времени жрет очень много. Лучше бы придумали работу конфигуратора через xml напрямую: не cf, а репа с xml, при этом не нужно выгружать cf и т.д. Понятно, что система должна быть защищена, но есть же выход - подписывание файлов xml сертификатом и другие способы.
Например, php инструкции хранятся в файлах с расширением "php", а остальная объектная модель веб-сервиса в библиотеках. Почему нельзя так же и в 1С сделать?
29. ellavs 1022 30.03.19 09:17 Сейчас в теме
(25) насколько понимаю, для этого они и сделали EDT, чтобы при разработке конфигурации работать напрямую с файлами, а не с cf.
31. v25i85 1 30.03.19 10:56 Сейчас в теме
(29)ну это не серьёзно, cf никто при этом не отменял.
Вот если бы конфига из репозитория работала, подключая необходимые файлы xml...
32. ellavs 1022 30.03.19 12:21 Сейчас в теме
(31) Если правильно понимаю, раз был упомянут php, Вы хотите компиляцию "на лету"? Не думаю, что это хорошо скажется на производительности. Например, в том же .Net Core перешли наоборот к концепции заранее скомпилированного кода для веб-проектов (даже HTML-шаблоны включают в dll), хотя уходящаяя ASP.Net MVC технология, похожа на PHP.
33. Sybr 241 30.03.19 16:12 Сейчас в теме
(32) Что за каша у вас в голове. Хранение исходников в текстовых файлах вообще никак к компиляции не относится. Компиляция "на лету" на производительности сказывается самым благоприятным образом для интерпритируемых языков. .Net Core заменяет .Net Frаmework, а не ASP.Net, который кстати ничем не похож на PHP. А HTML-шаблоны уже давно не используют.
philya; Vladimir Litvinenko; +2 Ответить
34. ellavs 1022 30.03.19 16:23 Сейчас в теме
(33) простите, честно, не хочется спорить :) Под "HTML-шаблонами" имелись в виду Razor cshtml-страницы (но решила упростить, чтобы человек понял). То, что Core заменяет ASP.Net, вроде и не писала. А вот то, что ASP.Net не похож на PHP, это согласна. ASP.Net MVC похож, но не такой же ... хотя при большом извращенном желании можно весь код в cshtml воткнуть вместо контроллера )))
GreenDragon; user1190757; +2 Ответить
39. Алексей Воробьев 291 31.03.19 15:13 Сейчас в теме
Простите, возможно, немного не в тему, но...

Интересна тема EDT+Git, периодически к ней возвращаюсь, но натыкаюсь на одну и ту же проблему от версии к версии EDT:

Взяли произвольную типовую конфигурацию (я экспериментирую на ЗУП 3) относительно свежей версии (конфигурация №1).
Сняли с поддержки (в самой EDT этого не сделать или я не нашел как).
Сделали из нее в EDT проект.
Ничего не меняя в проекте, заливаем его в другую произвольную конфигурацию (конфигурация №2).
Выгружаем конфигурацию №2 в .cf
Через конфигуратор заходим в конфигурацию №1. Сравниваем/объединяем с .cf из предыдущего пункта

Результат: приличный набор "различий" в исходной/результирующей конфигурациях, чаще всего выражаемых в не совсем понятных мне вещах, как то отличиях свойства "Картинка календаря" на формах и т.п.

То есть, для корректировки типовых конфигураций EDT использовать крайне затруднительно из-за неизбежных проблем с обновлениями (получим кучу отличий там где их по факту нет).

Конечно, можно использовать EDT только для разработки собственных конфигураций, в расширениях и для внешних ПФ и обработок.
Но, к сожалению, функциональность расширений пока не позволяет полностью перейти к так нужным нам доработкам типовых конфигураций минуя изменения основной конфигурации. Хотя с каждой версией платформы ситуация меняется в нужную сторону...

Может кто-то сталкивался, решил и готов поделиться кейсиком?

По своему (небольшому пока опыту): EDT очень прожорлива на ресурсы. Поэтому использование мощных процессоров (I7, Rizen 2700?), большого количества оперативы (от 32 Гб? в том числе для организации RAM-диска для временных файлов EDT) и скоростных надежных SSD приличной емкости (от 500 Гб? современные типовые конфигурации достаточно велики при выгрузке их в файлы) крайне показано при работе с этой средой разработки.
monkbest; AllexSoft; igee12; ellavs; +4 Ответить
41. ellavs 1022 31.03.19 16:41 Сейчас в теме
(39) упс... промахнулась и ответила ниже )
40. ellavs 1022 31.03.19 16:39 Сейчас в теме
(39) Да, тоже интересует ответ на этот интересный вопрос: можно ли дорабатывать в EDT конфигурации на поддержке? Сейчас мы работаем в нем только со своими (с нуля написанными) конфигурациями. Пробовала как-то загрузить в проект EDT довольно тяжелую конфигурацию 1С:Университет ПРОФ - в итоге EDT "вообще упал и больше не встал" (но это было несколько его версий назад, надо бы попробовать снова...). На счет того, что он "жрунчик" - это да, но у меня рядом еще стоит Visual Studio, которая кушает в два раза больше, поэтому как-то уже не обращаю внимание.
42. Алексей Воробьев 291 31.03.19 19:17 Сейчас в теме
(40) В декабре 2018 года (не помню просто какая тогда версия EDT была актуальна) попытки загрузить в EDT-проект ERP 2.4 заканчивались неудачно пока не докинул памяти. При общем объеме в 16 Гб + I5 + SSD ERP была вполне успешно загружена в проект менее чем за час.

Вообще, разработчики EDT очень много внимания уделяют оптимизации и ускорению работы своего продукта. Это радует и дает надежду, что продукт найдет широкое применение.
Но вот опять - что же делать с типовыми?((
50. GreenDragon 02.04.19 17:06 Сейчас в теме
(42) В 1.10 они подкрутили. И даже хвастались этим в "Что нового"
Алексей Воробьев; +1 Ответить
53. ellavs 1022 02.04.19 17:48 Сейчас в теме
(50) поставила несколько дней назад 1.10 (Топаз). Действительно стал пошустрее, но не настолько, насколько хотелось бы ))
54. Алексей Воробьев 291 02.04.19 19:44 Сейчас в теме
(50) Увы и ах - то что они подкрутили касается завершающих символов в программных модулях, я нашел это место в "Что нового"...

А вот такие вещи бы подправили:
Прикрепленные файлы:
55. GreenDragon 02.04.19 22:25 Сейчас в теме
(54) У них постоянные истории с завершающими символами. Недавно напоминали про "шухер", когда они так "починили" в одном из релизов 8.2 или 8.1
57. iskander3000 03.04.19 08:25 Сейчас в теме
(54) А работу с 8.3.13 и выше они добавили?

Отвечаю сам себе: нет, не добавили. Так что с EDT до сих пор работать нельзя и нельзя с ней будет работать до тех пор, пока они не синхронизируют поддержку новых платформ с их релизом.
Прикрепленные файлы:
Дмитрий74Чел; Naked; SanchoD; +3 Ответить
44. leongl 524 01.04.19 09:00 Сейчас в теме
Отличный мануал, спасибо. Всегда радовал механизм объединения в Git
45. ManyakRus 483 01.04.19 12:56 Сейчас в теме
1) до 3-5 программистов хранилище 1С итак подходит
2) выгружать/загружать вручную в .xml это зря хернёй заниматься
zqzq; philya; +2 Ответить
49. GreenDragon 02.04.19 17:05 Сейчас в теме
(45) Я так понимаю, что ревью кода никто не делает? Условный Вася не в курсе того, что положил в хранилище условный Петя.
Выгружать руками хранилище в xml - это именно то, что вы написали. У нас c этим успешно справляется gitsync. А уведомления о новых коммитах сразу попадают в отдельный канал mattermost. Клацнули на сообщение, перекинуло в локальный gitlab. Посмотрели, откомментировали по желанию, поставили отметку о ревью в mattermost. Таким вот нехитрым образом у нас участники группы учатся друг у друга, и всегда в курсе того, что творится в коде вне зоны их личных задач.
AlexK_2012; Алексей Воробьев; ellavs; +3 Ответить
58. philya 77 03.04.19 09:45 Сейчас в теме
(49) Сколько у вас стоит написать печатную форму? Как делать ревью отчета сделанного полностью на СКД?
59. GreenDragon 03.04.19 13:32 Сейчас в теме
(58) Процент написания отчётов и печатных форм у нас примерно 0.01 процента от общего объёма работы. Львиная доля работы у нас производится по конфигурациям холдинга, где действительно требуется от всех участников процесса быть в курсе. Ошибка или костыль в коде приводит к простоям огромным потерям бизнеса. А отчётики и печатные формы как правило клепаются быстро и к авариям не приводят. Но код заполнения той же печатной формы должен проходить ревью. Иначе никак - иначе смерть через лялямбу.
Алексей Воробьев; +1 Ответить
60. philya 77 03.04.19 15:20 Сейчас в теме
(59) Спасибо. Я так понимаю, что зависимость, в вашем случае, от конфигураций фирмы 1с минимальна? Напишите про то как устроена работа у вас - очень интересно. Получается, что гит используется для хранения истории версий и авторства кода, * на предыдущую версию делается руками в конфигураторе?

У меня просто ревью моего кода делать некому, а последний мой эпик фэйл был в том, что я вместо зипа завернул архив 7-зипом, служба поддержки пережила 50 телефонных звонков...
Алексей Воробьев; +1 Ответить
74. Xephone 28.06.19 05:11 Сейчас в теме
(45) Это вы просто не пытались ветки делать в хранилище конфигурации, когда приходится половину конфигурации захватить чтобы добавить доработки, а все остальные 2-4 программиста сидят и кукуют. Иначе приходится делать для каждого копию базы, и работать с ней, периодически обновляя ее и перенося доработки в основное хранилище через "Сравнение/Объединение". К тому же, как показывает практика, захват в хранилище и помещение объектов обратно, далеко не быстрое занятие. Я уже и не говорю про то что периодически это хранилище отваливается, хорошо если успеешь сохранить наработки. Ну и к тому же, через гит можно удобно вести версионирование внешних дополнительных отчетов/печатных форм/обработок.
Waanneek; Fox-trot; +2 Ответить
46. bimy22 01.04.19 14:02 Сейчас в теме
47. bimy22 01.04.19 14:03 Сейчас в теме
Отличный механизм, спасибо за публикацию.
61. zekrus 151 04.04.19 07:35 Сейчас в теме
Доброе утро!
Тема весьма актуальная.
Коллеги, кто сталкивался с GIT на обычных формах (best practices)?
С уважением
perpleks; +1 Ответить
63. ellavs 1022 09.04.19 08:31 Сейчас в теме
(61) практически не работаю с обычными формами, поэтому не подскажу, но вопрос интересный. Возможно ли это вообще с обычными формами? Поддерживает ли тот же EDT обычные формы?
64. AntonSm 30 09.04.19 09:46 Сейчас в теме
(63) EDT с обычными формами не работает.
Основная проблема с обычными формами в том, что кривовато разбирается сама форма.
Причем форма переразбирается при каждом коммите.
В приложенном скриншоте пример, полученный при использовании precommit1c.
Прикрепленные файлы:
65. zekrus 151 09.04.19 11:55 Сейчас в теме
(64) Если честно можно было бы начать с выгрузки в текст из конфигуратора и записи в git.
(Нужен текстовый редактор сохраняющий в правильном формате после редактирования).
66. AntonSm 30 09.04.19 12:04 Сейчас в теме
(65) последний precommit1c используется платформенную выгрузку в файлы.
Так что с выгрузкой из конфигуратора будет тоже самое.
Для редактирования файлов выгруженных можно использовать visual studio code.
Там сейчас есть дополнения, чтобы 1С-код раскрасить и т.п.
73. JohnConnor 64 15.05.19 05:12 Сейчас в теме
спасибо, благодаря вам оставил SourceTree и перешел на "черепашку"
75. Shaldryn 01.07.19 16:22 Сейчас в теме
Для этого любой 1С проект (отчет, обработка или расширение) необходимо выгрузить в файлы при помощи встроенной команды Действия - "Выгрузить в файлы"


Добрый день, а можно эту команду как то программно выполнить? Допустим сделали какое то изменение во внешней обработке, загрузили его в справочник "ВнешниеОбработки" и он при записи сразу же и выгрузился в репозиторий, а нам осталось только закоммитить?
77. Fox-trot 156 02.07.19 13:18 Сейчас в теме
78. Shaldryn 02.07.19 14:50 Сейчас в теме
79. ellavs 1022 02.07.19 17:11 Сейчас в теме
(78) как вариант - перейти на EDT, там сразу работа с исходниками происходит.
80. Shaldryn 04.07.19 11:04 Сейчас в теме
(79) у нас конфа старая ОФ, я так понял некорректно работает с ОФ. Хотелось со внешними отчетами и обработками поиграться.
Прочитал на курс1срф, что там можно через пакетный режим запускать конфигуратор для выгрузки. Вот думаю, если создадим батник и программно его запускать каждый раз при изменении, не будем ли нагружать систему и если у нас уже запущен будет конфигуратор сработает ли пакетный режим?
76. AllexSoft 02.07.19 12:56 Сейчас в теме
Спасибо за статью. Для себя вижу использование гита как хранилище для правил конвертации данных (КД 2.1 в основном, так как КД 3 либо расширением, либо изменением общего модуля - а там уже 1с-ное хранилище).
81. leemuar 17.07.19 20:05 Сейчас в теме
Почему ваш выбор остановился на git, а не, например, mercurial или svn или bazaar?
82. ellavs 1022 17.07.19 23:23 Сейчас в теме
(81) как однажды мне порекомендовали более опытные коллеги - "используйте в своей работе то, что знаете лучше".
Т.к. git был хоть как-то "на слуху", а про названные Вами альтернативы я слышу практически впервые от Вас же, то ответ на вопрос очевиден ;)
shunk; leemuar; +2 Ответить
85. SergeyMordvin 1572 16.05.20 10:37 Сейчас в теме
Спасибо за статью, но не до конца понял методику.
Допустим есть обработка 1 и она лежит в каком-то общем репо на майкрософте.

Разработчику 1 нужно ее допилить (кто-то ему такой тикет поставил), он идет в репо и клонирует себе. У себя задачу решает и потом что? Он сдает ее в главный репо через пул реквест? Если да, то кто-то его проверяет? Или он сам себя апрувит?
86. ellavs 1022 18.05.20 08:42 Сейчас в теме
(85) в статье предполагалось, что разработчик правит обработку прямо в мастер-ветке (т.е. не клонирует себе). Если нужно организовать проверку или разработчик внешний, то да - кто-то должен стать ответственным за код-ревью и слияние веток.
87. SergeyMordvin 1572 18.05.20 09:57 Сейчас в теме
(86) спасибо за разбяснение
91. fullstack1c 35 30.09.20 22:02 Сейчас в теме
Давно засматриваюсь на EDT. Доработку типовых конфигураций УТ11.4, БП3, ЗУП3 так же ведете в EDT? Как обстоят дела с производительностью?
Оставьте свое сообщение