1с сохранить в ansi

Обновлено: 06.07.2024

Доброго, Управление сайтом, малый бизнес. Кодировка базы Win-1251. Редактор notepad++. В какой кодировке сохранять файлы, чтобы отображалось без кракозябр? Сохранял в ANSI- проблемы. Надо, наверное жеж, кириллица, windows-1251? Можно как-то рекурсивно изменить все файлы в filezilla на нужную кодировку? Вообще не хочет сохранять в данной кодировке notepad++. Help!

Здесь не только кодировка базы имеет значения. Важно, на какую кодировку настроен сайт: если в /bitrix/php_interface/dbconn.php указано константа BX_UTF=true, значит, сайт в юникоде, иначе - win-1251. Соответственно, и кодировка базы (и таблиц), и кодировки файлов (не всех, а только файлов в публичной части, файлов с языковыми фразами, и некоторых других), и настройки php, и настройки Битрикса - все должно соответствовать этой кодировке.

Денис Сон , спс! Константы нет совсем. Сайт получается в кодировке win-1251.. Какую кодировку выставлять в notepad++ в языковых файлах? В ANSI дает сохранить, в windows-1251 не хочет.. Правильно понял- языковые файлы и файлы шаблонов компонентов (ну и стат. страницы) должны быть в нужной кодировке? Подскажите плиз в связке filezilla/notepad++ пошагово как это сделать..

Цитата
Тимур Шепетовский написал:
Константы нет совсем. Сайт получается в кодировке win-1251.

Да, все правильно. Хотя, кодировка UTF-8 более современна и удобна, но не суть.

Цитата
Тимур Шепетовский написал:
Какую кодировку выставлять в notepad++ в языковых файлах? В ANSI дает сохранить, в windows-1251 не хочет.

Используйте ANSI. И в настройках (в разделе "Разное") рекомендую снять галку с опции "Авто-определение кодировки символов".

Цитата
Тимур Шепетовский написал:
Правильно понял- языковые файлы и файлы шаблонов компонентов (ну и стат. страницы) должны быть в нужной кодировке?

Языковые файлы - и статические страницы (/index.php, /catalog/index.php, /about.php и т.п.) - да, безусловно и без исключений. Шаблоны сайтов и шаблоны компонентов - необязательно. Если в них все русские символы вставляются через языковые фразы - то необязательно. А если в шаблонах имеются русские или специальные символы кодировок - то кодировку нужно соблюдать.

Цитата
Тимур Шепетовский написал:
Подскажите плиз в связке filezilla/notepad++ пошагово как это сделать.

Доброго, Управление сайтом, малый бизнес. Кодировка базы Win-1251. Редактор notepad++. В какой кодировке сохранять файлы, чтобы отображалось без кракозябр? Сохранял в ANSI- проблемы. Надо, наверное жеж, кириллица, windows-1251? Можно как-то рекурсивно изменить все файлы в filezilla на нужную кодировку? Вообще не хочет сохранять в данной кодировке notepad++. Help!

Здесь не только кодировка базы имеет значения. Важно, на какую кодировку настроен сайт: если в /bitrix/php_interface/dbconn.php указано константа BX_UTF=true, значит, сайт в юникоде, иначе - win-1251. Соответственно, и кодировка базы (и таблиц), и кодировки файлов (не всех, а только файлов в публичной части, файлов с языковыми фразами, и некоторых других), и настройки php, и настройки Битрикса - все должно соответствовать этой кодировке.

Денис Сон , спс! Константы нет совсем. Сайт получается в кодировке win-1251.. Какую кодировку выставлять в notepad++ в языковых файлах? В ANSI дает сохранить, в windows-1251 не хочет.. Правильно понял- языковые файлы и файлы шаблонов компонентов (ну и стат. страницы) должны быть в нужной кодировке? Подскажите плиз в связке filezilla/notepad++ пошагово как это сделать..

Цитата
Тимур Шепетовский написал:
Константы нет совсем. Сайт получается в кодировке win-1251.

Да, все правильно. Хотя, кодировка UTF-8 более современна и удобна, но не суть.

Цитата
Тимур Шепетовский написал:
Какую кодировку выставлять в notepad++ в языковых файлах? В ANSI дает сохранить, в windows-1251 не хочет.

Используйте ANSI. И в настройках (в разделе "Разное") рекомендую снять галку с опции "Авто-определение кодировки символов".

Цитата
Тимур Шепетовский написал:
Правильно понял- языковые файлы и файлы шаблонов компонентов (ну и стат. страницы) должны быть в нужной кодировке?

Языковые файлы - и статические страницы (/index.php, /catalog/index.php, /about.php и т.п.) - да, безусловно и без исключений. Шаблоны сайтов и шаблоны компонентов - необязательно. Если в них все русские символы вставляются через языковые фразы - то необязательно. А если в шаблонах имеются русские или специальные символы кодировок - то кодировку нужно соблюдать.

Цитата
Тимур Шепетовский написал:
Подскажите плиз в связке filezilla/notepad++ пошагово как это сделать.


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

Предисловие

Сначала я просто хотел написать небольшую статью о том, как мы разносили базы по службам, но в ходе углубления в этот процесс мы добавляли всякие разные штуки (мониторинг служб, потом мониторинг пользователей внутри 1С, потом прикрутили заббикс, и, наконец, пришли к CI/CD на базе 1С). В итоге я понимаю что пихать это в одну статью будет слишком — решил разделить на несколько. Ну а название навеяно циклом статей "сети для самых маленьких", которые принесли мне много приятных минут и к которым я отсылаю всех, кто "хочет изучить сети". Итак, мы приступаем!

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

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

Какие у нас были сложности:

  1. Подвисшая база тянула за собой перезапуск службы, а значит страдали невинные (пользователи других баз)
  2. Было тяжело понять кто сегодня "герой дня" — какая база заняла все ресурсы
  3. Обновление релизов — обновление одной тянуло за собой автоматическое обновление всех баз на этой службе
  4. Ручное подключение баз пользователям, ручное изменение в случае переездов
  5. Мониторинг
    И только сейчас я понимаю что это была только вершина айсберга.

Акт первый, действие нулевое

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

  1. Старые версии 1С (до 8.3.11+) имеют просадку по производительности при работе в виртуализированной среде. (Источник — Гилев и собственные тесты)
  2. Кластер есть, но с ним все крайне не просто. Возможно его доработают потом, но пока он в основном для галочки. (источник — собственный опыт)
  3. При выборе процессора смотрите только на частоту. Процессор в 6 ядер по 3,4Ггц порвет в куски процессор на 20 ядер по 2Ггц. Проблема в том, что 1С вообще ничего не знает про параллельные вычисления. По сути это работает так — у нас есть определенное число воркеров для каждой службы, их раскидывают по процессорам, и если в каком то воркере пользователь запустил какой-то тяжелый отчет то в системе будет загружено только одно ядро процессора. Именно то, на котором работает воркер с запущенным заданием… Для БД ситуация кстати ровно обратная. (источник — Гилев, собственный опыт, опыт коллег)
  4. Не используйте логи в "новом" формате (запись в SQLLite) — вы очень быстро столкнетесь с тем, что производительность этого решения еще хуже чем файлового варианта. (Источник — собственный опыт, опыт коллег).
    По подсказкам из комментариев есть вариант вынести логи на отдельный инстанс.
    В 8.3.12 обещали логи в нормальный скуль.
  5. 1С оооочень не любит IPv6. На всех серверах с 1С лучше сразу понижать приоритет IPv6 до минимума. (Источник — Гилев, собственный опыт)
  6. Используйте для виртуальных серверов виртуальные сетевые карточки E1000. С остальными проблема по производительности (Источник — Гилев, но на собственном опыте не подтвердилось, хотя особо и не тестили)
  7. Обслуживание баз дает хороший прирост производительности, особенно периодический пересчет итогов, а так же обслуживание индексов SQL (Источник — собственный опыт, Гилев)
  8. Поиск причин падения 1С сродни поеданию неочищенного кактуса. Выяснить что-то толком можно только через боль, унижения и страдания. (Источник — собственный опыт)
  9. Нет ни одного официального образа ни под один гипервизор. Про докер я вообще молчу. (Источник — сайт 1С)
  10. Программная лицензия для сервера привязывается к — сюрприз, сюрприз — серийному номеру процессора (и еще огромному количеству параметров сервера). В эпоху повсеместной виртуализации ход потрясающий. Поясняю — активировали сервер, переехали на другую ноду, перезагрузили машину — 1С не запуститься. Расчехляйте новый активационный код. (Источник — собственный опыт, болтливая техническая поддержка 1С =))
  11. 1С — это учетная система, а не отчетная. Хотите много нормальных жирных отчетов и быстро — выводите это за рамки 1С. (Источник — собственный опыт)
  12. У 1С есть два неоспоримых достоинства, за счет которых она будет процветать еще долго:
    • стоимость самого продукта/разработчиков
    • скорость разработки
      и к сожалению для российского бизнеса они являются первоочередными. А зачастую и единственными, на что вообще смотрят. (Источник — печальная реальность)
  13. Никогда не используйте файловую шару как место под хранилище конфигураций 1С. Только службу. Иначе маты со стороны разработки о упавшем черт знает когда хранилище станут вашим неизменным спутником по жизни. (Источник — собственный опыт, опыт коллег)

Акт первый, действие первое

Первая короткая сценка из корпоративной жизни

На сцене — Админ (А), программист 1С (П1С) и представитель бизнеса (ПБ)
ПБ — У нас медленно работает программа!
А — у меня в системе все хорошо!
П1С — я все написал правильно, у меня на компьютере все работает быстро!
ПБ (робко и растерянно) — но она же долго…
А и П1С хором — у нас все хорошо, проблема на вашей стороне!

Проблемы всегда случаются не вовремя (с) (5-летний философ)

И вот в одно прекрасное солнечное утро (на самом деле это была глубокая зимняя ночь) мы поняли что завтра надо запустить новую базу. Завтра наступал тот прекрасный день, который уже много раз описывался тысячами авторов и имя ему — легион! Тьфу, простите, занесло. Имя этому дню был дедлайн. Час ночи, завтра на 200 компах должна запуститься новая база." Да не проблема, у нас же все компы в домене! Сейчас быстренько сделаем логин-скрипт и дело в шляпе!" подумаете вы. И будуте правы — так же подумали и мы. И сделали. Только, как обычно это бывает, погорели на мелочи — я в логон-скрипте я прописал %filename%.bat а коллега выложил %filename%.cmd.

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

Но мысль автоматизации этого процесса у меня в голове засела очень крепко и стал даже вырисовываться план внедрения.

В итоге мы пришли к следующей идеологии:

  • Все раздается через AD — создаются группы вида 1cbases-%версия платформы%-%имя базы% и туда силами хелпдеста добавляются пользователи, которым нужна база.
    • одна группа — одна база
    • 1cbases — это префикс по которому удобно искать группы
    • версия платформы 81, 82 и 83 (релиз не принципиален)
    • название базы соответствует имени файла с настройками

    Как мы это делали:

    1. Через групповые политики добавляется новое задание в планировщик (задача планировщика прописать пользователю путь к файлу подключения базы):
      • запускать от имени пользователя
      • событие — разблокировка компьютера
      • действие — запуск нашего скрипта
    2. Создаем нужные группы в АД и заполняем их пользователями
    3. Создаем нужные файлы для запуска самих 1С. Тут остановлюсь чуть поподробнее. Изначально мы долго мучили интернет своими запросами и нашли полное описание структуры файлов *.v8i. Но потом нашелся способ проще и гениальнее.
      • запускаем 1С
      • настраиваем подключение к базе
      • проверяем что все работает
      • кликаем правой клавишей по названию базы и выбираем пункт — "Сохранить ссылку в файл"
    1. Добавление баз теперь не было морокой — просто делали группу, добавляли файл с настройками — дальше все происходило автоматом
    2. Могли спокойно переносить базы куда угодно, просто меняя конфигурацию в файле с настройками подключения к базе (как показала практика — очень удобно)
    3. Сберегли обувь хелпдеску

    Акт первый, действие второе

    Вторая короткая сценка из корпоративной жизни

    И с этой стороны ни чуть не лучше… (с) печальный ослик Иа-Иа в свой собственный день рождения

    Вот представьте себе — сидите вы в удобном кресле, в одной руке чашка вкусного чая, в другой пышущая жаром и свежестью булочка из кулинарии ближайшего магазина, за окном приятно пахнет весной… И это, конечно же, самое подходящие время для звонка с проблемой! Коллега — Байконур, у нас %@па!

    Я — я так понимаю что стадию Хьюстона с проблемами мы уже успешно пролетели?
    Коллега — да. База %имя базы% подвисла, вообще не отвечает, ТОПы уже рвут и мечут. 3 раза мне уже звонили. Надо перезагружать службу.
    Я — так там же еще пачка баз на этой службе.
    Коллега — да, поэтому вторая половина ТОПов тоже рвет и мечет что их отключат.

    В итоге конечно все согласовали, перезапустили, но осадочек остался.

    1. В продуктовой среде мы должны следовать правилу — одна база — одна служба с разнесением по портам
    2. Запускаться службы должны исключительно из-под доменных учеток. Одна служба — одна учетка. Это удобно для раздачи прав на шары, доступ в скуль и прочее. Так же, если у вас внедрена RBAC то вы можете очень оперативно посмотреть куда имеет доступ конкретный экземпляр 1С
    3. Логи нужно вынести на отдельный диск и включить на эти папки сжатие (при разбитии по дням это очень сильно экономит место и ускоряет (незначительно) поиск по логам)
    4. Каждой службе выдается alias в DNS для того, чтобы отвязать разработку от ip и/или dns сервера (в этом случае разработка вообще не волнуется на предмет того, где фактически находится сервер — физика, виртуальная машина в приватном облаке или вообще в публичном облаке)
    5. На каждую службу мы выделяем 500 портов для пользовательских соединений (наше внутреннее решение)

    Как мы это делали (для нового сервера. для уже существующего часть шагов не актуальны):

    1. Создаются учетки под каждую службу
    2. На машине, где они будут работать им выдаются права на "запуск как службе"
    3. Ставиться MS офис, обязательно с активацией по MAK-ключу
    4. Ставится sqlncli — утилита из набора MS SQL Native Client. На данный момент выше 2012 не появлялось
    5. Создается папка C:\Windows\SysWOW64\config\systemprofile\Desktop — в противном случае есть проблемы с выгрузками в Word/Excel
    6. Для Windows 2016 и 1С 8.1 нужно скопировать старую версию dll (В папке C:\Program Files\Common Files\System\Ole DB надо заменить два файла sqloledb.dll и sqloledb.rll взятых со старых серверов)
    7. Ставятся дополнительное ODBC драйверы, если нужно подключатся к MySQL/PostgreSQL

    Настройка папки для службы и логов:

    1. Создается папка на отдельном диске называется в формате 1CServer%basename% (в стандартном случае это делает сама служба, ибо у нее есть в настройках запуска путь к логам)
    2. Если внутрь каталога только что созданной службы переносятся данные из другого каталога (другой службы, другого сервера), то необходимо заменить владельцев (иначе служба не получит к ним доступа) с заменой владельца подконтейнеров
    3. Владельцем папки делается учетная запись службы
    1. Для того, чтобы в службах не было кроказябр
      • в cmd ввести команду chcp 1251
      • файл надо сохранить в ANSI кодировке
    2. Обязательно надо проверить на отсутствие дублирующих ключей в строке запуска — служба с ними не стартует.
    3. Для того, чтобы удалить службу, можно воспользоваться командой — sc delete «Имя заданное в переменной name»
    4. Добавить порты используемые 1С в разрешения в firewall
    5. Нужен всего один физический ключ на сервер — все службы будут активироваться им

    После проведения всех мероприятий в итоге мы пришли к:

    1. Базы можно спокойно перезагружать, не трогая другие базы
    2. Всегда можно найти "героя" — базу, которая съедает все ресурсы
    3. Любые работы с базой касаются только одной конкретной базы

    В следующих статьях я планирую рассказать (если эта статья народу зайдет):


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

    Предисловие

    Сначала я просто хотел написать небольшую статью о том, как мы разносили базы по службам, но в ходе углубления в этот процесс мы добавляли всякие разные штуки (мониторинг служб, потом мониторинг пользователей внутри 1С, потом прикрутили заббикс, и, наконец, пришли к CI/CD на базе 1С). В итоге я понимаю что пихать это в одну статью будет слишком — решил разделить на несколько. Ну а название навеяно циклом статей "сети для самых маленьких", которые принесли мне много приятных минут и к которым я отсылаю всех, кто "хочет изучить сети". Итак, мы приступаем!

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

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

    Какие у нас были сложности:

    1. Подвисшая база тянула за собой перезапуск службы, а значит страдали невинные (пользователи других баз)
    2. Было тяжело понять кто сегодня "герой дня" — какая база заняла все ресурсы
    3. Обновление релизов — обновление одной тянуло за собой автоматическое обновление всех баз на этой службе
    4. Ручное подключение баз пользователям, ручное изменение в случае переездов
    5. Мониторинг
      И только сейчас я понимаю что это была только вершина айсберга.

    Акт первый, действие нулевое

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

    1. Старые версии 1С (до 8.3.11+) имеют просадку по производительности при работе в виртуализированной среде. (Источник — Гилев и собственные тесты)
    2. Кластер есть, но с ним все крайне не просто. Возможно его доработают потом, но пока он в основном для галочки. (источник — собственный опыт)
    3. При выборе процессора смотрите только на частоту. Процессор в 6 ядер по 3,4Ггц порвет в куски процессор на 20 ядер по 2Ггц. Проблема в том, что 1С вообще ничего не знает про параллельные вычисления. По сути это работает так — у нас есть определенное число воркеров для каждой службы, их раскидывают по процессорам, и если в каком то воркере пользователь запустил какой-то тяжелый отчет то в системе будет загружено только одно ядро процессора. Именно то, на котором работает воркер с запущенным заданием… Для БД ситуация кстати ровно обратная. (источник — Гилев, собственный опыт, опыт коллег)
    4. Не используйте логи в "новом" формате (запись в SQLLite) — вы очень быстро столкнетесь с тем, что производительность этого решения еще хуже чем файлового варианта. (Источник — собственный опыт, опыт коллег).
      По подсказкам из комментариев есть вариант вынести логи на отдельный инстанс.
      В 8.3.12 обещали логи в нормальный скуль.
    5. 1С оооочень не любит IPv6. На всех серверах с 1С лучше сразу понижать приоритет IPv6 до минимума. (Источник — Гилев, собственный опыт)
    6. Используйте для виртуальных серверов виртуальные сетевые карточки E1000. С остальными проблема по производительности (Источник — Гилев, но на собственном опыте не подтвердилось, хотя особо и не тестили)
    7. Обслуживание баз дает хороший прирост производительности, особенно периодический пересчет итогов, а так же обслуживание индексов SQL (Источник — собственный опыт, Гилев)
    8. Поиск причин падения 1С сродни поеданию неочищенного кактуса. Выяснить что-то толком можно только через боль, унижения и страдания. (Источник — собственный опыт)
    9. Нет ни одного официального образа ни под один гипервизор. Про докер я вообще молчу. (Источник — сайт 1С)
    10. Программная лицензия для сервера привязывается к — сюрприз, сюрприз — серийному номеру процессора (и еще огромному количеству параметров сервера). В эпоху повсеместной виртуализации ход потрясающий. Поясняю — активировали сервер, переехали на другую ноду, перезагрузили машину — 1С не запуститься. Расчехляйте новый активационный код. (Источник — собственный опыт, болтливая техническая поддержка 1С =))
    11. 1С — это учетная система, а не отчетная. Хотите много нормальных жирных отчетов и быстро — выводите это за рамки 1С. (Источник — собственный опыт)
    12. У 1С есть два неоспоримых достоинства, за счет которых она будет процветать еще долго:
      • стоимость самого продукта/разработчиков
      • скорость разработки
        и к сожалению для российского бизнеса они являются первоочередными. А зачастую и единственными, на что вообще смотрят. (Источник — печальная реальность)
    13. Никогда не используйте файловую шару как место под хранилище конфигураций 1С. Только службу. Иначе маты со стороны разработки о упавшем черт знает когда хранилище станут вашим неизменным спутником по жизни. (Источник — собственный опыт, опыт коллег)

    Акт первый, действие первое

    Первая короткая сценка из корпоративной жизни

    На сцене — Админ (А), программист 1С (П1С) и представитель бизнеса (ПБ)
    ПБ — У нас медленно работает программа!
    А — у меня в системе все хорошо!
    П1С — я все написал правильно, у меня на компьютере все работает быстро!
    ПБ (робко и растерянно) — но она же долго…
    А и П1С хором — у нас все хорошо, проблема на вашей стороне!

    Проблемы всегда случаются не вовремя (с) (5-летний философ)

    И вот в одно прекрасное солнечное утро (на самом деле это была глубокая зимняя ночь) мы поняли что завтра надо запустить новую базу. Завтра наступал тот прекрасный день, который уже много раз описывался тысячами авторов и имя ему — легион! Тьфу, простите, занесло. Имя этому дню был дедлайн. Час ночи, завтра на 200 компах должна запуститься новая база." Да не проблема, у нас же все компы в домене! Сейчас быстренько сделаем логин-скрипт и дело в шляпе!" подумаете вы. И будуте правы — так же подумали и мы. И сделали. Только, как обычно это бывает, погорели на мелочи — я в логон-скрипте я прописал %filename%.bat а коллега выложил %filename%.cmd.

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

    Но мысль автоматизации этого процесса у меня в голове засела очень крепко и стал даже вырисовываться план внедрения.

    В итоге мы пришли к следующей идеологии:

    • Все раздается через AD — создаются группы вида 1cbases-%версия платформы%-%имя базы% и туда силами хелпдеста добавляются пользователи, которым нужна база.
      • одна группа — одна база
      • 1cbases — это префикс по которому удобно искать группы
      • версия платформы 81, 82 и 83 (релиз не принципиален)
      • название базы соответствует имени файла с настройками

      Как мы это делали:

      1. Через групповые политики добавляется новое задание в планировщик (задача планировщика прописать пользователю путь к файлу подключения базы):
        • запускать от имени пользователя
        • событие — разблокировка компьютера
        • действие — запуск нашего скрипта
      2. Создаем нужные группы в АД и заполняем их пользователями
      3. Создаем нужные файлы для запуска самих 1С. Тут остановлюсь чуть поподробнее. Изначально мы долго мучили интернет своими запросами и нашли полное описание структуры файлов *.v8i. Но потом нашелся способ проще и гениальнее.
        • запускаем 1С
        • настраиваем подключение к базе
        • проверяем что все работает
        • кликаем правой клавишей по названию базы и выбираем пункт — "Сохранить ссылку в файл"
      1. Добавление баз теперь не было морокой — просто делали группу, добавляли файл с настройками — дальше все происходило автоматом
      2. Могли спокойно переносить базы куда угодно, просто меняя конфигурацию в файле с настройками подключения к базе (как показала практика — очень удобно)
      3. Сберегли обувь хелпдеску

      Акт первый, действие второе

      Вторая короткая сценка из корпоративной жизни

      И с этой стороны ни чуть не лучше… (с) печальный ослик Иа-Иа в свой собственный день рождения

      Вот представьте себе — сидите вы в удобном кресле, в одной руке чашка вкусного чая, в другой пышущая жаром и свежестью булочка из кулинарии ближайшего магазина, за окном приятно пахнет весной… И это, конечно же, самое подходящие время для звонка с проблемой! Коллега — Байконур, у нас %@па!

      Я — я так понимаю что стадию Хьюстона с проблемами мы уже успешно пролетели?
      Коллега — да. База %имя базы% подвисла, вообще не отвечает, ТОПы уже рвут и мечут. 3 раза мне уже звонили. Надо перезагружать службу.
      Я — так там же еще пачка баз на этой службе.
      Коллега — да, поэтому вторая половина ТОПов тоже рвет и мечет что их отключат.

      В итоге конечно все согласовали, перезапустили, но осадочек остался.

      1. В продуктовой среде мы должны следовать правилу — одна база — одна служба с разнесением по портам
      2. Запускаться службы должны исключительно из-под доменных учеток. Одна служба — одна учетка. Это удобно для раздачи прав на шары, доступ в скуль и прочее. Так же, если у вас внедрена RBAC то вы можете очень оперативно посмотреть куда имеет доступ конкретный экземпляр 1С
      3. Логи нужно вынести на отдельный диск и включить на эти папки сжатие (при разбитии по дням это очень сильно экономит место и ускоряет (незначительно) поиск по логам)
      4. Каждой службе выдается alias в DNS для того, чтобы отвязать разработку от ip и/или dns сервера (в этом случае разработка вообще не волнуется на предмет того, где фактически находится сервер — физика, виртуальная машина в приватном облаке или вообще в публичном облаке)
      5. На каждую службу мы выделяем 500 портов для пользовательских соединений (наше внутреннее решение)

      Как мы это делали (для нового сервера. для уже существующего часть шагов не актуальны):

      1. Создаются учетки под каждую службу
      2. На машине, где они будут работать им выдаются права на "запуск как службе"
      3. Ставиться MS офис, обязательно с активацией по MAK-ключу
      4. Ставится sqlncli — утилита из набора MS SQL Native Client. На данный момент выше 2012 не появлялось
      5. Создается папка C:\Windows\SysWOW64\config\systemprofile\Desktop — в противном случае есть проблемы с выгрузками в Word/Excel
      6. Для Windows 2016 и 1С 8.1 нужно скопировать старую версию dll (В папке C:\Program Files\Common Files\System\Ole DB надо заменить два файла sqloledb.dll и sqloledb.rll взятых со старых серверов)
      7. Ставятся дополнительное ODBC драйверы, если нужно подключатся к MySQL/PostgreSQL

      Настройка папки для службы и логов:

      1. Создается папка на отдельном диске называется в формате 1CServer%basename% (в стандартном случае это делает сама служба, ибо у нее есть в настройках запуска путь к логам)
      2. Если внутрь каталога только что созданной службы переносятся данные из другого каталога (другой службы, другого сервера), то необходимо заменить владельцев (иначе служба не получит к ним доступа) с заменой владельца подконтейнеров
      3. Владельцем папки делается учетная запись службы
      1. Для того, чтобы в службах не было кроказябр
        • в cmd ввести команду chcp 1251
        • файл надо сохранить в ANSI кодировке
      2. Обязательно надо проверить на отсутствие дублирующих ключей в строке запуска — служба с ними не стартует.
      3. Для того, чтобы удалить службу, можно воспользоваться командой — sc delete «Имя заданное в переменной name»
      4. Добавить порты используемые 1С в разрешения в firewall
      5. Нужен всего один физический ключ на сервер — все службы будут активироваться им

      После проведения всех мероприятий в итоге мы пришли к:

      1. Базы можно спокойно перезагружать, не трогая другие базы
      2. Всегда можно найти "героя" — базу, которая съедает все ресурсы
      3. Любые работы с базой касаются только одной конкретной базы

      В следующих статьях я планирую рассказать (если эта статья народу зайдет):

      Читайте также: