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

Цитата из RTFM

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

Для установки сервиса достаточно запустить crserver.exe с параметром -instsrvc и параметрами же указать, где что лежит и так делее. Все тривиально и в мануале описано достаточно подробно.

Для запуска сервера хранилища конфигурации используются следующие ключи командной строки: для операционной системы Windows: crserver.exe -instsrvc -usr <пользователь> -pwd <пароль> -port <порт> -d<каталог> | -rmsrvc | -start | -stop | -srvc -instsrvc - регистрация сервера как сервиса (имя сервиса – 1C:Enterprise 8.1 Configuration Repository Server) -usr - имя пользователя, от имени которого будет зарегистрирован сервис. Этот пользователь должен обладать правом Вход в систему как сервис. Кроме этого он должен обладать правами на чтение бинарного каталога файлов 1С:Предприятия (по умолчанию C:\Program Files\1cv81\bin) и полными правами на корневой каталог хранилища конфигурации (%APPDATA%\1C\1Cv81\ по умолчанию или тот каталог, который указан в параметре -d) -pwd - пароль пользователя, от имени которого будет зарегистрирован сервис -port - рабочий порт сервера хранилища. По умолчанию используется порт 1542 -d - корневой каталог для хранилищ конфигурации. По умолчанию используется каталог %APPDATA%\1C\1Cv81\ -start - запуск сервиса 1C:Enterprise 8.1 Configuration Repository Server -stop - остановка сервиса 1C:Enterprise 8.1 Configuration Repository Server -rmsrvc - удаление регистрации сервера как сервиса -srvc - режим работы сервера в качестве сервиса. Добавляется автоматически в параметры зарегистрированного сервиса. В командной строке запуска не используется.

Как установить два сервера на одной машине

Заморочки начинаются, когда надо установить больше одной службы сервера хранилища. Например - для разных версий платформы или для организации на одном сервере хранилищ для не связанных команд разработчиков. Возможных причин на самом деле море. Суть заморочек в том, что crserver.exe может установаить одну и только дону службу - у него нет параметра командной строки, влияющего на имя службы.

Для управления службами в Windows, начиная с NT4, существует замечательная консольная утилта SC.EXE . По ссылке можно найти исчерпывающий мануал по командам. Единственное, что стоит к этому мануалу добавить – имя параметра включает символ «=» и между этим символом и значением параметра ОБЯЗАТЕЛЬНО должен быть пробел, иначе sc.exe вместо полезной работы просто покажет кратенький мануал к самому себе. Это отмечено в мануале, но в самом конце, а до конца обычно дочитывают самые стойкие и уже от отчаяния, когда 100500-й раз не получилось то, что в мануале описано буква-в-букву.

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

    Имена служб - строки, которые отображаются в колонке «Имя» в диспетчере служб. Помимо отображения по имени производятся все манипуляции со службой через sc.exe по этому рекомендуется с имененм не мудрить и придумывать его максимально кратким и емким безо всяких спецсимволов

    В каких каталогах будут хранить свои данные службы. Теоретически можно каталог не указывать и тогда обе службы будут «раздавать» один и тот же каталог и к каждому хранилищу можно будет обратиться из обеих служб одновременно.

    На каких портах будут ожидать соединения обе службы. Службе сервера хранилища нужен один основной порт и диапазон из 31-го порта для работы. По умолчанию эти значения равны 1542 и 1560:1591. У разных экземпляров службы эти значения обязательно должны быть разные иначе работать будет только один экзепляр - тот, который успел запуститься раньше и открыть сокет на основаном порту.

Для примера предположим, что:

    имена наших двух служб - 1ccrrep-release и 1ccrrep-trunk

    каталоги (соответственно) - C:\1crepository\release и C:\1crepository\trunk

    и порт+диапазон для каждой службы - 1642+1660:1691 и 1742+1760:1791

Командная строка для создания каждой из этих служб будет выглядеть вот так:

C:\>sc create "1CCRREP-RELEASE" binPath= "C:\Progra~2\1cv82\8.2.16.368\bin\crserver.exe" -srvc -port 1642 -range 1660:1691 -d C:\1crepository\release" start= auto displayname= "Сервер хранилища 1С (release)" C:\>sc create "1CCRREP-TRUNK" binPath= "C:\Progra~2\1cv82\8.2.16.368\bin\crserver.exe" -srvc -port 1742 -range 1760:1791 -d C:\1crepository\trunk" start= auto displayname= "Сервер хранилища 1С (trunk)"

cmd.exe, естественно, следует запускать от имени администратора и данные команды предполагают развертывание сервера хранилища 8.2.16.368. Progra~2 - это «Programm files (x86)».

Также следует отметить, что если используется IIS, то обращение к серверам хранилищ нужно реализовать через отдельные веб-приложения, причем у них должны быть указаны разные пулы приложений (например, DefaulAppPool и DefaulAppPool2). Если этого не сделать, то одновременно будет работать только один сервер хранилищ (к которому было первое обращение), а второй будет выдавать ошибку.

Что дает и чего не дает сервер хранилища 1С

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

Плюсы серверного хранилища

Порядок следования пунктов соответствует порядку, в котором они пришли в голову автору данной статьи, значимость плюсов каждый читатель определит для себя сам:

    Изоляция данных от интерфейса. Разработчики «видят» только службу – ни с файлом хранилища, ни с его каталогом, они не могут сделать ни чего, кроме того, что им положено в соответствии с правами в хранилище. В файловой версии хранилища права на шару одни, а на хранилище другие: например, у пользователя, который просто есть в хранилище, но даже захватить ни чего прав не имеет, все равно должен быть полный доступ в шару, то есть он может и всякого мусора рядом с 1cd навалить, и файл повредить, и скопировать все хранилище куда угодно. Кроме того это упрощает подключение к хранилищу всякого рода удаленных разработчиков – для работы с хранилищем им достаточно открыть несколько tcp портов и можно не пускать их в свою внутреннюю сеть, а служба crserver уже не позволит им в 1cv8ddb.1CD сделать что-либо, кроме того, что можно сделать конфигуратором. Максимум - всяких левых хранлищ могут насоздавать в каталогах рядом, но это горе не большой беды, как говорится. Кроме того служба сервера гарантирует, что к хранилищу невозможно подключиться ни каким релизом платформы, отличным от релиза самой службы сервера. То есть ни кто злонамеренно или от разгильдяйства боевое хранилище случайно не сконвертирует под какой-нибудь тестовый новый релиз 8.3, 8.4 или даже 9.0 - crserver просто не пустит неправославных клиентов.

    Независимость от фактического места хранения файла 1cv8ddb.1CD - можно перемещать файл и менять внутреннюю структуру каталогов и при этом у пользователей хранилища строка подключения не изменится – знай только меняй параметр -d у службы crserver. В принципе у файлового хранилища то же самое возможно, но в случае, когда хранилищ много от разных ИС, может быть так, что и не всегда получится. Или, если у всех хранилищ изначально один каталог, то разнести по разным без изменения строки подключения в файловом варианте уже не возможно.

    Использование серверной мощи для операций с хранилищем. Все операции по чтению и записи в 1cv8ddb.1CD производятся службой crserver и процессором той машины, на которой она работает. В файловом варианте все операции делает процессор клиента.

Нюанс в 8.2

В 8.2.* crserver является однопроцессорным приложением. Отсюда вытекает ряд неприятных минусов, о которых ниже. В 8.2 минусы серверного хранилища по сравнению с файловым целиком и полностью произрастают из последнего «плюса». Служба crserver сама ни чего полезного не делает – она всего лишь ретранслятор запросов от клиентов. Именно по этому версия crserver должна в точности совпадать с версией клиента. И именно по этому можно расшарить каталог службы и обращаться к хранилищу и как к файловому, и как к серверному. Более того, можно даже развернуть две службы crserver, натравить их на один и тот же каталог и из двух параллельных служб всё – захваты, помещение, чтение и так далее – будет работать так же, как с одной службой или без служб вообще. Итак, вот они, «минусы»:

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

    Немногопользовательскость или «хайлоад? не, не слышал». Не смотря на то, что само по себе хранилище – это средство командной разработки, сервер хранилища не является таким средством. Это не более, чем средство сокрытия физического местарасположения файла 1cv8ddb.1CD от пользователей. Если имеется несколько раных хранилищ и количество разработчиков больше 10, то для нормальной работы на каждое хранилище нужна отдельная своя служба crserver. Потому, что служба ограничивается вычислительными ресурсами одного процессора и еще почему-то, что забито костылями в код этой службы – практический опыт автора статьи перевода некольких хранилищ со 100+ пользователей всего и 30+ параллельных на серверный вариант показал падение производительности на тех хранилищах, которые до этого перевода ни когда не тормозили потому, что маленькие (1cv8ddb.1CD до 500МБ). Потому, что пользователи даже маленьких хранилищ выстраиваются в одну общую очередь к одному процессору в скудном количестве потоков (task manager показывает чудовищное несоответствеи количества живых коннектов к crserver.exe и количества потоков, созданных процессом – на 23 коннекта было создано 7 потоков в ходе наблюдений в боевых условиях, проведенных автором статьи)

Выводы

На пратформе 8.2 служба crserver в виду своей однопроцессорности и эдакой «немного поточности» не является средством коллективной разработки. Она является средством предоставления доступа к хранилищу по набору абстрактных tcp-портов, чтобы не давать доступа клиентам ни к ftp, ни к cifs или smb (вот тебе, удаленный Вася, 32 tcp-порта, развлекайся на все деньги). Для больших команд не имеет смысла использовать серверное хранилище ни зачем, кроме как для предоставления ограниченного доступа удаленным разработчикам. Хотя последние разведданные недвусмысленно иллюстрируют, что лучше об этом даже не думать.

Однако в 8.3 crserver внезапно стал многопроцессорным. Достоверной информацией, с которого именно релиза началось многопроцессорное счасчастье, автор статьи не располагает - поиск в changelog"ах на эту тему результатов не дал но достверно известно и подтверждено экспериментально, что уже на 8.3.4.408 crserver грузит все процессоры, какие есть в системе.

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


Решение ошибки формата хранилища данных

Чтобы встретиться с этой ошибкой, совсем не обязательно допускать серьезные логические погрешности в коде или удалять основной модуль. Часто после обновления конфигурации, открытии обработки, отключения электричества или перезагрузки компьютера при запуске 1С возникает этот неприятный сюрприз. Если перезагрузка не помогла, не паникуйте – у распространенной ошибки есть простые решения, которые могут помочь. Разбирать их будем по степени усложнения:


Кроме момента запуска конфигурации ошибка «Неверный формат хранилища данных» может обнаружиться и при открытии внешней обработки. В таком случае самое главное – не запускать 1С, так как при старте система затирает временные файлы в каталоге TMP. Именно в нем найдите нашу обработку – файл с именем «v8_*» и расширением tmp. Если таких файлов много, то чтобы понять, какой из них наша обработка – измените расширение на epf и попробуйте открыть через 1С.

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

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

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

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

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

Администратор осуществляет формирование списка пользователей, имеющих доступ к хранилищу, может просматривать список пользователей, подключенных к хранилищу и освобождать объекты конфигурации от захвата:

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

Окно хранилища конфигурации

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

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

В любой момент времени можно выполнить сравнение текущей конфигурации с хранилищем или выполнить сохранение хранилища как конфигурации.

История хранилища

Конфигуратор 1С:Предприятия поддерживает ведение истории хранилища:

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

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

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

Отчет по версиям хранилища отражает состав добавленных или измененных объектов:

Отчет по объектам разработки содержит информацию об изменениях, которые были внесены в конкретные объекты прикладного решения:

Отчет по комментариям позволяет анализировать комментарии, которыми разработчики сопровождают изменения конфигурации:

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

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

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

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

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

Работа с хранилищем без подключения

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

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

Удаленная работа с хранилищем конфигурации

Начиная с версии 8.1.11, с хранилищем конфигурации можно работать, используя не только общий сетевой ресурс, но и соединение по локальной сети (используя протокол TCP) и интернет-соединение (используя протокол HTTP). В общем случае взаимодействие разработчиков с хранилищем конфигурации может выглядеть следующим образом:

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

  • При подключении по TCP протоколу "клиентское приложение" взаимодействует с сервером хранилища конфигурации. Тот в свою очередь взаимодействует непосредственно с хранилищем.
  • При подключении по HTTP протоколу "клиентское приложение" подключается к веб-серверу. Веб-сервер обращается к серверу хранилища, который взаимодействует с хранилищем конфигурации.

Проверка и исправление хранилища конфигурации

Для автономной проверки хранилища конфигурации может использоваться утилита восстановления файловой базы данных . Исправлять хранилище этой утилитой не рекомендуется.

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

Нояб 08, 2017 32638

Может возникнуть ситуация, когда 1С 8.3 не запускается и появляется ошибка - «Неверный формат хранилища данных» с указанием пути к файлу file c users config runtimecachestorage. Но, не стоит паниковать, ошибка неверного формата данных хранилища не такая редкая как может показаться на первый взгляд. Поэтому в данной статье давайте узнаем как исправить ошибку в 1С 8.3.

Причины появление ошибки "Неверный формат хранилища данных" в 1С 8.3

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

Что такое кэш 1С 8.3?

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

Как очистить 1С 8.3?

Файлы кэша хранятся в папке AppData, в профиле пользователя, под которым запускается программа 1С 8.3. Проще всего её открыть через команду Пуск \ Выполнить \ %userprofile%\AppData

Здесь нам нужно удалить все содержимое следующих папок:

AppData\Local\1C\

AppData\Roaming\1C\1cv8\

AppData\Roaming\1C\1cv82\

После выполнения операций удаления вновь запускам программу 1С Предприятие 8.3 и радуемся жизни.

Очистка кэша 1С может помочь при появлении различных проблем с запуском 1С Предприятия 8.3, даже когда при запуске, она сразу закрывается. Так что, очистка кэша может еще ни раз пригодиться на практике.

Для групповой разработки конфигурации в системе «1С:Предприятия» 8 используется специальный механизм — хранилище конфигурации . Хранилище конфигурации — это файловая база данных, в которую средствами конфигуратора помещается конфигурация, и которая хранит в себе информацию о редактируемых в данный момент объектах, а также историю изменения этих объектов. Доступ разработчиков к хранилищу конфигурации осуществляется либо в рамках локальной сети, либо по удаленному доступу с использованием веб-сервера. Изначально, конфигурация рассматривается как набор объектов, закрытых для изменения. Чтобы произвести изменения в объекте, его следует захватить, а одновременно объект может быть захвачен только одним пользователем. После работы с захваченными объектами, результат их модификации помещается в хранилище, после чего эти объекты становятся доступными всем участникам групповой разработки. Таким образом, осуществляется контроль доступа к одним и тем же объектам конфигурации, а также обеспечивается синхронизация работы группы разработчиков по модификации конфигурации. Ниже подробно рассмотрим процесс создания нового хранилища конфигурации в системе 1С:Предприятие 8.3 (в более старых версиях, 8.2 и 8.1 алгоритм создания хранилища аналогичен).

1. Создание нового хранилища

Для создания нового хранилища конфигурации необходимо запустить 1С:Предприятие в режиме Конфигуратор, подключившись к той информационной базе, конфигурация которой будет неким «фундаментом» — начальной конфигурацией создаваемого хранилища.

Запустив конфигуратор, выбираем в меню пункт «Конфигурация » — «Открыть конфигурацию » или же нажимаем соответствующую иконку на панели действий.

Когда конфигурация загрузится, там же в меню выбираем «Конфигурация » — «Хранилище конфигурации » — «Создать хранилище… »

Затем в окне создания хранилища необходимо указать расположение нового хранилища, это может быть:

  • Каталог на текущем компьютере, например: C:\1C_BASE\repository\Accounting
  • Сетевой ресурс, например: \\WIN2012\repository\Accounting
  • Адрес хранилища на (если он установлен), например: tcp://WIN2012/accounting

    Tcp://192.168.0.10/accounting

  • Адрес хранилища на сервере хранилищ, например: http://WIN2012R2/repository/repository.1ccr/Accounting

    Https://сайт/repository/repository.1ccr/Accounting

Указав расположение файлов создаваемого хранилища, нажимаем «Далее ».

Далее необходимо указать имя пользователя и пароль администратора хранилища. Чтобы сэкономить время, и сразу подключить данную информационную базу к хранилищу, укажем вместо этого учетные данные того пользователя, под которым будет подключена текущая база данных. А администратора хранилища создадим позднее. Введя имя пользователя и пароль, нажимаем «ОК ».

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

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

2. Добавление пользователей в хранилище

Теперь добавим нового пользователя хранилища конфигурации. Пусть это будет администратор хранилища, учетные данные которого предлагалось ввести на предыдущем шаге. Для добавления пользователя в хранилище, в конфигураторе выбираем «Конфигурация » — «Администрирование хранилища… »

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

Вводим имя и пароль пользователя и переходим на вкладку «Права », для установки полномочий создаваемого пользователя хранилища.

Здесь, мы можем установить / или снять следующие права пользователей:

  • Административные функции – пользователь имеет права создания, удаления и отключения пользователей, отмены захвата, может изменять режим совместимости хранилища и выполнять процедуру оптимизации.
  • Изменение состава версий – пользователь имеет права выполнения отката и сокращения истории версий.
  • Захват объектов – пользователям с данным правом доступны захват и внесение изменений в конфигурацию хранилища. Если право не установлено, то объекты хранилища можно только просмотреть.

Определив необходимые права пользователя, нажимаем «ОК» .

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

3. Подключение к хранилищу конфигурации

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

Затем в этом же меню выбираем «Конфигурация » — «Хранилище конфигурации » — «Подключиться к хранилищу… »

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

После чего, вводим адрес хранилища, имя и пароль раннее созданного пользователя и нажимаем «ОК » для подключения к хранилищу конфигурации.

Помогла ли Вам данная статья?


Close