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

14.01.13

Разработка - Групповая разработка (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С-разработчиков.

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

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

4900 руб.

29.06.2022    9135    78    4    

109

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

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

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

25.03.2024    1141    bayselonarrend    3    

35

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

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

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

05.03.2024    1861    user1989937    6    

15

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

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

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

05.02.2024    3779    bayselonarrend    15    

61

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

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

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

22.01.2024    7838    bayselonarrend    50    

86

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

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

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

17.01.2024    2769    kamisov    17    

57

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

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

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

26.12.2023    1336    ardn    1    

26

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

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

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

1 стартмани

20.12.2023    3949    59    salexdv    26    

81
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. SiAl 76 12.01.10 07:08 Сейчас в теме
Хорошая статья, с картинками. Действительно для "чайников".
40. kote 536 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 1448 12.01.10 13:18 Сейчас в теме
Самое главное (использование) слабо расписано или вообще не описано :(
Как работать с конфигурацией, помещенной в хранилище?
что делать, если объект уже захвачен в хранилище ?
назначение галочки рекурсия?
и т.д.

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

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

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

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

Использование в группе - вопрос более сложный и многообразный.. как появится опыт нашей группы - сделаю небольшое дополнение к заметке.
4. artbear 1448 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 536 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 536 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 1448 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 1448 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 417 14.01.10 10:14 Сейчас в теме
(9) история объекта предоставляет существенно меньшие возможности, чем сравнение, к сожалению.
11. strange2007 144 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 536 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 536 15.01.10 00:56 Сейчас в теме
А еще автор не отметил крайне важные фичи: 
- Использование хранилища по TCP/IP 
- Использование хранилище по HTTP 
Хотя может я просто чего-то не заметил... устал сильно уже 
P.S. Мне бы такое описание лет 5 назад

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

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

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

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

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

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

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


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

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

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

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

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

Вопрос: можно ли как-то выйти из этой ситуации без обновления рабочей базы (кроме такого варианта, как отключиться от хранилища и воспользоваться ожившей кнопкой "Вернуться к конфигурации БД" и подключиться только непосредственно перед обновлением)?
37. romansun 193 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 158 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 536 08.12.14 18:36 Сейчас в теме
(42) Malvo4ka

Слышал звон, не знаю где он..
44. irz_it 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 1448 13.09.16 14:47 Сейчас в теме
(49) (48) Не совсем так.
Еще нужно все роли захватить, иначе после удаления не удастся сделать коммит (помещение) в хранилище
51. pumbaE 13.09.16 14:48 Сейчас в теме
(50) artbear, я же написал "захватить рекурсивно"
52. artbear 1448 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 69 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 536 20.10.22 15:40 Сейчас в теме
(60)
там выше:

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


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