Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам

Публикация № 901547 28.01.19

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

В этой части мы рассмотрим наиболее распространённую схему workflow при групповой разработке с использованием Git. Как приступить к доработке по поставленной задаче; исправить ошибку, обнаруженную на этапе тестирования; отправить свой код на слияние в предстоящий релиз; и т.д. Постараемся охватить большинство задач, составляющих основной цикл разработки

Часть 1. Как подключиться к команде разработки и начать использовать Git

 
 Содержание

Часть 2. Реализация Git workflow в 1С-разработке по шагам (эта статья)

Прежде чем начинать внедрять gitflow в своей команде, вам для начала предстоит решить, какую модель ветвления вы будете использовать? А из этой части гайда вы узнаете об основных операциях, выполняемых при разработке, которые присутствуют почти в каждой из них.

Начало работы над задачей

Работу по каждой задаче следует выполнять в отдельных ветках, называемых "фича". По соглашению в команде, имя фичи содержит, как правило, номер задачи из трекера. Например, у нас принят шаблон: feature9999. Фича начинается в основном стволе разработки (обычно это ветка develop) и сливается в него по окончании разработки.

Прежде чем начать работу над задачей, актуализируем состояние своего локального репозитория, ведь с тех пор, как мы делали это последний раз, могли появиться новые коммиты наших коллег. Для этого сделаем текущей ветку develop, перейдя на неё, и выполним получение изменений.

Переход на ветку develop и получение изменений

 
 cmd
 
 SourceTree

В списке веток выполняем двойной щелчок по ветке develop. Активная ветка выделяется полужирным начертанием и появляется колечко слева от имени.

Для получения изменений в текущую ветку нажимаем кнопку "Получить" и в открывшемся окне нажимаем ОК (ничего в нём не меняем):

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

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

Более того, разработчик может в рамках своей фичи создавать собственные суб-ветки и целые деревья, если это необходимо, чтобы, например, реализовать параллельно несколько идей в решаемой задаче или решить ее несколькими способами и сравнить результат. Главное, чтобы в конечном итоге на слияние в develop был отправлен тот единственный рабочий вариант, который должен уйти в рабочую версию.

Процесс жизнедеятельности задачи

Фиксация изменений

По мере того, как продвигается работа над задачей, правилом хорошего тона является периодическая фиксация изменений, или коммит, в ветку фичи.

Напомню, что в процессе коммита изменённые файлы проходят через несколько состояний: сначала они индексируются (или собираются "в очередь" на фиксацию, add), затем производится коммит (commit) проиндексированных изменений в локальный репозиторий, и в конце выполняется отправка (push) изменений в удалённый репозиторий. Некоторые инструменты по работе с Git делают несколько или все эти операции одновременно, так что для разработчика процесс происходит быстро и не напряжно. Но в целом положение дел с вашими файлами именно такое.

 
 cmd
 
 SouceTree

О появлении новых изменений в SourceTree сигнализирует надпись "Незакоммиченные изменения" в продолжении текущей ветки, при этом в списке "Файлы не в индексе" появится перечень всех изменённых файлов. Нажмите "Индексировать всё" (или выделите нужные для фиксации файлы и нажмите "Индексировать выделенное").

Проиндексированные файлы отправляем в коммит кнопкой "Закоммитить" в верхнем левом углу. Программа попросит внести комментарий к изменениям, после чего нажатие другой кнопки "Закоммитить", уже внизу справа, приведёт собственно к фиксации коммита.

При этом, если установить флажок "Сразу отправлять изменения в origin", то коммит будет отправлен в удалённый репозиторий, и ваша фича синхронизируется с локальной версией.

Если же флажок снят, то коммит будет зафиксирован только в локальном репозитории. Это может быть удобно, если в процессе разработки вы предпочитаете часто коммититься, но не торопитесь делиться с коллегами не работающим кодом. В этом случае, возле имени ветки и около кнопки "Отправить" появится информация о количестве коммитов, готовых к отправке из локального репозитория в удалённый.

Что мы получили в результате коммита:

  1. Ветка фичи продвинулась на одну позицию, обрела комментарий об изменениях в данной точке, и теперь выделена жирным шрифтом, что показывает ее текущее положение;
  2. Подробное описание коммита в развёрнутом виде;
  3. Перечень файлов, подвергшиеся изменению. Да, их тут чуть больше, чем мы индексировали, т.к. сработал precommit1c, но об этом чуть позже;
  4. Построчное описание изменений текущего (выделенного) файла.

Теперь, чтобы отправить наши локальные изменения в удалённый репозиторий, нажмём кнопку "Отправить", и в открывшемся окне (ничего в нём не меняя) еще раз нажимаем "Отправить".

В этом простом примере заодно было показано, как работает Precommit1c: в момент коммита он автоматически раскладывает внешнюю обработку на исходные файлы и бережно раскладывает их в папке src с учётом иерархии. И то же самое он будет делать и с расширениями конфигурации, если вы ведёте разработку с их использованием.

Тут я хотел продемонстрировать еще одно преимущество работы с Git: ваш рабочий каталог - это сам git-репозиторий. Не нужно куда-то отдельно копировать обработку, чтобы потом что-то делать для фиксации версии. Достаточно сохранить ее прямо в репозитории, а всю грязную работу Git и Precommit1c выполнят за вас. Главное - правильно указать в начале текущую рабочую ветку.

Отмена изменений и других последствий невнимательности

В процессе работы много чего приходится отменять, отказывать и еще как-то заметать следы своих косяков, еще до того, как ваши труды полетят в продакшен, то есть пока вы возитесь в своём локальном репозитории.

Отказ от индексирования изменений

Лично моя - самая частая ошибка :) Сначала индексируешь всё (удобно ведь одной кнопкой), а потом вспоминаешь, что не всё-то и надо было. Или вдруг вспоминаешь, что нужно было часть текущих изменений зафиксировать отдельным коммитом. Убираем файл из области индексирования:

 
 cmd
 
 SourceTree

 Для удаления файла из индекса предусмотрены две кнопки "Убрать всё из индекса" и "Убрать из индекса выделенное"

Игнорирование файлов, файл .gitignore

Файл .gitignore (именно так, с точкой и без расширения) и механизм игнорирования позволяют отключить от версионирования часть файлов из вашего репозитория. Это очень удобно, когда, например:

  • В локальном репозитории есть файл с локальными настройками или сведениями о состоянии проекта, но его смысл теряется при переходе к удалённому репозиторию. Такие файлы полезны только при работе на локальной машине, но их не надо коммитить. Пример такого файла - файл VERSION, необходимый при работе с gitsync;
  • В локальном репозитории вы храните дополнительные рабочие файлы проекта, которые нужны только вам, но их не нужно версионировать и делать достоянием всей команды. У меня в репозитории с правилами обмена таковыми являются файлы с описанием структуры конфигураций. Они лежат в одном месте со всем, что связано с обменами, но при этом не мешают другим разработчикам.

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

Если вы работаете с Git из консоли, то этот файл следует создать и настроить вручную.

 
 SourceTree

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

Следует отметить, что сам файл .gitignore тоже коммитится и версионируется. Это может сбить с толку новичка, когда, например, после получения изменений из develop система вдруг перестаёт видеть часть файлов разработчика. Или при создании новой фичи не действует игнорирование, которое только что настраивал, но настройка осталась в другой фиче, которая еще не слита в develop.

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

Отмена изменений в индексе

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

 
 cmd
 
 SourceTree

 Изменённый файл отмечается значком с тремя точками, для таких файлов в контекстном меню доступна команда "Отменить"

Кроме того, ряд операций с изменениями (помещение в индекс, удаление из индекса, обращение коммита) можно производить не только над файлом в целом, но и на отдельных блоках изменений и даже с отдельными строками кода. Для этого в окне изменений справа от списка файлов предусмотрены соотвествующие кнопки над каждых блоком. Если выделить отдельные строки кода, то кнопка над блоком примет вид в соответствии с вашими действиями.

Внимание! Не все операции с выделенными строками возможны. Зачастую система требует, чтобы выделенные строки составляли непрерывный диапазон. А в операции с не подряд идущими строками (как на картинке) может быть отказано.

P.S. Отменяется выделение строки одинарным щелчком по ней же.

Просмотр изменений

Сравнение разных версий файлов и просмотр изменений - одна из ключевых задач, ради которых используется Git. Консольная команда git log использует большое число дополнительных параметров, благодаря которым можно получить практически любой отчёт по истории изменений.

 
 cmd
 
 SourceTree

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

Для просмотра всех изменений одного файла, достаточно найти его в списке коммита и в контекстном меню выбрать первый пункт "Журнал для выбранного":

Откроется окно журнала для выбранного файла, с перечнем всех коммитов, в рамках которых был изменён этот файл:

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

Да, да, я немного лукавил, когда говорил, что при использовании графической GUI-оболочки вы можете полностью отказаться от командной строки :)). Ни одна GUI не способна охватить весь спектр возможностей Git. И время от времени вы будете прибегать к помощи терминала. Он даже штатно вызывается из SourceTree в меню "Действия - Открыть в терминале...".

Еще один приём, который удобно применять при код-ревью - это просмотр изменений между двумя релизными коммитами. Если выделить первый коммит и, зажав клавишу Ctrl, выделить второй, то будут отображены все изменения, произведённые между этими двумя фиксациями:

О других методах отладки в Git можно почитать здесь.

Слияние готовой фичи в develop

Когда работа над задачей завершена, готовый код объединяется с общей веткой разработки develop. Этот процесс называют слиянием, или merge в терминах Git.

Смержить изменения можно тремя способами: а) Выполнить merge локально, и результат слияния отправить в origin; б) Выполнить запрос на слияние (pull-request) в общий репозиторий разработки; в) Выполнить pull-request из своего fork в авторский репозиторий. О последнем варианте есть отличная статья Антона Иванова, рекомендую к прочтению. В ней же описаны и основные приёмы работы с запросами на слияние.

Сразу стоит остановиться на моменте, который сбивает с толку многих новичков: "Из какой ветки в какую принимается код, когда я выполняю merge?". Ответ прост: значение имеет то, на какой ветке feature1 вы сейчас находитесь. А при выполнении команды, скажем, git merge feature2, вы принимаете к себе новый код. То есть, feature2 вливается в feature1.

Вариант 1. Локальный merge

 
 cmd
 
 SourceTree

Двойным щелчком на названии ветки делаем активной ту, в которую будем сливать код. В панели инструментов главного окна нажимаем кнопку "Слияние":

Откроется дополнительное окно для выбора коммита, из которого следует взять код для слияния. Выделяем нужный и щёлкаем "ОК". (Чтобы спозиционироваться на последнем коммите заранее известной ветки, бывает удобно воспользоваться кнопкой "Перейти на" в верхнем правом углу).

Если не было конфликтов слияния, то код принимается в родительскую ветку и выполняется локальный коммит. Теперь остаётся только отправить новую версию файла в удалённый репозиторий с помощью кнопки "Отправить".

Вариант 2. Создание запроса на слияние

Pull request, или запрос на слияние, отличается от простого слияния тем, что изменения никогда не принимаются сразу. При каждом таком запросе сливаемые ветки переходят в особое состояние, когда ожидают решения архитектора/тимлида о принятии новой версии. Работа эта (и создание запроса, и ответ на него) выполняется на сайте git-сервиса. Для всех сервисов процесс очень похож, приведу пример для GitHub.

На странице проекта нажимаем кнопку "New pull request"

Далее, выбираем исходную и целевую ветки слияния. При этом название запроса автоматически будет подставлено из комментария коммита. При необходимости можно указать подробный комментарий к запросу. Нажимаем кнопку "Create pull request", и запрос готов.

После проверки нового кода, владелец проекта нажмёт кнопку "Merge pull request", после чего изменения будут приняты в родительскую ветку.

Вместо заключения. О чём договариваемся в команде

  1. Выбор модели ветвления;
  2. Правила именования фич;
  3. Частота выполнения коммитов в процессе работы;
  4. На какой версии платформы работает вся команда? Важный момент, поскольку от релиза к релизу платформа может немного менять формат выгрузки конфигурации в файлы, да и в самих файлах содержится информация о версии платформы, которой они были созданы. При нарушении этой договорённости, коммиты отдельных сотрудников будут вызывать такое количество изменений, что польза самого использования Git сойдёт на "нет". Пропишите это в Readme к своему репозиторию (как, собственно, и все остальные правила вашей команды);
  5. Именование коммитов. Хорошая статья на эту тему - здесь;
  6. Состав файла .gitignore.

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Vladimir Litvinenko 2770 29.01.19 01:06 Сейчас в теме
для начала предстоит решить, какую модель ветвления вы будете использовать

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

Модель с одной веткой и общее сравнение моделей: https://www.atlassian.com/git/tutorials/comparing-workflows
Модель фича-бранчей: https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow
Гитфлоу: https://www.atlassian.com/git/tutorials/comparing-workflows/gitflow-workflow
Форки и пул-реквесты: https://www.atlassian.com/git/tutorials/comparing-workflows/forking-workflow


P.S.: Из прошлой публикации https://infostart.ru/public/864097 пропала информация о том, что будет отдельная статья про применение Visual Studio Code при разработке на 1С. Надеялся, что выйдет. Больше нет в планах её публиковать?
JohnyDeath; eeeio; zeegin; +3 Ответить
3. stas_ganiev 1673 29.01.19 03:44 Сейчас в теме
(1) Может и будет)) Просто не хочется обещать, вдруг опять что-то пойдёт не так...
2. drmaxart 144 29.01.19 01:07 Сейчас в теме
Большое спасибо за статью! Давно ожидали продолжения 1-й части!
stas_ganiev; +1 Ответить
4. zeegin 104 29.01.19 05:23 Сейчас в теме
При активном использовании CI/CD можно избежать использование веток develop, release и hotfix совсем.

Это то, что рекомендуется в вариантах github flow и gitlab flow.
stas_ganiev; +1 Ответить
5. kalyaka 870 29.01.19 08:38 Сейчас в теме
(4) пожалуйста дайте ссылку на рекомендацию или поясните как тогда работать с хотфиксами и планированием релизов?

Думаю над организацией релизного управления и у меня пока классическое понимание: планирование релиза, сборка, тестирование, выпуск в продукт, исправление ошибок хотфиксами. При этом хотфиксы не идут в ветку develop, а при очередном релизе затираются нормальным решением.
6. zeegin 104 29.01.19 08:59 Сейчас в теме
(5) суть DevOps а в том, что у тебя был бы в мастере код всегда готовый к релизу. Любой комит может быть релизом. Фактическим релизом становится тот, на который ты повесишь тег.

Достигается это за счет предварительной проверки любого бранча до вливания его в мастер при мердж реквесте.

Для гитхаб флоу это так, в гитлаб флоу рекомендуется еще и деливери делать отдельными ветками типа с мастера можно отмерджить в ветеупрепрод где стейдж окружение и тесты уже не покомитные продукта, а скопом все окружение как копия прода, а с препрода можно отмерджить в прод.
serge_grand; JohnyDeath; stas_ganiev; +3 Ответить
7. chea06 133 31.01.19 12:50 Сейчас в теме
> git add FileName
> git commit -m "my comment" -a


использование параметра -a в команде commit делает бессмысленной вышеуказанную команду "git add FileName", потому как добавляет автоматом все изменения в индекс, а вы судя по всему хотели в индексе видеть только FileName
stas_ganiev; +1 Ответить
8. exzanimo 30.03.19 22:03 Сейчас в теме
Интересно увидеть 3 часть :)
SirYozha; +1 Ответить
11. N!ghtmare 25.04.19 20:35 Сейчас в теме
(8)
Согласен.
(0)
Самое интересное начинается при деплое. Собрать cf из Гита(если соберётся) и ...
12. ellavs 951 26.04.19 07:53 Сейчас в теме
(11)
Собрать cf из Гита(если соберётся)

Работаю с EDT, там конфигурация из исходников вроде нормально собирается. Т.е. работа происходит изначально с исходниками, из которых при каждом тестовом запуске собирается конфигурация.
9. kasper076 88 16.04.19 14:03 Сейчас в теме
(0) Как работаете с ветками? Под каждую ветку заводите отдельную базу? Используете инкрементальные выгрузку и загрузку из/в конфигуратор? Как осуществляете переход между ветками, в которых созданы новые объекты?
14. stas_ganiev 1673 26.04.19 19:25 Сейчас в теме
(9)Под разные конфигурации следует создавать отдельные репозитории. Ветки репозитория - это истории жизни разных версий одного проекта, но никак не разные проекты.
Переход между ветками - обычным образом. Какие у вас с этим сложности?
15. kasper076 88 06.05.19 09:57 Сейчас в теме
(14) Ветки создаются под каждую задачу. Но если в рамках задачи создается новый объект конфигурации, то как быть тут? В одной ветке объект есть, в других нет.
16. stas_ganiev 1673 06.05.19 10:07 Сейчас в теме
(15)Тут следует поступать так же, как и в хранилище: добавляем объект и сразу вливаем его в основной ствол, предварительно сделав минимальные необходимые настройки. Ветку фичи при этом не закрываем и продолжаем в ней работать.
Другой вариант (без помещения в основной ствол): те, кому нужен новый объект, мержится от вашей фичи напрямую к себе. Потом уже не важно, кто первый смержить объект в дев, это уже легко разруливается гитом.
17. kasper076 88 06.05.19 12:40 Сейчас в теме
(16) В итоге нужно обновлять все свои ветки, чтобы данный объект был в них, либо заводить под базу с новым объектом отдельную базу. Так?
18. kasper076 88 06.05.19 13:52 Сейчас в теме
(17)
заводить под *ветку с новым
10. kasper076 88 16.04.19 14:03 Сейчас в теме
13. NNomad 26.04.19 11:33 Сейчас в теме
Подскажите, пожалуйста, может кто сталкивался с проблемой различия кодировок в именах файлов и их содержимым?
Использую стандартную функцию Конфигурация->Выгрузить конфигурацию в файлы.
При изменении настроек кодировок в SourseTree корректно работает что-то одно.
Поведение программы видно на скриншотах.
Прикрепленные файлы:
19. strange2007 145 23.01.20 08:15 Сейчас в теме
Вот прям чувствую, что GIT прикольная штука, но не могу придумать, где ж она поможет в реальной жизни((((
Честное слово, уже много раз думал
20. stas_ganiev 1673 23.01.20 08:23 Сейчас в теме
(19)При разработке правил обмена очень здорово помогает. Давно версионируем правила, не раз помогало в спорных ситуациях и при расследовании инцидентов. Плюс, не надо тыркать друг друга и объяснять тестировщикам и внедрецам, откуда какие правила брать, - каждый просто берет их из нужной ветки.
Также, на прошлом месте работы у нас был весь проект в Git: расширения конфы + внешние отчеты и обработки. Удобно тем, что всё причастное к конфигурации лежит в одном месте, а в истории версий релизов фиксируются все измененные файлы. Не возникает вопроса, где какая обработка у кого лежит
21. strange2007 145 23.01.20 08:56 Сейчас в теме
(20) Спасибо. Правила обмена, это идеальный пример. Правда спасибо.

С обработками тоже правы. Сам с этим сталкиваюсь, что фигпойми, что за набор инструментов и где их все собирать по серверам-компам.

В общем для себя немного прояснил. Но мне кажется, если поменять методику, то git и в этих случаях не понадобится и использовать будет удобней.
22. stas_ganiev 1673 23.01.20 10:15 Сейчас в теме
(21)Предложите такую методику, и сообщество скажет вам "Спасибо!" :)
23. strange2007 145 23.01.20 10:28 Сейчас в теме
(22) С удовольствием, но я слишком слаб и немощен. С 2009 года всем рассказываю про клёвости, а люди просто не понимают и выбирают путь трудный и тернистый. Самое простое - нафига плодить кучу того, что надо потом в git пихать, если лучше привести к нормальности БП предприятия и не напрягаться? Тем более писанина так или иначе приводит к позорному закидыванию помидорами, потому что команда закапывается в писанине. И не важно на сколько она структуирована.
Увы, это подтверждал на многих предприятиях
I_r_a; acanta; stas_ganiev; +3 Ответить
24. stas_ganiev 1673 23.01.20 10:39 Сейчас в теме
(23)Если надумаете внедрять правила обмена с Гитом, то обратите внимание на это: https://infostart.ru/public/632457/
strange2007; +1 Ответить
25. strange2007 145 23.01.20 10:59 Сейчас в теме
(24) Спасибо. Это честное спасибо.

Но пока что я и дальше буду работать по старинке:
- Все обмены делать так, что бы в них надо было лазить один-два раза в год и только для очень мелких доработок
- К КД2 (тройку то я не знаю) подпускать только того, кто сможет внятно объяснить как конвертировать субконто.
- Не подпускать к обмену на 1.2 км любого человека, который начинает работу со слов: "ада! что тут за фигня написана? ща исправлю мигом"
26. buganov 194 27.05.20 10:18 Сейчас в теме
За статью жирный плюс!
Подскажите, пожалуйста, вот выгрузил я сорцы в гит, а как потом собирать их? Вручную. или каким то образом можно тоже автоматизировать процесс?
stas_ganiev; +1 Ответить
27. stas_ganiev 1673 28.05.20 01:25 Сейчас в теме
(26) Можно автоматизировать, есть отдельные инструменты для этого
28. buganov 194 28.05.20 12:05 Сейчас в теме
(27) а можно и мне о них? Хочу у себя в компании внедрить гит для начала хотя бы для внешних обработок, а то вечные грабли при групповой доработке...
29. Dem0 15 27.08.20 14:54 Сейчас в теме
А можно по шагам для особо "сомневающихся"?
Вот я установил гит, sourceTree зарегистрировался на гихабе и на битбакете.
создал пустой каталог на компе - захреначил туда файлов - и закомиттил это барахло на гитхаб.
Так же спокойно получаю оттуда то, что нужно.
Но вот в какой момент Precommit1c будет раскладывать цф на файлы конфигурации и загружать обратно?
Вот я сижу в конфигураторе - создал пустую базу, добавил туда документ и справочник. Что дальше должно произойти, чтобы на гитхаб само закомиттилось?
30. alexey_kurdyukov 128 21.09.20 12:46 Сейчас в теме
В итоге непонятно: как происходит доставка данных из 1С в Git и обратно. Ну, допустим, выгрузка в файлы в 1С есть, даже вроде выгружаются только изменения, тут вроде есть варианты. Но что делать с загрузкой? Загружается же вся конфигурация целиком, а это несколько часов загрузки и обновления БД + работа только в 64-битном конфигураторе + снятие конфы с поддержки. Вот этот вопрос непонятен совсем.
amatoravg; +1 Ответить
31. agent00mouse 236 01.09.21 11:05 Сейчас в теме
(29) (30) Собственно тоже вопрос возник. обработка разваливается на файлы. Все льётся на гита. А собирать кто будет? Смысл всей этой работы? как мне собрать обратно обработку при pull'e?
32. unichkin 1523 12.10.22 14:28 Сейчас в теме
Оставьте свое сообщение

См. также

Прокси хранилища 1С (IIS, OneScript)

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

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    4799    kamisov    24    

81

Отражаем хранилище в репозиторий git, Jenkins'ом

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

Описание приемов по настройке копирования хранилища 1С в репозиторий git. С помощью gitsync, под управлением Jenkins.

16.06.2022    1517    ImHunter    1    

19

Работа с хранилищем конфигурации с разными версиями конфигуратора

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

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

08.06.2022    1503    curdate    10    

7

Скрипт перепривязки базы к хранилищу конфигурации

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

Пример скрипта для перепривязки базы к хранилищу конфигурации, используя Python.

17.04.2022    1215    malikov_pro    0    

12

Выгрузка версии хранилища в XML файлы

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

Скрипт, выполняющий выгрузку произвольной версии из хранилища в XML.

17.03.2022    1031    kraynev-navi    2    

7

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Как подключиться к хранилищу конфигурации на сервере за NAT, если есть доступ по RDP?

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

В статье находится инструкция по подключению базы 1С к хранилищу конфигурации, если хранилище не опубликовано в интернет, но опубликовано по TCP в локальной сети клиента.

01.06.2021    4193    Dipod    13    

53

Мастер-класс: Реализация цикла CI/CD на практическом примере с использованием системы Тестер

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

На онлайн-митапе Инфостарта «DevOps в 1С» выступил Дмитрий Решитко – руководитель отдела разработки в компании C.T. Consultants Inc. Дмитрий провел мастер-класс, в котором продемонстрировал, как создавать новую функциональность в конфигурации с одновременным использованием инструмента тестирования и реализовать автоматизированное тестирование конфигурации при помещении кода в репозиторий на GitLab.

31.05.2021    2421    grumagargler    0    

18

Технология разветвленной разработки конфигураций 1С

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

Вся групповая разработка любой организации, где работает более 2-х программистов, в превосходящем большинстве случаев строится вокруг хранилища конфигурации. Те из нас, кто обращался к стандартам разработки 1С как минимум раз в жизни и читал их полностью (а может, и просто слышал от коллег), наверняка знают, что существует «Технология разветвленной разработки конфигураций» https://its.1c.ru/db/v8std#content:709:hdoc но не все поняли, как на самом деле эту замечательную вещь применять на практике, а кто-то понял и вероятнее всего думает, что «это к нам не относится, командная разработка по такой технологии в нашей организации не получится в силу определённых причин и потому применять её, к сожалению, я один не могу и не буду», до конца не разобравшись во всех аспектах, но это ошибочное мнение. В этой статье я постараюсь описать свой опыт, рассказать о преимуществах использования данной технологии, дать понять, что технология разветвленной разработки конфигураций на самом деле вещь индивидуальная и каждый для себя решает сам, применять её или нет, а также внести понимание, что у вас вообще нет никакой зависимости от своих коллег, работая в хранилище конфигурации при использовании этой технологии.

19.05.2021    9821    sinichenko_alex    45    

127

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Хранилище значения. Заметки

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

Некоторые подробности про общеизвестный инструмент.

03.11.2020    26444    Yashazz    15    

49

Минимизация изменений в коде / Использование Хранилища общих настроек

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

В данной публикации будет показан пример использования Хранилища общих настроек, и показано, как с его помощью можно минимизировать изменения в типовом коде.

14.11.2019    3515    biimmap    34    

2

История одного проекта обновления

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

История одного проекта обновления, хранилище, групповая разработка.

06.11.2019    6092    vasilev2015    20    

23

Git для 1С-ника и другие технологии групповой разработки

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

У многих специалистов в отношении Git сложились стереотипы, мешающие начать работу с этим прекрасным и удобным инструментом. Почему его не стоит бояться, и чем он может упростить жизнь 1С-никам, рассказал архитектор ГК «Невада» Станислав Ганиев.

28.10.2019    16408    stas_ganiev    17    

63

Переход на разработку с хранением в Git, часть 1, подготовка репозитория

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

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

29.09.2019    10155    malikov_pro    14    

108

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Как начать работать с Git

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

Если Вы 1С программист, то обязательно наткнетесь на людей, рассказывающих о OScript, DevOps, EDT, SilverBulleters и так далее. Сейчас уже нельзя скрыться от этой информации. Так же было и со мной. В корне всего этого зоопарка лежит понимание и умение работать с Git (Распределённая система управления версиями). Укрупненной информации о ней много, Вы легко её нагуглите сами. В этой статье я старался собрать основные команды, определить их последовательность выполнения и привести краткий пример. Попробуйте выполнить все команды, и Вам станет проще разобраться с остальными программами. Удачи!

29.06.2019    10748    johnnyshut23    34    

64

Исправляем медленное выполнение операций с хранилищем конфигурации

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

В статье описан способ решения проблемы долгого захвата/помещения объектов в хранилище конфигурации

26.05.2019    17966    tormozit    21    

93

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

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

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

28.03.2019    35691    ellavs    90    

250

Ошибки при работе с хранилищем конфигурации и способы их решения

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

В статье собраны наиболее распространенные ошибки при работе с хранилищем конфигурации и способы их обхода и решения.

01.03.2019    92572    Смешной 1С    40    

179

Еще раз про хранилище, или проблемы, с которыми мы столкнулись на практике

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

Хранилище - необходимый инструмент для групповой разработки, но иногда встречаются не очень очевидные вещи, о которых и хотелось бы поговорить в данной публикации.

25.01.2019    3509    Lucifer93    2    

7

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git

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

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    144386    stas_ganiev    90    

400

Одновременное использование хранилища и расширений

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

Шастун Алексей поднимает вопрос одновременного использования хранилища и расширений. В статье рассмотрены плюсы и минусы хранилища и расширений, а также возможные варианты их использования. Также автор описывает два практических кейса по организации одновременного использования хранилища и расширений 1С в проектной группе из трех и более разработчиков.

23.08.2018    15502    shaa2    3    

17

Повышаем эффективность разработки правил обмена

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

Как повысить скорость и качество разработки правил обмена? Как вести групповую разработку правил обмена? Как облегчить сопровождение правил обмена после передачи в эксплуатацию? Об этом и многом другом вы можете узнать из этой статьи.

25.06.2018    32100    olegtymko    49    

152

Групповая разработка конфигураций в крупном холдинге

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

О чем мы сегодня поговорим? • О становлении и развитии групповой разработки конфигураций 1С в крупном холдинге с использованием хранилища конфигураций. • Обсудим практически все аспекты использования хранилища в командной разработке. • Я расскажу про те методы и идеи, которые мы пробовали использовать, какие используем до сих пор, от каких отказались и почему.

15.08.2017    26358    stas_ganiev    17    

78

Поиск несериализуемых значений при помещении в хранилище

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

В статье разобран пример, как найти несериализуемые значения в случае помещения в хранилище коллекций, содержащих вложенные элементы. В качестве хранилищ рассмотрены временное хранилище значений и переменные типа ХранилищеЗначения.

02.03.2016    27106    balanton    2    

14

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Работа с хранилищем конфигураций из командной строки

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

Данное изложение на примерах демонстрирует работу с хранилищем конфигураций из пакетного режима

22.04.2014    20587    Franco    12    

26

Хранилище конфигурации: не очевидные особенности групповой разработки

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

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

03.06.2013    47052    _also    33    

105

Настройка удаленного хранилища 1С 8.2 IIS6 (server 2003)

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

Перерыл инет, спрашивал на куче форумов, никто ничего вразумительного не ответил, в итоге докопался до истины.

26.11.2012    14734    alex.msk    3    

9

1с v8.2.13 ХранилищеЗначений в Табличной части объекта

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

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

21.12.2011    24560    kostia.ck    8    

23

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Сравнение значений типа Хранилище

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

Сравнение значений типа Хранилище (простое решение для тех, кто не нашел ничего подобного на просторах интернета и не имеет навыков быстрого формирования контрольных сумм CRC, md5 средствами 1С, но имеет желание или необходимость выполнения такого сравнения). * было актуально для платформы 8.2, платформа 8.3 уже позволяет получить хеш MD5 или CRC32

18.10.2011    17494    yandextesting    6    

14

Хранилище конфигурации

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

Теперь можно забыть про типовое хранилище от 1С с которым на больших конфигурациях работать просто невозможно. Все изменения конфигурации будут сохраняться в автоматическом режиме на СУБД и вы всегда за доли секунды можете вернуться к старой версии или посмотреть изменения.

28.12.2010    22830    German    24    

76

Настройка удаленного хранилища конфигурации 1С 8.1 ( HTTP)

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

Удаленное хранилище в 1С предприятии 8.1 позволяет группе программистов из различных мест(городов, стран, ...) совместно трудится над одним и тем же проектом или конфигурацией. Совсем не обязательно располагаться в одном здании, достаточно лишь, чтобы у заказчика и , желательно, у программистов был бы широкий доступ в интернет и компьютер с установленной операционной системой, например, Windows Server 2003 на сервере хранилища заказчика.

08.06.2010    34440    Veratis1c    12    

82

Хранилище конфигурации: создание и использование

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

Заметка про Хранилище конфигурации 1С:8.х Зачем, кому и для чего оно может быть полезно? Как создать, как использовать, как организовать работу программистов с ней? "Неочевидные" и "невероятные" методики для чайников :)

12.01.2010    160612    kote    60    

322