V8i пример создания 1с 8
Одно из правил управления временем — Если есть человек, которому можно делегировать выполнение задачи — делегируй.
Предыстория
Как я докатился до того, что — Я, системный администратор! — стал задаваться вопросами работы 1С?
Тирада в моей оригинальной статье, которую вряд ли кто читал, касалась того, какие лентяи 1С разработчики, и сами производители 1С, что одни понаделали много функций, но другие недостаточно хорошо описали, третьи поленились разобраться, а свалили всю рутину на системных администраторов, которым делать-то нечего, кроме как за элитой IT подметать. Думаю, здесь никто меня не похвалит за такие рассуждения. Хотя и похвалы особо не ищу. Единственная цель — чтобы это пригодилось кому-то, кто правильный лентяй-админ, и не любит заниматься одним и тем же помногу раз. А теперь о том, как это было.
Я столкнулся с таким положением дел, что всем сотрудникам наши 1С разработчики добавляют базы ручками, присутствуя на рабочем месте сотрудника, либо просят это сделать нас удалённо, подключившись к рабочему столу пользователя и мышкакликанием все повторить.
Выглядит это так:
И не думайте, что в следующий раз, этот 1С разработчик скажет мне, что эту базу можно назвать именно также. Как следствие, у нас одна и та же база у разных сотрудников называлась по разному. Красота, не так ли?!
Ещё одна сторона этой проблемы в том, что Сотрудник должен быть на месте, компьютер включен, и у него должно быть время (5 мин), чтобы я мог всё это сделать. Если сотрудника нет на месте, то вы можете себе предположить, сколько от меня требуется трудозатрат, чтобы выловить этого сотрудника, согласовать с ним время и сделать это. А если этот сотрудник в удалённом офисе, на ноутбуке, и бывает в сети крайне редко, плюс разница поясов Владивосток — Москва, то это ещё добавляет остроты ощущений. Конечно, можно ещё ярлыком в почту бросить, но этим у нас 1С разработчики очень крайне редко пользуются — или не умеют, или не хотят, или за нас переживают, что без работы останемся, за что им отдельная благодарность и лучи поноса.
Баз у нас порядка пятнадцати. У каждой группы отдельный набор баз. А есть и такие, у кого строго индивидуальный список.
Следующая картина вам ещё больше понравится.
Поступает распоряжение от главы 1С'ников, что нужно трём отделам изменить базу, т.к. она переехала на другой сервер. Дальше не буду тратить буквы, т.к. всё что я описал выше множите на тридцать человек, двадцать из которых в другом офисе или даже другом городе. Классная задачка.
Не помню, сколько раз, я, таких суматох вынес, но было их больше десяти. После чего мне стало интересно, какие способы оптимизации этого процесса есть по unix-way'ю.
И стал я читать… Читал долго… Читал упорно… Документация 1С в справке мне совершенно не понравилась — написано так, как будто бы я уже это делал, поэтому большую часть идеи они оставляют между строк. Лучи поноса в написателей встроенной справки 1С. Как обычно это бывает, более-менее понятную инструкцию нашел на личном блоге, не помню уже кого.
Теория устройства конфигурационных файлов
В 1С организовано всё, что касается списков баз, в обычных текстовых, читаемых файлах с расширениями .cfg и .v8i, в кодировке utf-8. Так что, как вы наверняка догадываетесь, можно всё делать то же самое без отрыва пользователя, открывая файл по сети обычным текстовым редактором и правкой на прямую.
Расположение файлов на стороне пользователя
У пользователя на компьютере 1С 8.2 хранит фалы списков баз в каталогах:
Для Windows XP:
Профиль всех пользователей: С:\Documents and Settings\All Users\Application Data\1C\1CEstart\
Профиль пользователя: С:\Documents and Settings\%username%\Application Data\1C\1CEstart\
Для Windows 7:
Профиль всех пользователей: C:\ProgramData\1C\1CEStart\
Профиль пользователя: C:\Users\%username%\AppData\Roaming\1C\1CEStart\
Содержимое профиля пользователя — два файла: 1CEStart.cfg, ibases.v8i.
Содержимое директории профиля всех пользователей — один лишь, 1CEStart.cfg.
При запуске 1С берёт список баз к представлению в файле пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i, но предварительно читает настройки сначала из профиля всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, а потом и из профиля пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, и если в них есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.
Описание файла 1CEStart.cfg
В профиле всех пользователей конфигурационный файл C:\ProgramData\1C\1CEStart\1CEStart.cfg имеет следующее содержание:
Где:
InstalledLocation — содержит указание на каталог, в который выполнена установка 1С: Предприятие. По умолчанию это значение C:\Program Files (x86)\1Cv82.
CommonCfgLocation — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром.
CommonInfoBases — указывает путь и имя файла (.v8i) со списком общих информационных баз.
DistributiveLocation — содержит указание на каталог, в котором будет производится поиск новой версии для автоматической установки.
InstallComponents — В локальном конфигурационном файле (1CEStart.cfg) содержит перечень установленных компонент с признаком нужно установить компонету — 1, или нет — 0.
Возможны следующие компоненты параметра InstallComponents:
DESIGNERALLCLIENTS — все клиенты и конфигуратор.
THINCLIENT — тонкий клиент для клиент-серверного варианта работы.
THINCLIENTFILE — тонкий клиент с возможностью работы с файловыми информационными базами.
SERVER — сервер 1С: Предприятия. Если программа установки запускается из программы запуска, то сервер будет установлен как приложение.
WEBSERVEREXT — компоненты расширения для веб-сервера.
CONFREPOSSERVER — сервер хранилища конфигураций 1С: Предприятия.
SERVERCLIENT — компоненты для администрирования кластера серверов 1С: Предприятия.
CONVERTER77 — конвертер информационных баз из версии 1С: Предприятия 7.7.
LANGUAGES — список языков интерфейса для установки. Если указано несколько языков, они перечисляются через ”,”. Пример: LANGUAGES=RU,UK,BG
В профиле пользователя конфигурационный файл C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg первоначально пустой. Но, если какие-то настройки необходимо сделать индивидуально для конкретного пользователя, то писать именно в него, и тут уже его ключи настроек будут иметь больший приоритет, но не все. Это отдельный вопрос, им я не буду сейчас захламлять голову.
Описание файла ibases.v8i
Второй важный файл информационных баз, который находится в профиле самого пользователя — C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i. В него и собирается конечный список баз. Пример его содержимого:
Где:
[phonebook] – название базы 1С. Может быть как русскими буквами, так и английскими. Это то, что видит пользователь.
ID=34891493-907f-4783-8a37-3cbc092a989a — автоматически генерируемый уникальный код базы. Если у двух записей один и тот же ID, значит это одна база.
OrderInList=16640 — порядок в списке баз, когда базы представлены одним общим списком без подкаталогов; этот параметр из сетевого списка синхронизируется только в чистый ibases.v8i, если в ibases.v8i пользователя уже заполнен этой базой и этот параметр не будет перезаписываться, при его изменении в сети.
Folder=/ — задаёт место в дереве каталогов, если вид представления списка баз выставлен деревом; этот параметр имеет приоритет пользователя, и не меняется при изменении в сетевом конфиге.
OrderInTree=16640 — порядок в дереве, когда список баз представлен в виде иерархии подкаталогов; этот параметр имеет также приоритет пользователя, и синхронизируется только при первом добавлении базы, а далее подлежит изменению только локальным пользователем.
External=1 — внешняя подключаемая запись конфигурации или нет. Когда 0 тогда база присутствует только в этом файле. В данной ситуации эта запись импортируется из файла списка баз .v8i из сети. Это идентификатор, если это список баз расположенный в сети (расшаренный), то этот параметр можно вообще убрать из конфигурационного файла.
ClientConnectionSpeed=Normal — скорость соединения клиента. Опции могут быть “Nofmal” и “Low”. Логика ясна и без моих поиснений. Этот параметр интерактивный и при сетевом размещении синхронизируется при каждом запуске 1С.
App=Auto — тип соединения клиента. Бывает три типа:
— Auto — определяется сервером;
— ThinClient — тонкий клиент;
— ThickClient — толстый клиент.
Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
WA=1 — этот параметр говорит о том, что система должна использовать windows авторизацию. Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
Version=8.2 — используемая версия для этой базы. Если указать полностью конкретизируя какую платформу использовать, то будет использовать именно ту платформу, которую укажешь, как, например, во второй записи — Version=8.2.14.540. Этот параметр интерактивный и синхронизируется с сетевым конфигом при каждом запуске 1С.
Также есть ещё такой параметр как DefaultApp — тип соединения клиента по умолчанию, если в конфигурации для базы не задан, и DefaultVersion — используемая версия по умолчанию, если не задано в конфигурации для базы. Этот параметр пользовательский, и синхронизируется в чистый файл базы при первом запуске. Далее этим параметром управляет локальный пользователь.
Ссылки на конфигурационные файлы в сети
- либо в конфигурационном файле всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы для всех пользователей компьютера;
- либо в конфигурационном файле конкретного пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы только определённому пользователю на компьютере.
- либо CommonCfgLocation=\\server\1C\config\bases.cfg — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
- либо CommonInfoBases=\\server\1C\config\buh_bases.v8i — указывает путь и имя файла (.v8i) со списком общих информационных баз. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
- или в комбинации и тот и другой, и помногу строк.
Идея использования возможностей
Идея заключается в том, чтобы делать правки с наименьшим количеством повторений. Если настройки базы или её расположение на сервере поменялось, то, исправив запись один раз в одном месте, мы получим актуальную информацию на всех компьютерах.
Для этого необходимо сделать шару в сети: \\server\1C\ . В этой шаре сделать, как минимум два каталога:
..\bases\
Листинг каталога:
В этом каталоге будут хранится файлы с расширением .v8i. Эти файлы будут иметь внутри себя настройки всего лишь одной базы для каждого файла. Причём указать следует только те параметры, настройки, которые критичны именно для этой базы, всё остальное автоматом подставится по умолчанию. Пример файла:
Следует избегать использования параметра ID , т.к. 1С разработчики используют для создания новой базы копипаст из имеющейся базы. А базы с одним ID будут конфликтовать.
..\groups\
Листинг каталога:
В этом каталоге будут храниться файлы с расширением .cfg. Эти файлы будут иметь внутри себя ссылки на базы в каталоге ..\bases\. Пример файла:
В это каталоге мы создаём индивидуальные для группы пользователей или же для конкретного пользователя списки баз. Именно на файлы из этой группы мы ссылаемся в конфигурационных файлах операционной системы пользователя.
При такой схеме мы выносим управление списками баз 1С пользователей в сеть для не администраторов. На сетевой каталог с конфигурационными файлами дать доступ 1С разработчикам и пусть играются как хотят.
А если необходимо изменить настройки какой-то базы, то мы правим её всего одни раз в файле \\server\1C\bases\base.v8i, и это отразится у всех пользователей, т.к. все пользователи смотрят информацию о базе именно в этом файле.
В этот же день нужно было перенести и базы от 1С версии 8.3.
С этим сложностей не было так как это я уже делал много раз.
При этом я просто копировал папку 1C которая лежит по пути C:\Users\Имя Пользователя\AppData\Roaming\ в это же место но на другом компьютере.
Для простоты действия я ввожу %appdata% в адресную строку. (можно выполнить через выполнить win+r, через диспетчер задач => новая задача.)
так как папка appdata является скрытой как показать скрытые файлы и папки описывал тут Вирус скрыл папки что делать?
Список баз данных храниться в файле ibases.v8i где этот файл найти описано выше
Этот файл для 1C версии 8.1 находиться немного в другой папке 1Cv81t но в том же месте.
Для висты и выше
C:\Users\Имя Пользователя\AppData\Roaming\1C\1Cv81t\ibases.v8i
для XP
C:\Documents and Settings\Имя Пользователя\Application Data\1C\1Cv81\ibases.v8i
для 1C версии 8.2 и выше для win от висты и выше путь выглядит вот так
C:\Users\Имя Пользователя\AppData\Roaming\1C\1CEStart\ibases.v8i
%appdata%\1C\1CEStart\
C:\Documents and Settings\Имя Пользователя\Application Data\1C\1CEStart\ibases.v8i
%appdata%\1C\1CEStart\
Ниже на скриншоте виден путь к файлу собственно сам файл.
Этот файл можно открыть блокнотом и в нем увидим все базы которые там есть.
Давайте рассмотрим, как добавить в список информационных баз новую базу.
Запустить Платформу можно через Меню Пуск – Все программы – 1С Предприятие 8 – 1С Предприятие.
После запуска программы на экране откроется окно со списком информационных баз. Как раз с этого диалогового окна начинается работа. Если список информационных баз еще пуст, программой будет предложено добавить новую информационную базу.
Нажатием на кнопку Да согласимся с добавлением новой информационной базы. При этом появится возможность либо добавить новую информационную базу, либо добавить в список уже существующую базу (например, на диске база уже имеется, необходимо только прописать путь к ней).
При создании новой базы можно делать это из ранее установленного шаблона конфигурации, а можно сформировать базу без конфигурации для последующей разработки 1С или загрузки какой-либо конфигурации.
Чтобы создать новую базу из шаблона нужно выбрать соответствующий установленный ранее шаблон и нажать на кнопку Далее. Если вы устанавливали учебную версию Бухгалтерии предприятия, можно выбрать один из двух шаблонов: Бухгалтерия предприятия учебная или Бухгалтерия предприятия учебная (демо).
Бухгалтерия предприятия учебная – это шаблон для создания базы, в которой еще нет пользовательских данных. А в демо-базе имеются уже заполненные данные. То есть в этой информационной базе уже заведено несколько организаций и оформлены различные хозяйственный операции по разным участкам бухгалтерского учета.
Общие вопросы
Обычная учебная база используется для моделирования ведения реального учета, а демо-база предназначена для учебных целей.
Давайте создадим и пустую базу, и демо-базу. После выбора шаблона и нажатия кнопки Далее, появится форма, в которой можно изменить название создаваемой базы, а также выбрать тип расположения информационной базы.
Создаваемая база будет располагаться на данном компьютере или на другом компьютере в составе локальной сети.
В очередной форме предлагается определить каталог информационной базы. Удобно, когда все базы хранятся в определенном месте, например, на диске D. Поэтому предварительно создадим на диске D папку Базы и внутри данной папки – другую папку для конкретной базы Бухгалтерия предприятия. Определим этот каталог и нажмем "Готово".
Итак, мы добавили новую информационную базу и можем приступить к работе с ней.
При запуске 1С:Предприятие пользователю предоставляется окно со списком подключенных баз. Рассмотрим структуру и где хранится список баз 1С.
Где хранится список баз 1С
Список информационных баз 1С хранится в файле ibases.v8i. Это обычный текстовый файл, который можно просмотреть и отредактировать в блокноте. Каждый пользователь операционной системы формирует свой собственный список информационных баз 1С, с которыми он работает. Соответственно, файлы ibases.v8i у разных пользователей также индивидуальные.
Файл ibases.v8i хранятся в каталогах:
- для Windows: %APPDATA%\1C\1CEStart;
- для Linux: ~\.1C\1cestart;
- для macOS: ~\.1C\1cestart.
Структура и описание ibases.v8i
Файл ibases.v8i хранится в кодировке UTF-8 и состоит из блоков с предопределенной структурой. Каждый такой блок описывает одну базу 1С или одну папку в дереве баз (если базы отображаются в виде дерева).
Для каждого блока (читай базы) указывается наименование и перечень параметров. Наименование заключается в квадратные скобки; именно оно отображается в окне запуска 1С:Предприятие. Параметры указывается в формате ИмяПараметра=ЗначениеПараметра. Наименование и параметры указываются в отдельных строках.
Блок описания информационной базы имеет структуру:
[Наименование базы] ИмяПараметра1=ЗначениеПараметра1 ИмяПараметра2=ЗначениеПараметра2 ИмяПараметраN=ЗначениеПараметраN
Рассмотрим основные параметры и их возможные значения:
- Connect — параметры соединения с базой:
- для файлового варианта Connect=File=;
- для клиент-серверного варианта Connect=Srvr=;Ref=;
Список информационных баз 1С
- Normal — обычная;
- Low — низкая.
- 1 — аутентификация средствами ОС. В случае ошибки запрашивается логин/пароль;
- 0 — аутентификация с помощью логина/пароля.
- Auto – автоматический выбор типа клиентского приложения;
- ThinClient – тонкий клиент;
- ThickClient – толстый клиент;
- WebClient – веб-клиент.
Как перенести список информационных баз 1С другому пользователю
Мы уже определили, что список баз 1С хранится в обыкновенном текстовом файле ibases.v8i.
Для переноса списка от одного пользователя другому достаточно скопировать этот файл из папки исходного пользователя в папку целевого пользователя.
Списки общих информационных баз
Список общих информационных баз — это текстовый файл с произвольным наименованием и расширением v8i. Структура файла соответствует структуре ibases.v8i. Список общих информационных баз можно использовать:
- Непосредственно для запуска 1С:Предприятия. В этом случае в окне запуска будут только те базы, которые описаны в файле. Если в файле всего одна база, то она сразу же запускается, без отображения окна выбора баз.
- Для подключения к основному списку баз пользователя. В этом случае при запуске 1С пользователь будет видеть как свои базы, так и базы из общего списка.
Подключение списка общих баз:
Список общих информационных баз может быть сформирован вручную в блокноте или путем сохранения уже подключенной базы из окна запуска 1С:
Смотри также:
Поиск битых ссылок
Включение отладки на сервере 1С
Как посмотреть список активных пользователейИспользование списков общих баз в 1С:Предприятие 8
Списки общих информационных баз 1С v8.x
Списки общих информационных баз в 1С:Предприятие 8 представляют файлы с расширением «v8i», которые содержат ссылки на общие информационные базы. В этом файле указывается произвольное количество списков информационных баз, которые будут общими для всех пользователей.
Списки общих информационных баз 1С v8.x
Эти базы 1С будут добавлены в основной список информационных баз и отображены при запуске системы в списке информационных баз. С помощью диалога настройки окна запуска системы 1С:Предприятие 8 можно просмотреть и указать списки общих информационных баз.
На заметку — О том, как удалить Гугл Хром с компьютера полностью можно узнать пройдя по ссылке. Если удалять браузер стандартным способом, то остаются мусорные файлы. Поэтому советую ознакомиться с инструкцией.
Настройка списка общих баз в 1С:Предприятие 8
Для того чтобы сделать базу общей необходимо проделать следующие действия:
- Сохраняем нужную базу в файл *.v8i;
- Открываем в блокноте и смотрим (это ради интереса, что там внутри), при необходимости редактируем (например: название ИБ, версию платформы, сервер, базу данных);
- Далее открываем каталог C:\ProgramData\1C, находим там файл 1CEStart.cfg;
- Открываем файл в блокноте и прописываем путь к нашему файлу *.v8i по ключу CommonInfoBases. В нашем случае, файл будет лежат в сетевой папке — \\nuclear\public2$\1cv8\1C.v8i
- На этом все! Теперь пользователям, запускающим 1С, автоматически будет прописана информационная база по нужному пути.
Заметьте, что такие базы 1С, пользователь не сможет удалить из списка, кнопка «Удалить» не активна. Также при необходимости, файл можно оперативно редактировать и заменить параметры.
Сформировать список баз 1С для всех пользователей
Где хранится список баз 1С версии 8.3
В этот же день нужно было перенести и базы от 1С версии 8.3.
С этим сложностей не было так как это я уже делал много раз.
При этом я просто копировал папку 1C которая лежит по пути C:\Users\Имя Пользователя\AppData\Roaming\ в это же место но на другом компьютере.
Для простоты действия я ввожу %appdata% в адресную строку. (можно выполнить через выполнить win+r, через диспетчер задач => новая задача.)
так как папка appdata является скрытой как показать скрытые файлы и папки описывал тут Вирус скрыл папки что делать?
Список баз данных храниться в файле ibases.v8i где этот файл найти описано выше
Этот файл для 1C версии 8.1 находиться немного в другой папке 1Cv81t но в том же месте.
Для висты и выше
C:\Users\Имя Пользователя\AppData\Roaming\1C\1Cv81t\ibases.v8i
для XP
C:\Documents and Settings\Имя Пользователя\Application Data\1C\1Cv81\ibases.v8iдля 1C версии 8.2 и выше для win от висты и выше путь выглядит вот так
C:\Users\Имя Пользователя\AppData\Roaming\1C\1CEStart\ibases.v8i
%appdata%\1C\1CEStart\
C:\Documents and Settings\Имя Пользователя\Application Data\1C\1CEStart\ibases.v8i
%appdata%\1C\1CEStart\
Ниже на скриншоте виден путь к файлу собственно сам файл.
Этот файл можно открыть блокнотом и в нем увидим все базы которые там есть.
Для сохранения списка баз 1С 8.3 и переноса на другой компьютер или восстановления скажем после переустановки операционной системы необходимо сделать следующее:
Сохранение списка информационных баз 1с 8.3
1. В дереве информационных баз, щелкаем правой кнопкой мыши по самому верхнему уровню «Информационные базы»;
2. В открывшемся контекстовом меню щелкаем «Сохранить ссылку в файл»;
3. Выбираем понравившуюся папку и название файла;
4. Нажимаем «Сохранить».
Восстановление списка информационных баз 1С 8.3 (Копирование) вариант №1
1. Копируем файл в буфер обмена (правая кнопка мыши, затем «Копировать»);
Где хранится список баз 1с
Переходим в категорию «C:\Users\[ваш_пользователь]\AppData\Roaming\1C\1CEStart\»;
3. Замещаем файл «ibases.v8i» (если название файла у вас отличается, необходимо переименовать в указанное
Восстановление списка информационных баз 1С 8.3 (Копирование) вариант №2
1. В окне информационных баз нажимаем «Настройка»;
2. В окне «Адреса Интернет-сервисов и списки общих информационных баз» нажимаем «+»;
В появившемся окне в окошке «Список общих баз (в локальной сети)» нажимаем «…» справа от поля;
На «Хабре» есть три отличных поста про управление списками баз в 8.х:
Каждый из них содержит свой кусок паззла от полноценной картины: Легкое управление списками баз 1С.
Пролог
Приведенная идеология построения позволяет легко масштабировать настройки, как для простых офисов с одним доменом, так и для мультидоменной структуры в составе леса. Конкретную реализацию решения каждый выбирает под себя сам, но здесь заложена основа чтобы без лишних усилий получить необходимую гибкость. Решение легко передается по наследству. Там нет скриптов. Совсем нет. Вообще.
Итак, с чем же мы боремся:
Пользователей стало много! – обойти 40+ пользователей с единой целью прописать новую базу или изменить настройки подключения у старой займёт приличное время. Хорошо, тем у кого есть бойцы техподдержки.
Баз стало много! – зоопарк баз, тестовые базы с легкой подачи 1Сников оказывающиеся в продакшне все еще находясь на серверах для тестирования. Умножаем на количество пользователей и ужасаемся.
Невнятные названия баз! — в этом месте, я каждый раз представляю, как своими руками душу очередного 1Сника за базу с именем «new2_baza2_copy» к которой привязана куча обработок, отчетов и СОМ соединений. Потому что ему показалось логичным ТАК назвать новую базу. Организация же одна и она внезапно не вырастет. И он один и все помнит. И никогда не уволится. А документацию ведут слабаки. Да это же всегда можно по быстрому переделать!
Частая ротация пользователей! – каждый новый пользователь не знает какие базы ему нужны (Часто звучит: «Мне нужны ВСЕ»), сотрудники часто меняют должности, подразделения, организации и как следствие свои обязанности.
Нагрузка! Скрипты! – сладостные скрипты сканящие весь AD леса в поисках определённых имен групп, чтобы подключить одну базу. А кто его написал? На чем? Когда? Где комменты?
Где мои базы?! – упс. Многие решения не позволяют сохранить индивидуальный список баз 1С пользователя и при этом использовать предопределенный набор баз.
Кластеры 1С? Сервера БД? – а есть разница? Их может быть больше одного. Разных версий 1С, разных баз данных. Техподдержка пытается найти концы, что бы точно понять что конкретно прописывать у пользователя на ПК.Основную боль я описал.
1. Вся представленная инфраструктура является тестовой и виртуальной. Любые совпадения с названиями юридических лиц являются случайными.
2. Простите меня за английский интерфейс на скриншотах с серверов. Я не мог иначе.
3. Поверьте мне, я руководитель группы системных администраторов, я знаю что я делаю! (с)Шесть этапов до счастья:
Этап 1 — Инвентаризация
Берем табличный редактор и 1Сников. И подробно инвентаризируем, возможно, даже руками:
Рождается примерно такая таблица:
Наша задача понять, что где. Структурировать. Подробно расписать.
Этап 2 — Группы AD для баз 1С
Создание групп для баз в Active Directory, сразу пишем в описании используемый кластер и сервер баз данных:
На выходе получаем подробную информацию о каждой базе в структуре Active Directory. Указание имени базы данных в имени группы AD сильно облегчает поиск группы для определенной базы в больших инфраструктурах. Выделил пользователей, выбрал добавление в группу и указал нужное имя базы. Оп и все там. В то же время вашим коллегам (или наследникам) сразу будет видно какая группа AD за какую базу отвечает и где база находится.
Важно:
Помимо создания групп AD для каждой базы необходимо создать дополнительную группу AD «_Базы 1С – Доступ к файлу конфигурации 1CBases.cfg» — она поможет нам обеспечить доступ к файловому ресурсу, где хранятся конфигурации v8i всех необходимых нам баз. Включаем в эту группу все группы AD для баз 1С. Новые группы AD для баз 1С так же не забываем добавлять. Еще нам понадобится в её составе группа Domain Computers, чтобы дать возможность учетным записям ПК заходить на файловый ресурс. О нюансах ниже.Этап 3 — Файлы конфигураций 1С
Инвентаризацию сделали, группы AD для баз создали, теперь файлы конфигурации v8i. Они хранят настройки подключения к базам: кластер 1С и имя базы в этом кластере.
Запускаем 1С. Если есть сформированный список баз, именуем их красиво и понятно.
Организация — Конфигурация — Версия конфигурации
Сохраняем их по правой кнопке в файлы, файлы именуем по имени базы. Заботливо накапливаем эти замечательные v8i файлы в одном каталоге. Если первоначального списка нет, можно создать одну запись в списке, она будет эталоном. С нее плодим новые файлы конфигурации v8i забивая необходимую информацию напрямую текстом в файл.На выходе имеем файл с таким содержимым:
Избавляем каждый файл от лишних строк:
В итоге получаем определенное количество v8i файлов конфигурации, столько же сколько и баз.
Следующий шаг заключается в редактировании общего файла конфигурации баз для 1С.
По умолчанию в нем содержится совсем не перечень баз:
Проведем небольшие манипуляции, и в нем теперь указываются пути до всех файлов конфигурации v8i баз 1С.
Обращение к файлам v8i работает, как и с простой сетевой папкой на файловом сервере, так и с DFS ресурсом. Балансировка нагрузки, отказоустойчивость? Да! Знаем. Летаем.
В итоге имеем каталог полный файлов конфигурации v8i на каждую базу отдельно, плюс общий файл конфигурации в котором прописаны все пути до всех файлов конфигурации v8i.
Этап 4 — Файловый или DFS ресурс
Создаем каталог, в котором будут лежать файлы конфигурации v8i для подключения к каждой конкретной базе, а также общий список баз — файл 1CEStart.cfg:
именуем каталог Sync-1CBases.
Идеологический подход по доступу, к общим ресурсам, у всех разный. Многие предпочитают ставить на сам общий ресурс доступ Everyone — Full control, а дальше рулить доступом на уровне файловой системы. Так проще. Я предпочитаю отсекать доступ сразу на уровне самого общего ресурса, не создавая дополнительной нагрузки на файловый сервер лишними перепроверками возможности доступа.На новый сетевой ресурс даем доступ группе «_Базы 1С – Доступ к файлу конфигурации 1CBases.cfg» права на чтение.
Божественные мануалы одной картинкой. Вместо тысячи слов.
Важно:
Дальше настраиваем безопасность на уровне файловой системы.Самый первый шаг — это сброс настроек по умолчанию на объекты каталога Sync-1CBases. Отключаем наследование разрешений. Оставляем «SYSTEM», локальные Администраторы, Администраторы домена. Там, где есть лес можно добавить администраторов предприятия и/или делегированных администраторов. Получившийся результат применяем с наследованием. Тут же, не отходя далеко от кассы, добавляем группу AD «_Базы 1С – Доступ к файлу конфигурации 1CBases.cfg» с правом Чтение и только на этот каталог без наследования. На этом шаге мы получаем возможность добраться до корня папки и получить список файлов в каталоге.
До сих пор не привыкну к такому интерфейсу настройки прав доступаДальше самая соль:
На файл 1CEStart.cfg мы выдаем право на чтение только группе AD «_Базы 1С – Доступ к файлу конфигурации 1CBases.cfg»
Затем на каждый файл конфигурации базы v8i выдается доступ для своей группа доступа Active Directory:
Повторять последний шаг пока файлы конфигураций v8i баз данных не закончатся.
Этап 5 — Групповые политики
Очень многие не используют групповые политики. Многие используют их пренебрежительно мало. Зря-зря-зря. Это очень мощный инструмент облегчающий жизнь на работе даже в малых офисах.
Создаем новую групповую политику, линкуем её на корень домена. Указываем, что работает она только с Domain Computers:
Главное откровение (или нюанс) тут в том, что список баз подключается не по пользователю, а к ПК. К сожалению, пользователь не может с своими правами заменить файл конфигурации, находящийся в C:\ProgramData\1C\1CEStart\ и за него это сделает ПК.
Здесь задача взять файл с общего ресурса и заменить локальный файл.
Что бы это делали только ПК с установленной 1С, задаем условия выполнения групповой политики через Item Level Targeting.Проверяем наличие установленной 1С:
Это самая элементарная проверка. Проверяет как для х86 так и для х64 редакций операционных систем. Не делает различий между серверными и клиентскими ОС.
А вот сами условия проверки можно весьма широко варьировать, применяя эти настройки к определенным организационным подразделениям, в зависимости от условий доступности сетевых ресурсов и многим другим параметрам, что дает возможность максимально сузить условия срабатывания данной групповой политики.
Файл приводится в соответствие при загрузке ПК, либо раз в 90+- минут.
Этап 6 — Пользователь
Берем пользователя. И добавляем его в группы AD:
После чего производим вход пользователя в систему, запускаем 1С, которая считывает файл конфигурации и подключает все файлы v8i к которым у пользователя есть доступ. Результат:
Чего собственно и добивались.
При это данное решение не затрагивает файл C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i в котором хранятся базы, которые прописал сам пользователь. Впрочем, его всегда можно обнулить, чтобы почистить список баз у пользователя. Групповые политики вам в руки!
Эпилог
Формально я передал одну из множества вариантов реализации. Передал идеологию. Дополнительные решения к этой статье могут быть весьма широкими:
Автоматическое создание файла v8i, добавление его в cfg, создание группы AD для базы 1C.
Доступ для редактирования для специалистов по 1С для этих же файлов.
Проверка актуальности файла конфигурации cfg прежде чем заменять его на ПК.
Для параноиков можно создавать cfg файлы с предопределенными списками, а в v8i прописывать более одной базы. И вообще делать имена v8i файлов без указания на имя базы.
Можно изменить способ доставки cfg файла на ПК, где в конфигурации ПК изменяются права доступа к данному файлу, а пользователь уже с своими правами перезаписывает его.
И многое другое. Все что пожелаете. Каждый волен решать сам.Итого:
Пользователей стало много! – не имеет никакого значения.
Баз стало много! – внесли базу 1Сники в реестр, пользователи её получили. Не внесли – база даже самоподключенная исчезнет у пользователя при следующем входе в систему, если включено обнуление списка локальных баз.
Невнятные названия баз! – какая разница? У тебя всегда актуальная информация. Нет полной информации о базе – нет базы у пользователей.
Частая ротация пользователей! – была заявка подключить базу? Есть база! Сменил место или подразделение, потерял базу вместе с сбросом прав.
Нагрузка! Скрипты! – где? Зачем? Балансировка, точное нацеливание, только актуальная информация, легкость обслуживания и поддержки.
Где мои базы?! – не положено! Ну или пользуйтесь пожалуйста. Все довольны.
Кластеры 1С? Сервера БД? – никакой путаницы. Все уже задано настройками. Технари заняты полезными делами, а не выяснением кому, куда и чего прописывать, как это обзывать и как не оставить пользователей с утра без учетной системы из-за обновления.Постскриптум
Я потратил день. Чтобы вы за пять минут долетели. Спасибо!
Update:
Хабражитель — sisaenkov справедливо заметил, что вместо копирования cfg файлы в папку C:\ProgramData\1C\1CEStart\, для клиентских систем на базе Windows XP следует использовать переменную "%ALLUSERSPROFILE%\Application Data\1C\1CEStart\", в то время как для систем на базе Vista и старше можно использовать указанный в статье вариант, либо переменную %ProgramData%\1C\1CEStart\Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 1С, как и большинство отечественных коллег. На текущий момент у нас на сервере проживают сотни баз, поэтому нам пришлось научиться быстро и качественно всё это богатство администрировать. Если вы — бухгалтерская компания, хостер с сервисом 1С, или у вас просто взялась куча 1Сок, вы знаете, как это трудно. Мы любим приносить пользу, поэтому поделимся опытом, практическими советами и инсайтами, которые успели нас посетить за бессчётное количество ночей, праздничных и выходных дней, проведенных за обновлением и актуализацией всего нашего хозяйства.
Мы не продаём 1С, а потому рассказ будет без купюр, цензуры, а главное — без маркетингового булшита. Бонустреком, по ходу поста можно найти несколько полезных скриптов и советов для тех у кого действительно много баз 1С.
Итак, почему у нас вообще так много баз? В действительности, прямо сейчас мы исследуем технологию разделения данных, но использовать её ещё не начали, поэтому для каждого бизнеса, который мы обслуживаем, вынуждены создавать отдельную базу (и часто не одну).Невероятный путь от облачной 1С до собственного кластера серверов
В начале нашего пути мы пользовались облачным : этот сервис в меру удобен, насколько может быть удобно использовать настольное приложение через браузер. Однако, довольно быстро мы накопили полсотни баз и администрировать их через веб стало невыносимо — начал тормозить, плюс появилась необходимость программно интегрировать 1С с нашими внутренними инструментами, чего Фреш категорически не умеет. Пришлось мигрировать, выгружая все данные из облака. Благо сделать это было нетрудно («Выгрузить данные в локальную версию» → «Загрузить данные из сервиса»).
Вторым важным этапом эволюции стало использование , и нас, опять же, всё устраивало, пока баз не стало больше сотни. Обновления конфигураций, как и публикация с добавлением пользователей, происходили через письмо в техподдержку. В принципе, всё оперативно, но не интерактивно.
Особые неудобства доставляла невозможность запуска. без предварительного согласования (добавления в разрешающие политики домена), а нам, напомню, была необходима интеграция. Также были проблемы с тем, что, по непонятным причинам, СХД провайдера неправильно синхронизировало ноды на блочном уровне. Так мы потеряли несколько важных баз, которые пришлось долго и мучительно восстанавливать. С системами хранения часто всё непросто и нечестно.
Хозяйке на заметку: тестируйте хранилище. Если вы хостер, то уделите этому больше внимания. Если вы пользуетесь сторонним хостингом — обязательно проверяйте хранилище и диски. Это детские грабли, наступать на которые ещё больнее, чем на взрослые :)
После всех приключений мы решили мигрировать на свой VPS. Мощности современных виртуальных серверов позволяют спокойно содержать пару сотен , без труда допуская к ним пару десятков бухгалтеров. Провайдеры VPS, зачастую, не отвечают за лицензирование программных продуктов, которые вы запускаете внутри, поэтому нужно озаботиться приобретением лицензии на пользователей и покупкой конфигурации.
Хозяйке на заметку: при лицензировании большого количества баз вас могут ждать сюрпризы — активация каждой базы для каждого пользователя через программный ключ может стать вашей основной работой на ближайшие недели. Этого недостатка лишён
крякаппаратный ключ, но его нельзя просто так взять и начать использовать в VPS.Не будем забывать, что даже самый лучший VPS (выбранный с использованием вот этого клёвого сервиса) не сравнится с тёплым и ламповым собственным сервером. Мы решили мигрировать в третий раз.
Однажды вечером наш VPS не запустился. Был самый пик отчётности — последние её часы, и сервер находился в дауне неоправданно долго. При этом через панель управления мы сделать ничего не могли — сервер находился в стадии запуска, а техподдержка просто разводила руками. Как оказалось, на хосте с нашей виртуалкой закончилась оперативная память, и на запуск её просто не хватало.
Итого
Сейчас, имея сотни баз пройдя путь от , через боль, миграции, неконсистентность баз, некомпетентность техподдержки, проблемы с синхронизацией нод у хостера, публикацию через веб, экспорты, импорты, резервные копии и массу восстановлений, мы пришли к своему кластеру серверов.
- думайте о лицензиях;
- если вам нужна интеграция — используйте выделенный сервер или VPS;
- позаботьтесь о хранилище или тщательно тестируйте его у вашего провайдера;
- резервные копии — это правда важно;
- сразу откажитесь от , если нагрузка будет серьёзной и важна стабильность.
Как упростить жизнь, если вы вынуждены работать с кучей баз
Создание базы со ссылкой на неё в профиле текущего пользователя
Мы разворачиваем все наши базы из заранее подготовленного шаблона (с загруженными обработками, справочниками, настроенной подпиской ИТС и резервным копированием).
Для файлового варианта:
Для SQL варианта:
Как создать или удалить пользователя сразу в сотне баз?
Как подключить пользователю сразу сотню баз?
Для добавления сразу всех нужных баз в список пользователя мы используем v8i общих баз, размещённые на файловой шаре. Ссылки на эти файлы добавляются в профиле пользователя (например, через GPO или в профиль ) в файл %AppData%\1C\1CEStart\1CEStart.cfg:
Либо из самой 1С (уже под пользователем) добавляем список общих информационных баз:
Внутри файлы v8i выглядят так:
Создать их можно прямо из окна выбора базы («Сохранить ссылку в файл») или же взять в профиле базы — %AppData%\\1CEStart\ibases.v8i. Ссылка может быть на базу работающую в любом режиме (файловый, серверный, веб). Рекомендуем хранить в одном файле не более ста баз, иначе файл может попросту загрузиться не до конца :)
Как обновить сразу сотню баз?
Обновление баз лучше производить на отдельном сервере (а еще лучше сразу на двух :) — это и быстрее, да и управлять процессом проще. Мы используем типовые конфигурации (без снятия с поддержки), обновляемые через ИТС. В первом квартале этого года для «Бухгалтерии 3.0» вышло более 10 обновлений, накатить их даже на десяток баз вручную — та ещё веселуха. Потому мы разработали некоторую стратегию.
Прохладная история: в первый отчетный период 2014 наши любимые гос органы и 1С внезапно лишили нас сна, выпустив в период с марта по апрель более 10 апдейтов только для конфигурации Бухгалтерия 3.0! Конечно, мы не стали обновлять всё подряд, но даже 3–4 обновления для сотен баз за столь короткий срок — хорошая проверка на прочность.
Читатель может задаться вопросом, откуда столько хлопот? Ответ прост: изменения в законодательстве и при этом в самый последний момент. Например: с начала 2014 года не было утверждённых форм ФСС и ПФР. В одном из первой обновлений их добавили, но только для сдачи в бумажном виде, а в электроном — нет. И так происходит постоянно.Блокировка
Или через создание файлика в каталоге базы 1Cv8.cdn вот с таким содержимым:
Обновление
Для файлового варианта:
Для SQL варианта:
Как правильно делать резервное копирование баз?
Если вы используете SQL, следующий абзац можно безжалостно скипнуть — он актуален только для файлового режима.
В нашей практике мы не раз встречали базу в неконсистентном состоянии. Более того, в файловом варианте, не существует специальных инструментов, чтобы сообщить базе о начале копирования, нет возможности заблокировать работу с ней, если она идёт прямо сейчас. Мы справлялись с этим так: в полночь сервер RDP переходил в режим запрета новых подключений, через пару часов всех пользователей мягко выгонял скрипт. Затем срабатывало регламентное обновление и резервное копирование.
Выгрузка в dt
Для файлового варианта:
Для SQL варианта:
Все выше сказанное справедливо для 1С Предприятие, платформа 8.3; Бухгалтерия 3.0; Зарплата и Управление Персоналом 2.5.
В следующий раз мы расскажем о работе в режиме разделения данных для нескольких сотен фирм на одну базу. Будем рады услышать вопросы, замечания и предложения. А всем тем кто столкнулся с подобными задачами — хочется пожелать терпения, упорства и веры в победу.
Когда запускаем 1С, мы видим список доступных баз. Выделив базу, внизу отображается папка, в которой она расположена.
Есть специальный файл, в котором хранится информация обо всех этих базах. Файл называется ibases.v8i. В статье разберем, где находится этот файл и что в нем хранится.
Где найти файл ibases.v8i
Примерный путь к файлу — C:\Users\Имя пользователя\AppData\Roaming\1C\1CEStart.
Часто на компьютере эта папка скрыта. Но ее можно отобразить. Например, для Windows 10 в проводнике нужно установить флажок «Скрытые элементы» на вкладке «Вид».
Как открыть файл с базами
Получите понятные самоучители по 1С бесплатно:
Откроем файл ibases.v8i. Для этого используем обычный блокнот или другой текстовый редактор. Нажимаем правой кнопкой мыши на файле, выбираем пункт «Открыть с помощью» и затем указываем нужную программу.
Здесь перечисляется список баз с параметрами.
- Название и путь к базе.
- ID — идентификатор базы, создается автоматически.
- Folder — название папки, в которой находится база в списке. Будет указано, если в настройках 1С установлен флажок «Отображать в виде дерева».
- App — параметры запуска базы. Зависит от настроек режима запуска базы 1С.
- WA — как заходим в базу. Под логином и паролем средствами 1С или через пользователя операционной системы.
- Версия программы и другие параметры.
Общие списки баз
Список баз для каждого пользователя свой. Но есть возможность задать для пользователей общий список баз. Тогда при запуске 1С у пользователя будут свои базы, а также дополнительные. Рассмотрим, как добавить такую базу.
Первым делом создадим такой список. Он хранится в файле с расширением *v8i. Создать файл можно либо вручную и внести информацию о базах через блокнот, либо можно открыть 1С, нажать на базу правой кнопкой мыши и далее «Сохранить ссылку в файл».
Далее сохраняем файл на компьютере, присваиваем любое название.
Заходим в настройки 1С.
В разделе «Адреса Интернет-сервисов и списки общих информационных баз» нажимаем «Добавить».
И указываем путь к файлу. Файл предварительно следует разместить в сетевой папке.
Окно настроек примет вид.
Нажимаем «ОК». База появится в списке.
Отметим, что эту базу нельзя редактировать и удалять.
Читайте также: