Планы обмена VS История данных

11.12.23

Разработка - Механизмы платформы 1С

Вы все еще регистрируете изменения только на Планах обмена и Регистрах сведений?
 
 Содержание:

 

               Почему я решил писать эту статью?

               Какие способы регистрации изменений есть в платформе?

               Недостатки старых подходов при организации интеграций.

               На что способна История данных?

                              Жизненный цикл изменений.

                                            [Киллер-фича №0]

                              Практическая часть.

                                            Создадим конфигурацию с расширениями.

                                            Включим программно Историю данных.

[Киллер-фича №1]

[Киллер-фича №2]

                                            Пример 1: Первое знакомство с пост обработкой.

[Киллер-фича №3]

[Киллер-фича №4]

[Киллер-фича №5]

                                            Пример 2: Обогащение версии.

[Киллер-фича №6]

[Киллер-фича №7]

Пример 3: Включаем автоматику, чистку отработанных версий и отключаем ненужные реквизиты.

[Киллер-фича №8]         

               Итоги.

Полезные статьи по данной тематике.

Небольшой опрос.

 

Почему я решил писать эту статью?

1 Я уже рассказывал, как в 2021 году провел 100 собеседований за 3 месяца и увидел, что 50% собеседуемых не слышали про Историю данных, 20% что-то слышали, но не знают, чем она отличается от БСП Версионирования данных.

Как по мне — это пугающая статистика.

В связи с чем я поставил себе цель на 2023 год – «Максимально донести информацию по данной технологии платформы». Я спланировал все кубики пазла и это последний кубик, который я планировал рассказать, как часть доклада. В докладе был пункт «Плановый переход с планов обмена на историю данных». Доклада не случилось, поэтому последний кубик будет в виде статьи.

 

 

2 Спойлер. Начал писать цикл статей по интеграции, связанных с Шиной, и пришел к выводу, что без данной статьи получится очень громоздко. 

 

Какие способы регистрации изменений есть в платформе?

  • Первое, что приходит в голову, «Планы обмена».
  • Второе, различные вариации на тему Регистров сведений.

Есть варианты отлова изменений прямо на SQL, но это уже совсем другая история.

 

Для начала я рекомендую почитать или посмотреть выступление Дмитрия Жичкина, так как он уже подробно описал архитектуру и основные недостатки планов обмена -> Планы обмена 1С

На последнем INFOSTART EVENT 2023 он же выступал с докладом «Тюнинг планов обмена», в котором пытался оживить Планы обмена за счет своей разработки DaJet. Уверен многие из нас делали регистрацию изменений на Регистрах сведений и часть проблем уходило, но проблем все равно много.

 

Недостатки старых подходов при организации интеграций.

 

 

  • Регистрируется сам факт изменения.

Мы не знаем, что поменялось в объекте, соответственно даже если поменялся только комментарий, мы потащим объект целиком, даже если в объекте может быть много таблиц.

 

Представьте, что вы приходите к врачу за справкой, а с вас требуют все ваши документы, которые у вас появились за все время жизни, плюсом требуют рассказать все, чем вы занимаетесь, про ваши хобби, вкусовые предпочтения и т.д.

  • Все или ничего.

Нельзя собирать изменения только по части объекта.

Хотя… Можно, но для этого в подписке «ПередЗаписью» придётся сделать проверку изменений до и после только по определенным реквизитам, а потом еще дорабатывать, когда пересмотрите свои взгляды на первоначальные настройки.

 

  • Мы не знаем автора изменений.

Это вытекает из предыдущих недостатков. На помощь может прийти Версионирование объектов или можно изобразить свой велосипед.

 

  • Последовательность.

Мы не знаем, в какой последовательности изменялись данные.

Это решается при использовании Регистров сведений и поля а ля timestamp.

Либо выставляется приоритет загрузки\выгрузки, но этот велосипед устарел…

 

  • Изменение состава через доработки.

Хотите регистрировать новый объект?

Добавьте его в состав.

Хотите, чтобы он попадал в обмен не всегда?

Необходимо запретить Авторегистрацию и написать код в «ПередЗаписью».

И, кстати, не забудьте дать права.

И только после обновления конфигурации и добавления узла рег

Вступайте в нашу телеграмм-группу Инфостарт

Версионирование объектов Планы обмена История данных БСП Платформа версия Киллер-фича расширение 8.3.15 SQL Настройки Метаданные Очередь отборы дополнение версии регистрация изменений ВыполнитьОбработкуПослеЗаписиВерсий ОбработкаПослеЗаписиВерсийИсторииДанных

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена | Можно выполнить переход с УПП на БП 3 или запускать выгрузку данных за выбранный период времени | Переносятся документы, начальные остатки и вся справочная информация | Есть фильтр по организации и множество других параметров выгрузки | Поддерживается несколько сценариев работы: как первичный полный перенос, так и перенос только новых документов | Перенос данных возможен в "1С: Бухгалтерия 3.0" версии ПРОФ, КОРП или базовую | Переход с "1С: УПП1.3" / "1С:КА 1.1" на "1С:БП3.0" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

50050 руб.

25.02.2015    190719    372    294    

428

Перенос данных 1C Программист 1С:Предприятие 8 1С:Управление производственным предприятием 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос документов, начальных остатков и справочной информации из УПП 1.3 в ERP 2 | из УПП 1.3 в УТ 11 | из УПП в КА 2 | Правила конвертации (КД 2) | Более 360 предприятий выполнили переход с использованием этого продукта! | Сэкономьте время - используйте готовое решение для перехода! | Позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию | В переносе есть фильтр по организации и множество других опциональных параметров выгрузки | Есть несколько алгоритмов выгрузки остатков на выбор

58000 руб.

04.08.2015    192230    462    308    

462

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Россия Платные (руб)

Правила в универсальном формате обмена для ERP 2.5, КА 2.5, УТ 11.5, БП 3.0, Розница, УНФ, для последних версий конфигураций. Ссылки на другие конфигурации в описании публикации. Правила совместимы со всеми другими версиями конфигураций новыми и старыми, поддерживающими обмен и синхронизацию в формате EnterpriseData. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    163146    991    329    

487

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)

Перенос данных из ERP в БП 3 | из КА 2 в БП 3 | из УТ 11 в БП 3 | из ЕРП в БП 3 | Сэкономьте время - используйте готовое решение для перехода! | Перенос разработан в формате КД 2 (правила конвертации данных) | Переносятся все возможные виды документов, начальных остатков и нормативно-справочная информация| Можно опционально выгружать каждую пару "номенклатура+характеристика" как отдельную номенклатуру | Есть выгрузка настроек счетов учета и зарплатных данных из ERP / КА 2 | Можно проверить на вашем сервере перед покупкой

58000 руб.

15.04.2019    86089    231    181    

168

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Программист 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Управленческий учет Платные (руб)

Перенос данных из ERP в ЗУП 3 | из КА 2 в ЗУП | Готовые правила конвертации данных (КД 2) для переноса остатков, документов с движениями и справочной информации 3 | Есть перенос начальной задолженности по зарплате и начальной штатной расстановки на выбранную дату | Обороты за прошлые годы (данные для расчета среднего) переносятся свернуто в документ "Перенос данных" | Есть фильтр по организациям | Документы за текущий период переносятся сразу с движениями, поэтому не потребуется делать перерасчеты | Перенос можно проверить перед покупкой, обращайтесь!

55200 руб.

03.12.2020    46346    132    83    

122

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Системный администратор Программист Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Платные (руб)

Обработка не только формирует начальные остатки по всем счетам на нужную дату (экономя время на свёртке базы БП 3), но и полностью переносит справочные данные и документы за заданный период. Гибкая настройка включает фильтр по организациям и множество параметров выгрузки. Работайте в удобном формате: выполните однократный полный переход или настройте регулярную догрузку только новых документов из БП 3 в БП 3.0. Интеграция правил конвертации в план обмена гарантирует точную выгрузку исключительно зарегистрированных объектов.

70760 руб.

10.04.2026    1007    3    8    

2

Перенос данных 1C Взаиморасчеты Оптовая торговля Логистика, склад и ТМЦ Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С:Предприятие 8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Управленческий учет Платные (руб)

Можно проверить до покупки, оставьте заявку! Воспользовались более 268 компаний! Перенос данных из УТ 10.3 в УТ 11 | из УТ 10.3 в КА 2 | из УТ 10.3 в ERP. Решение для перехода с УТ 10.3. Можно перенести начальные остатки, нормативно-справочную информацию и все возможные документы. При выгрузке можно установить отбор по периоду, организациям и складам.

50200 руб.

24.04.2015    209394    178    253    

297

Перенос данных 1C Программист 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Перенос данных из УПП 1.3 в УНФ | из КА 1.1 в УНФ | из УТ 10.3 в УНФ | Перенос разработан в формате КД 2 (правила конвертации объектов) | Выгружаются все возможные виды документов, начальных остатков и вся нормативно-справочная информация | Есть фильтр по организациям при выгрузке данных | Есть несколько алгоритмов выгрузки начальных остатков товаров на выбор | Можно проверить перед покупкой на своем сервере!

58000 руб.

17.10.2019    45593    60    118    

62
Отзывы
3. zhichkin 1572 11.12.23 15:08 Сейчас в теме
Отличная статья! Вот теперь сложилась практически полная картина по всем возможным механизмам регистрации изменений в 1С. Можно ещё добавить механизм взаимодействия, к которому цепляется 1С:Шина - это про объекты конфигурации типа "Сервисы интеграции" (по сути аналог регистрации изменений через регистры сведений) и будет 100%. Кроме этого (надеюсь уважаемый автор не будет против), позволю себе ещё добавить ссылку на свою же статью "История данных 1С".
swenzik; NIKAMED_IT; dsdred; +3 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1589 11.12.23 11:32 Сейчас в теме
название статьи очень интересно, но размер шрифта статьи уж очень мелкий (
читать больно

а на скриншотах нормальный размерчик )
NIKAMED_IT; dsdred; +2 Ответить
2. dsdred 4276 11.12.23 11:36 Сейчас в теме
(1)Спасибо за обратную связь.
Шрифт увеличил.
3. zhichkin 1572 11.12.23 15:08 Сейчас в теме
Отличная статья! Вот теперь сложилась практически полная картина по всем возможным механизмам регистрации изменений в 1С. Можно ещё добавить механизм взаимодействия, к которому цепляется 1С:Шина - это про объекты конфигурации типа "Сервисы интеграции" (по сути аналог регистрации изменений через регистры сведений) и будет 100%. Кроме этого (надеюсь уважаемый автор не будет против), позволю себе ещё добавить ссылку на свою же статью "История данных 1С".
swenzik; NIKAMED_IT; dsdred; +3 Ответить
4. dsdred 4276 11.12.23 15:17 Сейчас в теме
(3)Спасибо за отзыв.

Про сервисы интеграции я планирую рассказать.
Сначала вводная статья будет с ответами на вопросы, потом про сообщения и сервисы интеграции.
zhichkin; +1 Ответить
5. van_za 328 11.12.23 20:07 Сейчас в теме
Интересная статья , спасибо.
С регистрации понятно, минус в том что нужно удалять версии и не получится использовать версии как версии.
6. dsdred 4276 11.12.23 22:05 Сейчас в теме
(5)
минус в том что нужно удалять версии и не получится использовать версии как версии.

Не совсем понял.

Зачем удалять версии?
Механизм из статьи - это отдельная таблица с изменениями.
Таблицы:
[DataHistoryLatestVersions], [DataHistoryLatestVersions1], [DataHistoryLatestVersions2] – Последние версии истории данных
[DataHistoryVersions] – Изменения в версии (аналогично разносным изменениям в SQL)

В данной статье рассказ про:
[DataHistoryAfterWriteQueue] – Очередь обработки после записи истории данных.
Вот из этой таблицы мы и удаляем уже отработанные данные.
13. van_za 328 13.12.23 15:44 Сейчас в теме
(6)
Разобрался, да интересное применение...еще раз спасибо за статью
14. dsdred 4276 13.12.23 20:31 Сейчас в теме
(13)Рад, что статья понравилась и разобрались.
7. fancy 37 12.12.23 07:26 Сейчас в теме
Отличная статья, единственно я не понял по вашему скриншоту момент
Мы видим, как работает сортировка при пост обработке:
По дате убывания
По номеру версии

на скрине дата по возрастанию же
8. dsdred 4276 12.12.23 07:44 Сейчас в теме
(7)Спасибо за замечание.
Видимо забыл убрать слово "убывание"

Пример по которому понятна сортировка прикладываю.
Прикрепленные файлы:
9. van_za 328 12.12.23 08:45 Сейчас в теме
(6)
Видимо что не понимаю, если удаляем то как посмотреть потом историю изменений?
Как заменить версиями план обмен если в плане обмена для каждого приёмника фиксируется и комитится своя строчка?
Andreeei; +1 Ответить
10. dsdred 4276 12.12.23 09:09 Сейчас в теме
(9)
Видимо что не понимаю, если удаляем то как посмотреть потом историю изменений?

Посмотрите в статье на картинку Жизненный цикл изменений.

То есть у нас две таблицы.
1 [DataHistoryVersions] она хранит разносные изменения. Это и есть версии данных

Подробней про версии писал в статье -> Версионирование объектов VS История данных

2 [DataHistoryAfterWriteQueue] хранит тоже изменения, что и в [DataHistoryVersions], но служит не для постоянного хранения, а для того чтобы вы что-то с ними сделали (например отправили сообщения на основании их) и удалили.

Как заменить версиями план обмен если в плане обмена для каждого приёмника фиксируется и комитится своя строчка?

Про это я буду говорить в следующих статьях по интеграции, но кратко опишу.

Самое частое использование планов обмена это КД2-3 там 1 узел = 1 база и настройки подключения хранятся на узле.
КД хорошо подходит для мелких организация, но скажем честно механизм устарел и не годится для среднего и крупного бизнеса где большой поток данных.

Есть более современные инструменты. Брокеры (RabbitMQ, Kafka, NATS и т.д.) С помощью этих решений организовывается другой тип обмена. Создается топик в который шлются изменения или несколько топиков, а в базах приемниках подписываются на эти топики и считывают все что туда попадает. Соответственно сам топик выступает в роле накопительного Узла.

Есть ESB решения (WSO2, 1C Шина, mule esb, DataReon и т.д.), там принцип похож на брокеры, но там маршруты, коннекторы и трансформация данных.

По сути можно либо на стороне 1с в базе источника указывать получателей и отправлять в брокер или ESB. Или организовать трансформацию и маршрутизацию силами ESB. А дальше данные прилетают подписчикам в первоначальном или измененном в ESB виде.


П.С. Об этом всем я хотел рассказывать уже в следующем цикле статей.
11. PerlAmutor 162 12.12.23 14:13 Сейчас в теме
Интересно стоит ли ждать в БСП механизм выполнения обработчиков обновления через этот способ, а также механизм Обновления Через Копию в ERP.
12. dsdred 4276 12.12.23 15:08 Сейчас в теме
(11) это риторический вопрос. Кто его знает, что нам ждать...

Как показывает практика чаще всего проще самому сделать чем ждать.
15. Cyberhawk 135 16.12.23 20:50 Сейчас в теме
как работает сортировка при пост обработке:
1. По дате
2. По номеру версии

Может просто по номеру версии? А то что дата также возрастает (но необязательно) - уже просто приятный бонус...
16. dsdred 4276 16.12.23 20:53 Сейчас в теме
(15) я в 8 коментарии изобразил сортировку.
17. Cyberhawk 135 16.12.23 20:58 Сейчас в теме
(16) Из которой по идее совершенно спокойно можно убрать сортировку по дате
18. dsdred 4276 16.12.23 20:59 Сейчас в теме
(17) впринципе да. Согласен.
19. rozer 323 17.12.23 17:42 Сейчас в теме
Как-то давно нашел видео по этой теме https://youtu.be/pqEQYPzZpMw?si=b77uSAGPZxBxszMV
20. JohnyDeath 302 07.01.24 10:04 Сейчас в теме
Большой минус истории данных по отношению к планам обмена - это то, что в истории никак не отражается факт изменения регистра накопления. Поэтому, если, например, нужно оперативно отправлять остатки во внешнюю систему, то обойтись только историей данных не получится. Всё равно придется вешать обработчик на регистр и писать факт изменения в какую-то очередь.
А в остальном - да, прекрасный инструмент.
embarcadero; +1 Ответить
21. dsdred 4276 07.01.24 10:40 Сейчас в теме
(20) согласен.
Видимо логика была от документов, а не проводок.
22. JohnyDeath 302 07.01.24 13:37 Сейчас в теме
(21) да, хранить "историю" записи регистра накопления или проводки - такое себе.
Но не помешало бы иметь те же самые события "после записи", что и для объектов данных.
Плясать "от документов", а не от записей регистров довольно-таки проблематично. Плюс надо будет постоянно помнить об обменах на базе Истории при добавлении новых документов или допилки старых.
23. dsdred 4276 07.01.24 21:15 Сейчас в теме
(22) Что сказать... многое зависит от того как продумаешь интеграцию. При правильном подходе проектирования интеграций, все будет задокументировано и описано, что куда и как летит. Тогда и помнить не надо.
Мне пока достаточно функционала истории данных, не будет хватать буду думать и миксовать с планами обмена.
24. user1589569 22.01.24 19:40 Сейчас в теме
Спасибо огромное за интересную, содержательную статью!!!))))
25. dsdred 4276 22.01.24 20:29 Сейчас в теме
(24)рад, что статья понравилась.
26. Pryanishnikov_Vladimir 06.02.24 06:53 Сейчас в теме
По каким причинам может не заходить в ОбработкаПослеЗаписиВерсийИсторииДанных менеджера обьекта? История данных включена в конфигураторе, глаки на ОбновлятьИсториюСразу и на ВыполнятьОтложеннуюОбработку стоят
27. dsdred 4276 06.02.24 09:31 Сейчас в теме
(26) Точка остановы не заходит?
Если да тогда: Отладка должна быть включена и подключение выбрано "Фоновые задания"

Чтобы вручную запустить обработку накопленных изменений необходимо выполнить код:
ИсторияДанных.ОбновитьИсторию(); // создаем версии

ИсторияДанных.ВыполнитьОбработкуПослеЗаписиВерсий(); // запускаем пост обработку
Pryanishnikov_Vladimir; +1 Ответить
28. Pryanishnikov_Vladimir 06.02.24 09:34 Сейчас в теме
(27) Это все сделано да. Работает в другой базе. Все просто перенес. Проблему нашел. Работает все это начиная с совместимости 8.3.15, в текущей базе стоит 8.3.14 - в копии поднял - заработало. Вынесите это жирно в начале статьи
29. user1866782 06.02.24 09:56 Сейчас в теме
Не было проблем с регистрами сведений? Программно включил историю данных, в событие перед записью "ВыполнятьОбработкуПослеЗаписиВерсии" установил в Истину, программно обновляю историю с флагом "ВыполнитьОбработкуПослеЗаписиВерсий", история пишется, а в очередь постобработки не попадает, таблица DataHistoryAfterWriteQueue пустая, со справочниками и документами все норм.
30. dsdred 4276 06.02.24 10:04 Сейчас в теме
(29) С регистрами пока не связывался, проверю отпишусь.
31. SuraevIS 20.02.24 13:37 Сейчас в теме
Спасибо за статью. Не могли бы Вы пояснить вопрос не по теме:
"Я буду использовать свое универсальное решение для скорости создания подписок и изменения кода без вмешательства в конфигурацию." - Поясните пожалуйста механизм создания подписки не влезая в конфигуратор.
32. dsdred 4276 20.02.24 13:54 Сейчас в теме
(31)Добрый день.
Имеется ввиду, что в расширении я создал несколько универсальных подписок, которые позволяют мне выбирать в Клиенте источник и вносить либо код либо указать внешнюю обработку которая содержит код подписки.
В плане сделать возможность выбора внутренней обработки.

Собственно я не лажу в конфигуратор обозначает не дорабатываю конфигурацию, после того как создал универсальные подписки.
SuraevIS; +1 Ответить
33. Somebody1 68 13.03.24 12:40 Сейчас в теме
Добрый день, спасибо за качественную публикацию!

Вопрос: правильно ли я понимаю, что если мы используем Историю данных для регистрации изменений объектов, и при этом отключим не нужные ДЛЯ ИНТЕГРАЦИИ реквизиты (как у вас в Примере 3), то при этом мы потеряем версионирование при изменении этих реквизитов?

Иными словами, получается, что мы настроим Историю данных для нужд интеграции, но при этом потеряем возможность её полноценно использовать для версионирования объектов.
34. dsdred 4276 13.03.24 12:44 Сейчас в теме
(33)Добрый день.
Вопрос: правильно ли я понимаю, что если мы используем Историю данных для регистрации изменений объектов, и при этом отключим не нужные ДЛЯ ИНТЕГРАЦИИ реквизиты (как у вас в Примере 3), то при этом мы потеряем версионирование при изменении этих реквизитов?


Верно понимаете.

Я лично отключаю галочки по тем элементам у которых стоит "Удалить", грубо говоря у тех которые в следующих релизах исчезнут.
35. eSpe 17.03.24 04:04 Сейчас в теме
Создали объект история данных для истории данных. Статья посвящена тому как забить гвоздь микроскопом. ИМХО в крупных и промышленных решениях такие подходы обычно не приветствуются.
44. d4rkmesa 12.06.24 10:33 Сейчас в теме
(35)
Напротив, это хорошая технология для регистрации изменений, если в основе обменов - какая-нибудь ESB, а не куча костылей и планы обмена + БСП.
36. dsdred 4276 17.03.24 09:27 Сейчас в теме
(35) создали обьект первоначально для истории данных. А потом добавили пост обработку для обменов.

А какие подходы по вашему "ИМХО" приветствуются?

Я видел в крупных проектак еще в 2019 как делали самописный механизм повторяющий типовой о котором я рассказал в статье, но делали его до того как он появился.
d4rkmesa; +1 Ответить
37. Seeker 03.06.24 11:55 Сейчас в теме
Есть статья про переделывание таблицы регистрации изменений на регистры сведений!?
38. dsdred 4276 03.06.24 12:25 Сейчас в теме
(37) Добрый день. такой статьи не видел. Чисто теоретически такое сделать можно, но смысла в этом не вижу.
Подскажите, зачем может понадобится такая доработка?
39. Seeker 05.06.24 10:00 Сейчас в теме
(38) У нас используется версия платформы 8.2.19.130.
40. Seeker 05.06.24 11:00 Сейчас в теме
Сейчас поднял версию платформы до 8.3.24, но режим совместимости остался:

Справочник.Номенклатура: В режиме совместимости 8.3.10 и ниже недопустимо использование истории данных
При проверке метаданных обнаружены ошибки!
Операция не может быть выполнена.
41. dsdred 4276 05.06.24 11:30 Сейчас в теме
(40) Заработает только с совместимости 8.3.11 и выше
42. Seeker 05.06.24 12:41 Сейчас в теме
(41) вот по этому и приходится выдумывать альтернативу...
43. dsdred 4276 05.06.24 12:49 Сейчас в теме
(42)Можно использовать Версионирование обьектов из БСП или взять ее за основу.
45. Xershi 1564 09.12.24 22:50 Сейчас в теме
Перешли с 8.3.20 на 8.3.25 и созрели до использования истории данных.
Почерпнул детали.
По опросу:
1. Наверное, нет. Это джава? Проходил джава раш, когда он ещё не подгнил, было прикольно. Но практического применения не нашел. Но в качестве ликбеза и примера где и для чего может понадобиться сойдёт!
2. Будет годно однозначно.

А по багам пишите в поддержку 1с. У меня в закромах тоже есть обработка которая крашит платформу. Обещали исправить вопрос только когда.
46. dsdred 4276 09.12.24 23:55 Сейчас в теме
(45) спасибо за ответы
47. VKislitsin 1057 12.03.25 13:24 Сейчас в теме
Пытаюсь придумать решение для ситуации, когда ОбработкаПослеЗаписиВерсийИсторииДанных выполняется расширениями (возможно несколькими). А может и в самой конфигурации тоже используется. Конкретно, размышляю над критериями для удаления записи из коллекции ИнформацияОЗаписиВерсий.

На примере попробую пояснить.
Есть некое Расширение_А, которое выполняет некую обработку и после удаляет запись из коллекции ИнформацияОЗаписиВерсий.
В базу ставят Расширение_Б, которое тоже использует этот механизм - имеет некий код в ОбработкаПослеЗаписиВерсийИсторииДанных.
Предположим, код в Расширение_А отработал первым и подчистил за собой коллекцию. Расширению_Б в этом случае нет данных для обработки.
Или другой кейс: в конфигурации включили какие-то действия в ОбработкаПослеЗаписиВерсийИсторииДанных и тут же почистили коллекцию. Теперь уже для Расширения_А не будет данных.

Собственно, вопрос, который пытаюсь решить: то ли в ДанныеВерсии перед записью можно добавить что-то Расширением_А, чтобы в обработке можно было понять, надо ли вычищать запись из коллекции, то ли создавать им прямо "персональную" версию Объекта, от которой гарантированно можно ДанныеВерсии вычищать (возможно и с удалением самой версии)?

Есть какие-нибудь наработки или идеии в этом контексте?
48. dsdred 4276 12.03.25 13:34 Сейчас в теме
(47) Добрый день. Я придерживаюсь концепции что такой механизм должен быть в одном месте, но если рассматривать ваш сценарий... Тут надо конечно поэкспериментировать, первое что в голову приходит. Может быть попробовать поиграться с комментарием?
ИсторияДанных.ЗаписатьКомментарий(Данные, Версия, Комментарий);
49. VKislitsin 1057 12.03.25 13:45 Сейчас в теме
(48) Я еще уточню насчет "всё в одном месте": Расширение_А - тиражный продукт, т.е. в каких базах (с доработками или без) и с каким набором расширений в соседстве оно будет у клиентов - неизвестно и неконтроллируемо.
50. KlesAlex 3 05.06.25 09:21 Сейчас в теме
Интересное наблюдение
Платформа 8.3.25.1445
База файловая. Отладка включена.
Если включать историю изменений через обработку - сама история появляется. Видно в справочниках.
Но в подписку обработки после записи версий не приходит. Ни в глобальную, ни даже в модуле менеджера справочника.
Если ее включить в конфигурации - тоже не приходит.
Но если в конфигурации так же установить галку "Выполнять обработку после записи версии истории данных", то приходит и после метода "обновить историю" и после "выполнить обработку после записи версий".
51. dsdred 4276 05.06.25 12:51 Сейчас в теме
(50) Оно в фоновом задании работает, а у файловых с этим не совсем хорошо ;)
52. KlesAlex 3 05.06.25 15:27 Сейчас в теме
(51) попробовал на версии 8.3.24.1667 в серверном исполнении.
Тоже самое. Отладка подключена. Автоматическое подключение к фоновым заданиям тоже.
Пока не включаю непосредственно в конфигураторе использование и не ставлю галку выполнять обработку после записи - в точку остановки не приходит.
Как только делаю - приходит и не в фоновом задании.
53. dsdred 4276 05.06.25 20:49 Сейчас в теме
(52) а вот это странно. Должно останавливаться.
54. KlesAlex 3 05.06.25 23:09 Сейчас в теме
(53) уточнение
второй раз для эксперимента я создал всего 1 справочник. никаких расширений и тп. Просто пустая база с 1 справочником, 1 общим модулем, 1 подпиской и 1 обработкой.
Прикрепленные файлы:
55. nifor777 29.06.25 15:23 Сейчас в теме
(52) Добрый вечер. Платформа 8.3.26 совместимость 8.3.20. Выдержка из синтакс-помощника по методу "ВыполнитьОбработкуПослеЗаписиВерсий "

"Запускает выполнение обработчика события ОбработкаПослеЗаписиВерсийИсторииДанных для версий, при записи которых был установлен флаг ВыполнятьОбработкуПослеЗаписиВерсии"

То есть флаг необходимо выставить в метаданном, либо добавить подписку "перед записью" или "при записи" со следующим кодом (Источник.ЗаписьИсторииДанных.ВыполнятьОбработкуПослеЗаписиВерсии = Истина;)

После этого при выполнении метода "ВыполнитьОбработкуПослеЗаписиВерсий" заходит куда необходимо.
56. dsdred 4276 02.07.25 18:00 Сейчас в теме
(55) да. Но работает в фоновом задании.
57. porozov2 04.09.25 16:27 Сейчас в теме
8.3.26. При удалении записи из регистра сведений в Обработке после записи версий этой информации нет. Вроде как бы логично, ты запись удалил, какие сведения о уже несуществующей записи ты хочешь получить? Тогда получается ваш способ регистрации изменений не подходит если в обмене участвуют РС (или другие не ссылочные типы). Или есть какой-то обходной путь?
58. dsdred 4276 04.09.25 16:32 Сейчас в теме
(57) у меня небыло потребности Регистры гонять в обмене.
59. alexey-simf 37 30.10.25 14:58 Сейчас в теме
Статью прочитал всю, но некоторые места "по диагонали", так что мог что-то пропустить.
Я правильно понимаю, подобный механизм можно использовать только для одной "очереди" для условного обмена? Т.е. не получится сделать обмен с несколькими базами-получателями, где у каждой своя очередь?
60. dsdred 4276 30.10.25 15:04 Сейчас в теме
(59)
Погодите, погодите.
У вас есть номенклатура и есть 3 базы которым она нужна.

Соответственно по типу вы же понимаете, что надо отправить в три базы.
Либо у вас есть документ Поступления и вы понимаете что с такой-то организацией получатель база А, а с другой организацией получатель Б. Соответственно перед отправкой вы понимаете кому надо отправить.

Вопрос к архитектуре конечно, но кажется где-то у вас как то не так...
Иначе бы такого вопроса не было.
61. alexey-simf 37 30.10.25 15:10 Сейчас в теме
Ну, пусть будет Номенклатура.
Есть два внешних сервера обычного MS SQL, на каждом своя база для последующего получения оттуда, например, кассами и ТСД.
Изменилось наименование какого-то товара.
В момент выгрузки один из этих внешних SQL серверов недоступен - это может быть не критично.
Но выгрузка в другой, доступный сервер должна выполниться сразу, а в недоступный - позже, когда он "вернётся".
В случае, например, с регистрами сведений, это бы решилось легко - каждый внешний объект - своя отдельная очередь.
В случае же описанного механизма с историй, такое можно реализовать?
62. dsdred 4276 30.10.25 15:18 Сейчас в теме
(61) Тут же опять же нужно по архитектуре разговаривать.

Вариант 1.
Используем Брокер/Шина. соответственно на стороне 1с готовим сообщение и говорим кто получатели, а дальше рулится не 1С-кой

Вариант 2.
Берем например сервисы интеграции и создаем в них каналы по типу узлов планов обмена. Создаем сообщения в них.
И точно также проверяем отправилось сообщение или нет и если отправилось удаляем.

посмотрите например вот этот пример https://infostart.ru/1c/articles/2059507/
63. alexey-simf 37 30.10.25 15:21 Сейчас в теме
(62) Тоже хорошие варианты.
История будет использоваться для регистрации конкретных изменений и распределения, а уже "дополнительные очереди" будут использоваться для выгрузки дальше.
Спасибо. Учту.
Для отправки сообщения требуется регистрация/авторизация