Что такое разделитель в 1с

Что такое разделитель в 1с

Однажды мы обсуждали механизмы ограничения доступа пользователей в 1С и в частности механизм RLS.

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

Общие реквизиты 1С, которые мы с Вами также обсуждали недавно, кроме того, что они являются общими для нескольких документов, реализуют новый механизм безопасности в 1С под названием — разделение данных 1С.

Поговорим об этом подробнее.

Разделение данных 1С

Разделение данных 1С – это механизм аналогичный RLS, организованный на другом принципе работы. Если RLS – это дополнение запросов к SQL условиями, ограничивающими список данных, то разделение данных – это SQL запросы к таблицам, в которых уже заранее отобраны данные.

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

Возможные режимы работы (в одной физической базе данных):

Включаем разделение данных 1С

Добавим общий реквизит Склад.

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

В свойствах общего реквизита укажем Состав – все документы, у которых есть реквизит Склад.

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Свойство Разделение данных – Разделять. При включении свойства 1С предложит создать два параметра сеанса (см. далее).

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Значение разделения данных 1С – параметр сеанса с типом равным типу общего реквизита. В данном параметре сеанса будет установлено значение, которое определит фильтр.
Использование разделения данных 1С – параметр сеанса с типом булево, в нем будет включено или выключено разделение данных 1С для данного сеанса.

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Использовать разделение данных 1С — Независимо. Это значит, что база будет полностью и окончательно разделена и все пользователи в ней работают в своей области вне зависимости от дальнейших настроек, и даже идентификаторы (GUID) в разных областях одной базы могут быть одинаковы.

Значение общего реквизита-разделителя при этом в момент записи разделяемого справочника и документа устанавливается системой автоматически и поменять его нельзя.

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

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

Особенности разделения данных 1С для администрирования

Свойство общего реквизита-разделителя – Разделение пользователей 1С – позволяет установить доступность списка пользователей в зависимости от использования разделителей.

Если разделитель включен для пользователя, то он будет виден в списке пользователей в режиме 1С Предприятие – иначе не виден.

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

Свойство общего реквизита-разделителя – Разделение аутентификации 1С – позволяет заводить пользователей с одинаковыми именами пользователя для разных частей базы.

Условное разделение 1С

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

Чтобы включить условное разделение 1С – нужно указать в свойстве общего реквизита-разделителя – Условное разделение 1С – объект 1С, который будет отвечать за определение факта включения разделения 1С.

Возможно использовать константу с типом булево или реквизит справочника с типом булево.

Важно – у этой константы/этого справочника нужно отключить использование (выбрать Не использовать) в составе разделителей, только тогда его можно будет выбрать.

Источник

Разделение данных

Механизм разделения данных позволяет хранить данные нескольких независимых организаций в одной информационной базе.

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

Допустим в конфигурации существует общий реквизит «Организация». Это значит (упрощённо), что у каждого справочника, документа или другого объекта конфигурации также будет существовать реквизит «Организация».

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Теперь укажем, что общий реквизит «Организация» будет являться разделителем.

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

В этом случае пользователь имеет доступ к «своей» области данных и к области неразделённых данных, которая является общей для всех пользователей.

Источник

Разделяй и обновляй! Экономим место, время и ресурсы сервера 1С

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Хватит это терпеть!

При работе с 1С, обновлять приходится многое: конфигурацию, КЛАДР, списки банков (лишают их лицензий, знаете ли), курсы валют (ох уж эти экономически нестабильные евро и доллары), списки пользователей, обработки, версию платформы. На хорошем железе обновление КЛАДРа со всеми регионами для одной базы занимает около получаса. Обновление конфигурации занимает от 10 минут до нескольких часов (при накатывании пачкой).

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

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

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

Базовая сегрегация

Для начала, нужно определить признак, по которому вы будете разделять базу. Разделитель может иметь любой тип данных, мы используем строку длинной 10 символов: ИНН организации. Главное — название разделителя (общего реквизита) не должно совпадать с уже существующими объектами конфигурации, то есть его нельзя назвать, например, «Организации», так как уже есть такой справочник. Мы назвали разделитель «Группа компаний».

После этого берём вашу типовую конфигурацию с пустой базой, заходим в конфигуратор и открываем раздел «Общие реквизиты». Добавляем общий реквизит и меняем значение «Разделение данных» на «Разделять»:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

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

1000 и 1 чекбокс

Теперь нужно определить, какая часть данных будет являться общей для всех областей. Всё это настраивается через конфигуратор. В свойствах общего реквизита, который мы только что создали, есть пункт «Состав» открывающий небольшой список из 800 параметров:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Подбор параметров оставляем на ваше благоразумие, усмотрение и окружение. Вот наш вариант (аккуратнее, там 20 000 пикселей).

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

Выгружаем данные из текущих баз

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Загружаем данные в разделённую базу

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Чтобы упростить задачу, мы осуществляем выгрузки массово, предварительно запуская чуть исправленную стандартную обработку через командную строку (/Execute c:\выгрузка.epf). Затем вручную загружаем полученные файлы в разделённую базу.

Как потратить больше времени, чтобы потратить меньше времени

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

Бухгалтеры Кнопки не замечают перехода организаций из обычной базы в разделённую, для них процесс проходит безболезненно. Попа горит только у админов:)

Побочные эффекты: экономия места 1 к 20, косвенное увеличение скорости работы — неоценимо. В абсолютных цифрах: 50 организаций занимают 2 Гб пространства в SQL, тогда как одна отдельная база занимает от 800 Мб.

Источник

Разделение данных в БСП

Разделение данных в БСП

Механизм разделения данных – относительно новая функциональная особенность 1С, отнесенная к облачным технологиям. После появления функционала компанией 1С была доработана БСП. Эти же доработки вошли в состав основанных на БСП типовые конфигурации, например, УНФ и УТ11.

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

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

В БСП предусмотрены два разделителя учета: ОбластьДанныхОсновныеДанные и ОбластьДанныхВспомогательныеДанные. Загадкой осталось, почему эти 2 разделителя ссылаются на одни и те же параметры сеанса: ОбластьДанныхЗначение, ОбластьДанныхИспользование.

Включение механизма

Если ваша самописная конфигурация основана на БСП, то, скорее всего, перед включением необходимо внедрить загадочную библиотеку «1С:Библиотека технологии сервиса». Странно, что даже Гугл не знает о таком продукте 1С. А в типовых конфигурациях процедуры ПроверитьВозможностьИспользованияКонфигурацииВМоделиСервиса в модуле РаботаВМоделиСервиса не существует. Скорее всего, найти недостающие части из этой библиотеки можно в типовых конфигурациях, выполненных на основе БСП. В частности, одна из подсистем называется СтандартныеПодсистемы > РаботаВМоделиСервиса > ВыгрузкаЗагрузкаДанных.

Механизм разделения данных включается через установку константы ИспользоватьРазделениеПоОбластямДанных. Можно установить через пункт меню Все функции.

Создание пользователей области данных

Этот пункт не обязателен, если используется вход в область данных через форму. В режиме конфигуратора создаются пользователи. Один пользователь с административными правами должен иметь во вкладке Разделение данных все неустановленные разделители данных. Для других пользователей во вкладке Разделение данных должен быть установлен разделитель Область данных основные данные. Этот разделитель должен быть явно указан в командной строке при запуске 1С.

Запуск 1С с параметром командной строки

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

1С можно запустить сразу в режиме разделения данных. Предусмотрен параметр командной строки /Z. Например, параметр «/Z-,+1» указывает, что 1С запускается со значением Области данных основные данные равным 1, разделитель Область данных вспомогательные данные не установлен.

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

Далее при запуске возникают несколько ошибок среди них: «Разделенным пользователям не может быть назначена роль Администратор системы», «Разделенным пользователям не может быть назначена роль Запуск толстого клиента».

Пользователь не найден в справочнике Пользователи – проблему победить не удалось. В традиционном сценарии Пользователь регистрируется при первом входе. Подозреваю, что при разделении данных Пользователи создаются через другое приложение 1C Fresh.

Заполнить регистр сведений Области данных

Для каждой области нужно заполнить запись в регистре сведений Области Данных, присвоив областям номера и статус «Используется». Обработки могут проверять наличие записей в этом регистре перед началом выполнения.

Вход в область данных

Администрирование – Сервис – Вход в область данных (ОбщаяФорма.ВходВОбластьДанных)

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

Выгрузка данных из области

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

Данные сериализуются конфигурацией в XML-формат и запаковываются в ZIP. То есть архивирование происходит не средствами 1С-конфигуратора, как традиционная выгрузка.

Загрузить данные в область

Для появления в Администрирование-Сервис нужно через Конфигуратор в составе подсистемы НастройкаИАдминистрирование установить видимость.

Данные загружаются в выбранную область. До этого они должны быть выгружены в XML-формат.

Выводы

Не удалось запустить систему через задание разделителей в командной строке. Система отказалась работать из-за незарегистрированного пользователя в справочнике Пользователи. Добраться до справочника не получилось по той причине, что система не пускает пользователей с административными правами. Думаю, что этот сценарий предусматривает обязательную связь с 1CFresh.

Опыты с входами в разные области, выгрузкой и загрузкой областей были удачными. Неудача постигла при попытке выполнить запрос получения всех организаций для всех областей данных. Ошибка: «Нельзя использовать таблицу без указания всех разделителей с независимым использованием разделяемых данных». Отчет работает по одной области, если осуществить вход в какую-нибудь область.

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

Интересно было бы узнать о хитрой задумке авторов БСП относительно общих параметров сеансов для двух разделителей, если вызов будет с параметрами: «/Z-,+1», «/Z+1,+1» и «/Z+1,-».

Источник

Оптимизация 1С – Режим разделения итогов

Чем интересна эта статья?

• В статье рассматривается предназначение режима разделения итогов
• Разбирается поведение системы «1С:Предприятие 8» при параллельной работе большого количества пользователей
• Показываются минусы режима разделения итогов
• Выдаются рекомендации по корректному использованию разделения итогов регистра

Платформа «1С:Предприятие 8» содержит возможности и механизмы, о работе которых не все имеют полное представление, как и о способах их эффективного использования. Таковым является режим разделения итогов.

Механизм разделения итогов выполняет весьма важную и полезную функцию: его использование делает возможным осуществлять параллельную запись в регистры бухгалтерии и регистры накопления.

Покажем эффективность данного режима с помощью примера. Для этого рассмотрим ситуацию до и после включения режима разделения итогов.

До включения режима разделения итогов

Мы имеем в наличии два одинаковых документа с номерами 001 и 002:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Оба документа осуществляют движение по регистру накопления. Контроля остатков нет. Структура регистра накопления:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Вот что происходит в системе:

Включение режима разделения итогов

Включение данного режима выполняется достаточно просто:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

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

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Что происходит после включения режима разделения итогов?

В таблице итогов регистра накопления/бухгалтерии появляется новый столбец «Разделитель». В самой СУБД он назван «Splitter».

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

При этом таблица движений остается неизменной, разделителем в ней выступает «Регистратор». Изменение мы видим в таблице итогов. Это поле заполняется только в том случае, когда две (или более) транзакции пытаются изменить одну строку в таблице итогов. При возникновении такого случая поле «Разделитель» хранит разные значения для каждой из транзакций. Такая реализация режима разделения итогов делает возможным выполнять параллельную запись всем транзакциям. В нашем примере с двумя документами при включении режима наблюдается следующее:

Что такое разделитель в 1с. Смотреть фото Что такое разделитель в 1с. Смотреть картинку Что такое разделитель в 1с. Картинка про Что такое разделитель в 1с. Фото Что такое разделитель в 1с

Оба наших документа выполнили параллельную запись своих данных благодаря новому полю «Разделитель». В результате не возникают ожидания при блокировках и повышена параллельность работы пользователей.

Минусы режима разделения итогов

При включении данного режима увеличивается размер таблицы итогов регистра из-за того, что было добавлено новое поле, и появляется несколько строк по набору измерений взамен одной. При получении остатков по регистру возникает потребность свертки данных, что приводит к затратам времени, пусть и незначительным. В нашем случае с двумя документами для получения остатка товара «Стол» по складу «Основной» возникает необходимость сложения двух строк для получения итогового значения «7». При выключенном разделителе группировка строк (сложение) не требуется.

Когда следует использовать режим разделения итогов?

Для этого необходимо выполнить условия:

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

Бурмистров Андрей

Другие полезные статьи и видео смотрите на нашем сайте: http://

Источник

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *