|
История изменения объектов - как лучше? | ☑ | ||
---|---|---|---|---|
0
Мэс33
06.01.14
✎
11:16
|
Вопрос назрел, други.
Да, про историю. Стою перед выбором: - использовать решение отсюда: http://wastie.ru/istoriya/164384/index.html - или взять из УПП подсистему версионирования. Кто -что думает? |
|||
1
zulu_mix
06.01.14
✎
11:19
|
по ссылке жоский копрокод
|
|||
2
Нууф-Нууф
06.01.14
✎
11:20
|
версионирование. и не надо лохматить бабушку
|
|||
3
Reaper_1c
06.01.14
✎
11:53
|
(0) Версионирование из БСП
|
|||
4
Жан Пердежон
06.01.14
✎
12:00
|
(3) видимо, у ТС не УФ
|
|||
5
Мэс33
06.01.14
✎
12:11
|
Не УФ.
|
|||
6
Рэйв
06.01.14
✎
12:16
|
(1)Неотформатированно и поэтому нечитаемо.
Слямзили вот отсюда:-) http://www.ravepoint.narod.ru/aticles/tricks/methods/keephistory.htm |
|||
7
acsent
06.01.14
✎
12:29
|
Проверка совпадения версий при записи объекта может выйти боком ой-ой-ой как
|
|||
8
mehfk
06.01.14
✎
12:51
|
||||
9
mehfk
06.01.14
✎
12:52
|
||||
10
mehfk
06.01.14
✎
12:52
|
||||
11
Reaper_1c
06.01.14
✎
13:06
|
(5) Покер. Подсистема из БСП прекрасно встраивается, формы нарисовать - вообще не проблема.
|
|||
12
Torquader
06.01.14
✎
13:06
|
Весь вопрос в том, насколько нужно часто лазить в запись изменений. Если изредка, то просто писать в журнал регистрации или другой текстовый файл всё, что изменил пользователь (простой обход по метаданным) - писать можно только изменения (а не всё сразу, как в стандартной системе).
С проведением сложнее - перепроведение даже неизменённого документа даёт совершенно другой результат, а также затрагивает множество данных - поэтому, скорость проведения из-за логирования сильно уменьшится. |
|||
13
Torquader
06.01.14
✎
13:06
|
(7) А что такого - перед записью делаем сравнение и пишем только то, что поменялось.
|
|||
14
zulu_mix
06.01.14
✎
13:17
|
(6) дело не в форматировании а в том, что этот код из 150 практически одинаковых строк можно переделать в код из 20 строк
|
|||
15
zulu_mix
06.01.14
✎
13:17
|
кроме этого, существуют подписки на события, куда спокойно можно это дело положить
|
|||
16
Torquader
06.01.14
✎
13:19
|
(15) Подписка позволяет получить факт изменения, а данные - их всё равно придётся выбирать по метаданным.
|
|||
17
Рэйв
06.01.14
✎
13:23
|
(15)Я позднее так и сделал. :-) Все руки не доходят статью поправить.
|
|||
18
zulu_mix
06.01.14
✎
13:23
|
(16) да ладно?
|
|||
19
Torquader
06.01.14
✎
13:27
|
(18) Ну а как иначе - подписка на событие ПриЗаписи.
Получаем элемент - можем или весь его в xml сложить или сравнивать с тем, что было до этого (а до этого где-то нужно взять). |
|||
20
zulu_mix
06.01.14
✎
13:28
|
(19) значит про событие ПередЗаписью ты кагбэ не в курсе?
|
|||
21
Torquader
06.01.14
✎
13:35
|
(20) Как бы в (13) я про это и писал.
Только перед записью - это ещё не факт, что запись состоялась. |
|||
22
zulu_mix
06.01.14
✎
13:36
|
(21) ну и что? не состоялась значит не состоялась. делов то
|
|||
23
Torquader
06.01.14
✎
13:38
|
(22) Нужно где-то сохранять изменения, полученные по подписке ПередЗаписью и писать их в базу уже по ПриЗаписи (хотя можно обойтись флагом)
|
|||
24
zulu_mix
06.01.14
✎
13:40
|
(23) не вижу проблем. ХЗ отняли?
|
|||
25
zulu_mix
06.01.14
✎
13:40
|
точнее ВХ
|
|||
26
Torquader
06.01.14
✎
13:41
|
(24) А как узнать, что запись не прошла ?
|
|||
27
Torquader
06.01.14
✎
13:42
|
(25) Где сохранить - это уже отдельная тема - для реализации, а до этого, нужно понять, что делать "в исключительных ситуациях".
|
|||
28
zulu_mix
06.01.14
✎
13:45
|
(27) ПередЗаписью заполняешь ВХ
ПослеЗаписи переносишь в ХЗ и делаешь запись в РС ИсторияИзменений |
|||
29
Torquader
06.01.14
✎
13:51
|
(28) Это я уже понял, а что делать, если ПередЗаписью прошло (потом кто-то что-то отменил), а ПриЗаписи уже не дошло - остаётся значение "на память", а потом база становится очень большой - или при запуске следующего сеанса нужно чистить всё, что в прошлый раз было незафиксировано.
|
|||
30
zulu_mix
06.01.14
✎
13:53
|
(29) если ПриЗаписи не прошло то ПослеЗаписи не возникнет
|
|||
31
acsent
06.01.14
✎
13:55
|
Единственная проблема подсистемы версионирования, что через некоторое время большая часть базы (до 80%) будет именно версиями объектов
|
|||
32
Torquader
06.01.14
✎
13:57
|
(31) И в чём проблема - чистить базу от старых версий не так уж и сложно - маловероятно, что кто-то будет искать изменения полгода назад.
|
|||
33
zulu_mix
06.01.14
✎
13:57
|
(31) ну можно ведь без фанатизма настроить
|
|||
34
acsent
06.01.14
✎
13:58
|
(32) Как только почистишь, так сразу и потребуется )))
|
|||
35
acsent
06.01.14
✎
13:58
|
Есть решение - экспорт данных в другую базу
|
|||
36
Torquader
06.01.14
✎
13:58
|
(34) Backup-ы никто не отменял.
|
|||
37
Torquader
06.01.14
✎
13:59
|
Кстати, система версионирования с выгрузкой изменений вполне годится как система BackUp-а в реальном времени.
|
|||
38
acsent
06.01.14
✎
13:59
|
(35) Но почему то стандартная подсистема такого не умеет
|
|||
39
zulu_mix
06.01.14
✎
14:00
|
(37) лучше система версионирования с автоматическим сохранением в другую базу
|
|||
40
Torquader
06.01.14
✎
14:00
|
(38) Другая база - это очень нестандартное решение для 1С.
|
|||
41
zulu_mix
06.01.14
✎
14:01
|
(40) ты это скажешь когда будет запись во внешние источники данных?
|
|||
42
Torquader
06.01.14
✎
14:02
|
(39) Не обязательно - можно регламентом - только "звери" про доступ к другой базе вообще ничего не знают, а сервер, где живёт регламент - знает, но ничего исправить не может - да и будет всего одно подключение вместо нескольких (по количеству пользователей).
|
|||
43
Torquader
06.01.14
✎
14:03
|
(41) Когда будет - тогда можно будет считать, что 1С уже "созрела", а пока - только всякие Web-сервисы.
Хотя, некоторые "умные" базы данных позволяют в себя писать запросом на чтение (SELECT). |
|||
44
zulu_mix
06.01.14
✎
14:03
|
(42) с чего ты взял что одно? выполняй на клиенте и будет по количеству пользователей.
|
|||
45
Torquader
06.01.14
✎
14:06
|
(44) В целях безопасности от клиента подключаться к другой базе - нет смысла - подключаться имеет смысл только от сервера, и, в принципе, периодически. Если кто-то править один элемент несколько раз, то можно записать результат правки за один раз.
|
|||
46
User_Agronom
06.01.14
✎
14:09
|
(0) По ссылке жесть. Как минимум регистр сведений, а не реквизит. Парсить потом не придутся, если несколько изменений.
Ну и подписку на событие, конечно же. |
|||
47
Diversus
06.01.14
✎
14:19
|
Рекомендую разработку:
http://softonit.ru/journal.html |
|||
48
Мэс33
06.01.14
✎
14:23
|
Я пока поставил вариант от УПП.
Скорость записи немного, да снизился. |
|||
49
Torquader
06.01.14
✎
14:26
|
Может быть, когда-нить 1С дорастёт до встроенного отслеживания изменений внутренними механизмами, чтобы был, так называемый аудиторский след.
|
|||
50
IamAlexy
06.01.14
✎
14:27
|
(49) а причем тут аудиторский след и 1С?
нужно - реализуй программно... в чем собственно проблема то ? |
|||
51
Torquader
06.01.14
✎
14:29
|
(50) В том, что неплохо бы иметь встроенный в систему механизм, чтобы не нужно было городить кучу кода и ловить события, когда всё можно сделать просто и ясно.
|
|||
52
zulu_mix
06.01.14
✎
14:32
|
(45) а в чем проблема? в 1с клиентом можно гадить а в базу с версиями нет?
|
|||
53
Torquader
06.01.14
✎
14:33
|
(52) Ну да, чтобы в базу журналирования никто лишний раз не лазил.
|
|||
54
User_Agronom
06.01.14
✎
14:33
|
(50) Реализовать программно: нужно програмить самому или платить другим. А ларьку это накладно. Но функционал очень нужный. ИМХО, скоро в типовых будет появляться штатно.
Так что тема полезная и нужная. Вариант по ссылке в (0) жесть, ИМХО к использованию не годен. Но сама идея очень хорошая. |
|||
55
IamAlexy
06.01.14
✎
14:34
|
(51) я подозреваю что в платформе сапа тоже нет аудиторского следа на уровне платформы и языка - а все реализовано просто напросто программно...
не ? |
|||
56
Мэс33
06.01.14
✎
14:34
|
(55) работал в SAPе, там есть аудиторский след реализованный на уровне ядра.
|
|||
57
Пеппи
06.01.14
✎
14:35
|
(56) а как это выглядит?
|
|||
58
Torquader
06.01.14
✎
14:36
|
(55) Как бы, если есть SQL-база, то в ней есть триггеры, которые работают тогда, когда ничто другое уже не работает.
И работают так, как надо - только у 1С есть файловый вариант, где это не работает. Пока файловый вариант "не забьют камнями", будет проблема. А все предпосылки есть - сервер на пять рабочих мест. Осталось - сервер на одно рабочее место - и в путь к светлому будущему. |
|||
59
Torquader
06.01.14
✎
14:37
|
(56) В любой SQL базе есть журнал транзакций, база знает, что и кто поменял, и только нужно эту информацию собрать.
|
|||
60
zulu_mix
06.01.14
✎
14:39
|
(53) кажется у тебя в корне неверное представление о связке клиента и сервера...
|
|||
61
Мэс33
06.01.14
✎
14:40
|
(57) Там есть специальные таблицы, куда пишутся изменения (не по всем документам, конечно же, но в массе своей - по всем). Отслеживать можно по полям, по авторам изменений.
|
|||
62
Нууф-Нууф
06.01.14
✎
14:41
|
всю ветку не читал. про типовое версионирование уже было?
|
|||
63
Мэс33
06.01.14
✎
14:42
|
(62) Это в вопросе уже :). Ветку он не читал...
|
|||
64
IamAlexy
06.01.14
✎
14:42
|
(61) то есть есть аналог подписки на события который пишет события в специальный аналог регистра сведений?
и чем это принципиально отличается от типового версионирования которое тоже с точки зреиня конфигурации "зашито в ядро" конфигурации 1С? :) |
|||
65
zulu_mix
06.01.14
✎
14:45
|
(64) скорее там аналог ЖР, только с преферансом и поэтессами
|
|||
66
IamAlexy
06.01.14
✎
14:46
|
(65) какая разница для конечного пользователя?
|
|||
67
Torquader
06.01.14
✎
14:46
|
(64) Насколько я понимаю, там триггеры везде понапиханы.
|
|||
68
Мэс33
06.01.14
✎
14:46
|
(64) Наверное - ничем. Кроме скорости. Версионирование работает довольно не шустро.
|
|||
69
Torquader
06.01.14
✎
14:47
|
(60) Предположим клиент-сервер, мы подключаемся с сервера - но для каждого клиента подключение всё равно своё будет.
|
|||
70
IamAlexy
06.01.14
✎
14:47
|
(68) пытаясь установить фильтр на журнал регистраций я бы так не сказал..
|
|||
71
Мэс33
06.01.14
✎
14:48
|
(70) Ну вроде в 8.3 ЖР пишется в MySQL?
|
|||
72
Мэс33
06.01.14
✎
14:49
|
(70) Я и говорю - ЖР работает в 1С медленно. Версионирование добавляет свои тормоза.
|
|||
73
zulu_mix
06.01.14
✎
14:51
|
(69) н.и.а.с.и.л.и.л :(
|
|||
74
IamAlexy
06.01.14
✎
14:52
|
(71) пока не заметил..
(72) вот именно.. а версионирование весьма шустро работает.. подключал версионирование на БП16, БП2, БП3 с большим документооборотом на все документы/справочники.. пользователи ухудшения быстродействия не заметили.. с УТ11 постоянно пользую - тоже разницы на уровне пользователя с включенными/выключенным версионированием не видно.. да, замедление есть ибо это дополнительные операции выполняются, но они пользователю незаметны |
|||
75
Мэс33
06.01.14
✎
14:56
|
(74) Я делал замер - после включения на 1-4% медленнее проводятся документы.
Хотя я еще пробовал одно хорошее решение от Куканова Андрея. Неплохая с точки зрения использования, но тормознутая в части реализации. Там столько циклов крутятся при каждой записи, что версионирование гораздо проще - тупо записал версию документа. А сравнение делать уже в отчетах. |
|||
76
Torquader
06.01.14
✎
14:57
|
(73) Ты в (60) Пытаешься сказать, что в связке клиент-сервер можно подключаться к другой базе на сервере.
Можно, только количество подключений будет по количеству клиентов. |
|||
77
IamAlexy
06.01.14
✎
14:57
|
(75) 1-4% это простому пользователю не заметно.
об чем и речь... |
|||
78
Torquader
06.01.14
✎
14:58
|
(75) Можно тупо писать версии, а вечером в регламенте их уже "потрошить" на детализацию изменений. Объект в xml одной командой пишется - поэтому - должно быть быстро - конечно, циклы тоже есть, но они уже внутри платформы.
|
|||
79
Torquader
06.01.14
✎
14:59
|
Вообще, хорошее версионирование заметно только по размеру BackUp-ов.
|
|||
80
IamAlexy
06.01.14
✎
15:03
|
(78) раньше так и было..
дописывал в версионирование свои обработки на выявление дублей версий.. потом из за нытья 1Сников на тему "зачем оно пишет столько одинаковых версий, пусть сразу проверяет ибо база растет и пухнет" разработчики БСП видимо это включили штатной функцией видимо посчитав что замедление незначительно.. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |