Оглавление
Базы данных 1с8 для
сетевых структур
Список точек в центральной базе
Программный запуск утилит командной
строки
Нюансы ограничения доступа к
программам и сайтам
В статье собран опыт
применения распределенных баз данных в организациях, состоящих из головного
офиса и множества однотипных простых подразделений (точек).
На практике рассматривались
организации с 30-70 точками.
Использовалась технология
УРБД, т.е. обмен происходил между базами с идентичными конфигурациями. Базы
точек были периферийными, центральная база – главной.
Иногда центральная база
разделяется на несколько баз – центральную базу, базу склада, базу для отчетов
и т.п. Между ними тоже нужно производить обмен.
В тексте для упрощения
изложения будут использоваться некоторые термины.
Продавцы - пользователи точек
Менеджеры – пользователи центральной базы.
Root – вход администратора компьютера на точке
Лучше всего, если процедура
создания новых точек будет автоматизирована. Т.е. в мастере вводятся параметры
новой точки, после нажатия создаются все необходимые склады, магазины и т.п.
Остается только выгрузить данные в новую точку.
В 1С выгрузка данных
осуществляется в монопольном режиме. Выгрузка может идти долго. Существуют
способы оптимизации, чтобы выгружалось меньше данных, но в любом случае
основные справочники (номенклатура, контрагенты) могут выгружаться целиком,
поэтому процедура вряд ли будет короче 30 минут. На практике в разных базах
занимает от 30 минут до 2 часов. Поэтому
лучше выгружать образ точки ночью, когда никто из пользователей не работает.
Как альтернативный вариант -
можно создать точку в копии базы. Путем нехитрых манипуляций можно заставить
обмениваться выгруженную из образа точку с рабочей базой.
Нельзя оставлять в плане
обмена узлы, соответствующие закрытым точкам. На них накапливается информация о
регистрации изменений, что увеличивает объем базы, и затормаживает ее работу.
Если забыть исключить такой
узел из обмена данными, то по узлу будет генерироваться очень большой файл
обмена, т.к. ответа от точки приходить не будет. Генерация такого файла
отнимает лишнее время.
Поэтому закрытую точку нужно
исключать из обмена данными, и физически удалять из планов обмена.
Очень часто возникает
потребность в учебной базе – как для учебных целей, так и просто для тренировки
пользователей.
Самый простой вариант –
скопировать базу из базы точки и, возможно, сделать некоторые настройки, чтобы
она работала без торгового оборудования. Для таких настроек лучше написать
скрипт, который будет делать это автоматически. Тогда можно обновлять учебную
базу достаточно часто, ведь учебная база должна быть более-менее актуальной.
Вариант, когда учебная база
включена в обмен данными
Необходимо проверить, чтобы
на базах стояли источники бесперебойного питания. Очень часто на этом экономят,
в результате как минимум раз в неделю происходят сбои на той или иной базе,
которые приходится лечить или проверкой базы через checkdbfl.exe или
тестированием и исправлением баз, или даже восстановлением базы в запущенных
случаях.
Иногда на базах происходят
сбои в работе, которые никак нельзя объяснить. Вроде бы все работает, но глючит. Тестирование и исправление базы, проверка
физического состояния базы – первое, что нужно сделать в базах, прежде, чем брать в руки отладчик.
Также в базах на точках
нужно отключить кэширование файлов (смотрите в статье про платформу 1С).
Можно провести и другие
мероприятия, способствующие физической надежности хранения данных.
Администраторы часто
используют полные права, чтобы входить на точки. Но практика показывает, что
продвинутые пользователи могут перехватить пароль администратора с помощью
любого кейлоггера, например, Punto Switch.
Как вариант – можно
использовать одноразовые пароли на вход в 1С, но так можно проверить только
вход в 1С:Предприятие, а не в конфигуратор.
Поэтому имеет смысл
запретить работать задним числом на точке для любых пользователей, запретить
работу в конфигураторе для всех пользователей.
Если нужно что-то изменить в
данных, нужно это делать в центральной базе, где перехватить пароль
администратора невозможно.
Для обмена данными можно использовать пользователя Автообмен, которому
разрешено все, кроме интерактивной работы и входа в конфигуратор. Интерактивная
работа запрещается через подключение обработчика ожидания, который при первом
срабатывании завершает работу системы.
Обмен данными – надежный
механизм, но его оптимизация и настройка требует точного расчета. Пока что я бы
сказал, что у нас не удалось выработать идеального расписания для обмена центра
с точками.
Основные проблемы в обменах
данными на точках:
1.
Нужно настроить обмен по расписанию, т.к. продавцы будут забывать
и лениться делать обмен.
2.
Нужно автоматизировать прием измененной конфигурации, т.к. продавцов сложно
обучить процедуре приема измененной конфигурации.
На практике мы написали скрипт на java-script, который
запускался каждые 3 минуты под root на точке. Он создавал внешнее COM-соединение с
базой 1С, проверял, запущен ли уже автообмен под пользователем Автообмен. Если
не запущен, то проверял, сколько времени прошло с
момента последнего обмена. Если больше 15 минут, выполнял обмен данными.
Иногда возникает
необходимость внеочередного обмена с точкой. Инициатором может быть или продавец
или менеджер. У них должны быть инструменты для выполнения такого обмена,
причем без привлечения пользователей другой стороны. Нажал у себя кнопку – и
произошел обмен.
Иногда точке нужно срочно обменяться с другой точкой, например, если она
передала товар другой точке. Варианты решения:
1.
Специальный оперативный план обмена – достаточно сложно реализовать.
2.
Выгрузка/загрузка конкретных документов через XML-файл – быстрое, дешевое и
сердитое решение. Выгружается файл, почтой или на флешке отправляется на другую
точку, там загружается.
3.
Обмен по запросу – если наложен обмен по запросу, то пользователь просто
формирует запрос на обмен с другой точкой.
На точках часто возникает необходимость программно запускать служебные
программы. Эти программы можно создавать при первом запуске непосредственно из
1С, но возникает резонный вопрос – в какой каталог их помещать?
Вариантов решения несколько:
1.
Учитывая, что
обычно на точках файловые базы данных, можно помещать программы в каталог базы,
для файловой базы его можно получить программным путем.
2.
Если база файловая
или каталог базы защищен от доступа, можно использовать папку «Мои документы» -
ее тоже можно получить программным путем.
На точках часто установлены ограничения на запуск определенных программ и
перехода на определенные сайты. В то же время, для некоторых задач, выполняемых
на программном уровне, такие доступы требуются. Поэтому не забывайте при
решении задачи требовать от администраторов открытия соответствующего доступа.
Для работы программы требуются различные
служебные константы. Особенно это касается взаимодействия с веб-сервисами.
Константы добавляются достаточно часто.
Добавление каждой константы выливается в
целый комплекс мероприятий:
1.
Изменить форму констант, чтобы можно было редактировать константу.
2.
Настроить права доступа на константу.
3.
Настроить миграцию константы в точки.
Поэтому для служебных констант лучше
завести справочник «Константы» и использовать его предопределенные элементы,
как аналог констант. Значения константы можно хранить в поле составного типа «Значение»
для простых типов и «Значение хранилище» для хранилища значения (файлов). Преимущество использования справочника – можно
только один раз настроить миграцию и права доступа.