Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 отслеживание изменений  [new]
CraMas
Member

Откуда:
Сообщений: 65
Добрый день.
есть sql база от 1с
задача отследить кто и когда изменяет некоторый поля в БД (допустим сумму в выставленном счете)
при этом надо максимально не изменять саму БД. т.е. в идеале можно в копию бд в нужных таблицах делать сравнение с текущим состоянием и выдавать различия. как я понимаю это можно сделать с помощью merge, но хотелось бы пример хотя бы на простой таблице из пары полей

подзадача. в БД от 1с оч много таблиц и их назначение мне не понятно)) есть ли способ в mssql2012 standart быстро найти нужную таблицу и поле, которые изменялись? например, я беру копию БД, меняю в счете сумму, и где-то (где? может тригеры, может средства анализа или еще чего-то) смотрю что за таблица и запись изменились.
6 май 15, 10:45    [17605964]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
CraMas, Profiler, Change Data Capture.
6 май 15, 10:51    [17605995]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
Minamoto
CraMas, Profiler, Change Data Capture.


+ Change Tracking
6 май 15, 11:00    [17606053]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1571
CraMas
Добрый день.
есть sql база от 1с
задача отследить кто
Уже невыполнимое условие. Ибо ибо с СУБД общается сервер 1с под своим ОДНИМ логином.
и когда изменяет некоторый поля в БД (допустим сумму в выставленном счете)
при этом надо максимально не изменять саму БД. т.е. в идеале можно в копию бд в нужных таблицах делать сравнение с текущим состоянием и выдавать различия. как я понимаю это можно сделать с помощью merge, но хотелось бы пример хотя бы на простой таблице из пары полей
Плохо и неправильно понимаете. Не на том уровне пытаетесь ловить, тут уже все обезличено и "обфусцировано" и известно только серверу 1С.

подзадача. в БД от 1с оч много таблиц и их назначение мне не понятно))
Учите матчасть по толстым желтым книжкам и будет понятно.
есть ли способ в mssql2012 standart быстро найти нужную таблицу и поле, которые изменялись? например, я беру копию БД, меняю в счете сумму, и где-то (где? может тригеры, может средства анализа или еще чего-то) смотрю что за таблица и запись изменились.
Все это к 1С не имеет отношения. Не туда копаете. Книжки не читаете, а там написано про технологический журнал 1С. Почитайте, узнаете много нового.
6 май 15, 11:01    [17606059]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
CraMas
Member

Откуда:
Сообщений: 65
к сожалению все эти слова я уже читал кучу раз, но так и не понял как все это запустить.
Change Data Capture - как я понимаю включение отслеживания изменений. я включил это на уровне бд, в таблицах насколько понимаю нужно включать в каждой отдельно, а их тысячи(((
и куда потом смотреть что изменилось?
попробовал на паре включить, выдал ошибку что нужен уникальный ключ на таблицу, что впринципе логично (вероятно нужные мне таблицs имеют такой ключ, но я не знаю название нужных)

по профайлеру, не понял какие галочки мне нужно выставлять. допустим я хочу только изменения полей узнать и только по одной БД.
как я понимаю шаблон надо выбирать "Пусто", а то в фильтре даже имени бд нет, а вот что дальше?
6 май 15, 11:08    [17606095]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
CraMas
Member

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

с базами данных имел дело постолько-поскольку и не являюсь грамотным админом именно БД, просто есть задача поймать сотрудника подделывающего счета, и есть вероятность что 1с-ник сидящий рядом с бухгалтерами в доле, так что надо минимально палиться.
читать много желтых книжек и учить матчасть именно по 1с не хочется, задача разовая и лезть в 1с дальше не хочется
6 май 15, 11:18    [17606153]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31868
CraMas
Change Data Capture - как я понимаю включение отслеживания изменений. я включил это на уровне бд, в таблицах насколько понимаю нужно включать в каждой отдельно, а их тысячи(((
и куда потом смотреть что изменилось?
Ну, естественно, нужно знать, какие таблицы хранят эти данные, и какими процедурами они модифицируются. Копайте в форумах по 1С, в документации, наймите консультанта-1С-ника.
Это проще, чем "понять, сравнивая данные в копии БД".
CraMas
попробовал на паре включить, выдал ошибку что нужен уникальный ключ на таблицу, что впринципе логично (вероятно нужные мне таблицs имеют такой ключ, но я не знаю название нужных)
Не факт, что там будут PK или UK.
Тогда остаются варианты - профайлер с фильтром на нужные таблицы и процедуры, или триггер, пишущий лог изменений. Или можно создать ПК, но не уверен, что !С этого не заметит.
CraMas
читать много желтых книжек и учить матчасть именно по 1с не хочется, задача разовая и лезть в 1с дальше не хочется
Ну, спросите на форуме по 1С. Или наймите консультанта. Работа сама не сделается- либо учитесь сами и делайте, либо нанимайте работника.

Начать вообще лучше с средств логирования 1С, наверняка такие там есть.
6 май 15, 11:42    [17606326]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
waszkiewicz
Member

Откуда:
Сообщений: 1089
CraMas, коль скоро прозвучало "желтокрасная книжка" у вас 7.7
Если так - в каталоге, где лежит конфигурация есть файл 1Сv7.DDS, яавляющаяся словарем данных. И начинать нужно именно оотуда
6 май 15, 12:13    [17606498]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
CraMas
Member

Откуда:
Сообщений: 65
версия 8.2

давайте начнем с абстрактного.

есть бд с тысячей таблиц. в бд меняется одна запись, как узнать в какой таблице?

желательно описанием кнопок, в profilere не нашел ничего про записи((( есть только на изменение объектов
6 май 15, 12:17    [17606513]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Merdoc
Member

Откуда: Новосибирск
Сообщений: 103
CraMas,
Средства логирования в 1С есть - Журнал операций. В них можно по конкретному объекту справочника или документу (счету) посмотреть кто и когда вносил правки.
Другое дело, если вам нужно отследить что на что поменялось, тут действительно засада.
Как сделать - можно почитать например тут http://softpoint.ru/article_id6.htm
Касательно таблиц - лучше профайлером. Если в 1С7.7 еще есть возможность выклянчить у 1Сника файл 1cv7.md (там все есть), то для 8й версии уже начинаются танцы с бубнами и т.п. фигней.
6 май 15, 12:18    [17606526]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Konst_One
Member

Откуда:
Сообщений: 11600
запись в таблице изменяется обычно командой UPDATE , вот её и ищите в трасе профайлера
6 май 15, 12:19    [17606532]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Merdoc
Member

Откуда: Новосибирск
Сообщений: 103
Merdoc,
с именем файлика конечно ошибся -1Сv7.DDS )
6 май 15, 12:19    [17606536]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Glory
Member

Откуда:
Сообщений: 104751
CraMas
есть бд с тысячей таблиц. в бд меняется одна запись, как узнать в какой таблице?

Какую команду вы именуете как "меняется запись" ?
Если я удалю запись, а потом добавлю новую с чуть измененными значениями полей - это будет "меняется запись" ?

https://msdn.microsoft.com/en-us/library/cc280404(v=sql.110).aspx
6 май 15, 12:22    [17606551]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1571
CraMas
Sergey Sizov,
с обезличиванием понял, попытаемся с этим разобраться административными мерами
Какими? Запускать для каждого пользователя отдельный сервер 1С с логином пользователя?
, мне хотя бы поймать сам факт изменения суммы на другую и время
Это есть в журнале действий пользователя. И даже с указанием конкретного пользователя и действия, которое он совершил.[/quot], там уж найдем способ узнать кто это.[/quot]Ну-ну, надежы юношей питают... Очередной профан в 1С решил, что он не зная 1С таки лучше всех знает что и как надо делать. Наверняка с уверенностью, что такую задачу он решает первый в мире.

с базами данных имел дело постолько-поскольку и не являюсь грамотным админом именно БД,
Ну так может и не стОит тут игнорировать админов и знатоков 1С?
просто есть задача поймать сотрудника подделывающего счета,
Какая жутко оригинальная, просто уникальная задача.
и есть вероятность что 1с-ник сидящий рядом с бухгалтерами в доле, так что надо минимально палиться.
А не надо программным путем решать административные задачи. Ему дано право менять счет?
читать много желтых книжек и учить матчасть именно по 1с не хочется, задача разовая и лезть в 1с дальше не хочется
Ну так и не лезьте, наймите специалиста. Ибо сейчас вы изобретаете очередной велосипед, при чем даже не с квадратными, а с треугольными колесами.
6 май 15, 12:34    [17606612]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
CraMas
Member

Откуда:
Сообщений: 65
Sergey Sizov,

Какими? Запускать для каждого пользователя отдельный сервер 1С с логином пользователя?



нет. по факту посмотрим скриншоты экранов сотрудников за это время (все-равно делаются))), тут уже можно найти и боле красивые варианты

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

про журнал в самой 1с знаю, действие "изменения" там вижу, но ничто не мешает этот журнал почистить.

ну и попрошу всех не кипятиться)) в моей практике такая задача впервые) отнеситесь с пониманием))

если кто может конкретно сказать берешь профайлер, ставишь там галочку в строчке фильтра такой-то и такой-то, запускаешь 1с, проводишь изменения, а потом в логах профайлера в поле таком-то видишь имя таблички в которой были изменения, вот тут буду благодарен))
6 май 15, 14:40    [17607595]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
o-o
Guest
CraMas
если кто может конкретно сказать берешь профайлер, ставишь там галочку в строчке фильтра такой-то и такой-то, запускаешь 1с, проводишь изменения, а потом в логах профайлера в поле таком-то видишь имя таблички в которой были изменения, вот тут буду благодарен))

вы только не обижайтесь, но
раз вы конкретно не знаете, что именно и где ловите,
т.е. по всем объектам хотите ловить, то у вас сервер просто ляжет от такого трэйса,
поэтому никто и не подскажет
6 май 15, 14:48    [17607658]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1571
CraMas,

Логи профайлера и все остальное точно также как и журнал 1С находятся в руках админа и точно так же стиратеся. От админа защиты нет если он захочет сделать что-то эдакое.
6 май 15, 14:49    [17607668]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1571
CraMas
если кто может конкретно сказать берешь профайлер, ставишь там галочку в строчке фильтра такой-то и такой-то, запускаешь 1с, проводишь изменения, а потом в логах профайлера в поле таком-то видишь имя таблички в которой были изменения, вот тут буду благодарен))
Допустим, получили сию инфу. И что дальше? Тем более, что в любом случае поменяется далеко не одно поле и далеко не в одной таблице. Тем более, что и названия таблиц и полей ни о чем не говорят ибо машиногенеренные?
6 май 15, 14:54    [17607710]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Konst_One
Member

Откуда:
Сообщений: 11600
CraMas
Sergey Sizov,

Какими? Запускать для каждого пользователя отдельный сервер 1С с логином пользователя?



нет. по факту посмотрим скриншоты экранов сотрудников за это время (все-равно делаются))), тут уже можно найти и боле красивые варианты

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

про журнал в самой 1с знаю, действие "изменения" там вижу, но ничто не мешает этот журнал почистить.

ну и попрошу всех не кипятиться)) в моей практике такая задача впервые) отнеситесь с пониманием))

если кто может конкретно сказать берешь профайлер, ставишь там галочку в строчке фильтра такой-то и такой-то, запускаешь 1с, проводишь изменения, а потом в логах профайлера в поле таком-то видишь имя таблички в которой были изменения, вот тут буду благодарен))


Ну вот эти можно помониторить (только наложите фильтр перед стартом как минимум на DataBase='Имя вашей базы', TextData=LIKE 'имя вашей ХП или запроса')
RPC:Completed
RPC:StmtComleted
SQL:BatchCompleted
SQL:StmtCompleted
6 май 15, 14:54    [17607711]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Sergey Sizov
Member

Откуда:
Сообщений: 1571
Konst_One
Ну вот эти можно помониторить (только наложите фильтр перед стартом как минимум на DataBase='Имя вашей базы', TextData=LIKE 'имя вашей ХП или запроса')
RPC:Completed
RPC:StmtComleted
SQL:BatchCompleted
SQL:StmtCompleted
У него нет ХП. У него нет имени запроса ибо запросы генерит сервер 1С. Это ТРЕХзвенка. Сервер 1С - черный ящик.
6 май 15, 14:58    [17607747]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
Konst_One
Member

Откуда:
Сообщений: 11600
Sergey Sizov
Konst_One
Ну вот эти можно помониторить (только наложите фильтр перед стартом как минимум на DataBase='Имя вашей базы', TextData=LIKE 'имя вашей ХП или запроса')
RPC:Completed
RPC:StmtComleted
SQL:BatchCompleted
SQL:StmtCompleted
У него нет ХП. У него нет имени запроса ибо запросы генерит сервер 1С. Это ТРЕХзвенка. Сервер 1С - черный ящик.


ну тогда пусть разбирается с 1С, тут уже советовали.
6 май 15, 14:59    [17607755]     Ответить | Цитировать Сообщить модератору
 Re: отслеживание изменений  [new]
CraMas
Member

Откуда:
Сообщений: 65
Ну вот эти можно помониторить (только наложите фильтр перед стартом как минимум на DataBase='Имя вашей базы', TextData=LIKE 'имя вашей ХП или запроса')
RPC:Completed
RPC:StmtComleted
SQL:BatchCompleted
SQL:StmtCompleted


спасибо, нужную таблицу нашел.
6 май 15, 15:27    [17607930]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить