Журнал регистрации изменений (тюнинг от alexer)
База данных - Журнал регистрации
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Перебрав множество подобных разработок, остановились именно на этой //infostart.ru/public/19364/, т.к. она бесплатна и не требует существенных изменений конфигурации.
Только были сделаны следующие доработки (тюнинг):
- Справочник ЖурналРегистрацииИзмененияОбъектов реквизит «СсылкаНаОбъект» теперь имеет тип строка и хранит внутреннюю ссылку на объект, а не саму ссылку как это было ранее, также в ТЧ этого справочника у реквизитов СтароеЗначение и НовоеЗначение вместо наименования объекта теперь хранится внутренняя ссылка, теперь можно просматривать ссылки ТЧ (бывает, что номенклатура имеет одинаковое наименование, но разный артикул).
- Изменен функционал:
- 2.1. Если ТЧ Объекта строка сменила НомерСтроки, то в ЖурналРегистрацииИзмененияОбъекта делается одна запись: "Строка изменена", что существенно уменьшает рост БД, раньше делалось несколько записей по количеству реквизитов ТЧ, и еще "Строка добавлена", "Строка удалена".
- 2.2.Реквизиты ТЧ Объекта были поделены на Ключевые и НеКлючевые, к НеКлючевым относятся реквизиты, имеющие простой тип (Число,Строка,Булево...). Если было изменение значения НеКлючевого реквизита, а значения Ключевых реквизитов не сменились, то в ЖурналРегистрацииИзмененияОбъекта делается запись "Строка изменена", раньше делалось несколько записей по количеству реквизитов ТЧ, и еще "Строка добавлена", "Строка удалена".
- Сменился Интерфейс обработки ЖурналИзменений, основные изменения коснулись просмотра ТЧ объекта.
- От Подсистемы.РегистрацияИзмененийВОбъектах и РегламентныеЗадания.ОчисткаЖурнала отказались, за ненадобностью. Обошлись только ОбщимМодулем, ПодпискамиНаСобытие, Справочником и Обработкой.
30.12.2009 Добавил обработку и инструкцию по конвертации данных из старой версии (см. файлы).
20.10.2010 Добавил обработку ЖурналИзмененияОбъекта.epf, позволяет просматривать изменения объекта из самого объекта, подключается как внешняя печатная форма (см. файлы).
Хочу выразить благодарность Ziggurat за проработку функционала данной разработки.
Не забудьте также поблагодарить PowerBoy, поставив плюсик в его топике.

Как было.

Как стало.
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Журнал регистрации Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
История изменений реквизитов и табличных частей справочников, документов, независимых регистров сведений, возможность отката изменения, восстановление удаленных объектов, сбор статистики использования базы 1С. Альтернативный журнал регистрации.
23180 руб.
22.02.2018 39612 65 56
Журнал регистрации Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)
Конфигурация LogiCH эффективно решает проблему хранения и анализа записей журналов регистрации. Разработка использует столбцовую СУБД ClickHouse, одну из самых быстрых Big Data OLAP СУБД. Любой анализ журнала можно выполнить в одном отчете, в котором доступны все возможности СКД с учетом ограничений RLS. Количество подключаемых баз не ограничено и не влияет на скорость построения анализа.
6100 руб.
28.11.2018 25005 24 9
Журнал регистрации WEB-интеграция Разработчик 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)
Долго отлаживали интеграции через сообщения, журнал регистрации и чужие прокси. На проде это не взлетело. Собрали простой инструмент внутри платформы — смотришь запрос/ответ, повторяешь, выгружаешь curl.
1 стартмани
07.08.2026 1422 3 Viktor_Ermakov 9
Администрирование СУБД Журнал регистрации Системный администратор Разработчик 1С 8.3 Бесплатно (free)
Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.
04.08.2026 3100 nedomolkov.ivan 0
Журнал регистрации Бесплатно (free)
Полнотекстовый поиск в миллионах записей журнала регистрации 1С может занимать минуты или даже часы, а стандартные инструменты не позволяют эффективно выполнять агрегации и анализировать данные на больших объемах. Расскажем о том, как с помощью ClickHouse обеспечить практически мгновенный разбор инцидентов, настроить мониторинг и автоматическую реакцию на события журнала регистрации.
28.02.2026 6258 julia96_07 0
Журнал регистрации Разработчик Россия Бесплатно (free)
В материале рассматривается сравнение двух инструментов для работы с журналом регистрации 1С: утилиты ibcmd и платформы Vector. Описаны их функциональные возможности, тестирование производительности и практическое применение для преобразования логов в формат JSON.
20.11.2024 9771 user1913000 13
Журнал регистрации Тестирование QA Разработчик Бесплатно (free)
Поговорим про логирование в приложениях на базе 1С, рассмотрим проблемы, которые возникают при сборе информации из этих систем, и обсудим практический опыт применения внутренних и внешних инструментов для анализа логов.
21.10.2024 10402 leemuar 8
Инструменты администратора БД Журнал регистрации Системный администратор 1С:Предприятие 8 1С:Управление торговлей 11 Абонемент ($m)
Внешняя обработка для регламентного сокращения журнала регистрации для конфигураций на базе БСП и платформы 8.3.20+
1 стартмани
29.12.2023 6158 66 dima_gsv 6
(0) а вот это зачем?
>>Справочник ЖурналРегистрацииИзмененияОбъектов реквизит «СсылкаНаОбъект» теперь имеет тип строка и хранит внутреннюю ссылку на объект, а не саму ссылку как это было ранее
Еще:
1.сравнение Таб.Частей медлено происходит при больших ТЧ:(
2.Включить интеллект неправильно срабатывает при изменении индекса строк
3.нет настройки объектов, которые хочу контролировать
и если сравнение идет только на добавлена/удалена строка, то м.б. лучше сделать сравнение ТЧ через запрос?? на больших объемах будет явно быстрее..
2. Галочка "Включить интеллект" помогает более наглядно просматривать ТЧ объекта, когда рядом располагается СтрокаДобавлена, СтрокаУдалена с одним номером строки.
3. Для настройки объектов понадобится добавить в конфигуратор дополнительный справочник или регистр.
Может кто-нибудь скинуть на fir@ya.ru? Заранее благодарен. Очень хочется попробовать сие чудо :)
почему так много строк, считаем. Есть документ в который выводится 8000 строк и заполняется около 20 реквизитов строки. Получаем 8000строк*20 реквизитов получаю как минимум 160000. Исправьте ошибку, сделайте ограничение на 99999 а потом новая запись журнала изменений на оставшиеся.
ПС. База sql.
В некоторых ситуация возникает следующая ошибка:
{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма(113)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): Ошибка преобразования
НовРеквТЧ.ПослеИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквТЧ.НовоеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока
Чем это может быть вызвано??? Если не затруднит, вышлите ответ на почту: zel_maks@mail.ru
дело в том, что эта ошибка возникает если изменен реквизит с типом строка неограниченной длины, и количество символов превышает максимально возможное количество в Журнале изменений
1е - зачем используется конструкция
...
ОбъектПустаяСсылка = ОбъектМенеджер.ПустаяСсылка();
Если ОбъектПустаяСсылка = Источник.Ссылка Тогда
...
почему просто не "Источник.ЭтоНовый()" ???
2е - в этом самом месте нужно еще проверить
"Источник.ПолучитьСсылкуНового().Пустая()" и использовать ее если есть,
и только если она пустая устанавливать ссылку нового, иначе если в объекте уже она установлена и использована в других связанных объектах сами понимаете что будет...
В Торговых конфигурациях зачастую существует "Законный" поток изменений задним числом. При этом, в конечном результате изменяются складские и свободные остатки. Фактически выявляется только Номенклатура, по которой произошли существенные изменения. Собственно из этих предпосылок и начинается поиск: кто когда и где внёс изменения в документы, приведшие к изменению остатков...
Насколько я понял из описания, запись справочника соответствует контролируемому объекту и следовательно для поиска изменений влияющих на остатки приходится строить выборку по всем табличным частям?
Как идею, предлагаю дополнить ТЧ изменений категоризацией характера изменений (например выделить в отдельную категорию события влияющие на Остатки; влияющие на Взаиморасчёты; влияющие на Резервы и т.п.). Категорию можно использовать для дополнительной фильтрации.
{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма(113)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр): Ошибка преобразования
НовРеквТЧ.ПослеИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквТЧ.НовоеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока Исправил в табличной части "Изменения" реквизиты "НовоеЗначение" и "СтароеЗначение". Поставил неограниченную длину. Только вот интересует, как это скажется на базе при большом объеме данных? Или лучше будет поставить все таки ограниченную строку в 500 или 1000 символов ?
upd в плане обмена сделал чтобы они не удалялись, а только устанавливалась пометка удаления
всё хорошо, но есть одно НО!
это даже не к самой системе, а к оформлению...
когда файл создается в виде конфигурации или базы данных, то надо, помимо самой системы, в конфигурации создавать ещё и как минимум двух пользователей - одного с полными правами, а второго без прав, кроме "пользователь".
так будет видно какие права выставлять на объектах системы, если перенос происходит "КопиПастом"
(к примеру из 8.1 в 8.2), а то пришлось самому думать дать пользователю право изменять справочник "ЖурналРегистрации" или хватит с него права добавления... :)
З.Ы. в любом случае плюс за такое решение. (и предшественникам тоже)
У нас регистр сведений должен находится под постоянным контролем так как в него попадают на некоторое время данные, которые потом используются для расчетов с контрагентами.
почему произведено вот это изменение
// Если НЕ РольДоступна("УправлениеРегистрациейИзменений") Тогда // alexer--- 29.12.09
Если НЕ ИмяПользователя() = "ИмяПользователя" Тогда // alexer+++ 29.12.09
чем проверка по роли "хуже"? или просто так захотелось?
Понадобилось решить ту же задачу. Взял эту разработку за основу, посмотрел "тюнинг" от SAS99 и вот что у меня получилось:
1. Дополнительно к СтароеЗначение и НовоеЗначение вернул СтароеЗначениеСсылка,НовоеЗначениеСсылка. Причину замены ссылок на строковый УИД понимаю (дабы дать возможность удаления объектов), но ... так удобнее строить отчеты и проводить анализ
Изменение небольшое и банальное, находится в процедуре РегистрацияИзмененийСделанныхВОбъектах.ДобавитьЗаписьВЖурналИзменений() - так что каждый может сам решить - надо оно ему или нет и отредактировать процедуру без нарушения всего механизма в целом
2. Сделал настройку набора отслеживаемых объектов. Идея "тюнинга" от SAS99, но одним реквизитом "отслеживать" для всего объекта (справочника или документа) у него и ограничилось, так что ...несерьезно это как то (хотя за идею и форму справочника настроек - спасибо).
Сделал полную настройку - как реквизитов шапки, так и реквизитов табличных частей
3. Ввел понятие "информационный реквизит". Смысл в следующем - допустим, мы изменили реквизит табличной части Количество. Зарегистрируется запись "изменился реквизит Количество с А на Б в строке X документа Y". Такая запись от человека, анализирующего изменения, однозначно требует дополнительных уточнений, так как не очень то информативна.
Зато запись "Номенклатура:Яблоко, Количество изменилось с А на Б. строка X. Документ Y" уже более информативно и может даже не потребовать дополнительной детализации.
Информационный реквизит - реквизит, который вносится в журнал, дополняя информацию об изменении отслеживаемых реквизитов.
Настраивается в том же СправочникеНастроек. Как для реквизитов Шапки так и для ТабличныхЧастей
4. Добавил настройку ключевых полей.
В алгоритме alexer строки сверяются по всем реквизитам, имеющим непримитивный тип. в результате, например, при смене в строке ТЧ реквизита "Страна" имеем полный комплект "Строка удалена" + "Строка добавлена". Особенно в сочетании с настройкой отслеживаемых объектов (контроль реквизита "Страна", у примеру, нас не интересует) выглядит ужасно неудобно.
Добавил в Настройки признак реквизита ТЧ "Ключевое". Если ключевые поля отмечены - сверка строк идет по ключевому набору, если нет - по алгоритму alexer. В вышеприведенном случае при указании ключевого поля "Номенклатура" будем иметь запись в журнале "строка изменена"
5. "Наследственность". Механизм alexer'а дополнен, а не кардинально изменен - при замене необходимо лишь заполнить справочник "Настройки" - при указании всех галок "Отслеживать" без изменения прочих (Информационный реквизит, Ключевой реквизит) механизм будет работать абсолютно точно так же как исходный
// ах да. еще нужно будет подправить п.1, если идея с хранением ссылок на объекты бд мешает
Сейчас буду тестировать на УТ 10.3
Если нужно (и можно) - выложу здесь этот очередной "тюнинг"
Работает как часы.
НО с недавнего времени встала необходимость отслеживать изменения в контактной информации в контактных лицах контрагентов. А информация эта храниться в отдельном регистре сведений и не регистрируется.
Может кто-то пробовал прикрутить регистрацию изменений в регистрах сведений ?
Я разделил ТЗ истории на две таблицы: таблица текущей базы и таблица архива, и подключаю архив по необходимости.
Судя по скриншоту, Вы не преобразовываете строковую ссылку в значение - функция ЗначениеИзСтрокиВнутр().
Форма.УправлениеЖурналом.Форма(56)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
Стр.НовоеЗначение = Строка(ЗначениеИзСтрокиВнутр(стр.НовоеЗначение ));
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока
Подскажите как решить етот вопрос
Обнаружил такую же ошибку.
{Обработка.ИсторияИзмененияОбъектов_AEMZ.Форма.Форма.Форма(77)}: Ошибка при вызове метода контекста (ЗначениеИзСтрокиВнутр)
РеквШапки.ДоИзменения = ЗначениеИзСтрокиВнутр(СтрокаРеквШапки.СтароеЗначение); // alexer 28.12.09
по причине:
Ошибка преобразования
по причине:
Ошибка формата потока
Насколько понял из кода, ошибка возникает из-за того что реквизиты "СтароеЗначение" и "НовоеЗначение" имеют длину всего 100 символов и когда изменяемый реквизит в документе (справочнике) длиной больше 100 символов, то возникает вот такая проблема, т.к. обрезается служебная закрывающая кавычка.
Вывод - либо обрезать строку перед записью на несколько символов, нужных для служебных символов, либо увеличивать длину реквизита до нужной длины либо сделать вообще неограниченной длины.
Но есть магазин с РИБ. Решил дописать чтоб можно было видеть с какого узла пришли изменения.
Добавил еще реквизит в справочник, изменил обработку чтоб дописывала в реквизит.
При дописывании еще подумал зачем условия отсекающие если обмен?
Обновил конфу. Сделал обмен.
На следующий день произошел FAIL.
При получении нового элемента через обмен записывался в журнал, но ГУИД стали разные.
Долго разбирался. Оказалось что из-за моей дописки.
Чтоб не наступали на грабли.
Может уже пора выложить для 8.2 релиз? а то не всегда есть возможность конвертировать через 8.1.
Так же непонятно, почему отчет выложен отдельно, мне кажется было бы лучше его внутрь конфигурации поместить.
И ещё, если не ошибаюсь раньше была небольшая инструкция по объединению данной разработки с рабочей базой 1С. Сейчас такой инструкции что-то не нашел:(
Раньше использовал данную систему только на толстом и все работало замечательно.
Сейчас возникла надобность внедрить похожу систему на конфигурации где часть функционала используется на тонком клиенте.
На Комплексной Автоматизации после внедрения типового контроля на уровне записей, по справочнику номенклатура появились ошибки. Стала писаться битая ссылка в измерение Объект вместо справочника Номенклатура в регистр сведений НастройкиПравДоступаПользователей. Проанализировав программный код нашел ошибку. В процедуре РегистрацияИзмененийСделанныхВОбъектах, в строку
НовСсылка = ОъектМенеджер.ПолучитьСсылку();
нужно заменить на
НовСсылка = Источник.ПолучитьСсылкуНового();
Возникла необходимость сделать анализ "вычерков" в документах (2 вида: заказ и реализация) сколько строк и колиств по строкам изменено операторами!
В "истории" есть все необходимое, но самим писать трудно - есть такие заготовки или можете ли вы написать такой отчет за оплату?
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 63420
Создание 28.12.09 16:06
Обновление 10.01.15 18:06
Просмотры 26037
Загрузки 1675
Рейтинг
170
Комментарии 104
Код открыт Да
Рубрики Журнал регистрации
Тип файла Конфигурация (md, cf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)