← На главную
При переходе на разработку в среде 1C:EDT (1C:Enterprise Development Tools) перед командами и частными разработчиками встает вопрос выбора и настройки хранилища исходного кода. Популярный сервис GitHub для создания закрытых (приватных) командных репозиториев требует платной подписки, что вызывает трудности с проведением оплаты и предоставлением закрывающих документов для бухгалтерии.
Рассмотрим подробнее, как обойти бухгалтерские сложности, какие существуют альтернативы и как правильно настроить интеграцию 1C:EDT с Git-сервером.
Проблема проведения зарубежных платежей через бухгалтерию
Проанализируем юридическую и финансовую сторону прямой покупки подписок на зарубежных платформах вроде GitHub:
- Отсутствие закрывающих документов. При оплате корпоративной картой сервисы предоставляют только инвойсы и электронные квитанции. Налоговые органы часто отказываются принимать их для подтверждения расходов организации, так как отсутствуют стандартные акты выполненных работ или универсальные передаточные документы (УПД).
- Обязанности налогового агента. При покупке зарубежного облачного ПО юридическое лицо обязано самостоятельно рассчитывать и перечислять в бюджет НДС налогового агента, а также налог на доходы иностранной организации.
Если организации принципиально необходимо использовать именно облачный GitHub, оплату обычно проводят через отечественных IT-дистрибьюторов или агентские сервисы. В таком случае оформляется договор в рублях с предоставлением полного комплекта закрывающих документов.
Альтернативные решения: Self-hosted Git и локальный GitLab
Выясним, как упростить инфраструктуру и полностью исключить расходы на зарубежные подписки. Оптимальным решением для разработки в 1C:EDT является разворачивание собственного Git-сервера в локальной сети компании или на виртуальном сервере.
Основные варианты бесплатной инфраструктуры:
- Установка GitLab Community Edition (CE). Разворачивание собственного сервера GitLab снимает любые ограничения на количество приватных репозиториев и пользователей, а также устраняет необходимость согласования зарубежных платежей с бухгалтерией.
- Использование альтернативных версий. Для небольших команд подходят легковесные open-source системы, такие как Gitea или Forgejo.
- Российские облачные Git-платформы. Использование отечественных облачных хостингов исходного кода позволяет работать по безналичному расчету в рублях с получением закрывающих документов по ЭДО.
Подключение Git-репозитория к 1C:EDT по шагам
Среда разработки 1C:EDT использует стандартные протоколы передачи данных (HTTPS и SSH). Для программы нет разницы, где именно расположен Git-сервер — на локальном сервере GitLab, в приватном облаке или на внешней платформе.
Разберем порядок подключения проекта в 1C:EDT:
- Создадим новый проект или репозиторий на сервере GitLab или в облачном сервисе.
- В 1C:EDT перейдем в перспективу работы с Git (или откроем панель Git Repositories).
- Выберем команду клонирования репозитория (команда
Clone a Git repository).
- Укажем URI вашего репозитория (например, по протоколу HTTPS) и данные для авторизации.
- Укажем локальную папку на диске для размещения проекта и завершим импорт проекта в рабочее пространство 1C:EDT.
Технические особенности работы 1C:EDT с версиями Git
Для корректной работы 1C:EDT с системами контроля версий необходимо учитывать следующие технические нюансы:
- Авторизация по персональным токенам (PAT). При работе по протоколу HTTPS современные сервисы (включая GitLab и GitHub) не принимают обычный пароль от учетной записи. В настройках авторизации 1C:EDT необходимо указывать персональный токен доступа (Personal Access Token).
- Использование Git LFS (Large File Storage). Проекты 1С содержат не только текстовые исходники, но и бинарные файлы (картинки, макеты печатных форм, внешние библиотеки). Чтобы репозиторий не разрастался до больших размеров и не вызывал зависания 1C:EDT, обязательна настройка расширения Git LFS.
- Слияние веток и разрешение конфликтов. Конфигурация 1С в 1C:EDT представляется в виде множества взаимосвязанных XML-файлов. Конфликты слияния нельзя править через веб-интерфейс GitLab или сторонние текстовые редакторы. Все разрешения конфликтов выполняются исключительно внутри 1C:EDT с использованием встроенного инструмента трехстороннего сравнения и объединения.