Имя: Пароль:
1C
1C 7.7
v7: Изменения в документе (что изменено)? Возможно ли ?
,
0 Босечка
 
15.08.13
18:38
Возможно ли так сделать чтобы посмотреть не только как в Журнале рег. кто изменил или открыл документ, но и что там было изменено. И как это сделать если возможно?
1 jarett
 
15.08.13
18:40
да, возможно. Описывать очень долго как и что, но когда-то допиливал найденную на проклабе конфигурацию и переносил к себе. Надо поискать.
2 Босечка
 
15.08.13
18:49
Спасибо, мне только один документ надо, если поищете буду очень благодарна.
3 Ork
 
15.08.13
18:52
(0) Штатно - нет. Добавив несколько кода - возможно.
Примерно так :

Процедура ЗарегистрироватьИзменения()
    //Первоначальная копия находится в ТекущийДокумент()
    //Вариант с тупым сравнением нужных реквизитов.
    Если ТекущийДокумент.ИмяРеквизита <> ИмяРеквизита Тогда
        Инфо = "Изменен реквизит ИмяРеквизита "+
               "старое значение " + ТекущийДокумент.ИмяРеквизита +
               "новое значение "+ИмяРеквизита;
        
        ЗаписьЖурналаРегистрации(Инфо, "Крректировка задним числом", , ТекущийДокумент(),3);
    КонецЕсли;
    ... Для всех контролируемых реквизитов
    ... Для всех контролируемых реквизитов табличной части

КонецПроцедуры

Процедура ПриЗаписи()
    Если Выбран() = 1 Тогда //Изменения регистрируем только для НЕНОВЫХ
        Если Модифицированность() = 1 Тогда //Были изменения
            ЗарегистрироватьИзменения();
        КонецЕсли;
    КонецЕсли;
    ...
КонецПроцедуры

Можно сделать универсально для всех через перебор реквизитов метаданных. Но количество кода увеличится раза в три.
4 Босечка
 
15.08.13
18:58
Спасибо, а просмотр изменений только через журнал регистрации?
Это очень долго. База большая, будет тормозить.
5 Aleksey
 
15.08.13
18:59
(4) просмотр через свою обработку
6 Босечка
 
15.08.13
19:01
Так все равно будет медленно.
7 Aleksey
 
15.08.13
19:01
(6) с какого бадуна будет медленно? у меня влет показывает. правда я храню в sqlite

История документа
8 Aleksey
 
15.08.13
19:03
9 Босечка
 
15.08.13
19:12
И куда эту процедуру вставлять?
10 jarett
 
15.08.13
19:15
(8) Да в (1) я именно этот код и имел в виду.
(9) первая часть в глобальник, вторая в код формы полного журнала и вешается на кнопку в нем же. плюс таблица для вывода. её надо искать точно мне. Но суть именно в этом. Хранение изменений правда не самое верное через кучу тхт в каталоге базы
11 Босечка
 
15.08.13
23:26
(10) Это ясно, что в глобальник, а в какой момент она запускаться будет?
12 Босечка
 
15.08.13
23:28
Где она вызывается?
13 Злопчинский
 
15.08.13
23:30
Бесполезняк. Сделано у меня такое. Пользы никакой вообщем. надобится "раз в сто лет". но тем не менее - вверху все описано... кроме того что делать с изменяемым порядком строк, что делать если изменен не документ, а, например, наименование товара (в справочнике), который УПОМИНАЕТСЯ в документе.. ну и прочее еще можно помыслить...
14 Злопчинский
 
15.08.13
23:31
(12) ставить в ПриЗаписи()
ну и не отлавливается без извратов программное изменение
15 Aleksey
 
15.08.13
23:33
(13) Постоянно юзаю. Наименование товара - выцепляется из изменения справочника номенклатуры
16 Aleksey
 
15.08.13
23:34
(14) с программными да, но в основном написано для поиска косяков за юзверями,  а у них нет возможности менять программно
17 Злопчинский
 
16.08.13
00:12
915) тут видимо зависит от того, как орагнизована работа. у меня все оперативная деятельность - в ТА. исправления СУЩЕСТВУЮЩИХ документов - очень редки. Доступ к таким операциям - у весьма ограниченного круга людей.
.
и когда надо - ну да, выясняется что Иванов исправил то-то и там-то. И было это - месяц-два-итд назад. По какой причине - а ХЗ!! значит была причина... та первичка которая есть - соответсвует базе? -ДА! исправления не привели к необратимым последствиям? в подавляющем количестве случаев - НЕТ!
.
а если случается что-то реально тяжелое - мало что такая регистрация помогает...
.
хз.. вот как-то так...
2 + 2 = 3.9999999999999999999999999999999...