Запрет изменения списка баз 1с
Эта статья является продолжением цикла статей «Первые шаги в 1С» и посвящена настройкам списка информационных баз. Из неё вы узнаете:
- Когда нужно настраивать список информационных баз и для чего?
- Какие настройки нужно производить для всего списка, а какие для отдельной базы?
- Где физически хранится файл списка баз и чем мы можем его открыть?
Применимость
В статье рассматривается платформа 8.3.4.482. Если вы работаете с более старшей версией, то весь материал является абсолютно актуальным, т.к. описываемая функциональность не претерпела изменений.
Как в 1С настроить список информационных баз
С окном списка информационных баз Вы уже неоднократно сталкивались – это стартовое окно, которое вызывается при запуске платформы. Пришло время работу со списком информационных баз рассмотреть более детально.
Запуск платформы 1С:Предприятие 8 можно осуществить через меню Пуск, с помощью ярлыка на рабочем столе или, как вариант, вызвать напрямую исполняемый файл. Базы могут быть сгруппированы в виде дерева.
Настройка списка информационных баз осуществляется после нажатия на одноименную кнопку.
В открывающемся окне настроек можно определить:
- будет ли использоваться древовидное отображение баз, то есть можно ли будет базы рассортировывать по определенным группам. При этом появляется возможность создания новой группы в дереве информационных баз. Отображение списка баз в виде дерева удобно, когда используется достаточно большое количество информационных баз. В противном случае, такое отображение только усложняет поиск конкретной базы. Следует отметить, что возможно также создание подчиненных групп. Количество подчиненных групп не ограничено;
- можно установить сортировку по наименованию;
- указать количество показываемых последних запущенных информационных баз. Ссылки на эти базы будут дублироваться в самом верху списка баз (очень удобно при большом количестве баз, из которых некоторые используются наиболее часто);
- в табличной части Каталоги шаблонов конфигураций и обновлений можно указать один или несколько каталогов. По умолчанию создается каталог шаблона, принадлежащий текущему пользователю. Однако есть возможность указывать общие каталоги шаблонов. При создании новой базы, в указанных каталогах система будет искать существующие шаблоны;
- на адресах интернет-сервисов и списках общих информационных баз мы сейчас останавливаться не будем;
- таблица Используемые версии содержит перечень номеров версий и релизов, используемых системой, когда необходимо работать с помощью релиза, отличного от максимального. Например, для версии 8.3 использовать релиз 8.3.4.365;
- смысл настроек Устанавливать автоматически новую версию и Использовать аппаратную лицензию (ключ защиты) очевиден из названия.
Можно устанавливать параметры для отдельной информационной базы. Эти параметры задаются либо при создании самой базы (на последнем шаге мастера существует страница с параметрами), либо после нажатия кнопки Изменить в окне списка информационных баз (в этом случае можно поменять также наименование и расположение базы).
На последней странице с параметрами определяются параметры запуска. Разберем, какие это параметры.
Вариант аутентификации (т.е. вариант проверки подлинности пользователя). Существует два варианта аутентификации.
Для одного из них при запуске базы будет вызываться диалоговое окно, где нужно будет выбрать или ввести пользователя и ввести пароль.
Во втором случае платформа будет определять: под каким пользователем операционной системы запускается информационная база.
Если в карточке пользователя информационной базы стоит флаг Аутентификация операционной системы и указан пользователь операционной системы, то эта база будет запущена.
Вариант аутентификации можно настроить так, что всегда принудительно будут запрашиваться имя и пароль. Данный режим используется разработчиком для проверки работы базы при ее запуске от имени разных пользователей.
Кроме того, данный вариант позволяет обеспечить более надежную защиту от несанкционированного доступа (когда в операционной системе есть пользователи без пароля).
Скорость соединения (Обычная, Низкая, Выбирать при запуске). Низкая скорость соединения выбирается при работе по тонкому каналу связи с низкой пропускной способностью.
В этом случае платформа использует оптимизацию (запросы собираются в пакеты и за один раз отправляются к серверу).
Выбирать при загрузке означает, что в нижней части окна информационных баз для данной базы, при необходимости, можно будет установить признак (галочку) низкой скорости соединения.
Дополнительные параметры запуска. Внешне это строка, в которой можно указать ключи запуска приложения. Например, можно настроить автоматический выбор пользователя.
Строка будет выглядеть примерно так: /n Администратор. Где /n – ключ, который означает Имя пользователя, а Администратор – само имя. Существует целый набор ключей, которые влияют на запуск приложения.
Основной режим запуска (Тонкий клиент, Толстый клиент, Веб-клиент, Выбирать автоматически). Выбор Веб-клиента возможен, если база опубликована на Web-сервере.
При выборе варианта Выбирать автоматически режим запуска определяется настройками информационной базы (где устанавливаются данные настройки будем разбирать позже).
Версия 1С:Предприятия. Версия, с которой нужно запускать данную базу. Можно указать просто 8.1, 8.2 или 8.3 (естественно, если указанная платформа установлена). Кроме того, для версий 8.2 и 8.3 возможно указание конкретного релиза.
Это актуально при установке нескольких релизов нескольких версий одновременно на одном компьютере.
Эта возможность может использоваться для тестирования работы на новой версии или временной работы на старом релизе (когда в новом проявились какие-то критические ошибки).
В списке информационных баз можно указывать две и более ссылок на одну и ту же информационную базу.
При этом, для каждой ссылки могут быть прописаны свои параметры запуска. Например, можно создать две ссылки на одну информационную базу, обеспечивающие запуск базы под разными релизами платформы.
Список информационных баз хранится в специальном файле каталога пользователя.
Данный файл можно просматривать и редактировать с помощью стандартной программы Блокнот.
В окне списка информационных баз кнопка Удалить предназначена лишь для удаления регистрации выбранной базы (ссылки) в списке.
После подобных действий база (ссылка) исчезнет из данного диалогового окна. При этом физически база останется на жестком диске.
В файловом варианте, чтобы действительно удалить информационную базу, следует удалить каталог, где она располагается. Клиент-серверную базу необходимо удалять из консоли серверов 1С.
В следующей статье рассмотрим вопросы, касающиеся архитектуры платформы,ответы на которые необходимо знать для администрирования.
PDF-версия статьи для участников группы ВКонтакте
Если Вы еще не вступили в группу – сделайте это сейчас и в блоке ниже (на этой странице) появятся ссылка на скачивание материалов.
Статья в PDF-формате
Если Вы уже участник группы – нужно просто повторно авторизоваться в ВКонтакте, чтобы скрипт Вас узнал. В случае проблем решение стандартное: очистить кеш браузера или подписаться через другой браузер.
Комментарии / обсуждение (5):
“смысл настроек Устанавливать автоматически новую версию …очевиден из названия” – вообще, не очень очевиден. Будет загружена и установлена новая версия платформы? А параметры аутентификации не нужны для сервера обновлений? А если интернета не будет?
Посмотрел документацию, там тоже толком не объясняется. Что то я не понимаю, наверное )
В одном магазинчике крутиться 1С-ка, и не в меру любопытные сотрудники периодически нажимают, видимо, кнопку "Изменить" и редактируют путь до базы.. естественно, после очередной загрузки "Каталог бызы данных не обнаружен", а мне приходиться пилить до этого магазина и все восстанавливать. Как бы заблокировать изменение списка баз? На ум приходит выставить права "только чтение" для файла, который хранит этот список.. но название файла не знаю. Кто-нибудь, подскажите!
самый простой, дешёвый и сердитый способ - сделать свой ярлык для каждой базы с зашитыми в ком. строке данными про инфобазу, а все остальные ярлыки убрать. а вот за это: "не в меру любопытные сотрудники периодически нажимают, видимо, кнопку "Изменить" и редактируют путь до базы" - нужно линейкой по рукам бить. или админа нанять толкового. первое - дешевле :-)
Если список в реестре, тогда правым кликом там вроде как тоже можно разрешения выставить "только для чтения".. Короче, надо будет сегодня попробовать.
да как им дашь? Программа же сама. Это же не они. Они вообще в этот момент все пальцы обеих рук в нос засунули, производя там раскопки, и на это даже живые свидетели найдутся.
и свидетелям живым ссанным веником тоже.. а, чтобы запомнилось, лишить зарплаты на два месяца вперед..
Еще проще сделать ярлык запуска конкретной базы на рабочий стол, и при старте батником его копировать откуда нибудь на рабочий стол на случай если удалят нечаянно. Если даже список баз отредактируют, то по запуску ярлыка все равно правильный путь пропишется.
устанешь опиз.дюлять. Вспотеешь, простынешь и помрешь. Права на ветку реестра отобрать гораздо быстрее, проще и эффективнее
не-не-не, наказание рубликом очень даже эффективно, если чел вменяемый. а если нет - туда ему и дорога, пока он что-нибудь посерьёзней не отфеячил
Я бы сначала кейлогер с записью экрана поставил. Потому как они не просто путь меняют - как минимум, "свою" базу запускают, т.е. или чеки не пробивают, или документы от поставщиков рисуют. Розница - они энергичные. Не спугни только, и узнаешь немало интересного.
+1 после того, как в одном магазинчике поставили весы с печатью, сразу в продуктах, списываемых на обед, появилась колбаса и печенье.. недостачи снизились :))
чтобы свою базу запускать, имеющуюся курочить необязательно. смысл лишнее внимание привлекать? если только по непроходимой тупости
кстати, у нас иногда руководство сознательно оставляет небольшие "лазейки" продавцам для "с314здить" (разумеется, речь не про обвес/обсчёт покупателей) - они от этого даже более счастливы, чем получили бы столько же или даже чуть больше, но просто так :-) менталитет, аднака. как говорится, одна мысль уже греет )
начальство в том магазинчике позволяет себе брать продукты по закупу, да еще в счет зарплаты, но!! менталитет: все равно надо сфиздить.. сфизженная копченая колбаса - копченее, а хлеб - хлебистее.. :)))
об том и речь :-) это как с водителями так же - какую з/п не дай, но нашабашить должен, иначе - "не поймут". главное, чтобы это всё было в рамках разумного
когда сам работал водилой - лет тому 20 назад, жене зарплату отдавал до копейки - самому "бензина" хватало по-уши :)))
У нас в грузовики gps трекеры поставили, водила к теще заехал, ему сразу начальник звонит какого ты не на маршруте.
у нас тоже gps поставили. но без датчиков на топливо - и так половина поувольнялась после этого. зато остались относительно честные люди. шабашка на расходе не такая уж напряжная для фирмы, а людям приятно :-)
Во многих базах 1С работают обмены данными и загрузки из различных источников в Базу-приемник. И было бы неплохо в такой ситуации дать возможность пользователю защитить объект (документ, справочник) в Базе-приемнике от повторного затирания следующими итерациями обменов. Это необходимо, например, когда объекты в Базу-приемник приходят частично или не совсем корректно заполненными и ответственные пользователи вручную проверяют пришедший объект и дозаполняют его до нужного состояния. Но не могут зафиксировать свою работу предотвратив случайное затирание при следующей загрузке.
Примечание: Стандартная дата запрета не защищает объекты 1С от изменения загрузками данных, т.к. не контролирует внесение изменений объекта в режиме ЭтотОбъект.ОбменДанными.Загрузка = Истина, в котором работают загрузки и обмены, поэтому требуется доработка контроля. Я, например, использовал это расширение при загрузках универсальным обменом данными из УПП в ЕРП в период перехода с одной базы на другую, вообще можно использовать при любых обменах между базами (см. ниже блок Проверка работоспособности в конфигурациях).
Немного о расширении:
Ниже пара простых примеров установки блокировки:
Блокируем документ прием на работу от изменения обменом, нажав кнопку защиты (на картинке - обмен открыт, - обмен закрыт)
Картинка изменяется, что значит что объект защищает от затирания повторными загрузками.
Также, например, можем за блокировать и сотрудника (напомню, что сотрудник и физическое лицо есть разные справочники, поэтому при необходимости физическое лицо блокируйте отдельно)
Также, например, можем за блокировать и контрагента (напомню, что контрагент и партнер есть разные справочники, поэтому при необходимости блокируйте их отдельно)
Работа расширения успешно проверено на платформе 1С:Предприятие 8.3 (8.3.18.1520) в конфигурациях:
- 1С:ERP Управление предприятием 2 (2.4.11.91, 2.5.7.201)
- 1С:Комплексная автоматизация 2 (2.4.9.98)
- 1С:Управление торговлей, редакция 11 (11.4.8.84)
- 1С:Зарплата и управление персоналом, редакция 3.1 (3.1.18.337, 3.1.20.97)
- 1С:Бухгалтерия предприятия, редакция 3.0 (3.0.106.60)
Т.к. в расширении подписки на события используются, то Режим совместимости конфигурации нужен от Версия 8.3.16 (либо удаляйте подписки из расширения и делайте перехват процедур от подписок перед записью из конфигурации)
Расширение использует универсальные механизмы, общие для многих продуктов 1С, поэтому может быть подключено к разным продуктам 1С либо доработано с минимальными затратами. Конфигурация продукта 1С должна быть построена на базе БСП (Библиотеки стандартных подсистем, входит в типовые конфигурации 8.3)
ВЕРСИИ ДЛЯ СКАЧИВАНИЯ:
-
Расширение: Защита объектов от изменения обменом (версия 04.01.2022 с отказом) - При загрузка выполняется отказ от записи защищенного объекта, нужно сочетать с признаком продолжения загрузки при возникновении ошибки, либо анализировать и убирать из регистрации в источнике запрещенный объект. Обратите внимание, что
ЭтотОбъект.ОбменДанными.Загрузка=Истина может вызываться, например, в обработке редакторе объекта
и других местах, поэтому можно в код добавить проверку пользователя или специальной роли. Так на автообмены для фонового обычно выделяют определенного пользователя и можно добавить проверку на его имя. Вообщем, код открыт, используйте расширение как шаблон, дополняя по своей специфике. Вместо подписок на событие в Правилах обмена можно обращаться к регистру, хранящему защищенные объекты и выполнять отказ от записи объекта (зависит от контекста задачи).
Подключить расширение может в режиме конфигуратора Администратор1С (описание он сам знает) либо Пользователь1С, открыв 1С:Предприятие, и далее в главном окне:
1) Переходим в Главное меню - Настройки - Параметры - Режим технического специалиста;
2) Переходим в Главное меню - Функции для технического специалиста - Стандартные - Управление расширениями конфигурации - Добавляем расширение;
3) Перезапускаем сеанс 1С:Предприятие;
Рис. Форма подключения расширения
Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты.
Подключаемый отчет на системе компоновки данных по типам объектов 1С показывает: 1) Совокупности таблиц SQL для хранения объекта 1С и их предназначение; 2) Число объектов данного типа; 3) Размеры хранения данных и индексов в MB (мегабайтах); 4) Сравнение данных двух баз
Предназначается для запуска сеанса другого пользователя из своего сеанса 1С (если пароль вам неизвестен).
Если пользователю не хватает прав на объект, то на практике в 90 % случаев, недостающую роль можно найти через типовой регистр сведений Права ролей. Также с помощью дополнительного отчета или небольшого расширения можно ускорить описанный процесс.
Онлайн диаграмма доступных лицензий 1С и показателей ресурсов сервера 1С в различных измерениях и отборах.
Обработка ищет все объекты базы, в которых одновременно присутствуют перечисленные элементы. Построена на базе типовой обработки Все функции - Стандартные - Поиск ссылок на объект, но позволяет накладывать отбор не по одному объекту, а по нескольким, что позволяет настраивать поиск по комбинациям условий
Часто не хватает визуализации хронологии документов в структуре подчиненности и кнопок проведения. Это расширение конфигурации, с функционалом структуры подчиненности документов, отображающее хронологическую последовательность документов во времени и дающее доступ к проведению, отмене проведения, пометке на удаление документов непосредственно в форме подчиненности.
Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем.
Групповая обработка ссылок вида Объект не найден (502:37855254002e11eb11e73b8f36150d9e) заполняется максимально просто копированием и вставкой из буфера: 1) Выделяет уникальные идентификаторы (далее УИ); 2) Ищет ссылки на объекты базы по УИ; 3) Создаёт пустые объекты с указанным УИ; 4) Регистрирует найденные ссылки для обмена данными. Работает на любых продуктах 8.3
Обработка на управляемых формах для работы с календарями google, событиями календарей и контактами.
Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет.
Выполнил 3 разных теста для проверки серверного оборудования (тест 1С, тесты gilev) на возможное число 1С онлайн-пользователей одновременно работающих на нем и интерпретировал результаты тестов через легких, средних и тяжелых пользователей с помощью таблицы с профилями реальных пользователей.
Перед началом проекта требуется определить параметры серверного и клиентского оборудования, необходимые для работы внедряемой программы 1С:Предприятие, и учесть будущую нагрузку, которая ляжет на систему в реальной рабочей обстановке. Мощность оборудования должна быть достаточной для нормальной работы пользователей. Но как подобрать сервер простым способом?
На время сеанса отключаем контроль остатков и проверку документов в ERP, КА, УТ типовыми средствами и простым расширением.
Часто при моделировании примеров бизнес-процессов, на запуске в эксплуатацию или закрытии требуется несколько раз прогнать ситуацию с разными настройками, а для этого изменить, удалить ранее введенную цепочку документов. Дается все это с трудом. Ты уверен, что не навредишь своими действиями системе, но документы цепляют друг друга и ругаются контролями остатков, не разрешая тебе менять их в произвольном порядке.
Есть несколько удобных опций для облегчения внесения изменений.
Для уведомления пользователей программных продуктов 1С о разных событиях, в них включена подсистема «Новостной центр». Это довольно удобная штука, т.к. новостные ленты сообщают о выходе обновлений, о новостях и событиях в сфере учёта. Но можно увеличить пользу от новостной подсистемы используя её локально в рамках 1С базы. Например, внутренняя служба техподдержки или внедряющая компания может через новостную ленту оповещать пользователей информационной базы об изменениях в программе, совещаниях, проведении тестирований, заполнения нужных документов или сдача отчетов к определенной дате и т.п.
Пример технического задания для практического понимания основных разделов.
Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании
Одно из правил управления временем — Если есть человек, которому можно делегировать выполнение задачи — делегируй.
Предыстория
Как я докатился до того, что — Я, системный администратор! — стал задаваться вопросами работы 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, и это отразится у всех пользователей, т.к. все пользователи смотрят информацию о базе именно в этом файле.
На «Хабре» есть три отличных поста про управление списками баз в 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\
Читайте также: