Enterprise Starter

Устали объяснять пользователям какой ярлык 1С им запускать? Надоели собственные списки баз у каждого пользователя? Смена сервера 1С это история на неделю? "Глюки 1cestart.exe" стали любимой темой для беседы? Мне тоже это надоело, поэтому нашел в себе сил написать небольшое решение по запуску 1С. В отличие от аналогов оно ориентировано только на пользователей — только "одна кнопка" запуска. Список баз 1С ведётся централизованно.

Описание файлов:

Start1c.cf — небольшая конфигурация, которая должна использоваться в клиент-серверном режиме. Используется для управления списком пользователей и баз

EnterpriseStarter.exe — сама программа запуска 1С. Читает из заданной БД настройки доступных баз для текущего пользователя выводит их в список и даёт возможность запустить в нужном режиме

Settings.ini — файл, который должен быть вместе с программой — в нём прописана «ConnectionString» к базе из которой необходимо прочитать настройки. В данном случае представлен шаблон файла все данные в «[]» надо заменить на реальные значения (логин/пароль/имя базы)

Системные требования:

Конечно данная программа имеет смысл если у вас достаточно много пользователей и много баз. Соотвтетственно в этом случае вы используете сервер 1С и в организации есть AD, поэтому следующиее ограничения:

— Наличие AD

— Только для клиент-серверных БД

— Сервер СУБД — MSSQL.

— ОС — Windows

— наличие .NET Framework 4.5 (как правило присутствует во всех современных ОС)

 

Установка и настройка:


1) Создать новую серверную ИБ и загрузить туда конфигурацию Start.cf  (плохой вариант). 

или Интегрировать конфигурацию Start.cf в ваш Service Desk или систему учета ИТ которую вы используете (она же на 1С, да?) (хороший вариант). Start.cf содержит одну подсистему, и объекты её вряд ли пересекутся с объектами других конфигураций.

Подсистема выглядит следующим образом:

 

 

 2) Задать ConnectionString в этой конфигурации (Сервис — Connection String)

Это строка типа: Provider=SQLOLEDB.1;Persist Security Info=True;User ID=[Пользователь SQL];Pwd=[Пароль пользователя SQL];Data Source=[Адрес или имя сервера SQL];Initial Catalog=[Название базы SQL]

3) Сервис — «Загрузить пользователей» — подгрузятся все пользователи из AD (не в справочник «пользователи» а в отдельный) 

4) Сервис — «Создать представление» — должно появиться сообщение об успешно созданом представлении

5) Заполнить справочник «Серверы»:

 

 

Обратите внимание на указание исполняемого файла:

а) Тут можно прописать дополнительные параметры запуска

б) очевидно, что желательно чтобы исполняемый файл 1С был у всех расположен по одинаковому пути. Можно конечно использовать стандартные шаблоны: %ProgramFiles%… так наверное даже правильнее будет.

6) Заполнить справочник «Базы»:


Обратите внимание на возможность указать резервный сервер (!) В случае если не доступен основной сервер 1С база будет запущена с резервного сервера. Доступность при этом определяется просто возможностью сетевого подключения, поэтому «повисшие» процессы менеджера кластера скорее всего не отловит. Но это и хорошо, пожалуй, потому как при «зависшем» rpmngr.exe пользователи часто продолжают работать, а работа в одной базе с 2-х серверов 1С  — это очень плохо. Но если основной сервер просто «упал»/выключен/не пингуется пользователи просто перезайдут в 1С и будут работать на резервном сервере. При этом они конечно вылетят из 1С, но сразу перезайдут и будут работать, а не «ждать погоды у моря», как в случае со штатным резервированием кластера серверов.

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

7) Справочник «пользоватли баз» — настроить работу с базами:

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


8) Записать ConnectionString в файл «Settings.ini» и поместить его в каталог с исполняемым файлом программы

9) Сделать ярлык всем пользователям и сказать чтобы запускали только его:

 

Основные возможности:

1) Написано на .Net, поэтому в среде Windows полностью Portable

2) Возможность указывать резервный сервер для каждой базы

3) Возможность запускать разные базы с разных серверов на разных платформах (особенно актуально для перехода 8.3, т.к. стартер от 8.3 по какой то причине не запускает корректно базы 8.2)

4) Запус без определения версии платформы и использования штатного стартера экономит время

5) Если пользователю доступна только одна база то окно запуска не показывается — запускается сразу база

6) Все пользователи подтягиваются и синхронизируются с AD. Очень просто ни про кого не забыть.

 

Использование:

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

27 Comments

  1. Evil Beaver

    Охбожымой, а что-ж интерфейс-то такой мерзкий? Ладно, простой — понятно, но зачем такой синий?

    Reply
  2. comol

    (1) Evil Beaver, Синий это у меня в WIndows цветовая схема синяя, ну и «классическая» :). В Win 2012 конечно намного симпатичнее выглядит

    Reply
  3. romign

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

    Reply
  4. kapustinag

    (1) Evil Beaver, После желто-серой «стандартной» 1С-ной гаммы остальные цвета режут глаз? -:)

    На самом деле, в таком цвете тоже можно найти плюсы: можно просто сказать пользователю, чтобы запустил «СИНИЙ 1С», — и не опасаться, что он с каким-то из стандартных 1С-ных спутает.

    Reply
  5. kapustinag

    (0), (3), И у меня тот же самый вопрос.

    Если каждый раз заново список из базы запрашивает, то… — насколько быстро стартует? Вряд ли очень шустро, по сравнению с локальным списком баз.

    Reply
  6. comol

    (5) kapustinag, По сравнению с локальным списком баз раза в 4 быстрее… т.е. нажали кнопку — появилось окошко…

    Reply
  7. comol

    (3) romign, Да, при старте запрашивает список баз. в % соотношении от времени старта судя по отладчику это занимает около 30% времени… Грубо говоря практически не заметно… На отрисовку формы тратится больше времени.

    Reply
  8. hulio

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

    Есть конфигурация со справочниками «Пользователи», «Информационные базы» и регистром сведений «Информационные базы пользователей».

    В справочнике пользователей есть сведения о доменной учетке

    В справочнике информационных баз наименование — это представление базы в списке. Плюс еще несколько реквизитов: строка подключения, GUID ИБ (генерируется автоматически при создании элемента) и доп. параметры.

    При добавлении/удалении/изменении записи в РС «Информационные базы пользователей» генерируется файлик <Имя доменной учетки>.v8i

    Все эти файлики помещаются в сетевую шару.

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

    Таким образом, можно каждому пользователю можно формировать индивидуальные списки информационных баз. Базы у всех пользователей называются одинаково. И еще при таком подходе отсутствует существенный недостаток вашего метода: можно прописывать любые базы, не только клиент-серверные, но и файловые или опубликованные на веб-сервере. Еще приятный бонус — если включить настройку отображения списка ИБ в виде дерева, то все базы будут сгруппированы с учетом иерархии справочника «Информационные базы» 😉

    Reply
  9. comol

    (8) hulio, Ну вот от таких «костылей» и избавляет стартер, плюс к этому:

    — решает проблему глюков 1cestart (особенно при переходе на 8.3)

    — Решает проблему резервного сервера

    — ускоряет запуск, бывает и в 2-3 раза как это не странно.

    — уже не говорю о том что не надо ждать логина и т.п….

    не только клиент-серверные, но и файловые

    За файловые базы при наличии сервера — расстрел :).

    Reply
  10. hulio

    (9)

    Я не совсем понял, в чем костыли? Есть полный список всех существующих баз (в том числе файловых и опубликованных на веб-сервере), есть механизм для управления кому и какие базы нужно видеть и есть скрипт, прописанный в доменных политиках, который подсовывает каждому пользователю собственный файлик.

    О каких глюках 1cestart идет речь? Никаких проблем вроде не замечали пока.

    Ускоряет запуск чего? Входа в какую-то базу или загрузка списка баз?

    P.S. Файловые базы — это как правило различные базы разработчиков и демонстрационные. Естественно, что весь продакшн на серверах 🙂

    Reply
  11. comol

    (10) hulio,

    О каких глюках 1cestart идет речь?

    Есть такая кнопка «Поиск» :))) Счастливый человек если о них не знаете.

    в чем костыли?

    О_О

    У пользователей при логине срабатывает скрипт, который прописывает

    это норма? 🙂 Можно при логине скриптом ещё outlook открывать и отправлять письмо начальнику «я на работе»… чего я только не видел в этих скриптах… 🙂

    базы разработчиков и демонстрационные

    Ну для этих баз есть совсем другой стартер… http://infostart.ru/public/201394/ как вариант

    Reply
  12. kapustinag

    (9), (11) «За файловые базы при наличии сервера — расстрел» — ну это очень спорное утверждение. Файловая база или клиент-серверная — выбирается в зависимости от размера базы, количества одновременных пользователей, и т.д.

    Я бы сказал, наоборот, гонять кластер 1С и sql-сервер ради небольшой базы с 2-5-10 пользователями — вот за это точно расстрел.

    А насчет скрипта при логине пользователя, «который прописывает…» — если имеется в виду скрипт, автоматически исполняющийся при входе пользователя в домен AD — то это совершенно нормальное решение. В зависимости от членства пользователя в группах AD и от других реквизитов пользователя там в любом случае выполняются некоторые действия. Например, подключение сетевых дисков.

    Reply
  13. comol

    (12) kapustinag,

    гонять кластер 1С и sql-сервер ради небольшой базы с 2-5-10 пользователями — вот за это точно расстрел.

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

    при входе пользователя в домен AD Например, подключение сетевых дисков

    какие скрипты… политиками это решается… GPO… матчасть матчасть…

    Reply
  14. kapustinag

    (13) Делается у нас это групповыми политиками, да. Большая часть, или даже почти всё, идет через них. Но «парк пользователей» разнородный, на всех групп и политик не напасешься, поэтому кое-что сделано через скрипты. Возможно, это еще не переделанные хвосты, оставшиеся от предыдущего поколения админов.

    Ну а остальное… Распинаться действительно не стоит, но не по тем причинам, что Вы написали в строках и между строк.

    Но на самом деле, это мы уже в сторону ушли. Через групповые политики или через скрипты; файловые базы или клиент-серверные — оставим это. В Вашем решении список баз формируется «на лету», а hulio — формирует его один раз при авторизации пользователя в домене. Имеет право на жизнь.

    Reply
  15. comol

    (14) kapustinag,

    Возможно, это еще не переделанные хвосты, оставшиеся от предыдущего поколения админов.

    Полностью согласен. И на свой вопрос вы же и ответили…

    Имеет право на жизнь.

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

    Reply
  16. 7OH

    Соглсен н все сто с оформлением программы — бррр….

    А где остальные кнопки — допустим некоторым пользователям можно и в конфигуратор зайти.

    Зачастую на сервере работают и разработчики, у которых тоже разные базы в доступе — учтите и их тоже.

    Reply
  17. hulio

    (11), (13), (15) откуда столько сарказма?

    Во-первых, про скрипт: вы пишете, что такие вещи должны определяться в политиках AD. Я выше и написал, что именно через групповые политики у нас и реализовано.

    Во-вторых, про файловые базы я уже написал: какой смысл тащить на сервер все базы, включая нерабочие? Например, я для собственного удобства развернул демонстрационные базы всех имеющихся у нас типовых конфигураций. Зачем они мне на сервере, если они и нужны только для «посмотреть как работает в типовой» раз в полгода? Кроме того, вас ведь никто не заставляет использовать файловые базы. Просто такая возможность есть. Впрочем, как и использование ИБ, опубликованных на web-сервере

    И в-третьих: при чем здесь гордость? Если бы я гордился, я бы накатал статью. Но я просто поделился на форуме нашим решением. Вас не критиковал, лишь описал альтернативный подход, у которого, я считаю, плюсов больше, чем минусов:

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

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

    3. Сторонние приложения не используются, только 1С и групповые политики AD. Хоть вам и не нравится 1cestart.exe, я считаю, плюсом использование стандартных средств.

    4. Отсутствуют специфические требования к серверу СУБД (да и вообще к наличию сервера СУБД), режиму работы ИБ (файл-сервер / клиент-сервер / web-сервер) или расположению исполняемых файлов 1С

    Reply
  18. comol

    (16) 7OH, Не… это принципиально не для разработчиков… разработчику нужно и кэш чистить и пароли в базу не авто вход должен быть.

    Ну может дизайнер из меня не очень… Принципиально было чтобы интерфейс был с меньшим количеством кнопок…

    Reply
  19. comol

    (17) hulio, (13), (15) я не вам писал собственно, согласен что в контексте «без использования внешних средств» это наверное самое приличное решение… Если будете переходить на 8.3 не всеми базами ощутите всю «прелесть» 1cestart.exe

    (4) Если нет сервера СУБД то в принципе это решение не нужно…

    Reply
  20. hulio

    (19) у нас сейчас основная конфигурация на 8.2, но помимо нее активно используется Документооборот на 8.3 + планируем скоро бухгалтерию на ред. 3.0 переводить. Пока что не замечали каких-то проблем с запускалкой от 1С. Хотя по вашему совету я загуглил «1cestart.exe проблемы» и нашел ветку на мисте про то, что у кого-то не запускались базы на 8.2 после установки 8.3. Тем не менее, самому сталкиваться не приходилось

    Reply
  21. comol

    (20) hulio, Да ну? :))) У вас 8.2 запускается стартером 8.3? Я вас тогда поздравляю — вы такие единственные наверное :). И вообще наверное единственный у кого 1cestart работает :). Ну или у вас очень добрые и молчаливые пользователи…

    Первая страница поиска по 1cestart по форуму: :)))

    https://partners.v8.1c.ru/forum/message/1175207#m_1175207

    https://partners.v8.1c.ru/forum/message/1151652#m_1151652

    https://partners.v8.1c.ru/forum/message/1118767#m_1118767

    https://partners.v8.1c.ru/forum/topic/1063698#m_1063698

    https://partners.v8.1c.ru/forum/message/1128981#m_1128981

    https://partners.v8.1c.ru/forum/message/1115225#m_1115225

    https://partners.v8.1c.ru/forum/message/965377#m_965377

    https://partners.v8.1c.ru/forum/topic/1204179#m_1204179

    https://partners.v8.1c.ru/forum/topic/1063698#m_1063698

    Там ещё люди молчат про время запуска, про то что дважды окно запуска отображается… привыкли уже 🙂

    Reply
  22. mikhailovaew

    (21) хм, ну у меня нормально базы 8.2 стартером от 8.3 запускаются (платформы 8.2.18.104 и 8.3.4.437). Просто в свойствах базы указана версия 1С: Предприятия и все, полет нормальный )

    К сожалению, у меня нет доступа к партнерскому форуму, поэтому указанные Вами ссылки не открываются. Если коротко, в чем основные проблемы?

    UPD: ой нет, все не так просто. Оказывается, стартер все-таки от 8.2 («C:Program Files (x86)1cv82common1cestart.exe»), но при этом диалог выбора базы открывается «трешечный». Очень странно.

    Reply
  23. hulio

    (21) из двух сотен пользователей все не могут быть слишком добрыми или молчаливыми.

    Я же вас не обманываю 🙂

    У нас установлены работает две версии платформы: 8.2.19.83 и 8.3.4.465

    Запускаю ярлык «C:Program Files (x86)1cv8common1cestart.exe» — список баз открывается мгновенно (в моем списке — примерно 120-130 ИБ). Без проблем запускается любая конфигурация 8.2/8.3, файловая/серверная …

    Reply
  24. comol

    (22) mikhailovaew,

    но при этом диалог выбора базы открывается «трешечный». Очень странно

    Это меньшая из странностей.

    Ну вы просто сделайте не самый стандартный запуск — ярлык на v8i да и просто v8i запускаете и получите траблы.. При каких то условиях он наверное нормально запускается.. но не всегда. Чаще всего даже с прописаной версией платформы — «не совпадение версий клиента и сервера»… Бывает тонкий клиент запускает вместо толстого… бывает пытается обновить тонкий клиент, чаще всего это не получается… Притом стартер от 8.2 вы не запустите даже если сильно захотите 🙂

    Reply
  25. comol

    (23) hulio, Нуу… в зависимости от дрессировки. Если гос учреждения к примеру там и 3 и 5 сотен будут молчаливыми — просто всем пофиг :).

    Я верю что стратер 1с в определенных условиях всё-таки работает, сам видел, чесслово. Не всегда получалось повторить, правда… Наверное от фазы луны это зависит, может ещё от ритма стука в бубен…

    P.S. а 200 пользователей / 120 баз.. эээ у вас каждый в своей работает? :))))

    Reply
  26. hulio

    (25)

    P.S. а 200 пользователей / 120 баз.. эээ у вас каждый в своей работает? :))))

    нет конечно, я же вам писал, что для своего удобства я развернул демки всех типовых + разлиные копии + базы разработчиков + служебные (журналы изменений, СППР и т.д.) + халтура 😉

    а рабочих ИБ меньше десятка

    Основная масса пользователей работает вообще только 2-3 ИБ (учетная система, казначейство, документооборот)

    Reply
  27. OrsoBear

    Похоже тут собрались опытные люди…

    Возможно кто-то сталкивался с такой проблемой: Стоит 1С 8.2. Работает без проблем.

    Ставлю версию 1С 8.3. Под администраторами запускается в терминале без проблем.

    У обычных пользователей запускается, появляются часы на пару секунд. и все.

    Окно со списком баз не появляется.

    Если удалить 1С 8.3, снова у всех запускается 1С 8.2

    Профили 1С и временные файлы у пользователей чистил.

    Похоже, что-то с правами, или с реестром..

    Может кто знает, где копать?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *