Мастер создания копии информационной базы для отчетности

Публикация № 1285563

Администрирование - Производительность и оптимизация (HighLoad)

отчетность копия базы OLAP аналитическая нагрузка оптимизация

Прототип инструмента для подготовки реплики в режиме только для чтения к использованию. Позволяет использовать "read-only" реплики как обычные информационные базы 1С.

Небольшое введение

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

С тех пор по этой теме появилось несколько интересных новостей:

  • Механизм копий баз данных от фирмы "1С" (только для лицензии КОРП), который также позволяет перенести часть нагрузки на дополнительную реплику баз данных средствами платформы. О новой функциональности уже была публикация с дополнительными ссылками на Инфостарт.
  • Рассмотренные в статье некоторые способы работы с "read-only" репликами перестали работать, т.к. запуск клиентского приложения теперь всегда проверяет наличие этого ограничения. Проверено на 8.3.17 - толстый клиент в обычном приложении теперь запустить нельзя.
 
 Ошибки при попытке работы с "read-only" репликами баз данных

До появления новых "фишек" от фирмы "1С", функционал распределения нагрузки (как в автоматическом, так и в ручном режиме разработчиками) был доступен и ранее. Коллеги из Softpoint создали потрясающий продукт DataCluster для SQL Server, который отлично справляется с этими задачами. Если эта тема для Вас актуальна и важна, то пройти мимо их продукта было бы не правильно.

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

  • Можно опубликовать веб-сервисы и HTTP-сервисы информационной базы, связанной с этой репликой БД и обращаться к ней через них. Но все обращения придется реализовывать разработчикам. И не факт, что этот способ не перестанет работать в будущем.
  • Можно обращаться к копии базы через внешние источники данных. Также потребует значительных трудозатрат в разработке.

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

Как создать копию

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

Мы не будем рассматривать каким лучше способом создавать копию базы для отчетности. Частично эту тему затрагивали в предыдущей публикации. Кратко напомню, что есть несколько путей (все будет описываться для SQL Server, т.к. инструмент сейчас работает только с этой СУБД):

  • Простое бэкапирование и восстановление - медленно, дешево, сердито, неэффективно. Но если подходит, то нет смысла пробовать что-то другое.
  • Доставка логов транзакций - замечательная возможность SQL Server для создания "почти в реальном времени" копии базы данных. С определенными настройками позволяет создавать копию базы данных в режиме "только для чтения". Есть ограничения по обновлению, т.к. потребуется "отключение" сессий и связанные с этим проблемы.
  • Репликация. SQL Server позволяет использовать репликацию данных разных видов. На самом деле штатно использовать репликацию к базам данных 1С практически невозможно и нужны некоторые стероиды для этого.
  • AlwaysOn - группы доступности AlwaysOn позволяют создавать копии базы данных на других инстансах практически в реальном времени. О них мы также говорили в предыдущей публикации. Также там были ссылки по настройке.
  • Моментальные снимки - еще один интересный механизм SQL Server, но с огромными ограничениями для основной базы данных. Для использования на продакшене нужно любить рисковать и закрывать глаза на очевидные проблемы :)

Зеркалирование для этих целей не подойдет, т.к. копия базы недоступна для использования. Да и не для этого оно создавалось, а для отказоустойчивости.

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

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

Назначение и возможности

Наконец-то мы подобрались к инструменту. Главное его назначение - это помочь использовать реплику "только для чтения" как обычную информационную базу 1С. То есть к базе данных в режиме "read-only" можно будет подключить информационную базу 1С в кластере и работать с ней привычным образом:

  • Запускать клиентские приложения (тонкий и толстый клиент, обычное и управляемое приложение)
  • Формировать отчеты, печатные формы и т.д.
  • Для использования клиентского приложения чаще всего не нужны никакие доработки конфигураций. По крайней мере типовых конфигураций, про остальные надо смотреть по ситуации.
  • Часть функционала будет работать как обычно, не смотря на то, что база только для чтения:
    • Будут сохраняться настройки форм
    • Пользовательские настройки отчетов (НЕ ВАРИАНТОВ ОТЧЕТОВ!)
    • Можно открывать внешние отчеты и обработки
    • История работы пользователей будет работать как обычно
    • И многое другое.
  • Можно даже выполнять некоторые операции изменения данных, но при этом по факту в базе ничего не изменится:
    • Запись элементов справочников
    • Запись регистров
    • Некоторые служебные операции

В общем, у Вас будет информационная база, работающая с копией рабочей базы в режиме "только для чтения" с минимальными неудобствами. Минимальными для текущей ситуации :). Вот пример работы с такой базой (Демобаза Управление торговлей 11), и когда можно все-таки нарваться на ошибки в работе.

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

Именно создать возможность использования копии базы в режиме "только для чтения" и является целью этой разработки.

Основными возможностями инструмента являются:

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

Требования к работе:

  • Платформа 1С версии 8.3.* (на 8.2 тоже будет работать, но потребуются адаптации скриптов).
  • СУБД Microsoft SQL Server 2008 и выше. Основная работа тестировалась на версии SQL Server 2014.
  • Служебная база данных создается на том же инстансе, на котором находится реплика только для чтения. НО возможно и на другом сервере через, например, создание связанных серверов. Все это уже другая история.
  • Возможность подключения через ADO c сервера 1С к экземпляру SQL Server с правами к копии базы данных.
  • Только управляемые формы. Для использования в обычном приложении используйте известные обходные пути.

Далее кратко опишем принцип работы.

Принцип работы

Сам принцип работы очень простой. Допустим, у нас есть два сервера: SQL-1 и SQL-2. На SQL-1 у нас основная база, в ней работают пользователи и все хорошо. На SQL-2 есть копия базы, сформированная через AlwaysOn и находящаяся в режиме "только для чтения". Обе базы имеют имя "ut_11_always_on". Просто для примера.

Напрямую подключить реплику базы "ut_11_always_on" с сервера SQL-2 в кластер 1С мы не можем. Точнее можем, но запускать клиентские приложения в обычном виде не сможем (ошибки см. в выше). Но можно пойти другим путем:

  1. На сервере SQL-2 создать служебную базу "ut_11_always_on_fake" вручную с пустым составом таблиц.
  2. Далее создать представления (view) для всех таблиц базы "ut_11_always_on". Представления будут созданы в служебной базе "ut_11_always_on_fake", но запросы будут выполняться к таблицам базы "ut_11_always_on".
  3. При этом часть служебных таблиц информационной базы перенести все же не представлениями, а обычными таблицами и скопировать в них данные из реплики. К этим системным таблицам, например, относятся:
    • V8Users
    • DBSchema
    • Config
    • ConfigSave
    • _UsersWorkHistory
    • И другие.
  4. При подключении информационной базы в кластере к этой служебной базе данных платформа 1С по факту будет работать с базой, которая не находится в режиме только для чтения. А системные таблицы и вовсе могут изменяться. Та же история работы пользователя спокойно будет записываться в таблицу "_UsersWorkHistory".
  5. Чтобы избежать ошибок с операциями INSERT, UPDATE, DELETE к нашей служебной базе мы создадим триггеры для представлений, которые позволят эти операции максимально игнорировать.
  6. Там где игнорировать нельзя - будет выдано исключение, но таких операций меньшинство и их легко избегать. В том числе и настройками прав на уровне 1С.
  7. Если системные таблицы изменяются в реплике, то их обновляем с помощью скриптов и в служебной базе (например, если мы обновим конфигурацию, добавим расширение или изменим права доступа пользователей - то один запуск скрипта и все данные в таблицах обновлены).

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

Все эти принципы работы использовались в этой разработке, а также учтены некоторые нюансы использования.

Примеры использования

Рассмотрим очень простой пример. Как и ранее, пусть будут два сервера SRV-SQL-01-VM и SRV-SQL-02-VM. На SRV-SQL-02-VM есть копия базы, сформированная через AlwaysOn и находящаяся в режиме "только для чтения". Обе базы имеют имя "ut_11_always_on". Вот как это выглядит на стороне СУБД.

В основной базе запускаем инструмент и на первом этапе настраиваем подключение. Все параметры индивидуальны. В том числе и пароль не обязательно у Вас должен быть как 16 звездочек :).

Далее определяемся с именем служебной базы данных, через которую мы будем работать с репликой основной БД. Пусть для разнообразия это будет "ut_11_always_on_writetable_fake_ver2". Почему? Да просто так :). Установим это имя в настройках адаптированной базы и нажмем "Заполнить настройки объектов базы по умолчанию".

Эти настройки используются для формирования скриптов создания объектов служебной базы.

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

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

Именно эту базу мы можем подключить в кластере 1С и использовать ее в обычном режиме. В самом начале публикации мы уже видели как это смотрится в клиентском приложении. Посмотрим еще раз: сверху основная база, снизу "read-only" копия.

Профит!

Вместо заключения

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

  • Либо с помощью инструкций пользователям по работе с базой для отчетов.
  • Либо с помощью изменения системы прав доступа в конфигурации.

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

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

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

  • Расширение настроек объектов служебной базы.
  • Более умное обновление объектов базы.
  • Автоматизация обновления после изменения основной базы или реплики.
  • Добавлена поддержка PostgreSQL.
  • Значительно улучшить удобства работы со служебной базой и инструменты автоматизации.
  • И многое другое.

Если будет интерес сообщества, то инструмент будет развиваться. Также как это постепенно делается с последними выпущенными обновлениями других разработок:

А Вы бы использовали такой подход? Или знаете другие более простые альтернативы?

Другие ссылки

Авторские разработки

 
 Другие разработки (бесплатные и за $m)

Скачать файлы

Наименование Файл Версия Размер
Мастер создания копии информационной базы для отчетности:

.epf 33,35Kb
28.08.20
1
.epf 1.0.0.0 33,35Kb 1 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. starik-2005 2202 28.08.20 17:31 Сейчас в теме
Мы делали в конторе прям вот так, как нельзя, но если очень надо, то можно ))) Выпилили все попытки записать что-то в базу при создании сеанса для web-сервиса. В итоге любой отчет можно было выполнить как в текущей базе, так и в реплике (снапшот 300 ГБ базы делался менее 10 сек трижды в день и туда мы запускали всех озверелых бухов и это ОЧЕНЬ СИЛЬНО сократило загрузку SQL-сервера).

В общем достаточно было добавить в модуль любого (у нас все отчеты были на СКД, но многие из них компоновались вручную - отчеты для сравнения разных баз, например) отчет ПЯТЬ строк кода, и он появлялся в списке отчетов, которые можно было бы выполнять в реплике. Более того, даже роботы, которые формировали отчет, формировали его в реплике, если он был прописан в настройке, и даже не догадывались об этом. Более того, расшифровки прекрасно работали и тоже формировались в реплике. И всего-то пять строк кода на модуль любого отчета и никаких строк кода в форме отчета, его менеджере или даже в общей форме - только модуль )))
YPermitin; +1 Ответить
2. YPermitin 9723 28.08.20 17:33 Сейчас в теме
3. starik-2005 2202 28.08.20 17:37 Сейчас в теме
(2) обычным мелкоскуловским снапшотом.
4. YPermitin 9723 28.08.20 17:57 Сейчас в теме
(3) я помню, что мы об этом год назад говорили.

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

Плюс то что это на том же инстансе со всеми вытекающими и т.д.

Но если помогло, то круть :)
5. starik-2005 2202 28.08.20 21:19 Сейчас в теме
(4)
А если все, что-то из написаного в разделе "Ограничения по базе данных-источнику" по ссылке мешает их использовать, то это уже проблема.
Сдается мне, что в этом разделе мало что можно применить к 1С. А сам моментальный снимок - это версия состояния БД, в которой хранятся лишь измененные в основном инстансе страницы. Если в БД минимум изменений, то для снапшота нужно минимум дискового пространства. И чем чаще делается снапшот, тем меньше дисковой памяти на его поддержание уходит. Ну и никаких блокировок при чтении.
6. YPermitin 9723 29.08.20 00:47 Сейчас в теме
(5) На тех системах, где производительность была важна, я бы не смог применить снимки.

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

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

>> 2. Производительность снижается по причине увеличения количества операций ввода-вывода
Тут присутствует негативное влияние. Конечно операций записи всегда намного меньше, чем чтений (по крайней мере для систем 1С), но при массовых миграциях данных, интеграциях и т.д. это может быть заметно. Ситуация чем-то напоминает влияние сжатия данных, но влияет оно только в части записи.

Еще важное ограничение:
>> Моментальный снимок базы данных должен создаваться и оставаться на том же экземпляре сервера, что и база данных-источник.
Обычно копию базы для OLAP-нагрузок создают на отдельном сервере. Обосновывается это тем, что один инстанс имеет единый буфферный кэш. Тяжелые аналитические отчеты и их запросы этот кэш быстро вымывают, что влияет на скорость выполнения операций транзакционной базы. Влияет негативно. Если мы выносим отчетную базу на отдельный сервер, то это влияние исключается. Можно посмотреть показатель производительности "SQLServer:Buffer Manager\Page life expectancy". Если страницы не задерживаются в кэше, то значит есть тяжелые запросы.
Я это к тому, что если основная база и снапшот продолжают располагаться на одном сервере, то проблемы вымывания кэша никак не решаются.
Плюс отдельный инстанс позволяет для отчетной базы изменить те же настройки параллелизма, что даст отчетам новую жизнь.
Снапшоты плюсов в этой части не дают.

Поэтому я вижу использование там, где:
1. Система не находится под постоянной нагрузкой в части изменения данных.
2. Простейшая стратегия бэкапирования.
3. Нет цели разделения оперативной и отчетной нагрузки.
4. Есть цель решить проблему избыточных блокировок СУБД при чтении. Но это уже не так актуально с появлением RCSI и управляемых блокировок.

В общем, как-то так.
Unknown31; Lansi; +2 Ответить
7. starik-2005 2202 29.08.20 10:48 Сейчас в теме
(6)
Поэтому я вижу использование там, где:
1. Система не находится под постоянной нагрузкой в части изменения данных.

У нас как раз было более 100 запросов к системе в секунду периодически (множество запросов из веб-приложения). До того, как стали использовать отчетность из снапшоте, все очень сильно проседало по производительности.

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

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

Но да, снапшот не забекапишь - да и кому такая ересь в голову прийти может?

3. Нет цели разделения оперативной и отчетной нагрузки.

Вот ровно такая цель и есть, когда оперативная и отчетная нагрузка разделяется. На оперативную нагрузку система тратит теперь меньше ресурсов, т.к. нет мешающей ей нагрузки множественного чтения. Еще раз скажу: количество операций ввода-вывода остается в пределах сервера примерно одинаковым, но характер нагрузки для оперативной (OLTP) базы меняется.

4. Есть цель решить проблему избыточных блокировок СУБД при чтении. Но это уже не так актуально с появлением RCSI и управляемых блокировок.


Факт остается фактом: включили снапшот изолейшн - стало чуть лучше, но нагрузка на сервер осталась очень высокой - из-за механизмов обеспечения консистентности СУБД. Вынесли отчеты в снапшот - нагрузка УПАЛА В ДВА РАЗА.

Юрий, Вы на проблему не как DBA посмотрите, а как программист, который бы делал СУБД. Что нужно для того, чтобы обеспечить параллельность работы? Чтобы между разными сеансами не было чтения и записи одних и тех же данных в один и тот же момент, чтобы данные были изолированы друг от друга при работе с ними из разных потоков для одной базы данных. В итоге наворачивается вокруг этого сотни семафоров и мьютексов, которые и тратят достаточно большое количество ресурсов, ибо многие реализации "мгновенных" операций (т.е. без отработки операций по прерыванию таймера с возвратом спящему сеансу управления) делаются "бесконечным" циклом (вон постгресовцы писали в блоге, что переписали с С на |ссемблер мьютексы - и "все стало летать" - относительно, конечно).

И вот эта нагрузка - она очень влияет. Выделяешь отдельно инстанс - получаешь прибавку к быстродействию. Да, на отчетные данные тратится другая память, а не та, которая тратится на оперативные данные. Но она просто не тратится в оперативном инстансе, а тратится в инстансе отчетном. Если у нас была бы одна база, то да, память бы потратилась бы в оперативном инстансе и в нем бы производительность опять же уперлась бы в блокировки.

НО! Основная замута в том, что многие товарищи покупают себе память - она сейчас сравнительно не дорогая, - но не получают от этой памяти никаких преимуществ. Она просто выдирается мелкософтовским скулом до порога ограничений, а когда ее вдруг перестает хватать, то часть информации скул теряет, освобождая для новых пачек данных (был, кстати, мастеркласс на эту тему на митапе про постгрес и скул). Вот у тебя много памяти, вот ты и пишешь, и читаешь, и читаешь много. Вот начал ты много читать - скулу не стало хватать памяти для поддержки оперативного кеша с данными об остатках взаиморасчетов и товаров, и он просто освободил эти данные для того, чтобы загрузить туда данные отчета - все эти миллионы временных таблиц, сворачиваемых в финальном блоке запроса, как любят это делать 1С-неги, получившие степень "спеца по платформе". В итоге у тебя при следующей транзакции происходит чтение оперативных данных с диска, а для их размещения в памяти еще что-нибудь нужное освобождается в этой конкретной базе. Когда все в этой базе закончится, начнется освобождение того, что было поначитано в другой базе. Ну и т.д. А разделил инстанс, и большую часть времени отчетная база освобождает себе данные себя самой от предыдущих отчетов, а не данные оперативной базы, которые этой оперативной базе понадобились бы. Ведь внутри одного инстанса у скула нет приоритета, какие данные важнее, а какие можно освободить - он просто грохает, что более старое, и все.
8. YPermitin 9723 29.08.20 11:39 Сейчас в теме
(7) как и год назад Вы проигнорировали все факты что я написал и просто сказали, что у Вас все хорошо :) Только оьщие слова.

Бессмысленое обсуждение получилось. Вы либо меня троллите, либо просто игнорируете:)))

Продолжать смысла нет.
9. starik-2005 2202 29.08.20 21:11 Сейчас в теме
(8)
Продолжать смысла нет.
Так и Вы все мои аргументы игнорируете, даже не пытаясь понять.

Если сервер на одном инстансе и отчеты собирает, и транзакции пишет, то если инстансы разделить, то количество операций ввода-выводе не поменяется. Я, например, не понимаю, с чем тут можно спорить? Нет блокировок - нет тормозов. А бэкапы - ну кто ж снапшот бэкапит, а для бэкапа транзакций основной базы нет никаких ограничений, только при восстановлении снапшот нужно будет прибить, а это не проблема совершенно.
Оставьте свое сообщение

См. также

Легкое и гибкое управление списком доступных баз 1С у пользователей Промо

Стартеры 1С Сервисные утилиты Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    15552    16    RomikR    9    

Шаблон обработки для выполнения по областям данных

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

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

24.09.2020    542    0    pallid    0    

Автозавершение работы пользователей

Администрирование СУБД v8 v8::БУ БП3.0 БАУ Россия Абонемент ($m)

Расширение выбрасывает активных пользователей из БД в заданный промежуток времени.

1 стартмани

23.09.2020    453    2    maksa2005    0    

Значения по умолчанию для пользователей (Расширение)

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

При заполнении документов и справочников пользователи часто сталкиваются с необходимостью ввода одних и тех же реквизитов. Заполнение в документах некоторых из них, таких как: Организация, Склад и т.п. - выполняется реализованным в 1С механизмом подстановки значения из последних 3-5 введенных документов. Если же вы хотите заполнять все реквизиты шапки (и даты, и флажки, и другие поля, включая дополнительные реквизиты), то вам поможет данный механизм.

2 стартмани

21.09.2020    3779    18    sapervodichka    26    

Многопоточная обработка данных Промо

Производительность и оптимизация (HighLoad) Администрирование данных 1С v8 v8::УФ 1cv8.cf Абонемент ($m)

Конфигурация "Универсальные механизмы: пакеты данных". Набор инструментов для быстрой организации отказоустойчивой многопоточной обработки данных.

1 стартмани

23.11.2018    20581    59    _ASZ_    15    

Подключение к другой базе по OLE с выбором базы для 8.3 (через COMОбъект("V83.Application"))

Администрирование СУБД v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

17.08.2020    959    3    bayce    2    

Размер таблиц 1С в базе данных MS SQL

Статистика базы данных Администрирование СУБД v8 Абонемент ($m)

Данная обработка позволяет получить структуру БД 1С и размер таблиц без использования механизма ADODB соединения с БД MSSQL.

1 стартмани

14.08.2020    1212    6    donpadlo    4    

Оптимизация пакетной печати из 1С в MS Word

Пакетная печать Производительность и оптимизация (HighLoad) MS Office БСП (Библиотека стандартных подсистем) v8 ЗУП3.x Абонемент ($m)

Опыт оптимизации пакетной печати из 1С ЗУП 3.1 в MS Word. Об осторожности использования БСП. Внешние обработки: до и после оптимизации.

1 стартмани

14.08.2020    1185    1    info1i    5    

Версионирование объектов. Сжатие регистра "ВерсииОбъектов" Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

Cжимаем версии объектов в регистре сведений "ВерсииОбъектов". Экономия занимаемого версиями объектов объема более 50% !!!

1 стартмани

30.12.2014    27435    24    ZLENKO    14    

Диагностика контекста выполнения (внешняя компонента)

Разработка внешних компонент v8 1cv8.cf Абонемент ($m)

Небольшая экспериментальная внешняя компонента для получения дополнительной информации о контексте выполнения.

1 стартмани

24.07.2020    3783    2    YPermitin    14    

Копирование базы без конфигуратора

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Продолжаем нарушать правила, рвать шаблоны и делать невозможное!

1 стартмани

15.07.2020    3690    7    m-rv    36    

Переход с ERP на КА 2 или УТ 11

Администрирование СУБД Обмен данными 1С Перенос данных из 1C8 в 1C8 v8 УТ11 КА2 УУ Абонемент ($m)

Как известно сейчас 1С реализует программные продукты «1С:ERP Управление предприятием 2», «1С:Комплексная автоматизация 2» и «1С:Управление торговлей 11» одним блоком. Именно благодаря этому подходу на текущий момент во всех решениях есть переход на решения более высокого уровня. Ну как говорится если можно вперед, значит можно и назад. Хотя данный подход нигде и не задокументирован.

1 стартмани

13.07.2020    2166    1    user923728    0    

Многопоточное тестирование производительности сервера 1С - СУБД Промо

Сервисные утилиты Статистика базы данных Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

12.02.2013    84859    285    Fragster    179    

Сравнение пометок удаления в текущей и архивной копии базы

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

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

2 стартмани

13.07.2020    1554    1    nurligaianov    0    

Подбор последовательности обновления

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

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

1 стартмани

08.07.2020    1663    0    Dmitr033    9    

Система контроля действий пользователя / Employee Monitoring Software (СКДП, EMS)

Администрирование СУБД v8 ERP2 Россия Абонемент ($m)

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

1 стартмани

29.06.2020    2572    3    PerlAmutor    0    

Многопоточный МикроСервер для файловой базы управляемого приложения 1c Промо

Сервисные утилиты Производительность и оптимизация (HighLoad) v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.12.2013    38196    48    Chai Nic    57    

Получение списка необновлённых баз напрямую из SQL

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

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

1 стартмани

01.06.2020    1240    1    cvsbook    0    

Обслуживание базы данных на PostgreSQL

Администрирование СУБД v8 Россия Абонемент ($m)

Предысторией создания данного продукта был перевод одного из своих клиентов на PostgreSQL. Серверная платформа не позволяла установить там pgAdmin. А скриптами и планировщиками пользоваться неудобно. Поэтому пришла идея реализовать обслуживание баз данных PostgreSQL средствами 1С.

1 стартмани

27.05.2020    2728    7    andrewbc    9    

Экспорт журнала регистрации. Набор инструментов (приложения + исходный код)

Прочие инструменты разработчика Журнал регистрации Абонемент ($m)

Набор инструментов для экспорта данных журнала регистрации во внешние хранилища для Windows и Linux (SQL Server, PostgreSQL, MySQL). Готовые приложения и исходный код.

10 стартмани

26.05.2020    4497    15    YPermitin    0    

Просмотр и анализ журнала регистрации (отчет на СКД) Промо

Журнал регистрации v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

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

5 стартмани

25.07.2013    64146    573    YPermitin    52    

Включение отладки на сервере

Администрирование СУБД v8 Абонемент ($m)

Два простых VBS скрипта для автоматического включения отладки на сервере для x32 и x64 систем.

1 стартмани

20.05.2020    1497    2    Andy_NTG    0    

Оптимизация и работа с системными представлениями

Администрирование СУБД v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка сделана для понимания работы системных представлений. В принципе, вы можете написать целую систему мониторинга ресурсов. Основа для этого, как раз, и дана в этой обработке. Внешний вид особо не шлифовался. Считаю, что это не так критично. Использовал обращение только к MS SQL, но при желании, такое же можно написать и для Postgres, и для Oracle. Тестировал на платформе 1С 8.2.19.90.

1 стартмани

12.05.2020    1602    1    darkdan77    1    

Ошибка "Для одного ссылочного кода существует более одной таблицы в базе данных" - как проще исправить

Администрирование СУБД Тестирование и исправление v8 v8::УФ 1cv8.cf Абонемент ($m)

При обновлении платформы 1с 8.3.6.2100 на платформу 8.3.16.224 под УПП 1.3.138.1 возникла ошибка "Для одного ссылочного кода существует более одной таблицы в базе данных...". В интернете много есть информации по этой проблеме, в частности в публикации https://infostart.ru/public/1126277/ приведено ее решение, но оно довольно громоздкое. Есть вариант более простой

2 стартмани

28.04.2020    2720    2    Ион    3    

Методика упрощения поддержки конфигураций. Переопределение и вызов обработчиков событий для УФ 1С 8.2-8.3 Промо

Производительность и оптимизация (HighLoad) Практика программирования v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

10.02.2013    54237    27    pbazeliuk    40    

Проверка подписки ИТС

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Проверка подписки ИТС по регистрационным номерам, логинам. Практическое применение API по интеграции с Порталом 1С:ИТС.

1 стартмани

17.03.2020    2498    7    kostik_love    0    

История работы пользователей (отчет на СКД)

Администрирование СУБД v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Отчет для просмотра истории работы пользователей (СКД, просмотр для любого пользователя).

2 стартмани

14.03.2020    5786    56    YPermitin    26    

Ограничение доступа в базу по количеству сеансов или дате

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Расширение позволяет ограничить доступ в базу по количеству активных сеансов или дате. Не затрагивает объекты типовой конфигурации. Сделано и протестировано на БП 8.3 версий 3.0.65.84 и выше. Требует платформу не ниже 8.3.16. Представлены версии расширения для конфигураций с режимом совместимости 8.3.12, 8.3.14 и 8.3.15.

2 стартмани

12.03.2020    1993    2    folo    0    

И снова о скорости работы 1с 8.х + тест от Гилева (конфигурация TPС_1C_GILV_A) + как Выбрать сервер для 1С 8.х Промо

Производительность и оптимизация (HighLoad) v8 1cv8.cf Россия Абонемент ($m)

Предыстория: Есть в конторе, где я работаю, пара практически ОДИНАКОВЫХ по железу сервера... так вот заметили что на одном из них 1С 8.2 работает значительно быстрей что в Клиент-Серверном, что в файловом варианте... и что именно удивило так это что медленней работал сервер с большим количеством Оперативной памяти + RAID10 на SSD. Проводили много тестов на работу дисковой системы + различные тесты SQL - ВЫВОД: ничего непонятно где тормоза. И вот попала ко мне конфигурация 1С для оценки производительности 1С от Гилева http://infostart.ru/public/57204/ Подробности в Описании...

2 стартмани

13.08.2012    392779    189    sanfoto    2558    

Информация о пользователях информационной базы (отчет на СКД)

Администрирование данных 1С Роли и права v8 v8::Права v8::СКД 1cv8.cf Абонемент ($m)

Два простых отчета по пользователям информационной базы и информации по ним.

1 стартмани

02.03.2020    5529    19    YPermitin    8    

Технические проверки данных регистров бухгалтерии (отчет на СКД)

Администрирование данных 1С Бухгалтерский учет Механизмы бухгалтерского учета v8::БУ 1cv8.cf БУ Абонемент ($m)

Отчет для технических проверок данных бухгалтерских регистров.

5 стартмани

25.02.2020    5147    14    YPermitin    2    

Простая параллельная обработка данных

Производительность и оптимизация (HighLoad) Прочие инструменты разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Предлагаю способ быстрой параллельной обработки "неких" данных. Методика проста как дважды два. Предварительно подготовленная обработка запускается вручную в нескольких сеансах, и каждый сеанс занимается обработкой своей части (случайного диапазона). Может пригодиться для ускоренной обработки данных. К примеру, необходимо заполнить реквизит большого справочника, заполнение в один поток идёт долго, а сроки поджимают.

1 стартмани

10.02.2020    3904    1    Amadeus007    8    

Автоформатирование кода Промо

Сервисные утилиты Обработки Чистка базы Справки Производительность и оптимизация (HighLoad) Инструментарий разработчика Практика программирования Универсальные обработки Решение задач на 1С:Специалист Математика и алгоритмы Администрирование данных 1С Разработка Тестирование и исправление Стартеры 1С v8 1cv8.cf Абонемент ($m)

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

1 стартмани

19.12.2012    40217    46    Sibars    57    

Очистка хранилища настроек пользователей (обычные и управляемые формы)

Администрирование СУБД v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка очищает хранилище настроек пользователей.

1 стартмани

10.02.2020    2393    20    Denr83    0    

Мастер полнотекстового поиска

Поиск данных v8 v8::УФ 1cv8.cf Абонемент ($m)

Набор инструментов для работы с полнотекстовым индексом платформы 1С. Стандартные и расширенные возможности.

2 стартмани

07.02.2020    8062    65    YPermitin    28    

Изменение имени домена для выбранных пользователей информационной базы

Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

30.01.2020    2048    0    bryantsev.yury    0    

Помощник работы с идентификаторами объектов

Прочие инструменты разработчика Поиск данных v8 1cv8.cf Абонемент ($m)

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    8693    30    YPermitin    29    

Транслятор запросов 1С в SQL

Производительность и оптимизация (HighLoad) Администрирование СУБД v8 v8::Запросы 1cv8.cf Абонемент ($m)

Инструмент для трансляции запросов платформы 1С в SQL, а также их диагностики.

10 стартмани

07.01.2020    13406    107    YPermitin    89    

Проверка SQL базы данных 1С 8.1, 8.2, 8.3

Администрирование СУБД v8 1cv8.cf Абонемент ($m)

Обработка предназначена для проверки SQL базы данных 1С. Используется только для клиент-серверной версии 1С, у которой база данных хранится под управлением MS SQL Server. Конфигурация 1С значения не имеет.

2 стартмани

25.12.2019    7054    39    dgonson    19    

Удаление спящих сеансов

Администрирование СУБД v8 УПП1 Абонемент ($m)

Удаление сеансов, имеющих статус "спящий".

1 стартмани

16.12.2019    4838    11    &-rey    7    

Очистка кэша нескольких баз прямо из 1С

Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Обработка предназначена для очистка кэша нескольких баз непосредственно из 1С (только в обычном режиме).

1 стартмани

04.12.2019    3807    17    r.moschenskiy    2    

Работа с базами данных 1С в SQL Server Management Studio (Расширение для SSMS)

Администрирование СУБД Производительность и оптимизация (HighLoad) Администрирование данных 1С Структура метаданных v8 Абонемент ($m)

Расширение позволяет просматривать связи объектов метаданных и таблиц БД, сгруппированные данные (по группам метаданных) об используемом дисковом пространстве и выполнять трансляцию SQL текста запроса в термины 1С. И бонусом - при наведении курсора мыши на таблицу или поле показывает назначение объекта в терминах 1С.

10 стартмани

27.11.2019    11594    41    akpaevj    46    

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

Zabbix v8 Абонемент ($m)

Следим за утилизацией программных клиентских лицензий на выделенном сервере лицензирования в разрезе кластеров 1С Предприятия, в состав которых включен данный сервер лицензирования

1 стартмани

22.11.2019    4317    3    Sloth    4    

Командный интерпретатор для 1С

Сервисные утилиты v8 1cv8.cf Абонемент ($m)

Инструмент для выполнения команд CMD / PowerShell из 1С.

2 стартмани

15.11.2019    11555    23    YPermitin    41    

Запуск внешних обработок по списку пользователей

Роли и права Администрирование СУБД v8 БП3.0 Абонемент ($m)

Создает командный файл для запуска пользователей по списку.

1 стартмани

07.11.2019    4685    2    Mari_Kuznetzova    0    

Быстрая реструктуризация базы данных

Производительность и оптимизация (HighLoad) Конфигурирование 1С v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Внешняя обработка для быстрой реструктуризации клиент-серверной базы данных. Способ ускорения реструктуризации - замена таблиц большого объема пустыми копиями перед проведением обновления БД и возврат к исходным таблицам после обновления с предварительной корректировкой их структуры. Полностью автоматизировано создание и выполнение всех требуемых скриптов SQL. Представлены версии обработки для обычных форм (1С:Предприятие 8.2 (8.2.19.130)) и управляемого приложения (1С:Предприятие 8.3 (8.3.9.1818)).

1 стартмани

05.11.2019    13810    52    dmitrydemenew    36    

Влияние БСП на производительность базы 1С с добавленными метаданными

Производительность и оптимизация (HighLoad) Адаптация типовых решений БСП (Библиотека стандартных подсистем) v8 УТ11 Абонемент ($m)

Повод для статьи — заметное снижение быстродействия при переводе учета с УТ 11.1 на 11.4 по «нашим» не стандартным метаданным (регламенты работы с массовым заполнением/проведением документов/регистров). Предварительно причину увидел во влиянии БСП. Была создана тестовая подсистема, быстродействие которой оцениваем в демобазе "Управление торговлей". С включенными и выключенными подписками БСП.

5 стартмани

04.11.2019    6918    2    VsHome    1    

Пакетная выгрузка / загрузка внешних отчетов и обработок

Прочие инструменты разработчика Менеджеры внешних отчетов v8 1cv8.cf Абонемент ($m)

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

2 стартмани

04.11.2019    9171    32    YPermitin    22    

Обозреватель криптографии

Инструментарий разработчика Защита ПО v8 Абонемент ($m)

Отчет для просмотра доступных провайдеров и сертификатов криптографии на сервере и клиенте.

2 стартмани

21.10.2019    9943    11    YPermitin    10