Создание информационной системы с использованием нескольких информационных баз в системе 1с

Обновлено: 03.07.2024

Информационная система, состоящая из нескольких информационных баз 1С: Предприятия (узлов), обладающих идентичными конфигурациями и обменивающихся данными в офлайн-режиме. Характеризуется жесткой иерархической структурой узлов и наличием одного главного узла. Для более гибких схем обмена, в том числе между разнородными системами, используется универсальный механизм обмена данными.

Механизм

Механизм распределенных информационных баз предназначен для создания территориально распределенных систем на основе идентичных конфигураций 1С: Предприятия 8. Этот механизм позволяет переносить как изменения данных, так и изменения конфигурации информационной базы.

Возможности:

интерактивное создание распределенной системы и выполнение обмена данными без дополнительного программирования;

обеспечение идентичности конфигураций информационных баз, входящих в состав распределенной системы;

подключение новых и отключение существующих узлов;

создание начального образа информационной базы для нового узла;

реализация различных способов разрешения коллизий при одновременном изменении данных в разных узлах распределенной системы;

в рамках одной распределенной информационной базы может быть создано несколько схем обмена;

распределенная информационная база может содержать схемы обмена с другими информационными системами, в том числе с информационными базами 1С:Предприятия, не являющимися распределенными информационными базами;

задание условий на передачу и прием изменений на уровне отдельных элементов данных;

реализация восстановления обмена данными в таких случаях, как восстановление информационных баз из резервных копии и т.д.;

Особенности:

распределенная система должна иметь древовидную структуру, в которой существует корневой узел и определено отношение "главный – подчиненный" для каждой пары связанных узлов;


обмен данными выполняется в формате ХML документов;

внесение изменений в конфигурацию возможно только в одном (корневом) узле распределенной системы;

изменения конфигурации передаются от главного узла к подчиненным;

внесение изменений в данные возможно в любом узле системы;

изменения данных передаются между любыми связанными узлами.

Недостатки:

на каждом компьютере необходима лицензия платформы и основная лицензия СЛК;

каждое рабочее место должно соответствовать минимальным системным требованиям, для работы в 1С.

Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 1С, как и большинство отечественных коллег. На текущий момент у нас на сервере проживают сотни баз, поэтому нам пришлось научиться быстро и качественно всё это богатство администрировать. Если вы — бухгалтерская компания, хостер с сервисом 1С, или у вас просто взялась куча 1Сок, вы знаете, как это трудно. Мы любим приносить пользу, поэтому поделимся опытом, практическими советами и инсайтами, которые успели нас посетить за бессчётное количество ночей, праздничных и выходных дней, проведенных за обновлением и актуализацией всего нашего хозяйства.


Мы не продаём 1С, а потому рассказ будет без купюр, цензуры, а главное — без маркетингового булшита. Бонустреком, по ходу поста можно найти несколько полезных скриптов и советов для тех у кого действительно много баз 1С.

Итак, почему у нас вообще так много баз? В действительности, прямо сейчас мы исследуем технологию разделения данных, но использовать её ещё не начали, поэтому для каждого бизнеса, который мы обслуживаем, вынуждены создавать отдельную базу (и часто не одну).

Невероятный путь от облачной 1С до собственного кластера серверов

В начале нашего пути мы пользовались облачным : этот сервис в меру удобен, насколько может быть удобно использовать настольное приложение через браузер. Однако, довольно быстро мы накопили полсотни баз и администрировать их через веб стало невыносимо — начал тормозить, плюс появилась необходимость программно интегрировать 1С с нашими внутренними инструментами, чего Фреш категорически не умеет. Пришлось мигрировать, выгружая все данные из облака. Благо сделать это было нетрудно («Выгрузить данные в локальную версию» → «Загрузить данные из сервиса»).

Вторым важным этапом эволюции стало использование , и нас, опять же, всё устраивало, пока баз не стало больше сотни. Обновления конфигураций, как и публикация с добавлением пользователей, происходили через письмо в техподдержку. В принципе, всё оперативно, но не интерактивно.

Особые неудобства доставляла невозможность запуска. без предварительного согласования (добавления в разрешающие политики домена), а нам, напомню, была необходима интеграция. Также были проблемы с тем, что, по непонятным причинам, СХД провайдера неправильно синхронизировало ноды на блочном уровне. Так мы потеряли несколько важных баз, которые пришлось долго и мучительно восстанавливать. С системами хранения часто всё непросто и нечестно.

Хозяйке на заметку: тестируйте хранилище. Если вы хостер, то уделите этому больше внимания. Если вы пользуетесь сторонним хостингом — обязательно проверяйте хранилище и диски. Это детские грабли, наступать на которые ещё больнее, чем на взрослые :)

После всех приключений мы решили мигрировать на свой VPS. Мощности современных виртуальных серверов позволяют спокойно содержать пару сотен , без труда допуская к ним пару десятков бухгалтеров. Провайдеры VPS, зачастую, не отвечают за лицензирование программных продуктов, которые вы запускаете внутри, поэтому нужно озаботиться приобретением лицензии на пользователей и покупкой конфигурации.

Хозяйке на заметку: при лицензировании большого количества баз вас могут ждать сюрпризы — активация каждой базы для каждого пользователя через программный ключ может стать вашей основной работой на ближайшие недели. Этого недостатка лишён кряк аппаратный ключ, но его нельзя просто так взять и начать использовать в VPS.

Не будем забывать, что даже самый лучший VPS (выбранный с использованием вот этого клёвого сервиса) не сравнится с тёплым и ламповым собственным сервером. Мы решили мигрировать в третий раз.

Однажды вечером наш VPS не запустился. Был самый пик отчётности — последние её часы, и сервер находился в дауне неоправданно долго. При этом через панель управления мы сделать ничего не могли — сервер находился в стадии запуска, а техподдержка просто разводила руками. Как оказалось, на хосте с нашей виртуалкой закончилась оперативная память, и на запуск её просто не хватало.
Итого

Сейчас, имея сотни баз пройдя путь от , через боль, миграции, неконсистентность баз, некомпетентность техподдержки, проблемы с синхронизацией нод у хостера, публикацию через веб, экспорты, импорты, резервные копии и массу восстановлений, мы пришли к своему кластеру серверов.

  • думайте о лицензиях;
  • если вам нужна интеграция — используйте выделенный сервер или VPS;
  • позаботьтесь о хранилище или тщательно тестируйте его у вашего провайдера;
  • резервные копии — это правда важно;
  • сразу откажитесь от , если нагрузка будет серьёзной и важна стабильность.

Как упростить жизнь, если вы вынуждены работать с кучей баз

Создание базы со ссылкой на неё в профиле текущего пользователя

Мы разворачиваем все наши базы из заранее подготовленного шаблона (с загруженными обработками, справочниками, настроенной подпиской ИТС и резервным копированием).

Для файлового варианта:

Для SQL варианта:

Как создать или удалить пользователя сразу в сотне баз?
Как подключить пользователю сразу сотню баз?

Для добавления сразу всех нужных баз в список пользователя мы используем v8i общих баз, размещённые на файловой шаре. Ссылки на эти файлы добавляются в профиле пользователя (например, через GPO или в профиль ) в файл %AppData%\1C\1CEStart\1CEStart.cfg:

Либо из самой 1С (уже под пользователем) добавляем список общих информационных баз:


Внутри файлы v8i выглядят так:

Создать их можно прямо из окна выбора базы («Сохранить ссылку в файл») или же взять в профиле базы — %AppData%\\1CEStart\ibases.v8i. Ссылка может быть на базу работающую в любом режиме (файловый, серверный, веб). Рекомендуем хранить в одном файле не более ста баз, иначе файл может попросту загрузиться не до конца :)

Как обновить сразу сотню баз?

Обновление баз лучше производить на отдельном сервере (а еще лучше сразу на двух :) — это и быстрее, да и управлять процессом проще. Мы используем типовые конфигурации (без снятия с поддержки), обновляемые через ИТС. В первом квартале этого года для «Бухгалтерии 3.0» вышло более 10 обновлений, накатить их даже на десяток баз вручную — та ещё веселуха. Потому мы разработали некоторую стратегию.

Прохладная история: в первый отчетный период 2014 наши любимые гос органы и 1С внезапно лишили нас сна, выпустив в период с марта по апрель более 10 апдейтов только для конфигурации Бухгалтерия 3.0! Конечно, мы не стали обновлять всё подряд, но даже 3–4 обновления для сотен баз за столь короткий срок — хорошая проверка на прочность.
Читатель может задаться вопросом, откуда столько хлопот? Ответ прост: изменения в законодательстве и при этом в самый последний момент. Например: с начала 2014 года не было утверждённых форм ФСС и ПФР. В одном из первой обновлений их добавили, но только для сдачи в бумажном виде, а в электроном — нет. И так происходит постоянно.
Блокировка


Или через создание файлика в каталоге базы 1Cv8.cdn вот с таким содержимым:

Обновление

Для файлового варианта:

Для SQL варианта:

Как правильно делать резервное копирование баз?

Если вы используете SQL, следующий абзац можно безжалостно скипнуть — он актуален только для файлового режима.

В нашей практике мы не раз встречали базу в неконсистентном состоянии. Более того, в файловом варианте, не существует специальных инструментов, чтобы сообщить базе о начале копирования, нет возможности заблокировать работу с ней, если она идёт прямо сейчас. Мы справлялись с этим так: в полночь сервер RDP переходил в режим запрета новых подключений, через пару часов всех пользователей мягко выгонял скрипт. Затем срабатывало регламентное обновление и резервное копирование.

Выгрузка в dt

Для файлового варианта:

Для SQL варианта:

Все выше сказанное справедливо для 1С Предприятие, платформа 8.3; Бухгалтерия 3.0; Зарплата и Управление Персоналом 2.5.

В следующий раз мы расскажем о работе в режиме разделения данных для нескольких сотен фирм на одну базу. Будем рады услышать вопросы, замечания и предложения. А всем тем кто столкнулся с подобными задачами — хочется пожелать терпения, упорства и веры в победу.

Понятие конфигурации и базы данных. Обзор трёх конфигураций, заложенных в любой информационной системе 1С.

conf

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

Давайте рассмотрим это более детально. Что же действительно содержится внутри информационной базы? Информационная база, это достаточно большой блок информации, и, во-первых, в ней содержаться пользовательские данные. Иными словами, это некоторые элементы справочников, который формирует оператор, документы и данные в регистрах накопления. Помимо всего прочего, в информационной базе содержится, как минимум, две конфигурации. Это конфигурация основная, и конфигурация базы данных. Для файл-серверной архитектуры в обязательном порядке всё это содержится непосредственно в специальном файле, с названием 1cv8.1cd.

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

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

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

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

Создать новую базу данных 1С сможет каждый пользователь компьютера, это процесс несложный. Мы рассмотрим создание новой базы данных (файл-серверный вариант) на примере 1С:Бухгалтерия (учебная версия).

Создать нужную нам информационную базу 1С можно несколькими способами:

  1. Создать информационную базу из шаблона 1С.
  2. Создать пустую базу, а затем загрузить в неё нужный файл конфигурации с расширением .cf.

Рассмотрим оба случая.

Создание информационной базы из шаблона

Для создания новой базы запустим 1С до стартового окна «Запуск 1С:Предприятия». В правой панели нажмём кнопку «Добавить».

image001

Выбираем пункт меню «Создание новой информационной базы» и нажимаем на кнопку «Далее».

image002

В следующем окне выбираем пункт меню «Создание информационной базы из шаблона». Из списка шаблонов баз выбираем нужную нам базу 1С. Шаблон с пометкой «демо» предназначен для создания базы с тестовыми данными для ознакомления с конфигурацией. Если в списке шаблонов не обнаружено, то необходимо их предварительно установить. Для этого нужную конфигурацию можно либо купить у фирм-партнёров 1С, либо скачать с сайта 1С демонстрационную (учебную) версию, затем запустить установщик (файл setup.exe) и установить файлы шаблона в системную папку 1С. После выбора шаблона нажимаем кнопку «Далее».

image003

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

image004

Если база данных создаётся в файл-серверном варианте на локальном компьютере, то следует выбрать пункт меню «На данном компьютере или на компьютере в локальной сети». Если у вас установлена какая-либо СУБД и клиент-серверный вариант платформы 1С:Предприятие, то имеет смысл выбрать второй пункт «На сервере 1С:Предприятие». В данном примере выберем первый вариант. Нажимаем «Далее».

В следующем окне указываем каталог информационной базы 1С, где она будет храниться. Нажимаем «Далее».

image005

В следующем окне можно оставить всё без изменений. Особое внимание здесь стоит уделить режиму запуска. Современные конфигурации можно запускать как в режиме тонкого клиента, так и в режиме уже привычного пользователям толстого клиента. Тонкий клиент позволяет запускать текущую конфигурацию в режиме управляемых форм. Если хотите видеть пользовательский интерфейс 1С в виде привычного приложения Windows, то выберите здесь пункт «Толстый клиент». Нажимаем «Готово».

image006

В конце в списке информационных баз появилась наша база «Бухгалтерия предприятия». Теперь можно открывать её в пользовательском режиме и пользоваться ею.

image007

Создание информационной базы из файла конфигурации

Чтобы создать базу 1С из сохранённого ранее файла конфигурации с расширением .cf, поначалу нужно выполнить те же шаги, которые были рассмотрены выше. На этапе создания базы из шаблона, выберем пункт меню «Создание информационной базы без конфигурации». Нажимаем «Далее».

image008

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

Теперь открываем пустую информационную базу через конфигуратор 1С.

image009

В конфигураторе для начала необходимо открыть окно конфигурации. Делается это через главное меню: Конфигурация ? Открыть конфигурацию.

image010

Теперь станет доступным необходимый нам пункт меню: Конфигурация ? Загрузить конфигурацию из файла…

image011

На этом этапе выбираем файл подготовленной конфигурации 1С:Бухгалтерия. Нажимаем «Открыть».

image012

Конфигурация будет загружаться некоторое время в нашу информационную базу. На вопрос: «Обновить конфигурацию базы данных?» Отвечаем «Да».

image013

На этапе реорганизации информационной базы нажимаем кнопку «Принять».

image014

В конце обновления окно конфигуратора можно закрыть. Наша база 1С:Бухгалтерия готова к работе и её можно открыть теперь в пользовательском режиме.

Мы полностью рассмотрели создание информационной базы. Теперь легко можно создавать нужные для работы базы 1С!

Механизмы обмена данными 1С позволяют создавать территориально распределенные информационные системы обменивающиеся данным в офф-лайн режиме, без постоянного соединения.

С помощью этих механизмов можно осуществлять интеграцию не только между различными информационными базами 1С:Предприятия, но и строить сложные гетерогенные информационные системы, включающие, наряду с решениями на платформе 1С:Предприятие, еще и внешние приложения.

Механизмы обмена данными, обеспечиваемые платформой 1С:

  1. Механизм распределенных информационных баз (РИБ), предназначенный для обмена данными только с идентичными конфигурациями 1С:Предприятия 8 и жестко регламентирующий структуру создаваемой системы. Подробнее.
  2. Универсальный механизм обмена данными, позволяющий создавать произвольные распределенные системы и практически не накладывающий никаких ограничений на структуру создаваемой системы. Подробнее.

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

Создание информационной системы с использованием нескольких информационных баз в системе 1С:Предприятие 8 реализуется с помощью объекта конфигурации "Планы обмена".

Средства платформы, используемые для построения схем обмена данными:

  1. Планы обмена - объекты конфигурации, которые позволяют:
    • описывать перечень узлов распределенной информационной системы, с которой будет производиться обмен данными, и
    • задавать состав данных, которые будут участвовать в обмене. Подробнее.
  2. Средства XML-сериализации служат для представления данных 1С:Предприятия 8 различных типов в виде последовательности данных XML, и наоборот. Подробнее.
  3. Средства чтения/записи XML-документов позволяют работать с данными формата XML на «базовом» уровне, без привязки к объектам 1С:Предприятия 8. Подробнее.

Схема обмена данными 1С

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

Чтение произвольных текстовых файлов при обмене данными в 1С

Для чтения произвольных текстовых файлов существует объект встроенного языка ЧтениеТекста . Его методы Прочитать() и ПрочитатьСтроку() позволяют выполнить соответственно посимвольное и построчное чтение.

Пример посимвольного чтения текстового файла в 1С:

При последовательном чтении из текстового файла возможно:

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

Особенности механизма обмена данными 1С:

  1. При использовании планов обмена управлять составом узлов, для которых производится регистрация изменений объектов, можно корректировать при работе с объектом.
  2. И механизм распределенной информационной базы, и универсальный обмен данными используют технологию регистрации объектов (неких триггеров, после которого объект ставится на обмен), которая может работать:
  3. в автоматическом режиме - простой вариант, как только объект изменен, он ставится на обмен;

Авторегистрация изменений объекта в Плане обмена 1С

Авторегистрация обмена 1С

Для прикладных объектов в окне редактирования объекта конфигурации на закладке "Обмен данными" (рисунок - в спойлере выше) указываются планы обмена, в которых будут учитываться изменения в данном объекте. То, в каких планах обмена для конкретного прикладного объекта указана авторегистрация можно определить: в окне редактирования объекта, раздел "Обмен данными"; посредством вызова окна "Дополнительно" для данного объекта (закладка "Планы обмена").



Для преобразования XML документа в другой документ допустимого формата предназначен объект "ПреобразованиеXSL".

Интеграция с DBF-файлами

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

Для работы с базами данных формата DBF (dBase III) в системе 1С имеется специальный объект – XBase. Механизм работы с базами данных формата DBF предназначен для манипулирования ими непосредственно из встроенного языка. Возможно практически любое манипулирование данными (возможно как внесение изменений в существующие файлы, так и создание новых). С помощью этого может быть обеспечена интеграция со сторонними системами.

Интеграция с DBF-файлами

Особенности интеграции 1С с DBF-файлами:

  1. Одновременно с файлом формата dbf может быть открыто не более одного индексного файла.
  2. Экземпляр объекта XBase позволяет одновременно организовать работу только с одним файлом формата .dbf.

Механизм интеграции OLE Automation

Механизм OLE был задуман как технология интеграции программных продуктов Microsoft Office, которая позволяет работать с объектами, созданными в других приложениях (документы, рисунки, таблицы). С точки зрения пользователя, составной документ выглядит единым набором информации, но фактически содержит элементы, созданные двумя или несколькими разными приложениями.

OLE-объект - объект, созданный в другом приложении и сохранивший связь с этим приложением (например, электронные таблицы Excel, вставленные в документ Word соответствующим образом - как OLE-объект; если не вставлять их как OLE-объект, то связь с оригинальным приложением будет отсутствовать).

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

Сервер приложения OLE (OLE Server Application) - приложение, создающее объекты, которые можно поместить в документ-контейнер.

Программы 1С:Предприятие, Microsoft Word и Excel являются приложениями, которые могут выступать и как OLE-сервер, и как OLE-контейнер. Другими словами, эти приложения могут создавать новые OLE-объекты, а также хранить OLE-объекты, созданные в других приложениях.

Особенности использования механизма OLE Automation в 1С:

  1. Для создания объекта, с использованием которого из одной базы 1С:Предприятие 8 будет производиться обращение через OLE к другой информационной базе 1С:Предприятие 8, используется новый COMОбъект .
  2. Редактирование OLE-объектов осуществляется приложением, связанным с OLE-объектом.
  3. Automation-сервер "1С:Предприятие 8" дает практически полный доступ к приложению:
    • предоставляет доступ ко всем свойствам и методам своего глобального контекста;
    • предоставляет доступ к дополнительным свойствам и методам для выполнения действий, специфичных для работы в режиме Automation;
    • позволяет управлять приложением системы "1С:Предприятие 8" из других приложений, а также выполнять действия, аналогичные интерактивным.
  4. В процедуре, которая будет вызываться при подключении к базе данных через СОМ, нельзя использовать Форма.Открыть().
  5. При обращении к базе данных 1С:Предприятие 8:
    • через OLE выполняется процедура-обработчик события "ПриНачалеРаботыСистемы", определенный в модуле приложения;
    • через COMConnector выполняется процедура-обработчик события "ПриНачалеРаботыСистемы" определенный в модуле внешнего соединения.

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

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

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