|   |   | 
| 
 | История изменения объектов - как лучше? | ☑ | ||
|---|---|---|---|---|
| 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Сников на тему "зачем оно пишет столько одинаковых версий, пусть сразу проверяет ибо база растет и пухнет" разработчики БСП видимо это включили штатной функцией видимо посчитав что замедление незначительно.. | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |