1С: Gitter 1.1 (Хранилище 1С => Git)

Публикация № 583152

Разработка - Инструментарий разработчика

Хранилище git gitter V8Unpack гит гиттер обмен

Развитие проекта gitter http://infostart.ru/public/273126/ . Позволяет выгружать хранилище 1С в репозиторий GIT.

Благодарности и использованные проекты

Был взят проект //i.doc-lvv.ru/public/273126/ и допилен под собственные нужды. Автор проекта согласился на отдельную публикацию, но плюсиков ему не забудьте отсыпать.

Так же в проект были внедрены Инструменты Разработчика //i.doc-lvv.ru/public/15126/ (Туда тоже плюсиков отсыпьте) и использован V8Unpack //i.doc-lvv.ru/public/15695/ (в cf его нет, качать отдельно)


Исходные коды опубликованы в https://github.com/Stepa86/1C-Gitter . Последний актуальный cf всегда тут https://github.com/Stepa86/1C-Gitter/blob/master/cf/Gitter.cf 


Зачем это все?

Git решили использовать ровно для двух вещей. Для код-ревью и более удобной работы с историей. Для этого идеально подошел https://bitbucket.org . Для команды до 5 человек его можно использовать бесплатно и там сразу есть все нужное. Правда там есть ограничение на размер репо в 2гига.

Выглядит это все как то так:

Что изменилось

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

2) Внедрены инструменты разработчика для управления регламентным заданием, пакетной обработкой объектов и на перспективу. Из-за этого основной режим запуска теперь - обычное приложение.

3) Добавлена распаковка обычных форм с помощью V8Unpack . Исходные файлы Form.bin удаляются для ускорения выгрузки и ограничения роста хранилища, так что из репо GIT восстановить конфигурацию с обычными формами не получится.

4) Добавлено логирование выгрузки, чтобы быть в курсе происходящего

5) Добавлена инкрементальная выгрузка из 8.3.10. Выгрузка в среднем стала быстрее в 3 раза

6) Небольшой багфикс. Например, любимая ошибка неразрывного пробела, когда 1000ая версия хранилища не очень выгружалась (точнее, выгружалась 1ая версия)

Настройка и подготовка к работе

Сперва все так же, как раньше. rtnm сделал подробнейшее описание https://bitbucket.org/rtnm/gittertutorial

Чтобы работало регламентное задание, нужно на машине, где крутится сервер 1С из-под пользователя, под которым крутится 1С, настроить папки и GIT. Если по иконке с зажатым шифтом кликнуть правой кнопкой, то появится пункт "Запустить от имени другого пользователя". Все используемые пути также должны быть доступны из под пользователя, под которым крутится 1С.

Чтобы работала распаковка обычных форм, нужно в константе указать пусть к V8Unpack (Операции-Контанты). Я взял его из папки oScript ( //i.doc-lvv.ru/public/548028/ там, кстати, есть библиотека Gitsync которая делает примерно то же самое, но более продвинутая. Наверное. Я не очень разбирался.)

Если у вас очень много версий в хранилище, то их выгрузка может занять значительное время. Чтобы начать выгружать не с 1ой версии, можно указать реквизит "Минимальная версия для выгрузки", и тогда выгрузка пойдет именно с этой версии.

Для инкрементальной выгрузки 1) У вас должна быть 1С 8.3.10+ 2) В карточке должна стоять галка "Обновление выгрузки".

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

Управление регламентными заданиями удобно выполнять через консоль заданий в ИР, изменяя там расписание, включая/отключая для разбора проблем и просматривая лог выгрузки

Возможные проблемы и как их обходить

Небольшой список проблем, с которыми я столкнулся

Команды Git не работают, постоянно выскакивает исключение

Идем на сервер 1С, запускаем git bash от пользователя, под которым крутится 1С, переходим в папку с хранилищем cd имя папки (обращаю внимание, что путь к папке указывается через / и в целом иначе). Если попали в тот репо, то в скобочках появится имя ветки. После этого вставляем команду, которая указана в исключении, и смотрим ошибки. Дальше гугл, мозг, вопросы на форумах или это уже описано далее.

Репозитарий слишком много весит/слишком много ненужных файлов

Для этого я использую файл ".gitignore". Нужно создать этот файл в папке с репо и указать туда то, что не нужно отслеживать. Для себя я его настроил так:

*.cf
*.png
*.bmp
*.bin
Picture.xml
Template.xml
src/ConfigDumpInfo.xml
out1c.txt

Так же этот файл можно создать с помощью сторонних программ для работы с gitом. 

Git не видит изменений. Пишет, что нечего коммитить

Если было изменение в обычной форме, или в картинке или в другом файле, который находится в гитигноре, то изменений как бы нет на самом деле. Если гиттер работает под 8.3.10+ с соответствующей галочкой в карточке, то при ошибке коммита проверяется файл изменений. Если и в нем изменений нет, или файла в принципе нет, то генерируется исключение. Иначе этот момент пропускается. Чтобы у меня не ругалось на отсутствие изменений, когда исправлена обычная форма, которая и не уходит - я исключил из гитигнора файл сравнений, и в нем теперь (для 8.3.10+) всегда отображается, а что было изменено по мнению 1С.

Локальный git сломался, начал работать не так итп

Для этого нужно

1) Остановить регламентое задание

2) Удалить все в локальном репо

3) Склонировать гит из удаленного репо в локальный

4) В гиттере снять флажки "Выгружено" с тех версий, которые не ушли в удаленный репо

5) Включить регламентное задание

Скачать файлы

Наименование Файл Версия Размер
Gitter_1_1.cf

.cf 11,28Mb
01.02.17
43
.cf 1.1 11,28Mb 43 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. pumbaE 634 01.02.17 11:13 Сейчас в теме
В gitignore "*.bin" вы зря так пушкой по воробьям, с таких расширением есть еще XDTO пакеты, которые как оказывается являются текстами, которые легко мержить.
baton_pk; JohnyDeath; h00k; speshuric; Stepa86; +5 Ответить
2. Stepa86 1365 01.02.17 11:16 Сейчас в теме
(1) Так я ж для себя так настроил и гит+1С только начал постигать. Когда это аукнится, то поправлю файл или гиттер. Я так то уже раза 4 репозиторий пересоздавал пока учился.
6. Atori-kun 29.03.17 06:43 Сейчас в теме
(2) Не встречались с такой ошибкой?
{ОбщийМодуль.Git.Модуль(88)}: Неизвестная ошибка при совершении комита. Код возврата: 1(git commit -m "Комментарий не указан" --date 2017-03-23T14:08:34) ВызватьИсключение ИсключениеОшибкаПриВыполненииКоманды(ОписаниеОшибки, ТекстКоманды);
Загрузка из хранилища с завидной периодичностью падает по этой причине.
7. Stepa86 1365 29.03.17 09:56 Сейчас в теме
(6) Попробуй сделать коммит из консоли, там будет написана ошибка. У меня в 90% случаев такая ошибка изза "нечего коммитить", обычно это гитигнор съедает измененные файлы.
3. tkv44 01.02.17 14:51 Сейчас в теме
Я сначала прочитал название как "Гитлер".
4. Evil Beaver 6754 03.02.17 12:14 Сейчас в теме
(3) а отличное название, кстати, если латиницей написать. Gitler
cheburashka; serg_infostart; 1ceo_2015; +3 Ответить
5. Stepa86 1365 03.02.17 13:13 Сейчас в теме
8. RainyAugust22 248 25.04.17 06:18 Сейчас в теме
Сделайте плз видео или инструкцию для непосвященных, как использовать 1С совместно с Github. Вот так сразу не совсем понятно как это использовать и в чем плюсы.
9. Stepa86 1365 25.04.17 08:38 Сейчас в теме
(8) Вот есть инструкция от изначального автора https://bitbucket.org/rtnm/gittertutorial

Плюсы лично для меня - удаленное хранение кода, информация об изменениях в коде онлайн, удобный код-ревью, связь с задачами.
10. purgin 02.05.17 14:06 Сейчас в теме
Антон, спасибо огромное!
В функции "ПроверитьФайлИзменений_ТребуетсяПолнаяВыгрузка" поправьте плиз
строчку
Если ВРег( чтениеФайла.ПрочитатьСтроку() ) = ВРег( "FullDump" ) Тогда
на
Если СтрНачинаетсяС(ВРег(чтениеФайла.ПрочитатьСтроку()), ВРег("FullDump")) Тогда
11. Stepa86 1365 02.05.17 14:26 Сейчас в теме
(10) А что там еще может лежать и в какой версии?
13. purgin 02.05.17 16:06 Сейчас в теме
(11)
версии
Символ переноса строки, 8.3.10.2168
12. Stepa86 1365 02.05.17 15:01 Сейчас в теме
(10) Исправил. Обновление в https://github.com/Stepa86/1C-Gitter
Лучше ошибки и замечания оставлять там же
14. Сурикат 304 07.05.17 16:07 Сейчас в теме
А никто не сталкивался с проблемой:
При выгрузке таблицы пользователей или выгрузке коммитов из хранилища выдает окно подключения к хранилищу...всегда...
15. JohnyDeath 297 07.05.17 21:18 Сейчас в теме
(14) может логин/пароль неправильный установил?
16. Stepa86 1365 08.05.17 09:59 Сейчас в теме
(14) Почти всегда это проблема в указании параметров, когда неправильно указан путь к хранилищу, логин или пароль. Иногда не нравится, что передан пустой пароль, когда пароля нет. Можно поиграться для выявления причины - установив/сняв пароль, использовать имена на латинице, убрать/добавить слеш в пути.
17. headMade 143 15.05.17 14:20 Сейчас в теме
Подскажите, а фото автора комментария откуда подтягивается?
18. Stepa86 1365 15.05.17 14:31 Сейчас в теме
(17) Или из профиля пользователя, если он зарегистрирован в гитхабе/гитлабе/битбакете или из граватара или не подтягивается
19. alyaev.a.v 19.09.17 12:39 Сейчас в теме
Если в полном наименовании пользователя будет строка с пробелом(например "Имя Фамилия"), то user.name не устанавливается
20. родственник 01.02.19 06:46 Сейчас в теме
Периодически ловим ошибку "Ошибка при создании объекта c IID" на разных серверах при формировании отчета по хранилищу командой:
"1cv8.exe" DESIGNER /F"d:\Temp\1CDb\Db_04" /ConfigurationRepositoryF"d:\storages\temp" /ConfigurationRepositoryN"test" /ConfigurationRepositoryP"" /ConfigurationRepositoryReport"d:\Temp\1CDb\rep_report.mxl" /Out"d:\Temp\1CDb\rep_report.txt"

50:24.249005-0,EXCP,0,process=1cv8,Usr=DefUser,Exception=Exception,Descr='Ошибка при создании объекта c IID - 332c4425-26cb-11d0-b483-00c04fd90119[helpui - src\helpmiscUI.cpp (648)]'

на платформе 8.2 ошибка не воспроизводится
воспроизводится на разных платформах 8.3 до 8.3.13 включительно.
на 8.3.14 ошибка не воспроизводится, видимо из-за перехода на WebKit (https://wonderland.v8.1c.ru/blog/perevod-klientskikh-prilozheniy-dlya-windows-na-ispolzovanie-webkit-optimizatsiya-otobrazheniya-html/)

перезапуск службы не помогает, спасаемся перезапуском сервера - крайне не нравится.

При этом, в это же время, под другим пользователем команда выполняется нормально, также, если пользователь из-под которого запускается процесс залогинен интерактивно, то тоже все работает нормально.

Все вышеописанное справедливо для нашего решения по работе с хранилищем, наверняка у вас ошибка также воспроизведется, потому как это сильно смахивает на ошибку платформы в связке с Internet Explorer. Пользователи ГитКонвертера тоже ее ловят https://github.com/1C-Company/GitConverter/issues/51.
Оставьте свое сообщение

См. также

Эмулятор скриптов в 1С:Документооборот Промо

Документооборот и делопроизводство Инструментарий разработчика Документооборот и делопроизводство v8 ДО Платные (руб)

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

1000 руб.

13.12.2017    13222    91    0    

Отключение создания задачи ознакомления для бизнес-процесса "Согласование" в 1С: Документооборот

Практика программирования Документооборот и делопроизводство v8 v8::Бизнес-процессы ДО Абонемент ($m)

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

1 стартмани

30.11.2019    4240    6    pavelpribytkin96    4    

1С: Документооборот. Роли, использующие объекты адресации. Конфигурация остается типовой (используется расширение)

Информационная безопасность v8 ДО Абонемент ($m)

Расширение функционала документооборота. Реализована возможность использования ролей с объектами адресации. Конфигурация остается типовой (используется расширение)

5 стартмани

10.01.2019    7347    15    sulig    21    

Видеокурс-самоучитель "1С:Документооборот - ГУРУ" для самостоятельного внедрения

Пользователю системы Документооборот и делопроизводство v8 ДО Платные (руб)

Самый детальный и самый полный самоучитель по программе 1С:Документооборот, в котором Вы научитесь правильно работать, настраивать, администрировать и внедрять конфигурацию 1С:Документооборот. Все уроки курса построены на последовательном заполнении пустой базы 1С:Документооборот КОРП в клиент-серверном варианте.

89000 руб.

30.10.2018    21007    8    0    

Перенос документов и процессов между двумя базами 1С:Документооборота Промо

Обработка документов Перенос данных из 1C8 в 1C8 Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Платные (руб)

Обработка по переносу документов поможет перенести документы и процессы из одной базы 1С:Документооборот в другую. Версии двух баз должны совпадать, а релизы конфигураций 1С:Документооборот могут быть различными. Главное, чтобы была синхронизирована НСИ.

21000 руб.

09.06.2016    20248    8    4    

Вывод всей истории в задаче комплексного процесса

Практика программирования v8::Бизнес-процессы ДО УУ Бесплатно (free)

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

08.08.2018    6299    0    E_Babaylova    7    

Печать pdf документа со штампом ЭЦП

Печатные формы документов Документооборот и делопроизводство Документооборот и делопроизводство v8 v8::УФ ДО Абонемент ($m)

Печать pdf файла, прикрепленного к внутреннему документу, подписанному ЭЦП, с установкой отметки о подписании.

1 стартмани

24.05.2018    14272    94    App0st0l    14    

Нанесение штампа на PDF файл при регистрации (входящий номер и дата)

Практика программирования v8 ДО Бесплатно (free)

Данный код реализует возможность автоматического нанесения штампа на PDF файл при регистрации (входящий номер и дата).

14.05.2018    14075    0    aabogachev    39    

Ограничения запуска процессов в 1С:Документооборот

Обработка документов Обработка справочников v8 ДО Платные (руб)

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

21000 руб.

03.04.2017    10883    33    0    

Управление договорами в 1С:Документооборот

Управление бизнес-процессами (BPM) Документооборот и делопроизводство Пользователю системы Бухгалтерский учет Документооборот и делопроизводство v8 ДО УУ Бесплатно (free)

В 1С:Документооборот в релизах 2.1.7 и 2.1.8 концепция учета договоров продолжила свое развитие (появились стороны договора). Это повлияло и на бизнес-процессы (теперь вместо процесса Утверждение надо пользоваться процессом Подписание для договоров). Рассмотрим основные моменты, на которые надо обратить внимание при внедрении управления договорами в 1С:Документооборот.

24.01.2017    33833    0    vlush78    0    

Блокировка повторного запуска комплексного процесса в 1С: Документооборот 2

Администрирование данных 1С Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Абонемент ($m)

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

2 стартмани

04.10.2016    19915    73    zabaluev    25    

Права доступа в 1С:Документооборот 2.1

Информационная безопасность Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

В программе 1С:Документооборот ред 2.1 механизм системы прав доступа сильно изменился. С одной стороны, права доступа в данной версии стали проще и быстрее, с другой стороны - права по рабочим группам объектов теперь могут противоречить политикам доступа. Разберемся в данной статье как работает механизм прав доступа в 1с документообороте 2.1.

16.09.2016    71096    0    vlush78    0    

Новое в 1С:Документооборот ред. 2.1

Пользователю системы Управленческий учет (прочее) Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО УУ Бесплатно (free)

Фирма 1С не стоит на месте и продолжает радовать нас своими новыми версиями конфигурации 1С:Документооборот. В конце мая 2016 года вышла новая редакция 2.1, которая содержит как принципиально новые возможности, так и улучшение старых функций. В данной статье будут рассмотрены отличия конфигурации 1С:Документооборот редакции 2.1 по сравнению с редакцией 2.0.

15.06.2016    32278    0    vlush78    7    

Нагрузочное тестирование 1С:Документооборот

Производительность и оптимизация (HighLoad) Документооборот и делопроизводство Документооборот и делопроизводство v8 ДО Бесплатно (free)

Перед запуском 1С:Документооборот для средних и крупных внедрений крайне желательно провести нагрузочное тестирование, чтобы проверить корректность и скорость работы системы электронного документооборота в условиях максимальной нагрузки. В данной статье пойдет речь о том, как провести нагрузочное тестирование в 1С:Документооборот без использования 1С:КИП.

28.12.2015    20898    0    vlush78    1