Филиппов Олег | Руководитель Управления ИТ | WiseAdvice

«Как должна выглядеть правильная интеграция. Использование Mule ESB и RabbitMQ с 1С»

- Откуда берутся эти "сообщения"? Событийная интеграция вместо выгрузок по расписанию. - Зачем нужны Интеграционные шины, Middleware, очереди сообщений: - Почему нельзя "просто сделать http сервис в 1C и записывать данные при вызове"? - Почему не надо тратить время на регистры сведений вида "ОчередьСообщений, ИсторияСообщений"? - Правильная организация архитектуры (очередь, логирование, работа с ошибками). - Маленькие трюки. Использование ElasticSearch для логирования. - Инструментарий отладки http интеграций (Fiddler, Postman, SoapUI). - А как же 1С? EnterpriseData как шаг к событийной интеграции.

Журнал регистрации изменений (тюнинг от alexer)

Администрирование - Журнал регистрации

За основу взяли вот эту разработку: http://infostart.ru/public/19364/ от PowerBoy, т.к. она бесплатна и не требует существенных изменений конфигурации.

Перебрав множество подобных разработок, остановились именно на этой //infostart.ru/public/19364/, т.к. она бесплатна и не требует существенных изменений конфигурации.

Только были сделаны следующие доработки (тюнинг):

1. Справочник ЖурналРегистрацииИзмененияОбъектов реквизит «СсылкаНаОбъект» теперь имеет тип строка и хранит внутреннюю ссылку на объект, а не саму ссылку как это было ранее, также в ТЧ этого справочника у реквизитов СтароеЗначение и НовоеЗначение вместо наименования объекта теперь хранится внутренняя ссылка, теперь можно просматривать ссылки ТЧ (бывает, что номенклатура имеет одинаковое наименование, но разный артикул).

2. Изменен функционал:

2.1. Если ТЧ Объекта строка сменила НомерСтроки, то в ЖурналРегистрацииИзмененияОбъекта делается одна запись: "Строка изменена", что существенно уменьшает рост БД, раньше делалось несколько записей по количеству реквизитов ТЧ, и еще "Строка добавлена", "Строка удалена".

2.2.Реквизиты ТЧ Объекта были поделены на Ключевые и НеКлючевые, к НеКлючевым относятся реквизиты, имеющие простой тип (Число,Строка,Булево...). Если было изменение значения НеКлючевого реквизита, а значения Ключевых реквизитов не сменились, то в ЖурналРегистрацииИзмененияОбъекта делается запись "Строка изменена", раньше делалось несколько записей по количеству реквизитов ТЧ, и еще "Строка добавлена", "Строка удалена".

3. Сменился Интерфейс обработки ЖурналИзменений, основные изменения коснулись просмотра ТЧ объекта.

4. От Подсистемы.РегистрацияИзмененийВОбъектах и РегламентныеЗадания.ОчисткаЖурнала отказались, за ненадобностью. Обошлись только ОбщимМодулем, ПодпискамиНаСобытие, Справочником и Обработкой.

30.12.2009 Добавил обработку и инструкцию по конвертации данных из старой версии (см. файлы).

20.10.2010 Добавил обработку ЖурналИзмененияОбъекта.epf, позволяет просматривать изменения объекта из самого объекта, подключается как внешняя печатная форма (см. файлы).

 Хочу выразить благодарность Ziggurat за проработку функционала данной разработки.

 Не забудьте также поблагодаритьPowerBoy, поставив плюсик в его топике.

 

Как было.

Как стало.

Скачать файлы

Наименование Файл Версия Размер
TuningRegJur.cf
.cf 35,03Kb
28.05.18
1246
.cf 35,03Kb 1246 Скачать
КонвертацияСоСтаройВерсии.ZIP
.zip 3,93Kb
28.05.18
100
.zip 3,93Kb 100 Скачать
ЖурналИзмененияОбъекта.epf
.epf 16,50Kb
28.05.18
313
.epf 16,50Kb 313 Скачать

См. также

Комментарии
Сортировка: Древо Сохранить
1. Василий Сидоров (Bambrlog) 29.12.09 06:39 Сейчас в теме
как ведет себя система с ИРДБ?
2. alernik@mail.ru Александр Ершов (alexer) 1004 29.12.09 07:56 Сейчас в теме
(1) С ИРБД не тестил, дабы такой задачи не ставилось.
3. Evgeniy (Evgeniy) 84 29.12.09 18:30 Сейчас в теме
есть вопрос по поводу объединения уже рабочей базы с даными по изменениями от автора обработки http://infostart.ru/public/19364/?PAGEN_1=1#comm339629
Не пропадут ли уже существующие данные в базе по изменениям при простом объединении?
4. alernik@mail.ru Александр Ершов (alexer) 1004 30.12.09 08:18 Сейчас в теме
(3) Простым объединением конфигураций данные не пропадут, но работать будет неправильно. Для этого потребуется сделать некую конвертацию.
6. Evgeniy (Evgeniy) 84 30.12.09 10:45 Сейчас в теме
(4) Можно поподробнее про конвертацию?
7. alernik@mail.ru Александр Ершов (alexer) 1004 30.12.09 12:12 Сейчас в теме
(6) Выложил инструкцию и обработку по конвертации данных из старой версии.
5. Алексей Захаров (almas) 192 30.12.09 10:36 Сейчас в теме
8. Андрей (mawr41) 30.12.09 12:46 Сейчас в теме
Здравствуйте. Объединил Вашу конфу со своей и выходит ошибка с ГлТекущим Пользователем??? Что можно сделать? 8.1.13.41 Управление торговлей 10.2.6.4
9. alernik@mail.ru Александр Ершов (alexer) 1004 30.12.09 14:03 Сейчас в теме
(8) Возможно при объединении конфигураций не сняли галочку со свойств конфигурации. скриншот
10. Mazaloff Mazaloff (Mazaloff2) 31.12.09 09:39 Сейчас в теме
включить интелект!!! :D
почему галочка не стоит....
11. Дмитрий Шерстобитов (DitriX) 2746 04.01.10 02:34 Сейчас в теме
Спасибо. На платформе 8.2 работает прекрасно.
12. Виталий Сметанин (N_Rain) 34 09.01.10 15:43 Сейчас в теме
Делал свою такую же , только на основании регистра сведений...Прошло 3 месяца - база стала жутко тормозить, регистр максимально оптимизирован, попробуем со справочником, спасибо!
13. Sergey (Sergey K) 66 11.01.10 09:53 Сейчас в теме
+ поставлю, только не понятно
(0) а вот это зачем?
>>Справочник ЖурналРегистрацииИзмененияОбъектов реквизит «СсылкаНаОбъект» теперь имеет тип строка и хранит внутреннюю ссылку на объект, а не саму ссылку как это было ранее

Еще:
1.сравнение Таб.Частей медлено происходит при больших ТЧ:(
2.Включить интеллект неправильно срабатывает при изменении индекса строк
3.нет настройки объектов, которые хочу контролировать

и если сравнение идет только на добавлена/удалена строка, то м.б. лучше сделать сравнение ТЧ через запрос?? на больших объемах будет явно быстрее..
14. alernik@mail.ru Александр Ершов (alexer) 1004 11.01.10 10:17 Сейчас в теме
(13) 1. ЖурналРегистрацииИзмененияОбъектов.СсылкаНаОбъект имеет тип "Строка", для того чтобы была возможность удалять объекты БД.
2. Галочка "Включить интеллект" помогает более наглядно просматривать ТЧ объекта, когда рядом располагается СтрокаДобавлена, СтрокаУдалена с одним номером строки.
3. Для настройки объектов понадобится добавить в конфигуратор дополнительный справочник или регистр.
15. Артем Козловский (poet) 1 14.01.10 13:34 Сейчас в теме
не получается объединится с бухией 8.0 - пишет о несовместимости структур - не могли бы выложить\выслать исходники?
16. alernik@mail.ru Александр Ершов (alexer) 1004 14.01.10 14:03 Сейчас в теме
(15) конечно не объединится, она написана на 8.1.
а что вы понимаете под исходниками?
17. Артем Козловский (poet) 1 14.01.10 15:05 Сейчас в теме
(16) куски текста кода, которые можно было бы по аналогии добавить в 8 конфигурацию
18. alernik@mail.ru Александр Ершов (alexer) 1004 14.01.10 15:12 Сейчас в теме
(17) Советую вам найти платформу 8.1 и посмотреть конфигурацию, так будет проще
19. Zl (ZLG07) 168 22.01.10 14:32 Сейчас в теме
Классная штука, плюсую обоим
20. Firuz (fir) 12.02.10 07:38 Сейчас в теме
Люди, не работает ссылка на скачивание - Parse error: syntax error, unexpected ':' in /usr/local/www/data/bitrix/stack_cache/MYSQL/b_iblock/30/306­004069f336106238000efc8c322b9.php on line 5

Может кто-нибудь скинуть на fir@ya.ru? Заранее благодарен. Очень хочется попробовать сие чудо :)
21. Sergey Khromchenko (denushki) 16.03.10 09:40 Сейчас в теме
Выходит ошибка записи в таблицу журнала изменений т.к. число строк превышает 99999.
почему так много строк, считаем. Есть документ в который выводится 8000 строк и заполняется около 20 реквизитов строки. Получаем 8000строк*20 реквизитов получаю как минимум 160000. Исправьте ошибку, сделайте ограничение на 99999 а потом новая запись журнала изменений на оставшиеся.
22. alernik@mail.ru Александр Ершов (alexer) 1004 16.03.10 09:44 Сейчас в теме
(21) Понял, будет время исправлю, тем более нашел еще одну ошибку.
23. Петр Петров (feodorro) 08.04.10 12:02 Сейчас в теме
24. alernik@mail.ru Александр Ершов (alexer) 1004 08.04.10 12:09 Сейчас в теме
(23) Спасибо не булькает :)
mamanelli; +1 Ответить
25. Алексей Непутин (mamanelli) 37 21.06.10 13:57 Сейчас в теме
(24) Попробую потестировать в своем стакане ;)
26. Ольга (Polya) 22.06.10 07:08 Сейчас в теме
Хорошая штука, только вот с удалением помеченных объектов проблемка или я чего то не увидела....
28. alernik@mail.ru Александр Ершов (alexer) 1004 22.06.10 12:54 Сейчас в теме
(26) объекты помеченные на удаление должны без проблем удаляться
27. Евгений Морковкин (udgen1986) 22.06.10 10:15 Сейчас в теме
Внес изменения, но когда все начинают работать (примерно 15 человек) начинаются ошибки транзакций, не может завершить сессию. Я бы смирился с тем что все стало медленнее, но такие ошибки мешают работать пользователям. Где то в комментах писали что со справочниками таких проблем быть не должно. Идея то хорошая - можно отслеживать что изменилось в документе и табличной части. Посоветуйте что-нибудь.

ПС. База sql.
29. alernik@mail.ru Александр Ершов (alexer) 1004 22.06.10 12:59 Сейчас в теме
(27) работает на нашем предприятии Журнал изменений уже месяцев 8, ошибки транзакций бывают но редко, и скорее всего не из-за этого справочника.
А какой у вас стоит SQL?
30. Евгений Морковкин (udgen1986) 22.06.10 16:29 Сейчас в теме
Ошибка указывает на код общего модуля Журнала регистрации.
Поторопился закомментировать код, поэтому не могу сказать конкретно на какой код ругался.

2005 sql
31. Ольга (Polya) 24.06.10 07:35 Сейчас в теме
я имела ввиду что если объект помечают на удаление , записи журнала не помечаются и помеченные на удаление объекты не удаляются
32. alernik@mail.ru Александр Ершов (alexer) 1004 24.06.10 08:10 Сейчас в теме
(31) объекты помеченные на удаление должны без проблем удаляться, т.к. в справочнике "ЖурналРегистрацииИзмененияОбъектов" хранятся не сами объекты, а ссылки на эти объекты в строковом виде.
33. Ольга (Polya) 24.06.10 09:21 Сейчас в теме
ну у меня не последняя версия, а какая то одна из первых:)
34. Сергей Большаков (axae) 45 29.06.10 15:18 Сейчас в теме
35. Сергей Большаков (axae) 45 01.07.10 07:07 Сейчас в теме
А удаления объектов фиксируются? Потому что на поиск журнала регистрации сподвигла именно задача поиска виновного в удалении объектов.
36. Павел Парамонов (anchovy) 8 10.08.10 16:24 Сейчас в теме
Можно настроить журнал так, что бы отслеживались еще и изменения в заданном регистре сведений?
37. alernik@mail.ru Александр Ершов (alexer) 1004 11.08.10 06:55 Сейчас в теме
(36) К сожалению нет, ибо изначально такой задачи не ставилось.
38. Павел Парамонов (anchovy) 8 11.08.10 09:42 Сейчас в теме
Справочники часто ссылаются на регистры сведений,а изменения в них не фиксируются. Интересуют естественно непериодические регистры сведений. Было бы логично дописать данный функционал. Система стала бы завершенее что ли.
39. Макс Зеленский (mzelensky) 53 12.08.10 10:11 Сейчас в теме
У меня вопрос к разработчику.

В некоторых ситуация возникает следующая ошибка:

{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма(113)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): Ошибка преобразования
НовРеквТЧ.ПослеИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквТЧ.НовоеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока


Чем это может быть вызвано??? Если не затруднит, вышлите ответ на почту: zel_maks@mail.ru
40. alernik@mail.ru Александр Ершов (alexer) 1004 12.08.10 10:15 Сейчас в теме
(40) знаю об этой ошибке, да нет времени поправить
дело в том, что эта ошибка возникает если изменен реквизит с типом строка неограниченной длины, и количество символов превышает максимально возможное количество в Журнале изменений
41. Макс Зеленский (mzelensky) 53 12.08.10 10:20 Сейчас в теме
42. Макс Зеленский (mzelensky) 53 12.08.10 10:24 Сейчас в теме
(41)+ В том поле используется составной тип данны, что мешает присвоить строке неограниченную длину, но в приципе я же могу постаить длину "999" вместо "100" и должно прокатить?!
43. alernik@mail.ru Александр Ершов (alexer) 1004 12.08.10 11:31 Сейчас в теме
44. Макс Зеленский (mzelensky) 53 12.08.10 13:18 Сейчас в теме
(43) А не помогло!!! Поставил длину в "500" символов и все-равно ошибка в строке с длиной около 100 символов. В итоге просто поставил обработчик появления ошибки (исключительной ситуации) и если такая возникает, то просто в ручную выделяю подстроку из строки и записываю в нужное поле - вроде работает!
45. alernik@mail.ru Александр Ершов (alexer) 1004 12.08.10 13:27 Сейчас в теме
(44) к старым записям не поможет, нужно еще обработку писать, чтоб добавляла недостающие закрывающие скобки
46. Макс Зеленский (mzelensky) 53 12.08.10 13:55 Сейчас в теме
(44) ААА...вон в чем дело...ясно! Ну в принципе моя заплатка будет работать для старых записей, а новые, по идее, теперь нормально будут создаваться. так что все ОК :)
47. Олег Познянский (olegpoz) 22.02.11 14:33 Сейчас в теме
скачал, подключил. есть поправки-мнение:

1е - зачем используется конструкция


...
ОбъектПустаяСсылка = ОбъектМенеджер.ПустаяСсылка();

Если ОбъектПустаяСсылка = Источник.Ссылка Тогда
...


почему просто не "Источник.ЭтоНовый()" ???

2е - в этом самом месте нужно еще проверить
"Источник.ПолучитьСсылкуНового().Пустая()" и использовать ее если есть,
и только если она пустая устанавливать ссылку нового, иначе если в объекте уже она установлена и использована в других связанных объектах сами понимаете что будет...
48. Вадим Никонов (V.Nikonov) 117 09.03.11 18:33 Сейчас в теме
Данный вариант ещё не проверял, т.к. у себя использовал вариант с записью в ЖурналРегистрацииСобытий. Но прочитав комментарии встал вопрос:
В Торговых конфигурациях зачастую существует "Законный" поток изменений задним числом. При этом, в конечном результате изменяются складские и свободные остатки. Фактически выявляется только Номенклатура, по которой произошли существенные изменения. Собственно из этих предпосылок и начинается поиск: кто когда и где внёс изменения в документы, приведшие к изменению остатков...
Насколько я понял из описания, запись справочника соответствует контролируемому объекту и следовательно для поиска изменений влияющих на остатки приходится строить выборку по всем табличным частям?
Как идею, предлагаю дополнить ТЧ изменений категоризацией характера изменений (например выделить в отдельную категорию события влияющие на Остатки; влияющие на Взаиморасчёты; влияющие на Резервы и т.п.). Категорию можно использовать для дополнительной фильтрации.
49. Вадим Никонов (V.Nikonov) 117 09.03.11 18:44 Сейчас в теме
Изменения в порядке строк табличной части мало кого интересуют, гораздо важнее фиксировать изменения количественных показателей для набора "Измерений"...
50. sound sound (sound) 525 20.05.11 12:38 Сейчас в теме
Мой плюсик юбилейный :). Можно даже обработку было не делать, а сделать форму списка справочника, было бы еще меньше изменений. А вообще прикольно
51. Mike Telis (mtelis) 04.09.11 21:26 Сейчас в теме
А как бороться с "объект не найден" после того, как удалил помеченные на удаление объекты? Может, сохранять наименование?
52. Настя Счастливая (bela88) 19.09.11 14:57 Сейчас в теме
Спасибо большое автору! Журнал встроили в базу, все пока отлично работает) Пользователи довольны.
53. Илья Фамилия (Murom) 21.10.11 14:40 Сейчас в теме
Хорошая задумка и реализация. Уже ставил в одну базу, но там мало пользователей и движений. Сейчас хочу поставить большую базу: около 30 пользователей и каждый строчит документы. Посмотрим как будет справляться на таком объеме данных. Честно говоря думаю что будут тормоза...
54. Alex Shklqewe (shkl1) 1 25.10.11 11:51 Сейчас в теме
Прикольная штучка. Но есть одно но... Нет отчетов по которым можно собирать данные и сравнивать. А в таком виде оперативно получить информацию об изменения при больших объемах информации весьма проблематично. А как из этого счастья сделать отчет как-то пока не придумал :(
55. Ксения Константинова (Триш) 25.10.11 11:57 Сейчас в теме
Внедрили, пользуемся. Спасибо!
56. Илья Фамилия (Murom) 28.10.11 13:20 Сейчас в теме
Тоже получил ошибку
{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма(113)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): Ошибка преобразования
НовРеквТЧ.ПослеИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквТЧ.НовоеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока 

Исправил в табличной части "Изменения" реквизиты "НовоеЗначение" и "СтароеЗначение". Поставил неограниченную длину. Только вот интересует, как это скажется на базе при большом объеме данных? Или лучше будет поставить все таки ограниченную строку в 500 или 1000 символов ?
57. Вадим Егоров (von_de) 06.12.11 23:23 Сейчас в теме
Неплохая штукенция. Только довольно громоздкая. Ставил себе на УТ - периодически вылетал журнал с ошибкой "Ошибка формата потока". И при изменении документа свыше скольки-то тысяч строк табличной части (не помню точно) запись в журнал вылетала с ошибкой. Приходилось брать конструкцию записи в попытку исключение.
58. Михаил Шайдуров (Mshaydurov) 19.12.11 09:17 Сейчас в теме
Здравствуйте! Как обстоят дела с удалением объектов, в том числе, непосредственным. Ваши доработки системы помогают обработать такие ситуации?
59. Михаил Шайдуров (Mshaydurov) 23.12.11 09:13 Сейчас в теме
Все уже сам посмотрел. Удалять дает без проблем. Но появляются записи "<Объект не найден>". Непосредственное удаление никак не обрабатывается
60. Антон Антонов (anton-1c) 17.01.12 09:13 Сейчас в теме
Для того чтобы получить результат, надо загружать ранее выгруженный журнал регистрации?
61. alernik@mail.ru Александр Ершов (alexer) 1004 17.01.12 09:23 Сейчас в теме
(60) anton-1c,
если я правильно понимаю вопрос, то записи в журнале регистрации появляются после начала применения этой подсистемы, никакого отношения к типовому журналу регистрации от 1С эта подсистема не имеет
62. Михаил Шайдуров (Mshaydurov) 26.01.12 18:34 Сейчас в теме
Добавил реквизит "Представление ссылки" для хранения представления ссылок объектов. Что бы потом можно было отследить что же это за <Объект не найден>. Вообще разработка - классная вещь. Спасибо автору за это!
64. eremin (mybracho) 27.04.12 17:12 Сейчас в теме
Спасибо, а где описан порядок установки ?
65. eremin (mybracho) 27.04.12 17:34 Сейчас в теме
+(64) И как сделать, что б лог велся только по конкретному объекту ?
66. eremin (mybracho) 27.04.12 17:45 Сейчас в теме
" Добавил обработку ЖурналИзмененияОбъекта.epf, позволяет просматривать изменения объекта из самого объекта, подключается как внешняя печатная форма (см. файлы)." - цэ

Как просмотривать истрию изменений из самого объекта ?
67. eremin (mybracho) 27.04.12 18:35 Сейчас в теме
(+66) И как сделать отбор по одному объекту ?
68. eremin (mybracho) 11.05.12 18:18 Сейчас в теме
+(67) Со всеми вопросами разобрался. Внедрил в конфигурацию. Все работает на пять баллов. Рекомендую
69. Aleksey Kulik (ScRatch) 20.05.12 06:14 Сейчас в теме
половина записей - Объект не найден, что с этим делать? Отвественный всегда - Администратор и все чеки ККМ
70. alernik@mail.ru Александр Ершов (alexer) 1004 21.05.12 11:00 Сейчас в теме
(69) ScRatch,
1.Объект не найден - означает, что были удалены объекты помеченные на удаление
2.Полагаю, что все пользователи входят в 1С под одной учеткой - Администратор
71. Aleksey Kulik (ScRatch) 21.05.12 20:49 Сейчас в теме
это чеки ккм из розницы, они видимо каждый день после закрытия смены удаляются из УТ, как сделать, чтобы оставалось описание объекта после удаления?

upd в плане обмена сделал чтобы они не удалялись, а только устанавливалась пометка удаления
72. Игорь Грибинник (slavich) 6 24.05.12 08:54 Сейчас в теме
Спасибо, обработка полезная нужная, +
73. Игорь Грибинник (slavich) 6 06.06.12 10:32 Сейчас в теме
Плюс, очень понравилось давно хотел что то такое, но вот да, как и писалось выше не хватает отчета...
74. Олег Олег (vechiy) 29 01.08.12 13:35 Сейчас в теме
эх, не работает с 8.2.15.301 (
75. Олег Олег (vechiy) 29 01.08.12 13:35 Сейчас в теме
нет ли возможности конвертнуть? спасибо
76. Кирилл Панфилов (PanKir) 65 04.08.12 09:54 Сейчас в теме
(0)
всё хорошо, но есть одно НО!
это даже не к самой системе, а к оформлению...
когда файл создается в виде конфигурации или базы данных, то надо, помимо самой системы, в конфигурации создавать ещё и как минимум двух пользователей - одного с полными правами, а второго без прав, кроме "пользователь".
так будет видно какие права выставлять на объектах системы, если перенос происходит "КопиПастом"
(к примеру из 8.1 в 8.2), а то пришлось самому думать дать пользователю право изменять справочник "ЖурналРегистрации" или хватит с него права добавления... :)

З.Ы. в любом случае плюс за такое решение. (и предшественникам тоже)
77. mic auto (4ur) 20.08.12 17:23 Сейчас в теме
попробуем, интересно как будет работать когда у нас все 70-90 пользователей сразу начнут работать...
78. dfxi dfxi (agr) 08.09.12 18:41 Сейчас в теме
А что нибудь, что фиксирует изменения в регистрах сведений существует? Или есть возможность доработки существующих?

У нас регистр сведений должен находится под постоянным контролем так как в него попадают на некоторое время данные, которые потом используются для расчетов с контрагентами.
79. Сергей (SAS99) 8 11.09.12 10:08 Сейчас в теме
По многочисленным просьбам, добавил возможность настройки состава объектов для контроля
http://infostart.ru/public/151285/
80. Ильшат (shatshat) 05.10.12 22:51 Сейчас в теме
81. Ильшат (shatshat) 06.10.12 20:08 Сейчас в теме
поясните, пожалуйста, такой момент (непринципиальный, конечно, чисто из любопытства)

почему произведено вот это изменение
// Если НЕ РольДоступна("УправлениеРегистрациейИзменений") Тогда // alexer--- 29.12.09
Если НЕ ИмяПользователя() = "ИмяПользователя" Тогда // alexer+++ 29.12.09

чем проверка по роли "хуже"? или просто так захотелось?
82. Ильшат (shatshat) 07.10.12 17:45 Сейчас в теме
Здравствуйте, коллеги
Понадобилось решить ту же задачу. Взял эту разработку за основу, посмотрел "тюнинг" от SAS99 и вот что у меня получилось:

1. Дополнительно к СтароеЗначение и НовоеЗначение вернул СтароеЗначениеСсылка,НовоеЗначениеСсылка. Причину замены ссылок на строковый УИД понимаю (дабы дать возможность удаления объектов), но ... так удобнее строить отчеты и проводить анализ
Изменение небольшое и банальное, находится в процедуре РегистрацияИзмененийСделанныхВОбъектах.ДобавитьЗаписьВЖурналИзменений() - так что каждый может сам решить - надо оно ему или нет и отредактировать процедуру без нарушения всего механизма в целом

2. Сделал настройку набора отслеживаемых объектов. Идея "тюнинга" от SAS99, но одним реквизитом "отслеживать" для всего объекта (справочника или документа) у него и ограничилось, так что ...несерьезно это как то (хотя за идею и форму справочника настроек - спасибо).
Сделал полную настройку - как реквизитов шапки, так и реквизитов табличных частей

3. Ввел понятие "информационный реквизит". Смысл в следующем - допустим, мы изменили реквизит табличной части Количество. Зарегистрируется запись "изменился реквизит Количество с А на Б в строке X документа Y". Такая запись от человека, анализирующего изменения, однозначно требует дополнительных уточнений, так как не очень то информативна.
Зато запись "Номенклатура:Яблоко, Количество изменилось с А на Б. строка X. Документ Y" уже более информативно и может даже не потребовать дополнительной детализации.
Информационный реквизит - реквизит, который вносится в журнал, дополняя информацию об изменении отслеживаемых реквизитов.
Настраивается в том же СправочникеНастроек. Как для реквизитов Шапки так и для ТабличныхЧастей

4. Добавил настройку ключевых полей.
В алгоритме alexer строки сверяются по всем реквизитам, имеющим непримитивный тип. в результате, например, при смене в строке ТЧ реквизита "Страна" имеем полный комплект "Строка удалена" + "Строка добавлена". Особенно в сочетании с настройкой отслеживаемых объектов (контроль реквизита "Страна", у примеру, нас не интересует) выглядит ужасно неудобно.
Добавил в Настройки признак реквизита ТЧ "Ключевое". Если ключевые поля отмечены - сверка строк идет по ключевому набору, если нет - по алгоритму alexer. В вышеприведенном случае при указании ключевого поля "Номенклатура" будем иметь запись в журнале "строка изменена"

5. "Наследственность". Механизм alexer'а дополнен, а не кардинально изменен - при замене необходимо лишь заполнить справочник "Настройки" - при указании всех галок "Отслеживать" без изменения прочих (Информационный реквизит, Ключевой реквизит) механизм будет работать абсолютно точно так же как исходный
// ах да. еще нужно будет подправить п.1, если идея с хранением ссылок на объекты бд мешает

Сейчас буду тестировать на УТ 10.3
Если нужно (и можно) - выложу здесь этот очередной "тюнинг"
83. Илья Фамилия (Murom) 17.10.12 17:20 Сейчас в теме
Давно использую этот механизм.
Работает как часы.
НО с недавнего времени встала необходимость отслеживать изменения в контактной информации в контактных лицах контрагентов. А информация эта храниться в отдельном регистре сведений и не регистрируется.
Может кто-то пробовал прикрутить регистрацию изменений в регистрах сведений ?
84. Роман (Raminus) 14.11.12 16:00 Сейчас в теме
Надо будет глянуть и оценить. Ставлю плюсик авансом, что бы не забыть :)
85. Александр Головко (Alex-dmtr) 24.01.13 10:47 Сейчас в теме
86. Евгений Фамилия (internetname) 08.02.13 14:11 Сейчас в теме
87. Михаил Косовов (z8491) 07.03.13 11:51 Сейчас в теме
Скажите плиз на УПП платформа 8.2 заработает?
88. alernik@mail.ru Александр Ершов (alexer) 1004 26.03.13 17:35 Сейчас в теме
(87) z8491, На любой конфигуации под обычным приложением
89. Михаил Косовов (z8491) 26.03.13 17:46 Сейчас в теме
При попытки объеденить пишит несовместимая конфигурация (
90. Михаил Косовов (z8491) 26.03.13 17:49 Сейчас в теме
Точнее Cтpуктуpa кoнфигуpaции нecoвмecтимa c тeкущeй вepcиeй пpoгpaммы.
91. alernik@mail.ru Александр Ершов (alexer) 1004 26.03.13 18:02 Сейчас в теме
попробуйте открыть сначала файл cf в конфигураторе и переконвертировать его
92. Михаил Косовов (z8491) 26.03.13 18:11 Сейчас в теме
(91) alexer, да спасибо, уже допер, но все равно спасибо за подсказку
93. andrey dyak (dyak84) 04.04.13 00:09 Сейчас в теме
Автор подскажите каствомк будет проходить работа с большими базами да них на SQL и огоромным количеством пользователей. Подвисать не будет. А можно как то организовать хранение етой базы в отдельной базе. Зарание спасибо за ответ.
94. alernik@mail.ru Александр Ершов (alexer) 1004 05.04.13 10:49 Сейчас в теме
(93) dyak84, Реализовывал подобный проект, когда часть журнала хранится в самой базе, например за год, а остальная часть хранится в другой базе отведенной специально для журнала событий, и при необходимости просмотра старых логов происходит подключение к архивной БД по OLE. Для очищения рабочей базы, примерно раз в квартал, делается переброска данных в базу логов из рабочей базы за некий период. По поводу подвисания, все зависит от мощности сервера.
96. andrey dyak (dyak84) 15.10.13 18:16 Сейчас в теме
(94) Много уважаемый alexer Думал справится Сам с идеей архивации справочника Журналрегистрации при больших обэмах даных, но увы выгрузку с последующим удалением из основной базы настроил но вот как заставить адекватно и вразумительно просматривать записи в архивной базе ето как то никак не получается. Получается следующая картинаПодскажите пожалуйста как ето дело довести до ума. Зарание спасибо за ответ
Прикрепленные файлы:
97. alernik@mail.ru Александр Ершов (alexer) 1004 25.10.13 08:30 Сейчас в теме
(96) dyak84,
Я разделил ТЗ истории на две таблицы: таблица текущей базы и таблица архива, и подключаю архив по необходимости.
Судя по скриншоту, Вы не преобразовываете строковую ссылку в значение - функция ЗначениеИзСтрокиВнутр().
nikkolay; dyak84; +2 Ответить
98. andrey dyak (dyak84) 28.10.13 11:56 Сейчас в теме
(97)По сути не все получается преобразовать ошибочка не дает ето зделать
Форма.УправлениеЖурналом.Форма(56)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
Стр.НовоеЗначение = Строка(ЗначениеИзСтрокиВнутр(стр.НовоеЗначение ));
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока
Подскажите как решить етот вопрос
102. Evgeniy (Evgeniy) 84 23.05.14 12:39 Сейчас в теме
(98) dyak84,

Обнаружил такую же ошибку.

{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма.Форма(77)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
РеквШапки.ДоИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквШапки.СтароеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока

Насколько понял из кода, ошибка возникает из-за того что реквизиты "СтароеЗначение" и "НовоеЗначение" имеют длину всего 100 символов и когда изменяемый реквизит в документе (справочнике) длиной больше 100 символов, то возникает вот такая проблема, т.к. обрезается служебная закрывающая кавычка.

Вывод - либо обрезать строку перед записью на несколько символов, нужных для служебных символов, либо увеличивать длину реквизита до нужной длины либо сделать вообще неограниченной длины.
95. Эльвира Абдрахманова (elv1988) 11.07.13 15:05 Сейчас в теме
а как настроить изменения каких объектов должны записываться в журнал? все объекты, которые были созданы после установки - не отражаются в журнале..
99. Юрий Патласов (NoRazum) 20 26.02.14 15:06 Сейчас в теме
Обработка использую во многих местах работает отлично.

Но есть магазин с РИБ. Решил дописать чтоб можно было видеть с какого узла пришли изменения.
Добавил еще реквизит в справочник, изменил обработку чтоб дописывала в реквизит.

При дописывании еще подумал зачем условия отсекающие если обмен?

Обновил конфу. Сделал обмен.
На следующий день произошел FAIL.
При получении нового элемента через обмен записывался в журнал, но ГУИД стали разные.

Долго разбирался. Оказалось что из-за моей дописки.

Чтоб не наступали на грабли.
Оставьте свое сообщение