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

Публикация № 63841 12.01.10

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

Заметка про Хранилище конфигурации 1С:8.х

Зачем, кому и для чего оно может быть полезно? Как создать, как использовать, как организовать работу программистов с ней?

"Неочевидные" и "невероятные" методики для чайников :)

Пара общих строк. Зачем это нужно?

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

- Если Вы хотите видеть, что, как и кем менялось в конфигурации с течением времени..

- Если Вы хотите иметь представление об объемах работы по изменению конфигурации каждого конкретного программиста (к сожалению, внешние обработки и отчеты туда не поместишь)

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

- Если нужно организовать слаженную работу географически удаленных разработчиков..

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

.. то Вам может помочь организация работы с использованием Хранилища.

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

Итак.. Создание Хранилища.

В режиме Конфигуратора, в меню Конфигурация/Хранилище конфигурации выберем Создать хранилище... , укажем каталог хранилища, пользователя/пароль (не связано с пользователями БД) и выгрузим ТЕКУЩЕЕ состояние конфигурации в него..

Что нужно сделать дополнительно: Даже если Вы планируете работать с Хранилищем в одиночку - сразу после создания создайте ЕЩЕ одного пользователя хранилища с административными правами и одного с параметрами по умолчанию - пункт Администрирование хранилища в том же меню.

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

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

Неочевидный аспект: имейте ввиду, что теперь этот пользователь будет "закреплен" за Рабочей БД, от имени другого пользователя, открыв рабочую БД в конфигураторе, соединится с Хранилищем не удастся!

Как вести разработку:

- Для (каждого) программиста (обычно, локально, на его компьютере) создается пустая БД. Из основной БД делается выгрузка с данными (если она не сильно объемная - файл *.dt) или выгружается просто конфигурация (если БД сильно большая - файл *.cf). - В созданную локально базу заружают копии основной БД (можно без этого обойтись, но так быстрее, чем.. "не так" - этот пункт отсутствует в документации, по стандарту, его можно пропустить).

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

ПРИ ЭТОМ ЕСЛИ ЕСТЬ РАЗНИЦА - ВАША ЛОКАЛЬНАЯ КОНФИГУРАЦИЯ БУДЕТ ЗАТЕРТА КОНФИГУРАЦИЕЙ ХРАНИЛИЩА

Данные локальной БД, при этом, останутся целыми.. можете считать, что произошло Объединение конфигураций с приоритетом конфигурации Хранилища.

"Неочевидное": а что делать если мы уже вели разработку в локальной БД? Как сохранить все "нажитое непосильным трудом"??

"Невероятное": выход есть. ПЕРЕД тем, как соединить локальную БД с Хранилищем, СДЕЛАЕМ ВЫГРУЗКУ локальной конфигурации в файл *.cf

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

После этого объединим локальную конфигурацию с конфигурацией из файла с приоритетом последнего и отправим все НАШИ ИЗМЕНЕНИЯ в Хранилище (операция Поместить в хранилище..).

Все в порядке. Оттуда эти наши изменения можно отправлять в основную БД!

Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей не забывая перед каждым объединением выполнять РЕКУРСИВНЫЙ захват корневого элемента конфигурации, в ходе которого в т.ч. происходит обновление конфигурации из Хранилища до последней версии.. А после каждого объединения выпонять РЕКУРСИВНЫЙ возврат корневого элемента для обновления конфигурации в Хранилище.

А теперь можно начинать продуктивную работу..

====

Советую ознакомится со следующими ссылками:

 - На сайте 1С и еще вот это вот..
 - Кроме того пригодится еще это вот - из документации..
 - Настройка работы через интернет.

====

http://www.gilev.ru/1c/storage/index.htm
http://www.kb.mista.ru/article.php?id=788

====

В комментариях появляются очень хорошие посты.. этот не могу потерять :)

Большое спасибо автору, хорошо написал!

"12.

+ -
nafa 14.01.2010 02:27:15
..
В работе хранилища действительно очень много неочевидных вещей, поэтому мои дополнения:
1. Если работают несколько программистов, то как вариант,
рабочий день обычно начинается со следущего:
запускаем свою базу в конфигураторе, на корне конфигурации правой кнопкой мышки - получить из хранилища, включаем галочку "рекурсивно", жмем ОК. После этого в конфигурацию получаем все, что наработали другие из хранилища. САМУ БД НЕ ОБНОВЛЯЕМ!!!
Далее желаем "сравнить конфигурацию с конфигурацией БД" - и видим список все изменений сделанных другими программистами группы за предыдущий день. Если есть вопросы по изменениям- обращаемся к тому, кто их делал.
После того, как все разобрали - сохраняем в БД.
Почему не сравнить с конфигурацией хранилища - во-первых чтобы не показывались те объекты, над которым сам работаешь, во-вторых это работает быстрее.
2. В середине дня: срочные изменения (для динамического обновления) отправляем в хранилище сразу. Не срочные - после того, как изменим все связанные объекты. (см. пояснение ниже)
3. В конце дня (а если надо делать полное обновление базы - то перед ним) сдаем в хранилище все что можно.
Это не обязательный порядок, но весьма удобный.

4. Почему не помещаем сразу:
потому что целостность изменений контролируется 1С только там где есть ссылка. То есть если например вы сделали справочник "Автомобили клиентов" и добавили ссылку на него в "расходную накладную", то поместить "Расходную накладную" в хранилище Вы сможете только после (или одновременно) со справочником "Автомобили клиентов". Но если Вы например использовали этот справочник в процедуре общего модуле, которая вызывается при проведении расходной накладной, то этот общий модуль в хранилище спокойно поместиться без помещения справочника. Если после этого другой программист получит этот модуль из хранилища, то в его базе расходные накладные проводиться перестанут. (А если обновить основную базу - то и там перестанут).
И то еще хороший случай - так как возникает просто ошибка. А вот если Вы например изменили тип реквизита в документе со строки на текст и в процедуре общего модуля была проверка Если Реквизит = "1" а стала Если Реквизит = 1 и модуль в хранилище поместили а документ - нет, то ошибки не будет (привет отсутствию контроля типов), а значит у тех кто такой модуль получит документы будет неправильно проводиться, (и хорошо если это будет не основная база). Поэтому изменения лучше сдавать в хранилище "полным пакетом" (все измененные по одной теме объекты), если что-то нужно Вам для другой задачи - можно сразу же захватить по новой или просто, помещая в хранилище, "оставить захваченным".

В этом плане я не совсем понял:
Цитата
Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей..

Странно, не было никаких проблем когда несколько человек сразу изменения помещали, разве что подтормаживало малость. На то захват объектов и предусмотрен, чтобы 2 человека сразу одно и то же не исправили. Причем было замечено, что: если 1 разработчик изменил документ, скажем "Авансовый отчет", а затем второй "получения" не делал, а сразу его захватывает (например, объект только что помещен в хранилище), то 1С это отследит и сама даст ему уже новую - измененную версию. (Так прикольно бывает - смотришь на документ - 5 реквизитов, захватываешь - уже 15).

И зачем работу во внешние файлы выгружать тоже не понял.

4. Создание копий базы для программистов проще делать не 1Совской загрузкой-выгрузкой (т.к. она требует монопольного режима и не шибко шустрая), а восстановлением скульного бекапа или просто копированием базе на скуле.

5. Если нужно добавить новый объект (документ, справочник и пр), то захватите корень конфигурации, добавьте его, добавьте минимум реквизитов (совсем "пустые" объекты не всегда сохраняется), сдайте корень в хранилище (этот объект тоже сдастся при этом) и заберите объект опять. (Чтобы не держать корень долго захваченным - он и другим нужен).

6. Если Вы хотите исправить права доступа на объект, захватили его - а права доступа по прежнему недоступны - захватите соответствующую роль.

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

8. Когда делаем "получить все из хранилища" (п. 1) бывает, что 1с выдает кучу сообщений а потом пишет, что "не удалось" (список объектов при этом меняется). Значит давно не получали изменения. Ничего страшного, жмем ОК по новой и так до тех пор, пока не сработает, как надо.

9. Иногда 1С отказывается сохранять полученные из хранилища изменения, причем сообщение выдает абсолютно невнятное. Виновниками обычно являются "регистры сведений". Выясняем, у какого регистра сведений менялась структура, удаляем из него в своей базе все записи, после этого все обновится как надо.

10. Поскольку рабочие базы делаются из основной, то названия конфигураций совпадают и их легко перепутать и потом начинаются непонятки, когда пользователе говорит что у него в отчете 100 руб, а у Вас - 100,000 руб. Как вариант, добавляем в модуль приложения строчку, проверяющую при запуске программы что это за база и если не основная - выводящую это в заголовке программы 1С (например "РАБОЧАЯ БАЗА ПРОГРАММИСТА ИВАНОВА")

11. Когда база подключена к хранилищу, но при запуске не удалось к нему подключиться по любым причинам, то может выдаться сообщение "Не удалось подключиться, выполнить отключение от хранилища" (а у Вас есть захваченные объекты) - тут ОТВЕЧАЙТЕ "НЕТ". Но если случайно ответить "да" то - не пытайтесь подключиться по новой!!! Сначала сохраните конфигурацию в файл!!! Так как когда подключаемся к хранилищу, то вся конфигурация базы заменяется на конфигурацию хранилища. После этого загружаем изменения из сохраненного файла и работаем дальше.

Отредактировано nafa 14.01.2010 02:35:19

Ответили: (16) "

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SiAl 76 12.01.10 07:08 Сейчас в теме
Хорошая статья, с картинками. Действительно для "чайников".
40. kote 534 13.08.14 07:32 Сейчас в теме
"Или выгрузить из хранилища конфигурацию определенной версии?"

Это можно - в истории хранилища выбираете нужную строку (версию) и выгружаете (через контекстное меню)

--

"Подскажите, а можно ли обновить рабочую базу на определенную версию или частично?"
Можно и то и другое - через сравнение/объединение.. но всё это черевато, т.к. бывает (не всегда, но часто после даже стандартного обновления - происходит программная обработка данных - все же замечали, да??), что обновление сопровождается обработкой и корректировкой данных. При откате обратно - (1) нужно ли и (2) как обеспечить обратные действия??
47. gulchitai 22.08.16 08:14 Сейчас в теме
(40) подскажите, может в курсе, планирует ли фирма 1с развивать хранилище конфигурации? Интересует тотже вопрос, что у http://forum.infostart.ru/forum24/topic30408/message1186832/#message1186832.
Есть у нас тестовое хранилище конфигурации, в которое разработчики помещают доработки, которые должны быть протестированы тестировщиком. И если из десяти задач тестировщик протестировал 9, а одну не успел, то мы бы ее не загрузили в рабочую базу. Вариант перейти на гит кажется слишком громоздким, у нас 82 и обычные формы.
2. artbear 1430 12.01.10 13:18 Сейчас в теме
Самое главное (использование) слабо расписано или вообще не описано :(
Как работать с конфигурацией, помещенной в хранилище?
что делать, если объект уже захвачен в хранилище ?
назначение галочки рекурсия?
и т.д.

ЗЫ мы же говорим о начинающих :)
3. kote 534 12.01.10 15:26 Сейчас в теме
(2) .. ну у меня проблемы с этим не возникло, т.к. эти моменты более менее расписаны. А вот с вышеупомянутыми были вопросы, ответы на которые были найдены опытным путем.. в общем, обмен опытом для начинающих работать с системой версионного контроля фирмы 1С.

Назначение галочки рекурсия - в дереве конфигурации происходит захват не только ВЫДЕЛЕННОГО объекта, но и подчиненных ему.. т.е. если, например, выделить "узел" документа "ПриходнаяНакладная" и захватить его - то формы и макеты этого объекта будут незахвачены и над ними может трудится другой программист.. с галочкой рекурсия - будет захвачено все, что к документу относится (формы, макеты)..
Если выделить корень конфигурации, отметить галочку и выполнить захват - то получите АБСОЛЮТНО ВСЕ что входит в конфигурацию.

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

Использование в одиночку - захватываем ВСЕ, делаем необходимую доработку, локально тестируем, сохраняем в хранилище с комментарием что сделано.. впоследствии, если что то не так, можно загрузить конфигурацию на момент ДО сделанной доработки.. можно посмотреть, что и где добавилось, какие изменения были сделаны в модулях - для этого нужно в меню Конфигурация/Хранилище выбрать История, выделить две строки и по правой клавише выбрать команду Сравнить конфигурации..

Использование в группе - вопрос более сложный и многообразный.. как появится опыт нашей группы - сделаю небольшое дополнение к заметке.
4. artbear 1430 12.01.10 19:40 Сейчас в теме
(3) ты не мне пиши, а в свое статью вставь :) - я это и так знаю :)
а в статье явно будет полезнее, чем просто в комментах.

про галочку рекурсия ИМХО лучше дописать, что для прикладных объектов без нее будет захвачен только модуль объекта.
а после захвата корня конфы без рекурсии можно просто добавлять любые новые объекты
10. Anything 89 13.01.10 14:29 Сейчас в теме
(4) Поддерживаю.

(0) Разбей статью на маленькие разделы (по одному-двум абзацам). Каждому абзацу дай заголовок. Например, "Создание хранилища", "Подключение к хранилищу", "Захват объектов в хранилище" и т. д.

Получится что-то типа FAQ для начинающих. Можно будет в тексте быстро найти нужный раздел.

Хотелось бы увидеть описания работы с сервером хранилища и через HTTP.
roboteh; Monex; PLAstic; Siskin; Созинов; NewAndy; charushkin; +7 Ответить
5. nao 13.01.10 09:11 Сейчас в теме
Все эти штуки с захватом выглядят как древняя CVS. Выглядит довольно жалко на фоне современных VCS (svn, git, hg)
В 7.7 можно было распотрошить конфу с помощью gcomp и пользоваться любыми удобными _тебе_ внешними средствами: например положить конфу под контроль нормальной VCS или использовать нормальные средства трёх-стороннего объединения (я использовал kdiff3).

Есть ли у Платформы 8.* средства выгрузки наподобие gcomp? Тексты модулей конечно можно выгружать/загружать пакетно, но хотелось бы выгрузить вобще всё.
dime2; BigBzig; boggonzikov; chmod660; byte.mdfab; JohnyDeath; +6 Ответить
6. kote 534 13.01.10 12:13 Сейчас в теме
(5) Это точно..

Есть ли у Платформы 8.* средства выгрузки наподобие gcomp?
Есть. Но в бета стадии - не помню названия, но здесь (на портале) есть..
8. nao 13.01.10 12:56 Сейчас в теме
(6) (7) Насколько я понял это V8Unpack? Последний коммит 31.03.08... Оно ещё развивается?
13. hansel 18 14.01.10 02:35 Сейчас в теме
(5) Уважаемый, не обижайтесь, но...
Вы бы сначала ману покурили как следует, а потом уже на жалость давили.

1. В CVS используется (как и в последователях CVS типа svn) парадигма конкурентного изменения контролируемого объекта. Опция монопольной блокировки там есть, но это только опция. Вы бы хотя бы аббревиатуру CVS потрудились расшифровать, которая начинается со слова Concurrent...

С моей колокольни хранилище 1С сильно напоминает SourceSafe от МелкоСофта - там все те же принципы использованы. Со всеми их достоинствами и недостатками...

2. kdiff3 хорошая программа. Но, до тех пор пока не попробуешь нормальный инструмент, хотя бы типа Araxis.

3. Про "а-ля gcomp" под 8.х погуглить религия запрещает? 8-)
19. nao 14.01.10 14:05 Сейчас в теме
(13) Я и не обижаюсь. По первому пункту вы абсолютно правы. Я начинал с svn, а c CVS как-то работать не приходилось даже. По-этому в моём представлении он был как некая древняя VCS с блокировками, на которые все почему-то всё время жаловались :)

Насчёт 2. Что в Araxis Merge (вы же про него?) такого особенного? Два года назад смотрел разные программы для diff/merge под винду и не нашёл ничего интересного у Araxis Merge по сравнению с kdiff3.
Выбрал то что ближе по духу и бесплатное:)

Насчёт 3. Я уже погуглил, писал ниже про V8Unpack.
24. kote 534 15.01.10 01:21 Сейчас в теме
(19) и для всех любителей SVN, CVS, GIT и т.д..

В отношении этих программ - в работе SVN + "Черепашка" мне пригодились даже без "растормашивания" кода 1С до исходников..

Методика такая:
Есть множество обработок, в 1С 77 они лежат в каталоге extform.. конфа старая, отлаженная, основная работа программистов - доработка под меняющиеся постоянно требования внешних отчетов и некоторых обработок.. программстов несколько - как узнать, кто и чего поменял?

Всю папку extforms загружаем в хранилище - прямо 1Совские "недобинарники".. Если заходить ежедневно и делать коммиты изменений каталога в хранилище SVN - то прекрасно отслеживается что (какой файл) и в каком порядке изменялось.. не ясно кто и что в файле изменилось.. но с "что в файле" есть небольшой "черный ходик" - мне помогло.. изменившиеся файлы берем в свой каталог, который тоже в отдельном хранилище (не связанном с ранее упомянутым).. Открываем обработку/отчет и сохраняем тексты его модуля в текстовые файлы. Все это коммитим в хранилище.
В этом хранилище можно видеть что изменилось в модулях/текстах.. только вот с формами облом..

ЧерепашкаSVN очень хорошо жала все файлы - каталог в 43Мб с обработками и т.п. ужался до 14 Мб и рос. очень медленно.. Секрет медленного роста - устройство хранилища SVN таково, что он реально коммитит только изменения даже у бинарников (перезаписывается только разница даже в exe-шниках) - в итоге 2 раза погрузив один и тот же файл (изменена только дата или имя, например), объем увеличится на.. менее чем на 1КБ..

===

Интересно будет попробывать Черепашку с ТЕКСТОВЫМИ файлами от 1С 8, которые оно получает при выгрузке модулей всех конфигураций с помощью СТАНДАРТНОЙ команды: Конфигурация / Выгрузить файлы конфигурации.. жаль при этом формы не выгружаются - но все ж..

Никто не пробовал?
25. artbear 1430 15.01.10 08:07 Сейчас в теме
(24) Вот как раз для подобного и был придуман GComp.
все делается автоматически вместо ручного "Открываем обработку/отчет и сохраняем тексты его модуля в текстовые файлы" :)
там тебе и модули, и формы, и для конфы - права, интерфейсы, ИД и т.д.
мы юзали результат разбора конф и внешних отчетов через GComp как в CVS, так и в SVN.

По поводу 8-ки - нет проблем, только очень медленная выгрузка и только модули, нет всего остального.
Лучше уж юзать хранилище, чем извращаться с выгрузкой.
26. nao 15.01.10 13:23 Сейчас в теме
(24) (25) Я вот тут подумал, вместо того чтобы корячиться над разбором cf файла, ведь наверное намного проще выгрузить метаданные в формате подобном GComp написав внешнюю обработку (т.е. средствами самой 1С)?
Вот только неудобно что запускать её придётся в режиме Предприятия. Есть ли возможность запустить внешнюю обработку в режиме конфигуратора? (наверное нет).
27. artbear 1430 15.01.10 16:13 Сейчас в теме
(26) Из режима Предприятия штатным способом нельзя достать тексты модулей :(
7. vabue 121 13.01.10 12:47 Сейчас в теме
Пока-что это набор относительно работающих разрозненых инструментов.
9. artmicro 13.01.10 14:11 Сейчас в теме
Статья действительно хорошая, автор молодец. Но хочу добавить своих несколько мыслей:
1. Для полноты представления нужно было упомянуть и рассказать о сервере хранилища конфигурации. Что это за штука и с чем ее едят, соединие по tcp и т.д.
2. "можно посмотреть, что и где добавилось, какие изменения были сделаны в модулях - для этого нужно в меню Конфигурация/Хранилище выбрать История" - а если интересуют изменения в конкретном объекте, то лучше смотреть историю изменения объекта - отработает намного быстрее чем сравнение.
3. Неточность: "не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии" - каждый раз при объединении прийдется захватывать объекты, а при захвате Вы и так получете самую актуальную версию.
4. Обязательно нужно напомнить тот факт, что подключать новую конфигурацию под имеем пользователя, для которого уже есть подключенная конфигурация не следует, потому что это приведет к отключению предыдущей конфигурации. Особенно это актуально для рабочей БД, когда разворачивают бекапы и по невнимательности отключают рабочу БД от хранилища.

эм, что то еще хотел написать, но забыл ... значит позже допишу
Spacer; Созинов; Borisych; NewAndy; kote; +5 Ответить
14. chmod660 416 14.01.10 10:14 Сейчас в теме
(9) история объекта предоставляет существенно меньшие возможности, чем сравнение, к сожалению.
11. strange2007 145 13.01.10 15:30 Сейчас в теме
Автор не отметил не маловажной нюанс плюса хранилища:
Хранилище защищает от нечаянного изменения конфы. Например элемент формы, что бы не сдвинуть. А то потом сидишь и думаешь, что там изменил.
И про косяк что-то я не заметил:
При удалении объектов, если есть ссылки из других объектов, то иногда 1С сама разрулить не сможет и просит "удалите руками. плииииз" (было на ролях и рег.задании)
А еще автор не отметил крайне важные фичи:
- Использование хранилища по TCP/IP
- Использование хранилище по HTTP
Хотя может я просто чего-то не заметил... устал сильно уже
P.S. Мне бы такое описание лет 5 назад
Созинов; kote; +2 Ответить
12. nafa 657 14.01.10 02:27 Сейчас в теме
Статья полезная.
В работе хранилища действительно очень много неочевидных вещей, поэтому мои дополнения:
1. Если работают несколько программистов, то как вариант,
рабочий день обычно начинается со следущего:
запускаем свою базу в конфигураторе, на корне конфигурации правой кнопкой мышки - получить из хранилища, включаем галочку "рекурсивно", жмем ОК. После этого в конфигурацию получаем все, что наработали другие из хранилища. САМУ БД НЕ ОБНОВЛЯЕМ!!!
Далее желаем "сравнить конфигурацию с конфигурацией БД" - и видим список все изменений сделанных другими программистами группы за предыдущий день. Если есть вопросы по изменениям- обращаемся к тому, кто их делал.
После того, как все разобрали - сохраняем в БД.
Почему не сравнить с конфигурацией хранилища - во-первых чтобы не показывались те объекты, над которым сам работаешь, во-вторых это работает быстрее.
2. В середине дня: срочные изменения (для динамического обновления) отправляем в хранилище сразу. Не срочные - после того, как изменим все связанные объекты. (см. пояснение ниже)
3. В конце дня (а если надо делать полное обновление базы - то перед ним) сдаем в хранилище все что можно.
Это не обязательный порядок, но весьма удобный.

4. Почему не помещаем сразу:
потому что целостность изменений контролируется 1С только там где есть ссылка. То есть если например вы сделали справочник "Автомобили клиентов" и добавили ссылку на него в "расходную накладную", то поместить "Расходную накладную" в хранилище Вы сможете только после (или одновременно) со справочником "Автомобили клиентов". Но если Вы например использовали этот справочник в процедуре общего модуле, которая вызывается при проведении расходной накладной, то этот общий модуль в хранилище спокойно поместиться без помещения справочника. Если после этого другой программист получит этот модуль из хранилища, то в его базе расходные накладные проводиться перестанут. (А если обновить основную базу - то и там перестанут).
И то еще хороший случай - так как возникает просто ошибка. А вот если Вы например изменили тип реквизита в документе со строки на текст и в процедуре общего модуля была проверка Если Реквизит = "1" а стала Если Реквизит = 1 и модуль в хранилище поместили а документ - нет, то ошибки не будет (привет отсутствию контроля типов), а значит у тех кто такой модуль получит документы будет неправильно проводиться, (и хорошо если это будет не основная база). Поэтому изменения лучше сдавать в хранилище "полным пакетом" (все измененные по одной теме объекты), если что-то нужно Вам для другой задачи - можно сразу же захватить по новой или просто, помещая в хранилище, "оставить захваченным".

В этом плане я не совсем понял:
Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей..


Странно, не было никаких проблем когда несколько человек сразу изменения помещали, разве что подтормаживало малость. На то захват объектов и предусмотрен, чтобы 2 человека сразу одно и то же не исправили. Причем было замечено, что: если 1 разработчик изменил документ, скажем "Авансовый отчет", а затем второй "получения" не делал, а сразу его захватывает (например, объект только что помещен в хранилище), то 1С это отследит и сама даст ему уже новую - измененную версию. (Так прикольно бывает - смотришь на документ - 5 реквизитов, захватываешь - уже 15).

И зачем работу во внешние файлы выгружать тоже не понял.

4. Создание копий базы для программистов проще делать не 1Совской загрузкой-выгрузкой (т.к. она требует монопольного режима и не шибко шустрая), а восстановлением скульного бекапа или просто копированием базе на скуле.

5. Если нужно добавить новый объект (документ, справочник и пр), то захватите корень конфигурации, добавьте его, добавьте минимум реквизитов (совсем "пустые" объекты не всегда сохраняется), сдайте корень в хранилище (этот объект тоже сдастся при этом) и заберите объект опять. (Чтобы не держать корень долго захваченным - он и другим нужен).

6. Если Вы хотите исправить права доступа на объект, захватили его - а права доступа по прежнему недоступны - захватите соответствующую роль.

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

8. Когда делаем "получить все из хранилища" (п. 1) бывает, что 1с выдает кучу сообщений а потом пишет, что "не удалось" (список объектов при этом меняется). Значит давно не получали изменения. Ничего страшного, жмем ОК по новой и так до тех пор, пока не сработает, как надо.

9. Иногда 1С отказывается сохранять полученные из хранилища изменения, причем сообщение выдает абсолютно невнятное. Виновниками обычно являются "регистры сведений". Выясняем, у какого регистра сведений менялась структура, удаляем из него в своей базе все записи, после этого все обновится как надо.

10. Поскольку рабочие базы делаются из основной, то названия конфигураций совпадают и их легко перепутать и потом начинаются непонятки, когда пользователе говорит что у него в отчете 100 руб, а у Вас - 100,000 руб. Как вариант, добавляем в модуль приложения строчку, проверяющую при запуске программы что это за база и если не основная - выводящую это в заголовке программы 1С (например "РАБОЧАЯ БАЗА ПРОГРАММИСТА ИВАНОВА")

11. Когда база подключена к хранилищу, но при запуске не удалось к нему подключиться по любым причинам, то может выдаться сообщение "Не удалось подключиться, выполнить отключение от хранилища" (а у Вас есть захваченные объекты) - тут ОТВЕЧАЙТЕ "НЕТ". Но если случайно ответить "да" то - не пытайтесь подключиться по новой!!! Сначала сохраните конфигурацию в файл!!! Так как когда подключаемся к хранилищу, то вся конфигурация базы заменяется на конфигурацию хранилища. После этого загружаем изменения из сохраненного файла и работаем дальше.
VAAngelov; Papilion; Гриффин; Slypower; rayastar; SkyJack; primara; WellMaster; kuz.mina; kentavr27; Katren; b1waver; Созинов; _Sedoy; alex_shkut; LexSeIch; Borisych; Rusmus; artichoke; Dima_b; navigator-it; SunnyCat; Zeskord; xzorkiix; takt3a1c; verad; Maliwka; shoy; Spartan; markers; ArchinoS; vase4kin!; vtolga; charushkin; kote; +35 Ответить
16. vtolga 84 14.01.10 11:39 Сейчас в теме
15. vtolga 84 14.01.10 11:27 Сейчас в теме
Большое спасибо за статью, после чтения литературы многие вопросы остались неясными, а практический опыт (пусть даже чужой)-клад для новичка.
17. nafa 657 14.01.10 12:57 Сейчас в теме
Еще дополнение.
Когда работаешь над отчетом/обработкой, то удобно сохранить его во внешний файл и с ним работать, чтобы после каждого изменениях не перезапускать 1С. Так вот, возьмите себе за правило - в этом случае объект все равно захватывать. Иначе пока вы меняете внешний файл кто-то может его поменять в базе. А потом будет удивляться пропаже изменений

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

Еще можно сделать каждому разработчику личный общий модуль, тогда если двум человекам очень приперло одновременно работать над одним общим модулем (типа Заказчик так в ТЗ написал что должно быть в одном модуле, или база типовая и не хочется ее сильно менять) действуем так:
1. Захватываем "общий" и свой модули
2. Копируем процедуру из общего в свой , в общем первой строчкой ставим Возврат + Вызов этой функции из своего модуля. Помещаем оба модуля в хранилище, свой опять захватываем.
3. Исправлеям функцию, отлаживаем.
4. Захватываем "общий" модуль, вырезаем процедуру из своего и вставляем в "общий".
5. Помещаем оба модуля в хранилище.
Цель достигнута - из модуля "захватывается" только одна функция. Выглядит криво но еще раз: в реальности нужно очень редко.
Созинов; +1 Ответить
18. Merlin12042009 14.01.10 13:51 Сейчас в теме
Вопрос.
Есть измененная конфигурация и есть хранилище, конфигурация которого соответствует рабочей конфигурации. Как грамотно сделать обновление на новую версию конфы и хранилища?
20. Merlin12042009 14.01.10 14:13 Сейчас в теме
Отключаюсь от хранилища, обновляю рабочую конфигурацию, выгружаю в файл. Затем захожу в рабочий конфигуратор, рекурсивно захватываю корневой элемент конфигурации, сравнить/объединить с конфигурацией из файла, потом помещаю в Хранилище.Все получится??? :o
21. kote 534 14.01.10 15:55 Сейчас в теме
(20)
Отключаюсь от хранилища, обновляю рабочую конфигурацию, выгружаю в файл. Затем захожу в рабочий конфигуратор, рекурсивно захватываю корневой элемент конфигурации, сравнить/объединить с конфигурацией из файла, потом помещаю в Хранилище.Все получится??? smile:o 

Непонятна цель, с которой это делается.. В норме отключаться от хранилища не нужно, даже вредно.. Если цель - правильно обновить Рабочую конфигурацию, то:
Вносим изменения из обновления в хранилище:
1) заходим в любую конфигурацию, связанную с хранилищем рабочей конфигурации, в конфигураторе
2) захватываем корень рекурсивно
3) обновляем конфигурацию файлом *.cf - сравнение/объединение
4) выполняем возврат рекурсивно
==
.. если при обновлении были внесены изменения в структуру данных БД, то придется ждать или выгонять всех пользователей..
.. если были изменены только модули - то можно обновить конфигурацию динамически (тогда изменения у каждого отдельного пользователя появятся после того, как они выйдут и снова зайдут в программу, т.е. перезапустят её)
Далее обновляем рабочую базу из хранилища:
5) открываем рабочую конфигурацию в конфигураторе
6) обновляем конфигурацию из хранилища
7) загружаем полученные из хранилища изменения клавишей F7 в рабочую БД (динамически или выгнав всех пользователей)
==
Все. Рабочая БД обновлена.
SergeyRomanov; +1 Ответить
22. Merlin12042009 14.01.10 19:11 Сейчас в теме
спасибо.Не надо отключаться, согласна. :)
23. kote 534 15.01.10 00:56 Сейчас в теме
А еще автор не отметил крайне важные фичи: 
- Использование хранилища по TCP/IP 
- Использование хранилище по HTTP 
Хотя может я просто чего-то не заметил... устал сильно уже 
P.S. Мне бы такое описание лет 5 назад

Нашел по этому поводу материал ОнЛайн - что толку перепечатывать - читайте первоисточник: на сайте 1С и еще вот это вот..

Кроме того пригодится еще это вот - из документации..
28. serg_infostart 378 18.01.10 15:01 Сейчас в теме
6. Если Вы хотите исправить права доступа на объект, захватили его - а права доступа по прежнему недоступны - захватите соответствующую роль.

- для исправления прав нужна только Роль, объект - не нужен.
mikhailovaew; kote; +2 Ответить
29. Nadezhda09 22.03.11 09:46 Сейчас в теме
nafa пишет:
Странно, не было никаких проблем когда несколько человек сразу изменения помещали, разве что подтормаживало малость.

Здравствуйте!
Нигде в инструкциях не прописано элементарное:
- чтобы поместить измененный объект в Хранилище, необходимо захватить корень.
Вопрос: захватывать рекурсивно?
Замечание: Захват корня для помещения измененных объектов, лишает всякого смысла понятие "коллективной работы". Получается необходимость договариваться об очередности. Что весьма проблематично, если разработчики в разных городах и с разным приоритетом.
А вы работаете как-то иначе?
31. romansun 192 31.08.11 00:15 Сейчас в теме
(29)
если еще актуально, то всё просто

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

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

(30)
как узнать, кто отрубил базу от хранилища? хм... в истории хранилища какие тачки к нему подключены/отключены кем и когда не запоминается, да... тогда, наверное, никак :)


ну ваще, чисто административная проблема, имхо. Т.е. такое, да, бывает когда:

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

Т.е. все ситуации - это программисты, а с ними можно/нужно договариваться.

ЗЫ: в) если программистов как кур, и договориться нереально, то переходите на поставки обновлений - тут всё уже четко.
artichoke; +1 Ответить
36. artichoke 31.07.13 17:16 Сейчас в теме
(31) romansun, у меня возник такой вопрос: наша рабочая база подключена к хранилищу под отдельным пользователем (для ускорения накатывания изменений, ПОМЕЩЕННЫХ в хранилище всеми разработчиками), а сама разработка (захват и помещение объектов хранилища b т.д.) ведется в других, личных "тестовых" базах, подключенных под другими пользователями.

Когда нужно накатить накопленные изменения, я просто делаю в рабочей "Получить из хранилища". Однако если я не планировал обновляться, но нажимаю "Получить из хранилища" и текущая конфигурация помечается как изменённая. К сожалению, кнопка в меню "Конфигурация->Конфигурация базы данных->Вернуться к конфигурации БД" недоступна и приходится обновляться в рабочей базе, иначе у пользователей будет выходить вопрос "Конфа изменена, уверены, что хотите продолжить".

Вопрос: можно ли как-то выйти из этой ситуации без обновления рабочей базы (кроме такого варианта, как отключиться от хранилища и воспользоваться ожившей кнопкой "Вернуться к конфигурации БД" и подключиться только непосредственно перед обновлением)?
37. romansun 192 01.08.13 00:50 Сейчас в теме
(36)вопрос понятен

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

Имхо, проблема всё та же - человеческая:
Однако если я не планировал обновляться, но нажимаю "Получить из хранилища"

Бейте себя по рукам, что тут попишешь... ))

Либо переходите на механизм выпуска обновлений - он несложен, и логически и методологически более верен.
artichoke; +1 Ответить
30. RibD 30.08.11 15:25 Сейчас в теме
Остался неясным вопрос - если рабочая база от хранилища была отключена кем-то, а народу много - как посмотреть, кто этот нехороший человек?

В журнале регистрации прямой записи об этом нет, можно лишь увидеть, кто входил в конфигуратор и методом допроса 8-) установить.

Еще идеи как выяснить - есть?
32. netserfer 89 28.11.11 11:16 Сейчас в теме
Как добавить в закладки :)
33. SergeyGladyshev 20.12.11 18:19 Сейчас в теме
Очень полезная статья, я ранее никогда не работал с хранилищами конфигураций, но благодаря этой статье сразу разобрался что к чему. Автору респект!
34. kurmanov 103 02.05.12 11:07 Сейчас в теме
Пара общих строк. Зачем это нужно?

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


это относится только к динамическому обновлению? Или все таки как то можно обновить конфигурацию БД не выгоняя пользвателей, с помощью хранилища БД. Было бы очень хорошо если такой способ есть :)
35. mr.Kot 31.07.13 11:45 Сейчас в теме
Начал работать в команде, в связи с чем знакомлюсь с хранилищем, но почитав информацию по нему понял, как выгодно разработки, где я работаю один, так же делать через хранилище.
38. NAKIS 5 22.04.14 17:29 Сейчас в теме
Спасибо за статью! Все очень четко и по теме...
39. FreeArcher 149 05.08.14 05:41 Сейчас в теме
Подскажите, а можно ли обновить рабочую базу на определенную версию или частично?
Или выгрузить из хранилища конфигурацию определенной версии?

Пример:
Есть долгосрочный проект, который например месяц пишется. А между этим проектом есть много мелких изменений.
И надо организовать так, чтобы эти мелкие изменения можно было накатывать, а доработки длительного проекта пропускать.
41. Sobol007 20 19.09.14 04:03 Сейчас в теме
Здравствуйте!
Вижу у вас есть хороший опыт работы с хранилищем конфигурации. Буду благодарен, если поможете разобраться с проблемой.
На сервере с адресом 1.1.1.1 запущена служба "Сервер хранилища конфигураций". В параметрах службы указан каталог -d "F:\Repository"
1С:Предприятие 8.2 (8.2.19.90) - версии 1С и сервера конфигураций совпадают.

Есть папка Repository - на нее даны все права.

Пытался создать хранилище сразу указав путь, как tcp://1.1.1.1/Repository
Начинает анализировать структуру, потом конфигурировать файлы хранилища в
результате пишет - ошибка создания хранилища по адресу tcp://1.1.1.1/Repository

Хорошо, тогда предлагаю создать через файловый доступ.
Создает, в Repository появляется файл 1cv8ddb.1CD
Предлагает подключиться, я отказываюсь и пытаюсь подключиться через tcp://1.1.1.1/Repository

В результате появляется сообщение, "Хранилище конфигураций по адресу: tcp://1.1.1.1/Repository не обнаружено".

А вот, если указать файловый вариант подключения \\1.1.1.1\F$\Repository
Подключение выполняется.

Что я не так делаю? Права полные. Служба работает и с каталогом F:\Repository связана.

Заранее спасибо за ответ.
42. пользователь 03.12.14 23:29
Сообщение было скрыто модератором.
...
43. kote 534 08.12.14 18:36 Сейчас в теме
(42) Malvo4ka

Слышал звон, не знаю где он..
44. aniks3000 04.01.15 15:15 Сейчас в теме
Подскажите, пожалуйста, а для заливки типовых обновлений какие-то особенности имеются? Или просто захватываем рекурсивно корневой узел, Поддержка\ Обновить конфигурацию, обновляем, помещаем в хранилище? Обновится ли таким способом конфигурация поставщика в рабочей базе и в ИБ разработчиков? Или обновляется только основная конфигурация?
45. dpagon 7 07.11.15 17:52 Сейчас в теме
(44) aniks3000, Тоже интересует этот вопрос
46. aharin 1 04.02.16 13:14 Сейчас в теме
(44) aniks3000, Захватывайте рекурсивно корень, выполняйте обновление как обычно, помещайте в хранилище. Конфа поставщика во всех подключенных обновится нормально.
48. nadjav 13.09.16 07:40 Сейчас в теме
Подскажите, пожалуйста, как удалить объект из конфигурации, подключенной к хранилищу?
49. pumbaE 13.09.16 10:09 Сейчас в теме
(48) nadjav, захватить корень рекурсивно, если объект на поддержке, то дополнительно снять его с поддержки и потом можно будет удалить.
50. artbear 1430 13.09.16 14:47 Сейчас в теме
(49) (48) Не совсем так.
Еще нужно все роли захватить, иначе после удаления не удастся сделать коммит (помещение) в хранилище
51. pumbaE 13.09.16 14:48 Сейчас в теме
(50) artbear, я же написал "захватить рекурсивно"
52. artbear 1430 13.09.16 19:33 Сейчас в теме
(51) Ага, не обратил внимание.
Но рекурсивный захват, ты же знаешь, зло еще то :) и скорость, и монопольность и т.п.
53. roofless 23 10.02.17 15:01 Сейчас в теме
коллеги, а кто-нибудь делает бэкапы хранилища? если да, то какими способами?

нашёл только вот это http://fs.kursypo1c.ru/free/articles/programmist1C/ %20-%20Хранилище%20конфигурации.pdf
54. nao 10.02.17 21:25 Сейчас в теме
(53)
На сервере с линуксом ночью сохраняю каталог с хранилищем с помощью rdiff-backup.
1С-ка уже пару раз повреждала хранилище, так что бекап надо делать обязательно.

Бекап делается как зеркало+инкрементальный, а так как там куча мелких файлов, которые особо не меняются (в основном только добавляются), то получается довольно эффективно.

В cron прописано:
00 6 * * * root rdiff-backup --terminal-verbosity 0 --include-globbing-filelist /etc/rdiff-backup.repository.filter /srv/repository/ /var/lib/backup/repository/
00 6 * * * root rdiff-backup --terminal-verbosity 0 --force --remove-older-than 3M /var/lib/backup/repository/


cat /etc/rdiff-backup.repository.filter
- **/1cv8dtmp.1CD
- **/*.cfl
- **/cache
+ /srv/repository/repository1
+ /srv/repository/repository2
- **
isy; kote; roofless; +3 Ответить
55. _7445_ 21.07.20 15:01 Сейчас в теме
56. 7OH 68 08.11.20 17:46 Сейчас в теме
Для чего нужны команды "отрыть хранилище" и "закрыть хранилище" ?
видимых результатов при подключенном хранилище не видно
57. nao 08.11.20 22:02 Сейчас в теме
(56) "Закрыть хранилище" - временно отключает базу от хранилища. Как будто в диалоге открытия хранилища (который выходит при открытии конфигуратора) мы нажали "Отмена".
Многие операции связанные с работой в хранилище (поместить/получить) пропадут.

Если база подключена к хранилищу то смысла в этой команде мало. Разве что я нажимал её когда чинил хранилище или ребутал сервер с хранилищем, а закрывать конфигуратор не хотелось.
58. Melkiy 22.07.21 13:57 Сейчас в теме
Да. Статья достойная и простым языком. Если кто хочет премудростей то велком на форумы, там это любят. Автору пота и автору комментария респект!!!!!
59. mihuilka 02.08.22 06:51 Сейчас в теме
Сразу стало всё понятно. Уважение автору статьи и всем кто оставил комментарии по существу
60. ivangrant 10 20.10.22 14:00 Сейчас в теме
Если программистов много - то изменения каждого нужно отправлять в Хранилище поочереди, ПРЕДВАРИТЕЛЬНО выгрузив у всех работу во внешние файлы с конфигурацией локальной БД и (если объединение делается с разных рабочих мест), не забывая перед каждым объединением ОБНОВЛЯТЬ локальные БД из Хранилища - до последней версии, с присутствующим там изменениями ранее подключенных товарищей не забывая перед каждым объединением выполнять РЕКУРСИВНЫЙ захват корневого элемента конфигурации, в ходе которого в т.ч. происходит обновление конфигурации из Хранилища до последней версии.. А после каждого объединения выпонять РЕКУРСИВНЫЙ возврат корневого элемента для обновления конфигурации в Хранилище.

Зачем выгружать у каждого программиста конфу в файл? Теряется весь смысл групповой разработки.
А обновление конфы из хранилища делается по кнопке. Без всяких рекурсивных захватов корня.
61. kote 534 20.10.22 15:40 Сейчас в теме
(60)
там выше:

"Неочевидное": а что делать если мы уже вели разработку в локальной БД? Как сохранить все "нажитое непосильным трудом"??


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

См. также

Приемы быстрой работы в EDT/Git

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

Статья даёт ответы на некоторые вопросы, возникающие у разработчиков, которые погружаются в океан технологий EDT и Git, омывающий царство DevOps... Сколько и какие ветки нужны? Какой репозиторий выбрать? Кто должен сливать доработки в мастер ветку или ветку версии? Как не тратить время в EDT на ресурсоёмких операциях? Зачем нам сборочный конвейер и как его построить? Зачем нам нужно тестирование и как его реализовать? Как вести разработку, если есть разработчики, не умеющие вести разработку в EDT или не имеющие технической возможности, но нам нужны их skills в 1С? Что такое фантомы и нужно ли с ними бороться? Как слить 20 доработок с конфликтами и уложиться в 4 часа? Опыт использования модных технологий в реальных проектах.

30.03.2023    3910    check2    10    

64

Получаем статистику по git-репозиторию в разрезе разработчиков

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

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    1151    ardn    3    

25

Формула успешного внедрения DevOps и Agile в 1С: от неудачи к неудаче без потери энтузиазма

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

На конференции Infostart Event 2021 Post-Apocalypse выступил директор практики БИТ:ERP компании Первый БИТ Глеб Стальной. В ходе доклада он рассмотрел трансформацию проектного подхода в продуктовый, рассказал про имплементацию «современных» практик DevOps и продемонстрировал инструменты для разработки, взаимодействия с бизнесом и клиентами, применяемые в его команде.

27.02.2023    980    glebushka    1    

8

Кровь, пот и GIT

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

Ведущий разработчик 1С Андрей Карпов на конференции Infostart Event 2021 Post-Apocalypse поделился ошибками, которые совершают новички в работе с GIT. В докладе четыре кейса с пошаговыми инструкциями, которые позволят не допускать конфликтов в разработке.

17.01.2023    6393    karpik666    46    

62

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

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

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

08.12.2022    5411    kamisov    31    

84

Что, если Continuous Integration – это прежде всего практика, а не набор инструментов?

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

Рано или поздно многие компании приходят к практикам DevOps. И начало этому – Continuous Integration. О том, что происходит в команде специалистов 1С, когда они переходят на Git, и почему простое внедрение CI-инструментов не решает проблему подходов к разработке, в докладе на Infostart Event 2021 Post-Apocalypse рассказал руководитель компании ПрогТехБизнес Александр Анисков.

07.12.2022    1588    vandalsvq    0    

23

Управление хранилищами без боли

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

Когда хранилищ много, возникает вопрос удобного управления ими. Андрей Овсянкин на онлайн-митапе «Инструменты автоматизации рутины в 1С-разработке» рассказал, как настроить перенос хранилища на новую версию платформы без перепрописывания путей у каждого разработчика, и как безболезненно обеспечить для хранилища запрет коммита с пустым комментарием.

28.11.2022    6976    Evil Beaver    12    

90

И снова распаковщик. Теперь на чистом 1С. YellowPacker

Инструментарий разработчика Групповая разработка (Git, хранилище) 8.3.14 Конфигурации 1cv8 Абонемент ($m)

V8Unpack-подобный распаковщик, который делает практически то же, что и всем известный инструмент. Для работы с файлами cf, cfe, epf, erf. Только на языке 1С, без использования внешних файлов, библиотек и компонент.

5 стартмани

22.08.2022    5857    32    VKislitsin    27    

89

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

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

Как обычно происходит процесс доработки типовой? Разворачивается и используется рабочая база из какой-то типовой поставки 1С (БП/ERP/ЗУП и т.д.). Далее бизнес постоянно приносит требования по доработке типового функционала (отдельный вопрос, зачем это нужно). Возникает задача организовать постоянное изменение типовой конфигурации группой программистов. На мой взгляд, это довольно частая задача. Хотелось бы рассмотреть возможные варианты ее решения. Нигде не нашел упоминаний о подходах решения такой задачи, хотя, думаю, многие работают в таком режиме.

16.07.2022    1797    partizand    13    

8

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

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

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

16.06.2022    1763    ImHunter    1    

21

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

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

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

08.06.2022    1838    curdate    10    

7

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

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

Хранилище и конфигуратор на разных версиях платформы. Как быть?

2 стартмани

23.05.2022    2294    2    frutty    4    

9

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

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

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

17.04.2022    1337    malikov_pro    0    

13

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

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

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

17.03.2022    1194    kraynev-navi    2    

7

Интересное поведение 1С. Сборщик мусора

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

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

1 стартмани

23.12.2021    3665    0    Evgeny.Bogomolnyy    3    

2

Стек технологий для 1С

Инструментарий разработчика Рефакторинг и качество кода Групповая разработка (Git, хранилище) Механизмы платформы 1С Бесплатно (free)

Стек технологий, которые могут быть полезны разработчику на 1С и около 1С. По каждой технологии постарался объяснить, зачем она нужна и с чего начать изучение, если заинтересует.

29.11.2021    32373    mrXoxot    63    

429

Исполняемый файл (батник) автоматического подключения базы к хранилищу основной конфигурации и расширения(й)

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

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

1 стартмани

25.11.2021    3861    18    Maito    2    

2

Выгрузка измененных внешних обработок (за день)

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

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

1 стартмани

11.08.2021    4425    8    Serg O.    6    

8

Как ускорить перенос изменений между хранилищами 1С?

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

Зачастую в рамках одной системы нам приходится работать с двумя хранилищами - хранилищем разработки (ХР) и хранилищем обновления (ХО). И перенос изменений из ХР в ХО, по крайней мере у меня, зачастую превращается в боль - нужно сделать много рутинных операций, в ходе которых приходится тратить время на ожидание (например, на этапах сохранения конфигурации в файл или сравнения, объединения конфигураций с файлом). Поэтому в один прекрасный день я сел и написал инструмент по автоматизации этого переноса.

2 стартмани

11.08.2021    4386    9    kabanoff    4    

6

Девопсы в 1С: микросервис распознавания штрихкодов

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

Распознавание штрихкода из сканированного документа в PDF.

09.08.2021    2511    alexey_kurdyukov    8    

9

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

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

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

01.06.2021    4392    Dipod    13    

53

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

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

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

31.05.2021    2541    grumagargler    0    

18

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

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

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

19.05.2021    10458    sinichenko_alex    45    

128

Ненавязчивая локальная разработка с traefik2, docker и letsencrypt

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

Перевод статьи по проксированию HTTP траффика до сервисов развернутых в docker контейнерах. Оригинал от 24.09.2020.

16.05.2021    5485    malikov_pro    0    

8

Распаковка файлов обработок/отчетов при работе с GIT precommit

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

Скрипт для выгрузки в файлы внешних обработок и отчетов без использования сторонних приложений на платформе Windows с использованием 1С Enterprise и VBS.

16.03.2021    2952    8    dvissarov5    3    

6

Добавляем в Конвертацию данных 2.1 средства для работы с GIT

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

В КД2 добавлен функционал для простой работы с GIT, а также с плагином GitRules, при помощи которого единый XML файл раскладывается на "исходники". В результате получаем решение для совместной работы с правилами обмена. В то же время разработчикам не нужно изучать консольные команды GIT, достаточно иметь общее представление о его работе.

1 стартмани

11.03.2021    8051    23    tambu    13    

28

[oscript] Проверка подключения рабочей базы к хранилищу

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

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

1 стартмани

11.12.2020    1458    ardn    0    

11

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

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

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

03.11.2020    28283    Yashazz    16    

52

Хранение файлов томов БСП в хранилище с OpenStack API

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

В статье опишу вариант реализации хранения файлов в томах с использованием хранилища OpenStack API на примере облачного хранилища Selectel.

2 стартмани

10.08.2020    6401    6    malikov_pro    10    

12

Хранилище внешних отчетов и обработок (интегрируемый модуль)

Групповая разработка (Git, хранилище) Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Сие идея по принципу хранилища конфигурации была реализована для удобства и надежности совместной работы программистов с внешними отчетами и обработками для БСП справочника "Дополнительные отчеты и обработки": все файлы ВОиО для спр. ДОиО всех подключенных ИБ хранятся и учитываются в одном месте; возможность захвата/освобождения файла ВОиО; создание версий с комментариями (добавление новой или обновление текущей); признак проверенности (для связки работы с аналитиком); проверочный механизм совместимости версий файла ВОиО и конфигурации; быстрое переключение между версиями.

3 стартмани

10.08.2020    7660    13    mr_sav    0    

5

Работа с хранилищем конфигурации из режима 1С: Предприятие минуя конфигуратор

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

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

3 стартмани

11.06.2020    8840    MaxxG    23    

55

Краткий вывод результатов Unit тестов

Групповая разработка (Git, хранилище) Абонемент ($m)

XSL преобразование файла результата Unit тестов.

1 стартмани

16.03.2020    4714    0    shmalevoz    0    

4

Технология разветвлённой разработки, использующая git, ci/cd

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

Адаптация и расширение требований к разветвлённой разработке с использованием git и ci/cd, основанное на стандартах 1С

24.02.2020    9783    check2    10    

76

Краткое руководство по внесению изменений в конфигурацию

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

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

1 стартмани

13.01.2020    28663    sapervodichka    41    

220

GitSync 3.0. Шпаргалка по использованию

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

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

26.11.2019    16677    VKislitsin    48    

117

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

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

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

14.11.2019    3627    biimmap    34    

3