Что-то с чем-то

Сайтик ни о чём…

1C-ная свежесть

Или сказ о том, как Иван-Дурак в оптимизаторы заделался.
В некотором царстве, в три-десятом государстве, жил Иван-болван, в простонародье Дурак. Жил не тужил, кофе с печенками попивал с 10 до 18.
Самое сложное, это как-то начать. Вариантов много, а выбрать тот, который позволит мысль правильно изложить — сложно…
Был у Ивашки на работе сервер. 7 лет назад вполне хорошим считался — за кучу монет покупался, с работой своей нормально справлялся.
Тут надо сказать, что работка у сервера была не совсем обычная. В миру ведь как обычно — поставят 1с файловую, любуются. 5-го сотрудника взяли, пересели на sql-ную версию. Ну и дальше знай, памяти подкидывай, по мере роста базы. Советов по выбору сервера под такие задачи (1-2 базы и куча юзеров) видимо-невидимо. Да только не про наш сервер это. У нашего задача задом-наперёд. Баз много — пользователей мало.
Так вот, жил сервер, не тужил. Базы крутил. Переход на буху 2.0 перенёс замечательно. Базы в скуле вертел как хотел… Но настал час, когда пришла пора бух 3.0 ставить. И вот тут начались проблемы. Файловая версия по сети висит жёстко. Особенно, когда вторую и третью базы открываешь. Частично решил вопрос переход на ssd.
Кстати, хороший зверь. И ставить под систему и базы данных именно ssd — на сегодня крайне правильное решение. SSD 256ГБ, PCI-E, Plextor M8Pe, PX-256M8PeY — PCIe Gen3 x4 и поддерживает протокол NVMe. Что это значит? А то, что его можно объединять в RAID. А при необходимости, можно вытащить плату формата М.2, и засунуть куда надо.
Проблема в том, что базы бух 3.0 существенно опухли по сравнению с 2.0. В файловом варианте, для открытия базы, 1с создаёт кэш размером примерно с саму базу. Быстродействие так себе. Представьте, гиг данных прокачать только для запуска. [RDP, кстати, тоже не решение. Пасять под каждого пользователя отъедает] Скульная версия работает, но каждая база жрёт кучу памяти, а баз там две с половиной дюжины. Память на сервере заканчивается легко и быстро. Но, пока памяти хватало 3 Иван продолжал кофе попивать. И вот, одним солнечным днём, позвонила Маша из соседнего царства, и говорит: Вань, помоги. У меня что-то с сервером, а админ меня бросил. Иван парень простой, взял, да и посмотрел. Да так посмотрел, что чуть со смеху не лопнул. «Сервер» представлял из себя core i3 4го поколения, память 8гб, и два HDD терробайтных, серверной серии WD. Говорит Ванька: Не, Машунь, надо сервер покупать. Твои 70 (20 на трёшке, и 50 надо переводить) баз тут не развернутся. А Маша на него смотрит жалобно, и молвит: я эту фирму только купила — потратилась. З/п заплатила, и денег почти нет. Сжалился Иван, говорит — будем тратить постепенно. Купим для начала ssd — он и для сервера всё равно понадобится, а там поглядим.
Купили ssd, воткнули. Теперь дисковой мощности хватает, но стала сеть нагружаться по полной.
И вспомнил Иван, что в миру поговаривают, буд-то есть такое диво-дивное, Fresh-ем кличут, а в переводе с бусурманского — свежесть называется.
Много читал Иван про технологию разделения данных, но информации крайне мало, и очень обрывочно. Первое, что накопал Иван, это была волшебная галочка в константах Бухгалтерии 3.0. Называется Использовать разделение по областям данных -да. После перезапуска (предварительно пользователя админа создать надо) появляется раздел с управлением областями. Там можно создавать области и переключаться между ними. Если добавить в ярлыке входа в базу ключик /Z «-0,+X«, где X- номер области, то пользователь попадает прямо в эту область! Остаётся только создать пользователей, и… Обломаться 🙁 Нет, тут всё хорошо. Программа работает с ИТСом не пристаёт, учёт работает. Вот только злые дядьки из 1с в этом режиме отключили загрузку ФИАС, БИК, Курсов валют, ОКОФ и ЕНАОФ, а так же, нельзя загрузить данные из существующей базы. Дело в том, что в решении 1C Fresh, всё это подгружается через управляющую конфигурацию. Забегая вперёд, обработки для загрузки есть в свободно раздаваемой конфигурации Библиотека Стандартных Подсистем 2.2.х. Именно 2.2, а не 2.3 или 2.4. Почему так — ХЗ. Загрузку конфигурации, правда, найти не удалось. Грустил Иван и тосковал, ибо проблема висела. И тут обнаружилось, что 1C Fresh можно купить у 1с! Да, именно! И называется это чудо 1с технология публикации решений 1cfresh. А есть ещё 1с технология разработки решений 1cfresh. Первый вариант стоит 72000р, второй 36000р. Царевна-лягушка покосилась на Ивана, а он на неё. Но начальник согласился! И начал Иван искать, кто бы рассказал да показал перед покупкой, да на вопросы поотвечал. Оказалось, не так-то это просто! Тогда взял Иван меч и щит, и пошёл в подземелье — биться с драконом. Долго бродил, спрашивал, и вот когда уже надежда была потеряна, добрый гном по имени Александр, помог Ивану, и поделился свежестью! Аж 753 метра выдал! Ай-да гном, ай-да молодец! Прибежал Иван в горницу, развернул упаковку, а там без кваса делать вообще нечего. Покопался в коробке Иван, и нашёл берестяные грамотки. Полистал да выяснил, что самые полезные из них — описание Технологии разработки, описание технологии публикации, и 3 грамотки с примерами: 1- Win+Linux, 2-Win, 3-Linux. Много букв было нацарапано. Иван три дня и три ночи не спал — читал и пробовал. И вот что выяснилось: 1с говорит о том, что главное — это Менеджер сервиса, и это минимально нужный предмет. Однако для полноценной работы ещё нужен Агент сервиса. Причём Агент умеет работать только на Windows. Эти компоненты есть в Технологии разработки решений, и покупать технологию публикации, если не надо у себя открывать сайт для самостоятельной регистрации и работы пользователей — совсем не надо. А Ивану сайт и ни к чему. Так что ему и технологии разработки хватит. Даже лишнее останется.

Основная мысль такова:

  • Ставим СУБД. 1с рекомендует PostgreSQL, и не зря. Компактная, довольно быстрая, и не сильно замороченная. Если MSSQL уже используется (ну или что-то ещё), то конечно, можно на ней делать. Но напомню, у Ивана «Чудо-сервер». Ключевое слово «чудо». И PostgreSQL со своей компактностью, выглядит вполне неплохо!
  • Ставим Менеджер сервиса
  • Ставим Агент сервиса
  • Ставим Бухгалтерию предприятия 3.0
  • Ставим IIS (при установке отмечаем модуль CGI)
  • Делаем первый запуск Бухгалтерии, заводим Администратора, ставим пару констант (часть констант будет сам менеджер ставить)
  • Включаем разделение в Менеджере сервиса, добавляем обработки загрузки классификаторов, заводим пользователей, и начинаем добавлять организации (они же области)
  • Всё. Теперь или прописать всем менеджер сервиса, и каждый будет запускаться через WEB, или в платформе прописать путь к базе на сервере, и под каждую организацию прописать свой ключик, как описано выше. Админы могут не заморачиваться, и ходить по областям как хотят 🙂

Осталось Ивану только перенести все базы в сервис. Скорость запуска и работы крайне впечатляет. А данные, которые каждая организация вносит в общую базу — крайне малы. Потом посчитаем, сколько места в базе займут все 70 баз 🙂

На заметку:

  • В менеджере сервиса необходимо включить константу «Использовать синхронизацию данных»
  • Почему-то 1с пытается установить подключение через IPv6, а PostreSQL сопротивляется. IPv6 можно отключить соответствующим файликом. Другим решением не заморачивался.
  • С помощью команды Все функции (кнопка Главное меню | Все функции) установить следующие значения констант (это из мануала по настройке Fresh):
    — Детализировать обновление ИБ в журнале регистрации — включить (установить флажок);
    — Использовать автономную работу в модели сервиса — включить;
    — Использовать синхронизацию данных — включить;
    — Использовать синхронизацию данных в локальном режиме — выключить (снять флажок);
    — Использовать синхронизацию данных в модели сервиса — включить;
    — Использовать синхронизацию данных в модели сервиса с локальной программой — выключить (снять флажок);
    — Использовать синхронизацию данных в модели сервиса с приложением в Интернете — включить.

Грабли:

  • В мануале же написано, что в IIS надо зайти в раздел «страниы ошибок», и по кнопке «Изменить параметры» поставить точку на втором пункте — «Подробные сообщения об ошибках»! Сначала мануал игнорим, а потом ищем в интернете, что за ошибка «неправильный запрос»!
  • default.vrd в базе, разделённой на области, отличается! От других…
  • Права доступа к области «запуск» не дают прав на некоторые элементарные действия, типа открытия регламентированных отчётов.

Этот сайт не обо мне, не о моих родственниках или домашних животных. Это просто сборник того, что я по каким-то причинам решил записать.

Я пока даже не знаю, как это всё должно выглядеть, так что пусть это выглядит как помойка, а когда пойму как оно должно выглядеть — переделаю.

И вообще, не знаю, может мне это всё скоро надоест, и я не буду продолжать играться в великого писателя…