Отчет "История изменения объектов" на СКД для БП 3.0, УТ 11, КА 2, ERP 2 (версии объектов) с использованием версионирования объектов
База данных - Журнал регистрации
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Отчет по изменению объектов на СКД для УПП и КА (версии объектов) использует версионирование объектов УПП:
.erf 32,38Kb
31
|
31 | 4 200 руб. Купить | 5 SM Скачать |
|
Отчет "История изменения объектов" на СКД для ERP 2, БП 3.0, УТ 11, КА 2.0, УНФ 1.6 с использованием версионирования объектов:
.epf 29,89Kb
651
|
651 | 4 200 руб. Купить | 5 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В отчете используется типовой механизм версионирования объектов, поэтому для его работы необходимо включить этот функционал.
Для получения результата отчета необходимо указать период, за который будут выводиться изменения объектов, указать требуемые справочники или документы.
В отчете имеется возможность отбирать объекты по заданному параметру, например требуется ГлавБуху узнать кто в закрытом периоде правил документы - выбираем нужный вид документа, указываем период больше даты закрытия периода (например закрыли март первого апреля. соответственно ставим период больше первого апреля), а в отборе ставим дату документа меньше даты окончания закрытого периода (31 марта в нашем примере).
Или другой пример, когда администратору требуется выяснить кто что правил за определенный период в определенных объектах ИБ.
Отчет реализован на управляемых формах под конфигурацию ERP 2, БП 3.0, УТ 11, КА 2.0
Преимуществом отчета является возможность отбора по параметрам объектов и вывод в одном окне изменений по отобранному ряду объектов. Типовой функционал позволяет получить информацию по изменениям только по одному объекту.
Для более быстрого выполнения отчета рекомендуется устанавливать более точный отбор по типам объектов базы данных либо более короткий период выборки.
Тестирование производилось на конфигурации Бухгалтерия предприятия 3.0 (3.0.43.253) и платформе 1С:Предприятие 8.3 (8.3.10.2561). так же протестировано на конфигурациях 1С:ERP Управление предприятием 2 (2.4.5.118), Комплексная автоматизация, редакция 2 (2.4.5.118), Управление Торговлей 11 (11.4.3.167) , Управление нашей фирмой, редакция 1.6 (1.6.23.117)
Версия отчета для обычных форм: //infostart.ru/public/833067/
Проверено на следующих конфигурациях и релизах:
- Управление производственным предприятием, редакция 1.3, релизы 1.3.25.1
- 1С:ERP Управление предприятием 2, релизы 2.4.5.24
Вступайте в нашу телеграмм-группу Инфостарт
Отчет История история изменения объектов обработка версии по изменению ЕРП КА ERP УТ БП версионирование управляемые формы УФ СКД
См. также
Журнал регистрации Системный администратор 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)
История изменений реквизитов и табличных частей справочников, документов, независимых регистров сведений, возможность отката изменения, восстановление удаленных объектов, сбор статистики использования базы 1С. Альтернативный журнал регистрации.
23180 руб.
22.02.2018 39611 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 1420 3 Viktor_Ermakov 9
Администрирование СУБД Журнал регистрации Системный администратор Разработчик 1С 8.3 Бесплатно (free)
Журнал регистрации на нагруженной базе перестаёт открываться: файлы растут на гигабайты в день, просмотр виснет, история недоступна. Рассказываю, как мы вынесли журнал трёх продуктивных баз в ClickHouse: 35 млрд событий, поиск всех ошибок за сутки — 0,11 секунды, привычная форма журнала для пользователей и падение числа ошибок в проде в 23 раза за полгода. Архитектура, схема таблицы, грабли интеграции и все цифры с прода.
04.08.2026 3099 nedomolkov.ivan 0
Журнал регистрации Бесплатно (free)
Полнотекстовый поиск в миллионах записей журнала регистрации 1С может занимать минуты или даже часы, а стандартные инструменты не позволяют эффективно выполнять агрегации и анализировать данные на больших объемах. Расскажем о том, как с помощью ClickHouse обеспечить практически мгновенный разбор инцидентов, настроить мониторинг и автоматическую реакцию на события журнала регистрации.
28.02.2026 6256 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 6154 66 dima_gsv 6
...
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать();
...
Пока Выборка.Следующий() Цикл
НоваяСтрока = РезультатОтбора.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
---------------------------------------------
Работает долго заполнение свойств (если несколько сот тыс. документов или весь период несколько лет), т.е. выборка происходит за весь период.
Предлагаю в шапку обработки добавить второй период, где можно задать период для выборки документов (РезультатОтбора), что немного сократит время обработки.
Например:
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать(ДатаНачало, ДатаОкончания);
Юрий, задать период для выборки документов можно во вкладке отбор, задав два отбора: дата документа больше и дата документа меньше, соответственно, в выборку попадут только документы удовлетворяющие этому отбору, также можно сократить выборку задав отбор и по любому другому реквизиту документа или справочника!
И да, на КА 2.5 отчет не работает:
Индекс находится за границами массива
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(965)}:РеквизитТЧНовый = СтрокаТЧНовая[ИндексРеквизита];
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}:СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}:СформироватьНаСервере();
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать();
Т.е. есть дата когда я изменял эти документы и даты когда были созданы эти документы. Да обработка отфильтрует и покажет результаты по дате изменений, но при этом выборка и заполнение свойств обрабатывает ВЕСЬ ПЕРИОД:
Пока Выборка.Следующий() Цикл
НоваяСтрока = РезультатОтбора.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Выборка);
КонецЦикла;
Как уже писал сотен тыс. документов или за несколько лет. Например по вашему отбору я укажу весь 2018г. И обработка мне покажет только изменения которые пользователи делали в 2018 году, но при этом лишнее время тратится на обработку (заполнение свойств) за 20хх - 2018г.г. А мое предложение сократить время за счет отбора даты по созданию документов. Тогда я мог бы указать во втором периоде только 2018 г. или 2017-2018г.г., что сократит время обработки.
Выборка = Документы[ОтобранныйОбъект.Значение].Выбрать(ДатаНачало, ДатаОкончания), где указвается период по дате создания документов (если пользователь обработки анализирует документы, а не справочники).
При Вашем желании или если любопытно, могу выслать уже работающий вариант Вашей обработки с моим предложением. Хотя там конечно ни чего сложного.
Конечно мое предложение актуально для баз больших объемов. И как бы Вы не рекомендовали в своей обработке применять оптимальный отбор , чтобы обработка быстрей работала, при больших объемах мое замечание не избежать, по затрате времени в холостую всех документов (выбранного типа) за весь период по дате создания.
Да, Юрий, я Вас понял, действительно в обработке идет подбор выбранных типов документов за весь период, а затем компануется и отбирается в СКД...
Ваш вариант хороший, но работать будет только для документов...нужно подумать как оптимизировать обработку..
//| И ВерсииОбъектовПервые.НомерВерсии = 1
| И ВерсииОбъектовПервые.НомерВерсии = ВерсииОбъектов.НомерВерсии - 1
Почему? Если взять отбор изменений по дате например один день, то мы видим сравнение только первого и последнего вариантов ("Изменения между версией 1 и 7" когда изменения были и в другие дни), а реально нужно видеть сравнение последнего варианта и предыдущего, мы же выбрали один день чтобы видеть какие изменения были в этот день (пример "Изменения между версией 6 и 7") если конечно 1-5 варианты не были за выбранный день.
2. Иногда ошибка, которую не определил в этом месте:
Функция РазборПредставленияОбъектаXML(ДанныеВерсии, Ссылка)
...
ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);
...
Может после этого моего изменения или ошибка еще была ранее.
Внес следующие изменения (звездочками обрамление измененного кода):
Функция СформироватьОтчет(..)
...
Пока Выборка.Следующий() Цикл
...
Если НЕ ВерсияОбъекта = Неопределено Тогда
********
Попытка
Результат = РазборПредставленияОбъектаXML(ВерсияОбъекта, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
********
...
Если ЗначениеОбъекта <> Выборка.Объект Тогда
...
Если Выборка.НомерВерсии > 1 Тогда
ВерсияОбъекта1 = Выборка.ВерсияОбъекта1.Получить();
*******
Попытка
Результат1 = РазборПредставленияОбъектаXML(ВерсияОбъекта1, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
*******
Добрый день, Юрий!
я строил в отчете такую логику: по заданному периоду в результат выводятся объекты, изменяемые в этот период, но изменения выводятся по отношению к оригиналу.
а ошибка возможно стала вылетать из-за произведенных изменений:
"//| И ВерсииОбъектовПервые.НомерВерсии = 1
| И ВерсииОбъектовПервые.НомерВерсии = ВерсииОбъектов.НомерВерсии - 1", но это нужно разбираться..и при данных изменениях в отчет ведь не попадут изменения сделанные в выбранный день, но у которых НомерВерсии = 1 или я ошибаюсь?
У меня все работает. Например когда пользователь хочет узнать ПОСЛЕДНИЕ изменения, а в выбранный период не попали варианты 1,2,3, но попали 4 и 5, то увидим "Изменения между версией 4 и 5". Т.е. какие варианты попадут в выбранный период такие варианты и будут сравниваться. Если варьируем разными периодами то можем увидеть все варианты.
Если ничего не менять, то всегда будем видеть Ваш вариант между 1-ым и последним вариантами. Например "Изменения между версией 1 и 5". В результате не увидим изменения между 1-2; 2-3; 3-4 и 4-ым и 5-ым вариантом, если варианты 1,2,3,4 не попали в выбранный период
Коллеги а есть отчет для ERP, который работает как в УПП была встроенная история версий объекта? Когда выделяешь пару версий, и в таблице показывалось сравнение по измененным объектам с "заливкой" цветами изменений.
Я отвечала на вопрос - "А вообще зачем Вам такой отчет, когда есть типовой, который вызывается через сам объект - История изменений",
в том то и дело , что без вашего отчета - через сам объект справочника в типовой erp (из элемента справочника Организации например или Контрагенты ) я не могу вызвать историю изменений, версионирование настроено. Ваш отчет то показал несколько версий.
В документах - да, включается возможность вызвать Историю, в справочниках я не нашла.
А вот изменения по справочнику Организации типовым способом не смогла найти.
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(717)}: Ошибка при вызове метода контекста (УстановитьДвоичныеДанные)
ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);
по причине:
Несоответствие типов (параметр номер '1')
по причине:
Несоответствие типов (параметр номер '1')
Несоответствие типов (параметр номер '1')
Как тут описано добавила вчера, заработал не знаю насколько правильный.
1. Заменил у себя следующий кусок кода:
//| И ВерсииОбъектовПервые.НомерВерсии = 1
| И ВерсииОбъектовПервые.НомерВерсии = ВерсииОбъектов.НомерВерсии - 1 Почему? Если взять отбор изменений по дате например один день, то мы видим сравнение только первого и последнего вариантов ("Изменения между версией 1 и 7" когда изменения были и в другие дни), а реально нужно видеть сравнение последнего варианта и предыдущего, мы же выбрали один день чтобы видеть какие изменения были в этот день (пример "Изменения между версией 6 и 7") если конечно 1-5 варианты не были за выбранный день.
2. Иногда ошибка, которую не определил в этом месте:
Функция РазборПредставленияОбъектаXML(ДанныеВерсии, Ссылка)
...
ЧтениеXML.УстановитьДвоичныеДанные(ДвоичныеДанные);
...
Может после этого моего изменения или ошибка еще была ранее.
Внес следующие изменения (звездочками обрамление измененного кода):
Функция СформироватьОтчет(..)
...
Пока Выборка.Следующий() Цикл
...
Если НЕ ВерсияОбъекта = Неопределено Тогда
********
Попытка
Результат = РазборПредставленияОбъектаXML(ВерсияОбъекта, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
********
...
Если ЗначениеОбъекта <> Выборка.Объект Тогда
...
Если Выборка.НомерВерсии > 1 Тогда
ВерсияОбъекта1 = Выборка.ВерсияОбъекта1.Получить();
*******
Попытка
Результат1 = РазборПредставленияОбъектаXML(ВерсияОбъекта1, Выборка.Объект);
Исключение
Продолжить;
КонецПопытки;
******* ПоказатьА вот этот момент повторяется только на серверных базах.
Причем без разницы, новый документ создается и проводится, или старый перепроводится. Факт такой, что перепроведение - без изменения - выдает такую ошибку. Связано с тем, насколько я понял,что перепроведение без изменений не пишет в регистр xml данных, просто отражает факт изменения.
У себя вылечили заглушкой проверки, опять же, с комментарием что "Что то менялось, скорее всего перепроводилось". Т.к. все остальные изменения корректно обрабатываются.
НО хотелось бы корректно это обработать.
Причем изменения то получаются, но проверка ставится на номер версии. Этот момент доделали, лечится небольшой заглушкой проверки номера версии, ВЕрсия №1 - Всегда создание объекта. Его можно не прокидывать, а также сообщать со ссылкой на объект с комментарием, что объект новый.
Добавлена строка конкретной номенклатуры или изменено количество в стороке, удалена строка товара.
Если это возможно, как это будет выглядеть в отчете?
Уточняющий вопрос. Позволяет ли отчет вывести изменения ограниченное количество реквизитов табличной части заказа клиента. В таком виде для пользователей много лишней информации. Без учета изменения прочих реквизитов.
Например реквизиты: Номенклатура, Количество, Состояние, Вид цены, Цена, Сумма в контексте конкретного документа.
При работе со справочниками получаю точно такую же ошибку как и человек в 52-ом посте. С документами всё работает.
Платформа: 1С:Предприятие 8.3 (8.3.18.1208)
Конфигурация: Бухгалтерия предприятия, редакция 3.0 (3.0.88.28)
Серверный вариант.
При формировании отчета для Справочников "Номенклатура" и "Договора контрагентов" выдает ошибку:
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}: Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}: СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}: ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}: СформироватьНаСервере();
Можете исправить?
УТ 11.4.13.209 Ошибка про реквизиты.
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}: Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}: СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}: ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}: СформироватьНаСервере();
Подскажите как исправить?
Версия Бухгалтерии 3.0.110.29.
Включено версионирование для документа РеализацияТоваровУслуг.
При выполнении отчета получаем следующую ошибку:
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}: Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}: СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}: ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}: СформироватьНаСервере();
Подскажите, пожалуйста, как исправить. Выше уже коллеги такую ошибку писали.
Ошибка при вызове метода контекста (XMLЗначение)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(849)}:ПоследняяСтрока[ИмяПоляТЧ] = ?(ЗначениеЗаполнено(ТипЗначенияПоляТЧ), XMLЗначение(ТипЗначенияПоляТЧ, ЧтениеXML.Значение), ЧтениеXML.Значение);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(594)}:Результат = РазборПредставленияОбъектаXML(ВерсияОбъекта, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}:СформироватьНаСервере();
Платформа 1С:Предприятие 8.3 (8.3.19.1467)
Конфигурация 1С:ERP Управление предприятием 2 (2.5.7.394)
Отчет за один день (около 200 документов в выборке) по Заказам клиента формировался 30 минут. После чего выдал ошибку:
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}: Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}: СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}: ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}: СформироватьНаСервере();
Лучше получить выборку из регистра сведений версии объектов с фильтром по типу объекта и даты изменения.
А сейчас очень долго выполняется при выборке справочника партнеры в 800 тыс., около 10 минут формирование результата.
А изменен всего один объект в периоде.
Конфигурация: Управление торговлей, редакция 11 (11.5.11.66) (
Copyright © ООО "1С-Софт", 2003-2023. Все права защищены
(
Режим: Серверный (сжатие: усиленное)
Приложение: Тонкий клиент
Локализация: Информационная база: русский (Россия), Сеанс: русский (Россия)
Вариант интерфейса: Такси
Ошибки:
--------------------------------------------------------------------------------
05.04.2023 19:46:49
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}:Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}:СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}:СформироватьНаСервере();
Готов предоставить доступ и показать ошибку
Могу предложить свой вариант доработки данного отчета. Отчет автора на больших базах, все, мягко говоря, зависает.
Оптимизировал выборки данных (пока не полностью), устранил явные косяки. Вывел мелкие сервисные вещи (убрал модальные вызовы, добавил время выполнения отчета). Проверено на 8.3.23, БП 3.0.138.25.
В общем - готов к сотрудничеству.
А что именно оптимизировали и как?
Отчет шикарный вообще, но время выполнения...
Т.е. у меня серверная база, далеко не одна организация в базе выбираю 4 вида документов (меня интересуют только они) и всё... Отчет за месяц формируется уже минут 30, при том, что я добавил на форму поля для выбора дат документов самих, в запрос отбор по организации из формы (ну опять же только для доков будет работать)
Управление торговлей, редакция 11 (11.5.12.53) 8.3 (8.3.23.1865)
Управление нашей фирмой, редакция 3.0 (3.0.6.126) 8.3 (8.3.24.1368)
баг не устранён, о нем писали
Ошибка УТ
----------------
Поле объекта не обнаружено (Реквизиты)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}:Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(617)}:СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(416)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(365)}:СформироватьНаСервере();
Ошибка УНФ
"errors": [
[
"{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(896)}: Поле объекта не обнаружено (Реквизиты)",
[
"ScriptRuntimeError",
"ScriptUseError"
],
"",
""
]
],
"stack": [
[
"ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма",
365,
"\u0009СформироватьНаСервере();"
],
[
"ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма",
416,
"\u0009ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);"
],
[
"ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма",
617,
"\u0009\u0009\u0009\u0009СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);"
],
[
"ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма",
896,
"\u0009Для каждого ДанныеРеквизита Из ВерсияДокумента1.Реквизиты Цикл"
]
Готов предоставить эти БД для тестов
В обход его распространять не буду.
Значение не является значением объектного типа (Количество)
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(981)}:КоличествоСтрокНовой = ТЧНовая.Количество();
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(645)}:СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(444)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(393)}:СформироватьНаСервере();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
Сможете поправить данную ошибку? Базу выгрузить не смогу, но предлагаю скачать ДЕМО базу ERP актуального релиза и на ней исправить.
Попытка
УникальныйИдентификаторДо = Новый УникальныйИдентификатор(РеквизитТЧ);
ЗначениеДо = ПолучитьЗначениеПоУИН(УникальныйИдентификаторДо, КоллекцииМетаданных);
Исключение
ЗначениеДо = РеквизитТЧ;
КонецПопытки;Лучше использовать
Если СтроковыеФункцииКлиентСервер.ЭтоУникальныйИдентификатор(РеквизитТЧ) Тогда
УникальныйИдентификаторДо = Новый УникальныйИдентификатор(РеквизитТЧ);
ЗначениеДо = ПолучитьЗначениеПоУИН(УникальныйИдентификаторДо, КоллекцииМетаданных);
Иначе
ЗначениеДо = РеквизитТЧ;
КонецЕсли;Индекс находится за границами массива
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(995)}:РеквизитТЧНовый = СтрокаТЧНовая[ИндексРеквизита];
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(645)}:СравниваниеОбъектов(ВерсияОбъекта1, ВерсияОбъекта2, КоллекцииМетаданных, ТЗИзмененныеРеквизиты, Выборка.Объект);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(444)}:ТЗНабор = СформироватьОтчет(ВыборкаДетальныеЗаписи, Объект.ДатаНачала, Объект.ДатаОкончания, ЭтаФорма);
{ВнешняяОбработка.ОтчетИсторияИзмененияОбъектовУФ.Форма.Форма.Форма(393)}:СформироватьНаСервере();
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ОшибкаИспользованияВстроенногоЯзыка]
или не ту скачали.
И еще есть возможность отобрать какой то реквизит в справочнике и посмотреть изменения именно этого реквизита ?
Пока только смотрели 2 справочника, банковские счетах контрагентов и банковские счета организации
1. При выборе/отключении отбора в параметрах нескольких справочников получили эффект кеширования данных - при удалении одного из справочников из отбора данные по нему все равно попадали в результат. Решили - через принудительное удаление всех справочников в отборе и добавлении заново нужного
2. только Банковские счета организации
Отчет в какой-то момент перестает выводить изменения, видимо падает. Не все данные видны.
В тестовом счете есть версии ранее 01.09.2025, само 01.09, 02.09, 03.09, 05.09 и 07.10
При различных параметрах выбора начальной даты у нас теряется часть информации. Я это понял когда стал просто анализировать номера версий в штатном выводе и в отчете - если версия ниже нижнего диапазона то она не берется в этом случае в анализ. Не знаю почему, но на другом тестовом счете этого нет и отчет нормально показывает разницы в версиях даже если значение ДО находится в версии ранее минимальной в отборе. Пока нет выводов.
Но самое интересное происходит при выборе 04.09 или выше в качестве нижней границы - отчет ломается, он становится пустым. Почему ломается не нашли
На справочнике Банковские счета организации у меня и отборы не работают ни в каком виде.
3. только Банковские счета контрагентов
Не нашли ошибок при переключении данных, не падает, отборы работают.
В нашем случае интересно извлекать из версий только некоторые поля и их выводить в отчет, здесь этого в принципе нет. С удовольствием бы использовали такое решение.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 915128
Создание 03.10.18 16:47
Обновление 27.02.24 01:57
Просмотры 38541
Загрузки 682
Рейтинг
21
Комментарии 136
Код открыт Да
Рубрики Журнал регистрации
Кому
Системный администратор
,
Бухгалтер
Тип файла Внешний отчет (ert,erf)
Платформа 1С:Предприятие 8
Конфигурация
1С:Управление производственным предприятием
,
1С:ERP Управление предприятием 2
,
1С:Бухгалтерия 3.0
,
1С:Управление торговлей 11
,
1С:Комплексная автоматизация 2.х
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)