Оповещение об изменении таблицы MS SQL

19.10.18

Администрирование - Мониторинг

Цель: подписка на изменения в таблицах MSSQL, неизменность конфигурации, использование популярного языка программирования c#, создание дальнейшей цепочки событий, не связанной с 1С.

Для оповещения об изменениях в MSSQL можно использовать класс SqlDependencyEx.

Он работает на основе MSSQL Service broker, который нужно предварительно включить, выгнав пользователей и запустив скрипт:

ALTER DATABASE dbName
            SET NEW_BROKER
            WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE dbName
            SET DISABLE_BROKER
GO
ALTER DATABASE dbName
            SET ENABLE_BROKER
GO
ALTER DATABASE dbName SET TRUSTWORTHY ON
go

Выясняем через SQL profiler таблицу, за которой мы хотим наблюдать.

1

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

using ServiceBrokerListener.Domain;
using System;
using System.Data.SqlClient;

namespace MSSQLOrderChangeNotification
{
    class MSSQLOrderChangeNotification
    {
        static void Main(string[] args)
        {
            var listener = new SqlDependencyEx(connectionString, DbName, "_AccumRgT16572"); 
            //// e.Data contains actual changed data in the XML format
            listener.TableChanged += (o, e) =>
            {
                Console.WriteLine("Your table was changed!" + Environment.NewLine +
                e.NotificationType + Environment.NewLine + e.Data);
            };
            //// After you call the Start method you will receive table notifications with 
            //// the actual changed data in the XML format
            listener.Start();
            Console.WriteLine(" Press [enter] to exit.");
            Console.ReadLine();
            listener.Stop();
        }

    }

}

В итоге можем отправлять это событие куда угодно, используя все возможности C# .NET. Например, в RabbitMQ.

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

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

Вступайте в нашу телеграмм-группу Инфостарт

SqlDependencyEx sql c# .net оповещение событие подписка

См. также

Работа с интерфейсом Анализ учета Мониторинг 1С:Предприятие 8 1С 8.3 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Библиотека стандартных подсистем 1С:ERP Управление предприятием 2 1С:Управление холдингом 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 Платные (руб)

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

31720 руб.

27.03.2025    73446    45    35    

58

Мониторинг Системный администратор Программист 1С:Предприятие 8 Россия Платные (руб)

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

3660 руб.

03.05.2023    6717    5    0    

6

Перенос данных 1C Мониторинг Программист 1С 8.3 1С:Документооборот 1С:ERP Управление предприятием 2 Россия Абонемент ($m)

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

1 стартмани

29.01.2026    381    1    Triplexx    0    

2

Мониторинг Системный администратор Программист Бесплатно (free)

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

23.01.2026    590    ImHunter    5    

2

Технологический журнал Мониторинг Системный администратор Программист Бесплатно (free)

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

29.12.2025    6534    leongl    0    

18

HighLoad оптимизация Мониторинг Системный администратор Программист Бесплатно (free)

Делимся опытом поддержки баз 1С с более чем 6 000 одновременно работающих пользователей и рассказываем о ключевых подходах к контролю высоконагруженных систем. Рассмотрим реальные кейсы и дадим ответ на вопрос о том,: что точно надо контролировать. Сравним ElasticSearch и ClickHouse, дадим ссылки на статьи и репозитарии для быстрого старта, а также посмотрим на примеры рабочих столов для анализа логов технологического журнала в ElasticSearch.

19.12.2025    1992    Sergey.Noskov    3    

11

Администрирование СУБД Технологический журнал Мониторинг Системный администратор Программист Бесплатно (free)

Рассказываем, почему высоконагруженным бэкендам на 1С нужен регулярный мониторинг и что происходит, когда его нет: производительность и стабильность деградируют, а обращения пользователей копятся. Показываем, как построили легкую систему наблюдаемости для бэкендов корпоративных порталов. Она включает сбор метрик из технологического журнала, Apdex, журнала регистрации и динамики размеров таблиц с последующим анализом в связке ClickHouse и служебной информационной базы на 1С. Объясняем, какие отчеты и метрики быстрее всего помогают находить критичные проблемы производительности, и демонстрируем интерфейс расследования. Разбираем несколько кейсов оптимизации, найденных по итогам мониторинга, включая доработки функционала БСП «управление доступом» и «присоединенные файлы».

15.12.2025    4104    tystik    1    

8

Мониторинг Системный администратор 1С 8.3 Россия Бесплатно (free)

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

03.12.2025    10086    user798823    2    

4
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. МихаилМ 01.08.17 17:01 Сейчас в теме
какое применение технологии применительно к 1с ?

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

технология асинхронная.
2. yaxinr 58 01.08.17 22:27 Сейчас в теме
(1) реструктуризация происходит не часто и изменение C# программы занимает не больше часа времени.
и вышел анонс в котором говорится
Добавление или удаление столбцов таблиц. Эти операции проводятся теперь на текущих таблицах

при перезапуске программы триггеры пересоздаются.
да - технология асинхронная и в этом суть событийно-ориентированной архитектуры
Для отправки сообщения требуется регистрация/авторизация