Создание информационной системы с использованием нескольких информационных баз в системе 1с
Механизмы обмена данными 1С позволяют создавать территориально распределенные информационные системы обменивающиеся данным в офф-лайн режиме, без постоянного соединения.
С помощью этих механизмов можно осуществлять интеграцию не только между различными информационными базами 1С:Предприятия, но и строить сложные гетерогенные информационные системы, включающие, наряду с решениями на платформе 1С:Предприятие, еще и внешние приложения.
Механизмы обмена данными, обеспечиваемые платформой 1С:
- Механизм распределенных информационных баз (РИБ), предназначенный для обмена данными только с идентичными конфигурациями 1С:Предприятия 8 и жестко регламентирующий структуру создаваемой системы. Подробнее.
- Универсальный механизм обмена данными, позволяющий создавать произвольные распределенные системы и практически не накладывающий никаких ограничений на структуру создаваемой системы. Подробнее.
Оба эти механизма используют ряд средств технологической платформы, которые разработчик может применять как по отдельности, так и в различных комбинациях, в зависимости от конкретной решаемой задачи. Такой подход позволяет обеспечить гибкость механизмов обмена и их настраиваемость на решение как можно большего круга задач.
Создание информационной системы с использованием нескольких информационных баз в системе 1С:Предприятие 8 реализуется с помощью объекта конфигурации "Планы обмена".
Средства платформы, используемые для построения схем обмена данными:
- Планы обмена - объекты конфигурации, которые позволяют:
- описывать перечень узлов распределенной информационной системы, с которой будет производиться обмен данными, и
- задавать состав данных, которые будут участвовать в обмене. Подробнее.
- Средства XML-сериализации служат для представления данных 1С:Предприятия 8 различных типов в виде последовательности данных XML, и наоборот. Подробнее.
- Средства чтения/записи XML-документов позволяют работать с данными формата XML на «базовом» уровне, без привязки к объектам 1С:Предприятия 8. Подробнее.
Гибкие возможности настройки позволяют сформировать практически любую топологию схемы узлов обмена (звезда, снежинка, схемы без центрального узла).
Чтение произвольных текстовых файлов при обмене данными в 1С
Для чтения произвольных текстовых файлов существует объект встроенного языка ЧтениеТекста . Его методы Прочитать() и ПрочитатьСтроку() позволяют выполнить соответственно посимвольное и построчное чтение.
Пример посимвольного чтения текстового файла в 1С:
При последовательном чтении из текстового файла возможно:
- как построчное, так и посимвольное чтение (в зависимости от выбранного метода чтения).
Особенности механизма обмена данными 1С:
- При использовании планов обмена управлять составом узлов, для которых производится регистрация изменений объектов, можно корректировать при работе с объектом.
- И механизм распределенной информационной базы, и универсальный обмен данными используют технологию регистрации объектов (неких триггеров, после которого объект ставится на обмен), которая может работать:
- в автоматическом режиме - простой вариант, как только объект изменен, он ставится на обмен;
Для прикладных объектов в окне редактирования объекта конфигурации на закладке "Обмен данными" (рисунок - в спойлере выше) указываются планы обмена, в которых будут учитываться изменения в данном объекте.
То, в каких планах обмена для конкретного прикладного объекта указана авторегистрация можно определить:
Для преобразования XML документа в другой документ допустимого формата предназначен объект "ПреобразованиеXSL".
Интеграция с DBF-файлами
DBF - это стандартный формат хранения данных некоторых баз данных и электронных таблиц. В самом простом случае DBF файл состоит из заголовка, описывающего структуру базы и количество записей, и собственно записей, сведенных в таблицу с полями фиксированной длины.
Для работы с базами данных формата DBF (dBase III) в системе 1С имеется специальный объект – XBase. Механизм работы с базами данных формата DBF предназначен для манипулирования ими непосредственно из встроенного языка. Возможно практически любое манипулирование данными (возможно как внесение изменений в существующие файлы, так и создание новых). С помощью этого может быть обеспечена интеграция со сторонними системами.
Особенности интеграции 1С с DBF-файлами:
- Одновременно с файлом формата dbf может быть открыто не более одного индексного файла.
- Экземпляр объекта 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С:Предприятие 8 будет производиться обращение через OLE к другой информационной базе 1С:Предприятие 8, используется новый COMОбъект .
- Редактирование OLE-объектов осуществляется приложением, связанным с OLE-объектом.
- Automation-сервер "1С:Предприятие 8" дает практически полный доступ к приложению:
- предоставляет доступ ко всем свойствам и методам своего глобального контекста;
- предоставляет доступ к дополнительным свойствам и методам для выполнения действий, специфичных для работы в режиме Automation;
- позволяет управлять приложением системы "1С:Предприятие 8" из других приложений, а также выполнять действия, аналогичные интерактивным.
- В процедуре, которая будет вызываться при подключении к базе данных через СОМ, нельзя использовать Форма.Открыть().
- При обращении к базе данных 1С:Предприятие 8:
- через OLE выполняется процедура-обработчик события "ПриНачалеРаботыСистемы", определенный в модуле приложения;
- через COMConnector выполняется процедура-обработчик события "ПриНачалеРаботыСистемы" определенный в модуле внешнего соединения.
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 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С?
Тирада в моей оригинальной статье, которую вряд ли кто читал, касалась того, какие лентяи 1С разработчики, и сами производители 1С, что одни понаделали много функций, но другие недостаточно хорошо описали, третьи поленились разобраться, а свалили всю рутину на системных администраторов, которым делать-то нечего, кроме как за элитой IT подметать. Думаю, здесь никто меня не похвалит за такие рассуждения. Хотя и похвалы особо не ищу. Единственная цель — чтобы это пригодилось кому-то, кто правильный лентяй-админ, и не любит заниматься одним и тем же помногу раз. А теперь о том, как это было.
Я столкнулся с таким положением дел, что всем сотрудникам наши 1С разработчики добавляют базы ручками, присутствуя на рабочем месте сотрудника, либо просят это сделать нас удалённо, подключившись к рабочему столу пользователя и мышкакликанием все повторить.
Выглядит это так:
И не думайте, что в следующий раз, этот 1С разработчик скажет мне, что эту базу можно назвать именно также. Как следствие, у нас одна и та же база у разных сотрудников называлась по разному. Красота, не так ли?!
Ещё одна сторона этой проблемы в том, что Сотрудник должен быть на месте, компьютер включен, и у него должно быть время (5 мин), чтобы я мог всё это сделать. Если сотрудника нет на месте, то вы можете себе предположить, сколько от меня требуется трудозатрат, чтобы выловить этого сотрудника, согласовать с ним время и сделать это. А если этот сотрудник в удалённом офисе, на ноутбуке, и бывает в сети крайне редко, плюс разница поясов Владивосток — Москва, то это ещё добавляет остроты ощущений. Конечно, можно ещё ярлыком в почту бросить, но этим у нас 1С разработчики очень крайне редко пользуются — или не умеют, или не хотят, или за нас переживают, что без работы останемся, за что им отдельная благодарность и лучи поноса.
Баз у нас порядка пятнадцати. У каждой группы отдельный набор баз. А есть и такие, у кого строго индивидуальный список.
Следующая картина вам ещё больше понравится.
Поступает распоряжение от главы 1С'ников, что нужно трём отделам изменить базу, т.к. она переехала на другой сервер. Дальше не буду тратить буквы, т.к. всё что я описал выше множите на тридцать человек, двадцать из которых в другом офисе или даже другом городе. Классная задачка.
Не помню, сколько раз, я, таких суматох вынес, но было их больше десяти. После чего мне стало интересно, какие способы оптимизации этого процесса есть по unix-way'ю.
И стал я читать… Читал долго… Читал упорно… Документация 1С в справке мне совершенно не понравилась — написано так, как будто бы я уже это делал, поэтому большую часть идеи они оставляют между строк. Лучи поноса в написателей встроенной справки 1С. Как обычно это бывает, более-менее понятную инструкцию нашел на личном блоге, не помню уже кого.
Теория устройства конфигурационных файлов
В 1С организовано всё, что касается списков баз, в обычных текстовых, читаемых файлах с расширениями .cfg и .v8i, в кодировке utf-8. Так что, как вы наверняка догадываетесь, можно всё делать то же самое без отрыва пользователя, открывая файл по сети обычным текстовым редактором и правкой на прямую.
Расположение файлов на стороне пользователя
У пользователя на компьютере 1С 8.2 хранит фалы списков баз в каталогах:
Для Windows XP:
Профиль всех пользователей: С:\Documents and Settings\All Users\Application Data\1C\1CEstart\
Профиль пользователя: С:\Documents and Settings\%username%\Application Data\1C\1CEstart\
Для Windows 7:
Профиль всех пользователей: C:\ProgramData\1C\1CEStart\
Профиль пользователя: C:\Users\%username%\AppData\Roaming\1C\1CEStart\
Содержимое профиля пользователя — два файла: 1CEStart.cfg, ibases.v8i.
Содержимое директории профиля всех пользователей — один лишь, 1CEStart.cfg.
При запуске 1С берёт список баз к представлению в файле пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i, но предварительно читает настройки сначала из профиля всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, а потом и из профиля пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, и если в них есть ссылки на конфигурационные базы в сети, то добавляет их в этот файл.
Описание файла 1CEStart.cfg
В профиле всех пользователей конфигурационный файл C:\ProgramData\1C\1CEStart\1CEStart.cfg имеет следующее содержание:
Где:
InstalledLocation — содержит указание на каталог, в который выполнена установка 1С: Предприятие. По умолчанию это значение C:\Program Files (x86)\1Cv82.
CommonCfgLocation — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром.
CommonInfoBases — указывает путь и имя файла (.v8i) со списком общих информационных баз.
DistributiveLocation — содержит указание на каталог, в котором будет производится поиск новой версии для автоматической установки.
InstallComponents — В локальном конфигурационном файле (1CEStart.cfg) содержит перечень установленных компонент с признаком нужно установить компонету — 1, или нет — 0.
Возможны следующие компоненты параметра InstallComponents:
DESIGNERALLCLIENTS — все клиенты и конфигуратор.
THINCLIENT — тонкий клиент для клиент-серверного варианта работы.
THINCLIENTFILE — тонкий клиент с возможностью работы с файловыми информационными базами.
SERVER — сервер 1С: Предприятия. Если программа установки запускается из программы запуска, то сервер будет установлен как приложение.
WEBSERVEREXT — компоненты расширения для веб-сервера.
CONFREPOSSERVER — сервер хранилища конфигураций 1С: Предприятия.
SERVERCLIENT — компоненты для администрирования кластера серверов 1С: Предприятия.
CONVERTER77 — конвертер информационных баз из версии 1С: Предприятия 7.7.
LANGUAGES — список языков интерфейса для установки. Если указано несколько языков, они перечисляются через ”,”. Пример: LANGUAGES=RU,UK,BG
В профиле пользователя конфигурационный файл C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg первоначально пустой. Но, если какие-то настройки необходимо сделать индивидуально для конкретного пользователя, то писать именно в него, и тут уже его ключи настроек будут иметь больший приоритет, но не все. Это отдельный вопрос, им я не буду сейчас захламлять голову.
Описание файла ibases.v8i
Второй важный файл информационных баз, который находится в профиле самого пользователя — C:\Users\%username%\AppData\Roaming\1C\1CEStart\ibases.v8i. В него и собирается конечный список баз. Пример его содержимого:
Где:
[phonebook] – название базы 1С. Может быть как русскими буквами, так и английскими. Это то, что видит пользователь.
ID=34891493-907f-4783-8a37-3cbc092a989a — автоматически генерируемый уникальный код базы. Если у двух записей один и тот же ID, значит это одна база.
OrderInList=16640 — порядок в списке баз, когда базы представлены одним общим списком без подкаталогов; этот параметр из сетевого списка синхронизируется только в чистый ibases.v8i, если в ibases.v8i пользователя уже заполнен этой базой и этот параметр не будет перезаписываться, при его изменении в сети.
Folder=/ — задаёт место в дереве каталогов, если вид представления списка баз выставлен деревом; этот параметр имеет приоритет пользователя, и не меняется при изменении в сетевом конфиге.
OrderInTree=16640 — порядок в дереве, когда список баз представлен в виде иерархии подкаталогов; этот параметр имеет также приоритет пользователя, и синхронизируется только при первом добавлении базы, а далее подлежит изменению только локальным пользователем.
External=1 — внешняя подключаемая запись конфигурации или нет. Когда 0 тогда база присутствует только в этом файле. В данной ситуации эта запись импортируется из файла списка баз .v8i из сети. Это идентификатор, если это список баз расположенный в сети (расшаренный), то этот параметр можно вообще убрать из конфигурационного файла.
ClientConnectionSpeed=Normal — скорость соединения клиента. Опции могут быть “Nofmal” и “Low”. Логика ясна и без моих поиснений. Этот параметр интерактивный и при сетевом размещении синхронизируется при каждом запуске 1С.
App=Auto — тип соединения клиента. Бывает три типа:
— Auto — определяется сервером;
— ThinClient — тонкий клиент;
— ThickClient — толстый клиент.
Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
WA=1 — этот параметр говорит о том, что система должна использовать windows авторизацию. Этот параметр интерактивный и синхронизируется при каждом запуске 1С.
Version=8.2 — используемая версия для этой базы. Если указать полностью конкретизируя какую платформу использовать, то будет использовать именно ту платформу, которую укажешь, как, например, во второй записи — Version=8.2.14.540. Этот параметр интерактивный и синхронизируется с сетевым конфигом при каждом запуске 1С.
Также есть ещё такой параметр как DefaultApp — тип соединения клиента по умолчанию, если в конфигурации для базы не задан, и DefaultVersion — используемая версия по умолчанию, если не задано в конфигурации для базы. Этот параметр пользовательский, и синхронизируется в чистый файл базы при первом запуске. Далее этим параметром управляет локальный пользователь.
Ссылки на конфигурационные файлы в сети
- либо в конфигурационном файле всех пользователей C:\ProgramData\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы для всех пользователей компьютера;
- либо в конфигурационном файле конкретного пользователя C:\Users\%username%\AppData\Roaming\1C\1CEStart\1CEStart.cfg, если мы хотим показать базы только определённому пользователю на компьютере.
- либо CommonCfgLocation=\\server\1C\config\bases.cfg — указывает путь и имя общего конфигурационного файла. Допускается наличие нескольких строк с таким параметром. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
- либо CommonInfoBases=\\server\1C\config\buh_bases.v8i — указывает путь и имя файла (.v8i) со списком общих информационных баз. Название файла не играет принципиального значения, лишь бы расширение сохранялось;
- или в комбинации и тот и другой, и помногу строк.
Идея использования возможностей
Идея заключается в том, чтобы делать правки с наименьшим количеством повторений. Если настройки базы или её расположение на сервере поменялось, то, исправив запись один раз в одном месте, мы получим актуальную информацию на всех компьютерах.
Для этого необходимо сделать шару в сети: \\server\1C\ . В этой шаре сделать, как минимум два каталога:
..\bases\
Листинг каталога:
В этом каталоге будут хранится файлы с расширением .v8i. Эти файлы будут иметь внутри себя настройки всего лишь одной базы для каждого файла. Причём указать следует только те параметры, настройки, которые критичны именно для этой базы, всё остальное автоматом подставится по умолчанию. Пример файла:
Следует избегать использования параметра ID , т.к. 1С разработчики используют для создания новой базы копипаст из имеющейся базы. А базы с одним ID будут конфликтовать.
..\groups\
Листинг каталога:
В этом каталоге будут храниться файлы с расширением .cfg. Эти файлы будут иметь внутри себя ссылки на базы в каталоге ..\bases\. Пример файла:
В это каталоге мы создаём индивидуальные для группы пользователей или же для конкретного пользователя списки баз. Именно на файлы из этой группы мы ссылаемся в конфигурационных файлах операционной системы пользователя.
При такой схеме мы выносим управление списками баз 1С пользователей в сеть для не администраторов. На сетевой каталог с конфигурационными файлами дать доступ 1С разработчикам и пусть играются как хотят.
А если необходимо изменить настройки какой-то базы, то мы правим её всего одни раз в файле \\server\1C\bases\base.v8i, и это отразится у всех пользователей, т.к. все пользователи смотрят информацию о базе именно в этом файле.
Механизм РИБ — механизм распределенных информационных баз - это когда у вас есть главная база и подчиненная(ые). Главная база может быть только одна, подчиненных может быть много. Каждая подчиненная база может иметь свои подчиненные базы, для которых она будет главной.
Вот посмотрим на картинку из первой ссылки по запросу в Яндексе:
РИБ используется для обмена данными. Причем не только теми данными, с которыми работает пользователь, но и данными изменения конфигурации. То есть РИБ позволяет передавать изменения конфигурации. Но изменить конфигурацию можно только в главной базе!
Визуализируем:
У нас большая компания и много филиалов. Есть доработанная УНФ, которую мы гордо называем УБФ(Управление Большой Фирмой). Но мы решили, что хватит терпеть то, что все филиалы имеют доступ к документам всех филиалов и каждому филиалу решили сделать отдельную базу, которую синхронизировать с нашей основной базой для передачи данных. Что ж, можно. Сделали.
И внезапно мы решили изменить картинку, которая появляется при входе в базу, захотели поместить туда логотип нашей фирмы, а почему бы и нет?
Как запилить картинку во все базы всех филиалов? Ну при текущем варианте, что у всех филиалов отдельная база, только руками. Руками специалистов, которые умеют заходить в конфигуратор и знают что нужно там нажать.
А вот если бы мы сделали подчиненные базы для филиалов, то есть использовали РИБ, то и данными бы обменивались, как при обычной синхронизации, и картинка бы сама добавилась во все "базы-дочки". Однако, в конфигуратор зайти бы все-таки пришлось, но только чтобы нажать кнопочку "Обновить конфигурацию базы данных", вот картинка:
Как создать подчиненную базу, на пальцах:
я буду использовать Управление торговлей, редакция 11 (11.4.13.275), но способ, в целом, одинаковый во всех типовых конфигурациях.
1) Сначала проделаем шаги, как при настройке обычной синхронизации:
2) . поставим галочку, нажмем.
4) тут ознакомимся с описанием. Я выберу обычную настройку, но если бы мы следовали примеру выше, то нужно было бы выбрать "с фильтром" и там одним кликом выбрать нужный филиал.
6) Указываем префикс - он будет подставляться к номерам документов, чтобы можно было отличить документы дочки и основной базы.
7) в общем случае, тут ничего не надо нажимать, кроме "Записать и закрыть".
8) А вот теперь создаем нашу новую подчиненную базу:
9) указываем место, куда ее покладем.
10) Зайдем в нашу новую подчиненную базу и закончим настройки синхронизации(синхронизация уже создалась, так как использовали РИБ, но нужно указать каталог для обмена выбрав "Настройки подключения")
(обратите внимание на верхний левый угол окна программы, там название базы, он отличается от предыдущих, так как это "дочка")
Кстати, в новой базе все пользователи будут выключены, пароли сброшены, нужно включить руками:
В общем-то ВСЕ.
Подчиненная база создана!
Теперь, когда наши программисты что-нибудь улучшат, эти улучшения прилетят в подчиненные базы сами.
Вот что-то изменили в основной базе:
нам нужно перенести изменения в базы-дочки.
Для этого запускаем главную базу в режиме 1С:Предприятие, то есть в пользовательском интерфейсе, заходим в настройки синхронизации, жмем выделенную кнопку:
После того, как синхронизация закончится, заходим в базу дочку и так же жмем "Синхронизировать", база загрузит данные и напишет:
После нажатия на Далее база закроется и начнет устанавливать обновления.
Когда обновы установятся, база начнет запускаться и сообщит нам следующее:
Это означает, что не обновлена конфигурация базы данных. Та самая маленькая кнопка в конфигураторе и это именно та причина, почему придется ОДИН раз зайти в конфигуратор. Что ж, зайдем в конфигуратор базы-дочки и нажмем эту кнопку, заодно вообще посмотрим что-да-как там, мы ж там еще не были.
Откроем конфигурацию и вот что увидим
Нажмем на "Обновить конфигурацию базы данных".
Увидим список изменений, которые прилетели с обновлениями:
И вот эти обновления появились в подчиненной базе.
Теперь необходимо запустить базу в пользовательском режиме, чтобы выполнились обработчики обновления.
Несколько правил:
1) Все узлы, кроме одного, должны иметь по одному главному узлу и один узел не будет иметь главного узла - это корневой узел.
2) Конфигурация может быть изменена только в узле, не имеющем главного узла (то есть в корневом).
3) Изменения конфигурации будут передаваться от главного к подчиненным узлам.
4) Разрешение коллизий так же будет производиться исходя из отношений "главный - подчиненный" - если изменения сделаны одновременно и в главном и в подчиненном узлах, то приняты будут изменения главного узла.
5) Сделать подчиненный узел в распределенной базе можно разными способами, но создание начального образа является рекомендуемым.
А теперь то, ради чего все писалось.
Как подчиненную базу сделать обычной(нормальной, отдельной, как хотите).
Я опишу только тот способ, которым пользуюсь. Это моя шпаргалка. Но он не единственный.
1) Заходим в свойства ярлыка запуска окна 1С:Предприятие:
2) В поле "Объект" дописываем:
DESIGNER /F"Путь до базы" /N"Имя Пользователя в базе" /P"Пароль пользователя" /ResetMasterNode
В итоге у меня получится:
"C:\Program Files\1cv8\common\1cestart.exe" DESIGNER /F"C:\Users\79119\Desktop\РИБ" /N"" /P"" /ResetMasterNode
Вопрос.6 Допускается ли при обычной установке 1С:Предприятия в клиент-серверном варианте, работа клиентского и серверного приложений разных релизов технологической платформы?
2. Не допускается, необходимо выполнять обновление, как серверного приложения, так и клиентских приложений
3. Допускается, необходимо выполнять обновление серверного приложения
Вопрос 7 Использование режима пакетного запуска.
1. позволяет в автоматическом режиме производить выгрузку/загрузку,
тестирование и исправление информационной базы
2. позволяет запускать оба режима программы без интерактивного вмешательства
3. позволяет выполнить синтаксический контроль и проверку конфигурации
4. правильный ответ 1 и 2
5. правильный ответ 1,2 и 3
Вопрос.8 Параметры запуска из командной строки 1С:Предприятие.
1. определяют информационную базу, пользователя, его, пароль, режим запуска, правила выполнения указанных операций во внешнем файле
2. определяют информационную базу, пользователя, его, пароль, режим запуска, правила выполнения указанных операций указанных в командной строке
3. верны ответы 1 и 2
4. нет правильного ответа
Вопрос.9 Что позволяет использование командной строки?
1. Запустить программу в режиме 1С:Предприятие, указав параметрами каталог информационной базы, пользователя, пароль и проч.
2. Запустить программу в режиме конфигуратора, указав параметрами каталог информационной базы, пользователя, пароль и проч.
3. Блокировать действия указанного в параметре пользователя в режиме
4. Верны ответы 2 и 3
5. Верны все указанные ответы
6. Верны ответы 1 и 2
Вопрос 10 Что позволяет пакетный режим конфигуратора?
1. Использовать пакетный режим обращения к информационной базе, что значительно повышает скорость исполнения запросов
2. Запустить конфигуратор и автоматически выполнить указанные в отдельном файле или командной строке процедуры по сохранению конфигурации в файл, тестированию информационной базы и проч.
3. Разделить права пользователей, у которых доступны более одной роли
Вопрос.11 Шаблоны конфигураций.
1. служат прототипами создаваемых информационных баз и устанавливаются в каталог шаблонов, указываемый пользователем
2. соответствуют параметрам текущей конфигурации и отвечают за соответствие релизов, устанавливаются в каталог шаблонов, указываемый пользователем
3. определяют отклонения изменённой конфигурации от типовой, устанавливаются в каталог шаблонов, указываемый пользователем
Вопрос.12 Какова последовательность действий создания новой информационной базы при файловом варианте работы системы?
1. В окне запуска "1С:Предприятие" выбрать "Добавить" - "Создание новой информационной базы" - указать имя базы - "На данном компьютере или компьютере локальной сети" - указать каталог информационной базы
2. В окне запуска "1С:Предприятие" выбрать "Добавить" - "Создание новой информационной базы" - указать имя базы - "На сервере 1С:Предприятие" -указать каталог информационной базы
3. В окне запуска "1С:Предприятие" выбрать "Добавить" - "Создание новой информационной базы" - выбрать из шаблонов либо пустую - указать имя базы - указать каталог информационной базы
Вопрос 13 Какова последовательность действия при добавлении существующей информационной базы в клиент-серверном варианте работы?
1. В меню запуска 1С:Предприятие выбрать "Добавить" - "Добавление в список существующей информационной базы" - указать имя базы - "На данном компьютере или компьютере локальной сети" - указать каталог ин-формационной базы
2. В меню запуска 1С:Предприятие выбрать "Добавить" - "Добавление в список существующей информационной базы" - указать имя базы - указать "На сервере
1 С:Предприятие" - указать имя базы на сервере и имя сервера
3. Необходимо воспользоваться утилитой поиска и регистрации существующих информационных баз
4. Верны ответы 2 и 3
5. В меню запуска 1С:Предприятие выбрать "Добавить" - "Добавление в список существующей информационной базы" - указать имя базы - указать "На сервере 1С:Предприятие" - указать имя базы на сервере
Вопрос.14 Какие базы отображаются в списке информационных баз окна запуска "1С:Предприятия"?
2. Все информационные базы на этом компьютере или в сети
3. Все информационные базы в локальной сети
Читайте также: