Конфигурационно хранилище: създаване и използване. Работа с конфигурационното хранилище от разстояние

25.06.2023

Компанията 1C произвежда много софтуерни продуктии постоянно подобрява вътрешната им структура. Но броят на различните грешки, с които програмистите и администраторите на 1C трябва да се справят, показва, че работата в тази област никога няма да спре. Някои от тези грешки са незначителни и редки, но има „класически“ недостатъци, които са познати на всеки опитен специалист. Последното включва добре познатата грешка „Невалиден формат за съхранение на данни“ и е препоръчително да можете да я разрешите.


Решение на грешка във формата за съхранение на данни

За да срещнете тази грешка, изобщо не е необходимо да правите сериозни логически грешки в кода или да премахвате основния модул. Често след актуализиране на конфигурацията, отваряне на обработка, прекъсване на захранването или рестартиране на компютъра при стартиране на 1C се случва тази неприятна изненада. Ако рестартирането не помогне, не се паникьосвайте - среща се често срещана грешка прости решениятова може да помогне. Ще ги анализираме според степента на сложност:


Освен в момента, в който започнете конфигурацията, грешката „Невалиден формат за съхранение на данни“ може да се появи и при отваряне външна обработка. В този случай най-важното е да не стартирате 1C, тъй като при стартиране системата презаписва временните файлове в директорията TMP. Именно в него ще намерите нашата обработка - файл с име “v8_*” и разширение tmp. Ако има много такива файлове, тогава, за да разберете кой от тях е нашата обработка, променете разширението на epf и опитайте да го отворите чрез 1C.

Ако вече сте стартирали 1C и файловете са презаписани, опитайте подобни действия на друг компютър, където е започнала обработката. Или използвайте помощни програми за възстановяване изтрити файловена вашия твърд диск.

Целта на конфигурационния обект „Съхранение на настройки“ е ясна от името - да съхранява различни потребителски настройки. Обхватът на приложение на този обект е широк - във всяка конфигурация, колкото и сериозна да е, е необходимо да се запазят някои потребителски настройки.

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

Първо, нека разгледаме стандартните магазини за настройки, които присъстват във всяка конфигурация на 1C, започвайки с версия 8.2.

Стандартни магазини за настройки

Така че по подразбиране конфигурацията съдържа следните магазини за настройки:

  • Опции за отчет Съхранение - за достъп до настройките на опциите за отчет.
  • Съхранение на персонализирани настройки на отчета - за достъп до персонализирани настройки на отчета.
  • Form DataSettings Storage - за достъп до потребителските настройки за данни от формуляри.
  • Общи настройки Съхранение - за достъп общи настройки.
  • Съхранение на системните настройки - за достъп системни настройки.
  • Съхранение на потребителските настройки на динамичните списъци - за достъп до потребителските настройки на динамичните списъци.

Всеки от тези магазини може да бъде достъпен като свойство на глобалния контекст.

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

За работа с хранилища за настройки (както стандартни, така и добавени от програмиста) се използват следните методи.

Настройки за запис и получаване:

GeneralSettings Storage.Save(ObjectName,SettingsName,SettingsValue,SettingsDescription,UserName); SettingsValue = GeneralSettings Storage.Load(ObjectName, SettingsName, SettingsDescription, UserName);

Премахване на излишни/ненужни настройки:

GeneralSettings Storage.Delete(ObjectName, SettingsName, UserName);

Получаване на списък с настройки:

SettingsValueList = GeneralSettings Storage.GetList(ObjectName, UserName);

Параметрите “ObjectName”, “SettingsName” и “UserName” трябва да са от тип низ.

В базата данни всички настройки се съхраняват в отделна таблица.

Хранилища за настройки, създадени от програмиста

Сега нека поговорим за тези хранилища за настройки, които са създадени от програмиста. По принцип програмистът не е ограничен по никакъв начин в желанието си да създаде ново хранилище за настройки, но обикновено се създават отделни хранилища за настройки поради следните причини:

  • необходимо е да се преместват настройките между базите данни;
  • е необходим референтен контрол при съхраняване на настройки;
  • необходима е специална структура на настройките на 1C.

Магазините за настройки се добавят в съответния раздел за конфигурация.

Ключова характеристикахранилищата за настройки, създадени от програмиста, изискват ръчно внедряване на методи за писане и извличане на стойности (Save() и Load()). При тези методи програмистът трябва да опише настройките за запазване (в информационни регистри, файлове, директории и т.н.) и зареждане с помощта на вградения език.

В противен случай принципите на работа със създаденото хранилище практически не се различават от работата със стандартни хранилища за настройки.

Достъп до cos това хранилищеможе да се получи по този начин:

Настройки Storage.StorageName.Load();

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

Управлявани формуляриимат две свойства:

  • Автоматично запазване на данни - ако е избрана стойността „Използване“, данните ще се записват автоматично в стандартното хранилище на настройките на данните на формуляра;
  • Запазване на данни в настройките - ако е избрана стойността "Използване на списък", тогава в прозореца с подробности за формуляра ще се появи колоната "Запазване", с която можете да посочите кои данни за формуляра да бъдат запазени, както и ще можете да изберете съхранение на настройки за тези данни.

Това е всичко, надявам се тази статия да ви е помогнала.

За групово разработване на конфигурации в системата 1C:Enterprise 8 се използва специален механизъм - магазин за конфигурация. Магазинът за конфигурация е файлова база данниданни, в които се поставя конфигурацията с помощта на конфигуратора и които съхраняват информация за редактираните в в моментаобекти, както и историята на промените в тези обекти. Достъпът на разработчиците до конфигурационното хранилище се осъществява или в рамките на локална мрежа, или от отдалечен достъпс помощта на уеб сървър. Първоначално конфигурацията се разглежда като набор от обекти, които са затворени за промяна. За да направите промени в обект, той трябва да бъде заснет, а обектът може да бъде заснет само от един потребител наведнъж. След работа със заснетите обекти, резултатът от тяхната модификация се поставя в хранилището, след което тези обекти стават достъпни за всички участници в груповата разработка. По този начин се контролира достъпът до едни и същи конфигурационни обекти и се осигурява синхронизиране на работата на екипа за разработка по модификация на конфигурацията. По-долу ще разгледаме подробно процеса на създаване на ново хранилище за конфигурация в системата 1C:Enterprise 8.3 (в по-стари версии, 8.2 и 8.1 Алгоритъмът за създаване на хранилище е подобен).

1. Създайте ново хранилище

За да създадете ново хранилище за конфигурация, трябва да стартирате 1C:Enterprise в режим на конфигуратор, като се свържете с информационната база, чиято конфигурация ще бъде вид „основа“ - първоначалната конфигурация на създаденото хранилище.

След като стартирате конфигуратора, изберете елемента „ Конфигурация» — « Отворена конфигурация"или щракнете върху съответната икона в лентата с действия.

Когато конфигурацията се зареди, изберете „ Конфигурация» — « Конфигурационно съхранение» — « Създаване на хранилище...»

След това в прозореца за създаване на хранилище трябва да посочите местоположението на новото хранилище, това може да бъде:

  • Директория на текущия компютър, например: C:\1C_BASE\repository\Accounting
  • Мрежов ресурс, например: \\WIN2012\repository\Accounting
  • Адрес за съхранение (ако е зададен), например: tcp://WIN2012/accounting

    Tcp://192.168.0.10/счетоводство

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

    https://site/repository/repository.1ccr/Accounting

След като посочите местоположението на файловете на хранилището, което ще бъде създадено, щракнете върху " Следваща».

След това трябва да посочите потребителското име и паролата на администратора на хранилището. За да спестим време и незабавно да свържем тази информационна база към хранилището, вместо това ще посочим идентификационните данни на потребителя, под който ще бъде свързана текущата база данни. По-късно ще създадем администратор на хранилището. След като въведете вашето потребителско име и парола, щракнете върху " добре».

След което ще започне дългият процес на създаване на хранилище. Когато приключи, съветникът ще ни подкани да се свържем със създаденото хранилище за конфигурация. Щракнете върху " да».

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

2. Добавяне на потребители към хранилището

Сега нека добавим нов потребител на магазина за конфигурация. Нека това да е администраторът на хранилището, чиито идентификационни данни сте били помолени да въведете в предишната стъпка. За да добавите потребител към хранилището, в конфигуратора изберете „ Конфигурация» — « Администриране на хранилището...»

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

Въведете вашето потребителско име и парола и отидете на „ права", за да зададете разрешенията на създадения потребител за съхранение.

Тук можем да зададем / или премахнем следните потребителски права:

  • Административни функции – потребителят има права да създава, изтрива и деактивира потребители, да отменя заснемането, може да променя режима на съвместимост на съхранението и да изпълнява процедурата за оптимизация.
  • Промяна на състава на версиите – потребителят има права за връщане назад и намаляване на историята на версиите.
  • Заснемане на обекти– потребителите с това право могат да записват и правят промени в конфигурацията за съхранение. Ако правото не е зададено, обектите за съхранение могат само да се преглеждат.

След като определите необходимите потребителски права, щракнете върху „ добре".

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

3. Свържете се с конфигурационното хранилище

За да свържете нова информационна база към конфигурационното хранилище, трябва също да стартирате конфигуратора за тази база данни и първо да отворите конфигурацията, като изберете „ Конфигурация» — « Отворена конфигурация».

След това в същото меню изберете „ Конфигурация» — « Конфигурационно съхранение» — « Свързване с хранилище...»

Конфигураторът ще ви предупреди, че при свързване текущата конфигурация ще бъде заменена с конфигурацията от хранилището. Щракнете върху " да”, съгласявайки се и продължавайки връзката.

След това въведете адреса за съхранение, името и паролата на създадения преди това потребител и щракнете върху „ добре» за свързване към паметта за конфигурация.

Тази статия помогна ли ви?

Създаване на хранилище
Изберете от менюто "Конфигурация" -> "Съхранение на конфигурация" -> "Създаване на хранилище..."

Посочете пътя до директорията за съхранение. (Директорията трябва да е достъпна за всички разработчици!)

След като хранилището е създадено, отидете на елемента от менюто „Конфигурация“ -> „Хранилище за конфигурация“ -> „Администриране“, за да създадете потребители за разработчици


В прозореца, който се отваря, създайте потребители.

Свързване на конфигурации на разработчици към хранилището на конфигурацията
изберете елемента от менюто "Конфигурация" -> "Съхранение на конфигурация" -> "Свързване към хранилище..."

След това конфигураторът ще ни попита:
„Когато се свързвате с хранилище за конфигурация, тази конфигурацияще бъде заменен с конфигурацията от хранилището. Продължаване на свързването?"
Кликнете върху бутона "Да" и посочете:
- път към склад
- потребителско име
- парола

Чакаме конфигурацията да бъде сравнена със съхранението.
Ако всичко е минало добре, трябва да се появи икона за заключване вдясно от конфигурационните обекти в дървото на обектите.

Работа с конфигурационния магазин
По подразбиране всички конфигурационни обекти имат икона "заключване". За да промените конфигурационен обект, трябва да го вземете, тоест да го изберете контекстно менюобектен елемент "Заснемане в хранилище"


задайте настройки за заснемане

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

Квадратче за отметка Разрешете да получите заловенПри зареждане ви позволява също така да извлечете онези обекти, които са били заснети от дадения потребител. Тази функция може да е необходима, например, когато трябва да се върнете към състоянието на съхранение, без да отмените заснемането на обекта, но да продължите да го редактирате.

след необходими променинаправени, обектът трябва да бъде поставен отново в хранилището с направените промени. В контекстното меню на конфигурационния обект изберете елемента „Поставете на склад...“

Ако искате да отмените направените промени и да освободите обекта от заснемане, изберете елемента в контекстното меню на обекта „Отмяна на заснемането“

Ако трябва да възстановите обект от хранилището, след което изберете елемента „Вземи от хранилището...“ в контекстното меню на обекта. В този случай промените, направени по време на заснемането на обекта, се губят.

Можете също така да видите хронологията на версиите и да сравните заснетия и модифициран обект с обекта в хранилището.

След приключване на работата в копията (или завършване на някакъв междинен етап), можете да актуализирате конфигурацията на основната база данни, за това трябва да изберете елемента в менюто "Конфигурация" -> "Съхранение на конфигурацията" -> "; Актуализиране на конфигурация от хранилище" или "Конфигурация "->"Хранилище на конфигурация"->"Сравняване/сливане на конфигурация с хранилище".

Във втория случай ще настъпи „по-мека“ актуализация на конфигурацията, т.е. ще бъде възможно да видите отчет за разликите между обектите на първоначалната конфигурация и хранилището.

В повечето случаи 1C програмист извършва сложна разработка в офиса или у дома, ако е на свободна практика, след което идва при клиента и качва подобрения. Много често някои грешки се коригират на място. И конфигурацията в офиса вече не е равна на конфигурацията при клиента. Няма нищо трудно да вземете копие от базата данни, когато напускате клиента, но какво ще стане, ако има няколко разработчици и те не отиват при клиента в приятелска тълпа, а на свой ред.

Тези. Проблемът възниква, когато има паралелно развитие на различни локални мрежи. В този случай влачене вжфайлове напред-назад и постоянното им сравняване едно с друго отнема много време. Оказва се, че имаме нужда от магазин за конфигурация, който е достъпен извън нашата локална мрежа.

За да разрешим този проблем се нуждаем от:

1. добър интернетна всички компютри, където се извършва разработка
2. компютър, който се вижда отвън чрез бял IP

По правило компютър с бял IP е сървър в офиса. Трябва да започнете да разгръщате конфигурационното хранилище, като го настроите. Първо, нека инсталираме платформата 1C върху него. По време на инсталацията трябва да посочите наличието на компонента Configuration Storage Server. Обърнете внимание на пускането на платформата, факт е, че с този метод на работа се нуждаете от една и съща версия на платформата на всички компютри. И във вашия офис, и у дома, и при клиента.

След инсталирането самият сървър за съхранение няма да се появи в услугите. Трябва да се регистрира. Сервизният файл се извиква crserver.exeи е в каталога кошче.


Преди да се регистрираме, трябва да решим в коя папка ще се намира нашето хранилище. Сървърът ви позволява да работите с няколко хранилища едновременно, така че при регистрация в сървъра ние посочваме директорията, в която вече ще се намират директориите с хранилища. Сървърът работи чудесно и с руски имена на папки. За допълнителна функционалност би било хубаво (но не е необходимо) тази папка да бъде споделена. Например, имаме споделена папка на устройството „Exchange“, нека създадем поддиректория „Storage“ в нея.

Сега регистрираме услугата сървър за съхранение. За да направите това, щракнете върху „старт“, „изпълни“, въведете „cmd“, натиснете Enter и влезте команден редпишем:
"C:\Program Files (x86)\1cv8\8.3.4.408\bin\crserver.exe" -instsrvc -d "C:\Exchange\Storages"

Ако не се появят съобщения за грешка, нашата трябва да се появи в списъка с услуги. Трябва да проверите това визуално.

Тук трябва да се уверите, че услугата работи и че е настроена на автоматично стартиране. Тъй като не сме посочили потребител по време на регистрацията, тя стартира под системата сметка. Това е удобно, но може да не е безопасно; ако е необходимо, коригирайте това в свойствата на услугата.
Сега трябва да създадем хранилище. Тази процедура е дълга, затова препоръчвам да я направите в локалната мрежа, където се намира нашият сървър. Създаваме го както обикновено, само в реда на пътя посочваме не мрежова папка, а път в следния формат:
tcp://Server1C/Project Storage1\

Където Server1C е името на компютъра в локалната мрежа. Можете да посочите IP адреса на този компютър. Project Storage1 – име на директория за новото хранилище. След създаването на сървъра, хранилището ще бъде разположено в папката C:\Exchange\Storage\Project Storage1.

Въпреки че използваме сървър за съхранение, той по същество е същият формат на файлова база данни 1CDи можете да се свържете с него по стария начин, като посочите мрежовата директория в реда за връзка:
\\Server1C\Exchange\Storages\Project1 Storage

Тук има няколко нюанса:
1. Когато работите чрез tcp с файл на база данни, процес, работещ спрямо файла, работи локално, което осигурява известна надеждност. По-рано писах, че дори при използване на wi-fi базата за съхранение може да се разпадне, беше тъжно преживяване. В този случай системата става по-устойчива на мрежови повреди.
2. Когато работите през tcp, са необходими едни и същи версии на версиите на платформата за всички участници, когато комуникирате с файлове, това не е така.
3. Споделена папка– папка с пълен достъп за всички участници. Хората лесно могат случайно (или може би не случайно) да хвърлят боклук там, да изтрият няколко „ненужни“ файла и като цяло да объркат нещата.

Въз основа на тези нюанси може да има смисъл да се разположи сървър за съхранение дори в локална мрежа в някои случаи.
Сега относно достъпа отвън. Сървърът за съхранение работи на порт 1542. Ако външният бял IP адрес сочи директно към вашия сървър, тогава трябва да внимавате да отворите този порт. Ако външният IP сочи към рутера, тогава трябва да конфигурирате пренасочване. В моя случай имаше препращане, системният администратор разпредели свободен порт за това. Моят низ за връзка изглеждаше така:
tcp://36.21.65.20:1501/Проект Storage1\

Удобството при работа с такова хранилище зависи изцяло от скоростта на интернет, така че всякакви usb модемив модулни помещения (почти всички търговски центрове) е лоша практика. Ако модемът няма стабилен 3G и постоянно превключва на GPRS, тогава дори не бих опитал.

Накрая ще ви разкажа за актуализирането на платформата. защото Последният 1C 8.3 вече се пуска често, така че това е уместно. Платформата трябва да се преинсталира навсякъде наведнъж, това вече е ясно. При преинсталиране на сървъра услугата няма да се актуализира автоматично. Ако правите всичко по правилния начин, т.е. регистрирайте приложението crserver.exe от папката bin с най-новата версия на платформата, т.к услугата се нарича по същия начин, старата услуга ще бъде маркирана за изтриване и ще е необходимо рестартиране на сървъра. Може да е по-лесно. Влизаме в услугите, спираме сървъра за съхранение. Разглеждаме стартовия низ в свойствата и го копираме в клипборда. Качваме се в редактора на системния регистър ( regedit) и потърсете този ред в системния регистър. В него редактираме номера на изданието (той присъства в името на папката). Да започнем услугата обратно. Всички. Ако объркате, услугата ви няма да стартира. След стартиране отидете в свойствата на услугата и визуално проверете дали е стартирана от папката с новата версия.

Това е всичко за днес, благодаря ви за вниманието