Оповещение об изменении таблицы 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 оповещение событие подписка

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

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

См. также

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

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

31720 руб.

27.03.2025    87838    62    44    

73

Инструменты администратора БД Корректировка данных Мониторинг Учет документов 1С 8.3 1С:Управление торговлей 10 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Розница 3.0 Платные (руб)

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

6100 руб.

11.06.2026    437    1    0    

3

Регламентированный учет и отчетность Мониторинг Бухгалтер 1C:Бухгалтерия Россия Бухгалтерский учет Платные (руб)

Проверка корректности данных складского учета множества баз. Целевая система "1С:Предприятие 8.3". Прямой прямой доступ к базам (файловым и серверным) без нарушения регламента фирмы 1С. Выполняет массовую проверку без запуска клиентского приложения 1С. Обеспечивает выявление ошибок складского учета без использования интерфейса 1С. Наиболее эффективен в условиях аутсорсинговых бухгалтерий. Обязательно: требуется регистрация компонента ComConnector.

35380 руб.

03.07.2026    240    0    0    

0

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

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

17.06.2026    1064    Metrika42    0    

2

Сервера Мониторинг Системный администратор 1С 8.3 Россия Абонемент ($m)

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

1 стартмани

12.06.2026    474    2    dimg    1    

4

Технологический журнал Мониторинг Программист 1С 8.3 Абонемент ($m)

Решение-заготовка для автоматического мониторинга и расследования технологических инцидентов в случаях невозможности использования решений КИП.

1 стартмани

29.05.2026    1880    8    tori131313    3    

11

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

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

06.04.2026    12123    vladimir-89    12    

31

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

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

31.03.2026    1403    user1244835    0    

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

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

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

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