Обсудим планы обмена. Способы регистрации объектов к обмену

16.11.19

Интеграция - Обмен между базами 1C

В этой статье я предлагаю обсудить такой объект конфигурации, как "план обмена", а точнее, методы регистрации в нем. Да и вообще, посмотрим, как можно зарегистрировать объекты к обмену.

 

Введение

Всем привет! Давайте поговорим о таком объекте конфигурации - как "План обмена".

В этой статье я хочу поделиться своим опытом по работе с этим объектом, расскажу, с какими обменами я сталкивался за свою практику - начнем с самых простых вещей - автоматической регистрации  в плане обмена, а закончить постараюсь применением интересных возможностей 1С для регистраций объектов к обмену.

Здесь я не буду рассматривать такие вещи, как конвертация данных, перенос объектов из одной конфигурации в другую. Начнем с того, как нам вообще зарегистрировать объекты к обмену, опишем и обсудим способы.

В статье ориентируюсь на популярную конфигурации УНФ (Управление нашей фирмой 1.6) и немножечко затронем обычные формы конфигурации УПП (Управление производственным предприятием 1.3).

В обоих случаях я буду использовать платформу 1с предприятия 8.3.15.1700.

Итак, давайте начнем:

 

Автоматическая регистрация

Как я написал выше - предлагаю начать с самого простого - это создание самого плана обмена и добавление в него объектов конфигурации к обмену. Для этого, заходим в конфигуратор, находим в "общих" - "планы обмена".

Создаем новый план обмена. Пусть будет называться "Товары и услуги" (ТоварыИУслуги). Нажимаем кнопочку "Состав" в нем - и добавляем единственный объект - справочник "Номенклатура". Галочка "Авторегистрация" включена.

Собственно, практически все. Все записи справочника "Номенклатура" в конфигурации будут регистрироваться в объекте конфигурации "План обмена" в созданном узле.

Использовать предопределенный узел (с точкой) нельзя, но присвойте ему уникальный код. Поэтому, давайте создадим узел (добавим ему код) в этом плане обмена и проверим, как проходит регистрация и что там регистрируется.

Чтобы посмотреть, что регистрируется в узле, например, в УНФ есть такая обработка "Регистрация изменений для обмена данными" (вообще любой типовой конфигурации существует такая обработка). В ней нужно выбрать узел плана обмена (у нас это будет созданный ранее узел плана обмена (не предопределенный)).

 

Рис.1. Узлы плана обмена "Товары и услуги".

 

Так, выбрали узел и смотрим, на какие объекты он "настроен". В нашем случае - это только "Номенклатура". У нас видно, что к обмену зарегистрировано более 1100 объектов. Нажав на объект "Номенклатура" - можно посмотреть справа какие объекты зарегистрированы к обмену (это касается УНФ). Картина такая:

 

Рис.2. Обработка регистрации/отмены регистрации изменений для узла обмена (УНФ 1.6).

 

Так же можно добавить объекты к обмену или удалить из обмена - это кнопки "Зарегистрировать" и "Отменить регистрацию" соответственно.

 

В конфигурациях на обычных формах данная обработка выглядит по-другому. На мой взгляд, "классическая" обработка более удобна (привычна). Привожу ее вид для конфигурации УПП 1.3.

 

Рис.3. Регистрация изменений для обмена данными для УПП 1.3 (УТ 10.3).

 

На этом закончим раздел "Автоматическая регистрация". Здесь нет никаких сложностей. "Запись" в узел идет автоматом. Теперь, рассмотрим более сложный способ регистрации объектов конфигурации - "по подписке".

 

Регистрация через подписку. Запрет авторегистрации

Теперь давайте рассмотрим такой пример. Нам нужно регистрировать товары в одном узле, а услуги в другом. Разберем этот пример.

Первое, что мы сделаем, добавляем в конфигурацию новый объект - план обмена "ВыгрузкаНоменклатуры". В состав плана обмена добавляем справочник "Номенклатура", запрещаем авторегистрацию - как на рисунке:

 

Рис.4. Запрет авторегистрации в новом плане обмена.

 

Запускам предприятие, выбираем созданный план обмена и создаем там 2 узла "ВыгУслуг" и "ВыгТоваров" как на рисунке:

 

Рис.5. Создание узлов в плане обмена.

 

В узел "ВыгТоваров" (002) будем выгружать номенклатуру с типом "Запас", а в "ВыгУслуг" (001) - выгружаем услуги. Для этого создаем подписку на событие "РегистрацияСправочникаВУзле" с типом "ПриЗаписи" и прописываем на нее такую процедуру:

Процедура ПриЗаписиСправочника(Источник, Отказ) Экспорт
	
	Если Источник.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Услуга Тогда
		
		УзелОбмена = ПланыОбмена.ВыгрузкаНоменклатуры.НайтиПоКоду("001"); // узел услуг
		
		Если Источник.ПометкаУдаления Тогда
			ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Источник);
		Иначе	
			ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена,Источник);
		КонецЕсли;	
		
	ИначеЕсли Источник.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Запас  Тогда
		
		УзелОбмена = ПланыОбмена.ВыгрузкаНоменклатуры.НайтиПоКоду("002"); // узел запасов
		
		Если Источник.ПометкаУдаления Тогда
			ПланыОбмена.УдалитьРегистрациюИзменений(УзелОбмена,Источник);
		Иначе	
			ПланыОбмена.ЗарегистрироватьИзменения(УзелОбмена,Источник);
		КонецЕсли;	
		
	Иначе	
		
	КонецЕсли;	
	
КонецПроцедуры

Теперь, проверим как работает. Заходим в справочник "номенклатуру", выбираем с типом "запас" и записываем. Смотрим, что и где зарегистрировалось в узлах обмена:

 

Рис.6. Регистрация товаров в "ВыгТоваров".

 

Если записываем номенклатуру с типом "услуга", находим ее в узле "ВыгУслуг".

 

Рис.7. Регистрация услуг в узле "ВыгУслуг".

 

Операция "Пометить на удаление" отменяет регистрацию объекта в узле. Все работает - запасы падают в запасы, а услуги - в услуги. Так же можно добавлять объекты в узел плана обмена по любому условию.

 

Обмен через регистр сведений

Так же в этой статье я предложу еще такой вариант решения - регистрация документов к обмену через регистр сведений. По своему опыту - рассмотрим на примере конфигурации УНФ 1.6 (хотя, это в свое время хорошо использовалось в УПП).

Первое, что мы должны сделать - в конфигурации создать дополнительный регистр сведений "ДокументыДляВыгрузкиВБухгалтерскуюПрограмму" - пусть называется так. В нем создадим 3 измерения: Организация (тип Организация), ТипДокумента (тип Строка(200)) и ДокументСсылка (тип ДокументСсылка).

На рисунке это выглядит вот так:

 

Рис.8. Структура регистра сведений "ДокументыДляВыгрузкиВБухгалтерскуюПрограмму".

 

Теперь, нам нужно "отправлять документы" в этот регистр, если документ изменен. Для этого я опять воспользуюсь классным механизмом "Подписок на события".

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

Итак, подписка создана. Процедура подписки указана. Она достаточна простая. Привожу ее:

 

Процедура ПриЗаписиДокументаВРегистр(Источник, Отказ) Экспорт
	
	Статус 		= ОпределитьСтатусДокумента(Источник);  
	
	Если Источник.ПометкаУдаления Тогда
		
		Если Статус Тогда
			
			МенеджерРегистра 	= РегистрыСведений.ДокументыДляВыгрузкиВБухгалтерскуюПрограмму;
			НаборЗаписейРегистра 	= МенеджерРегистра.СоздатьНаборЗаписей();
			НаборЗаписейРегистра.Отбор.ДокументСсылка.Установить(Источник.Ссылка);
			НаборЗаписейРегистра.Очистить();
			НаборЗаписейРегистра.Записать();
			
		КонецЕсли;	
			
	Иначе
		
		Если НЕ Статус Тогда
	
			МенеджерЗаписи 	  =  РегистрыСведений.ДокументыДляВыгрузкиВБухгалтерскуюПрограмму.СоздатьМенеджерЗаписи();
			МенеджерЗаписи.Активность =  Истина;
			МенеджерЗаписи.ДокументСсылка =  Источник.Ссылка;
			МенеджерЗаписи.Организация    =  Источник.Организация;
			МенеджерЗаписи.ТипДокумента   =  Строка(ТипЗнч(Источник.Ссылка));
			МенеджерЗаписи.Записать(Истина);

		КонецЕсли;
		
	КонецЕсли;	
	
КонецПроцедуры

 

Теперь, напишу пояснения. Первым шагом мы определяем есть ли уже документ-источник в нашем регистре сведений при помощи простой функции ОпределитьСтатусДокумента():

 

Функция ОпределитьСтатусДокумента(ДокументОбъект) Экспорт
	 
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	РегистрСостояний.ДокументСсылка КАК Ссылка
	               |ИЗ
	               |	РегистрСведений.ДокументыДляВыгрузкиВБухгалтерскуюПрограмму КАК РегистрСостояний
	               |ГДЕ
	               |	РегистрСостояний.ДокументСсылка = &Документ";
	
	Запрос.Параметры.Вставить("Документ",ДокументОбъект.ссылка);
	
	Выборка =   Запрос.Выполнить().Выбрать();
	Если Выборка.Следующий() тогда
		Возврат Истина;
	Иначе
		Возврат Ложь;
	КонецЕсли;
	
КонецФункции

 

Затем, определяем - имеет ли пометку удаления наш "Источник" и, в зависимости от этого, - либо создаем запись в регистре для него, либо удаляем документ из регистра (посмотрите как можно работать с МенеджеромЗаписи еще).

Рабочий заполняемый регистр выглядит вот так (все работает - документы добавляются/удаляются из этого регистра):

 

Рис.9. Содержимое регистра сведений для выгрузки в бухгалтерскую программу.

 

Схема достаточна простая и реализуется, как мы все видим, одним регистром, одной подпиской и двумя функциями. Кстати, нужно указать, что созданные функции я поместил в отдельном общем модуле ФункционалВнешнийМенеджерСервер, в котором установлены галки "Сервер", "Вызов сервера", "Привилегированный".

К сожалению, на текущий момент, в расширение этот функционал не перенести - ввиду отсутствия поддержки механизма "Подписок на события" в расширениях. Но, в будущих релизах платформы разработчики обещают добавить подписки.

 

Заключение и выводы

В этой статье я привел три основных "базовых" наиболее частых метода регистрации объектов конфигурации к обмену, которые встречались по собственному опыту работы. На каждый метод я постарался привести максимально понятный пример и дать пояснение по работе метода.

 

Собственно, вот они:

1.Автоматическая регистрация объектов к обмену (самая простая, подойдет для новичков или для создания "быстрых регистраций к обмену").

2."Ручная" регистрация объектов к обмену через план обмена (чуть сложнее, подойдет для механизмов "с условием" на уровне отправки в узел плана обмена).

3.Регистрация объектов к обмену через регистр сведений (вот этот метод я бы выбрал, если бы не хотел "ломать" то, что создано до меня, аккуратно внедрил собственную систему регистрации документов к обмену на основе регистра, здесь и фильтр по обмену прикрутить очень просто).

Еще один важный момент - не забывайте про права пользователей и роли доступа, когда вы будете создать новый план обмена или регистр с подпиской...

Если вам понравилась эта статья и ее изложение, если вы захотите ее поддержать - буду только рад этому. В свою очередь, я буду рад подготовить более интересные темы из своего опыта - "написание правил для конвертации данных" или "получение данных в документ из внешних хранилищ информации (напрямую с сайта или фтп)".

 

Спасибо, что дочитали статью до конца. Всем привет.

 

 

Предыдущие материалы

Так же, прошу посмотреть мои предыдущие статьи:

Работа с механизмом отладки 1С. Базовые настройки

1С + IIS + SSL: Перевод опубликованной базы на защищенное соединение https с сертификатом от Let's encrypt

Дополнительные расходы на основе перемещения запасов в УНФ (пошаговая разработка расширения конфигурации)

Методика независимой системы "Подписки на события"

Подсистема "Подписки на события" (продолжение)

Лайфхак работы с СКД. Собираем отчет

 

план обмена регистрация объектов программная

См. также

SALE! 10%

Перенос данных из УПП 1.3 в ERP 2 / УТ 11 / КА 2. Переносятся документы, справочная информация и остатки

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

Обработка позволяет перенести из УПП 1.3 в ERP / УТ 11 / КА 2 всю возможную информацию. Переносятся документы, а также начальные остатки и справочная информация. Есть фильтр по организации и множество других опциональных параметров выгрузки. Наши правила переноса в продаже с 2015 года, постоянно работаем над их развитием. Более 360 предприятий выполнили переход с использованием этого продукта. Оказываем техническую поддержку по всем вопросам проекта переноса данных из УПП 1.3.

50722 45650 руб.

04.08.2015    159287    363    266    

345

SALE! 10%

[ED3] Обмен для ERP 2.5, КА 2.5, УТ 11.5 БП 3.0, Розница, УНФ и других с EnterpriseData (универсальный формат обмена), правила обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

25080 руб.

12.06.2017    134617    719    291    

387

Перенос данных из УПП 1.3 в БП 3.0. Переносятся документы (обороты за период), справочная информация и остатки

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

Перенос данных из 1С:Управление производственным предприятием 1.3 в 1С:Бухгалтерия предприятия 3.0 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УПП 1.3 (1.3.223.x) и БП 3.0 (3.0.149.x). Правила подходят для версии ПРОФ и КОРП.

28000 руб.

15.12.2021    20097    132    38    

90

SALE! 10%

Перенос данных из БП 3.0 в УТ 11 / КА 2 / ERP 2

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

Переносятся документы за выбранный период, нормативно-справочная информация и остатки по счетам бухгалтерского учета из программы "1С:БП 3.0" в "1С:УТ 11" или "1С:КА. 2" или "1С:ERP Управление предприятием, ред. 2".

29673 руб.

31.10.2014    231107    124    326    

295

SALE! 10%

Перенос данных из ERP 2 / КА 2 в ЗУП 3

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

Обработка позволяет не только перенести все документы, справочную информацию и начальные остатки из ERP 2 или КА 2 в ЗУП 3, но и организовать регулярный перенос данных между программами 1С:ERP 2 / КА 2 и 1С:ЗУП 3. Вы можете выбрать период отбора данных и установить фильтр по организациям, чтобы выгружать только необходимую информацию. Более того, перенос оперативно обновляется при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

48278 43450 руб.

03.12.2020    34042    80    57    

78

SALE! 10%

Перенос данных из ERP 2 / КА 2 / УТ 11 в БП 3.0

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

Перенос позволяет настроить собственный обмен данными между указанными программами, альтернативный предлагаемому фирмой 1С. Перенос данных осуществляется из 1С:ERP 2 / 1С:КА 2 / 1С:УТ 11 в 1С:БП 3.0. Правила обмена оперативно обновляются при выходе новых релизов программы 1С, так что вы всегда будете иметь самую актуальную версию обработки.

38500 34650 руб.

15.04.2019    68206    176    136    

108

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9156    9    8    

10

Перенос данных из УТ 10.3 в УТ 11.5. Переносятся документы (обороты за период), справочная информация и остатки

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 10 1С:Управление торговлей 11 Россия Управленческий учет Платные (руб)

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.87.x) и УТ 11.5 (11.5.16.x).

28000 руб.

23.07.2020    46026    194    64    

153
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. insurgut 207 17.11.19 08:23 Сейчас в теме
Так и остался нераскрытым смысл данной статьи.

Использовать регистры сведений вместо планов обмена, чтобы подменить ими планы обмена вообще дурной тон. Более того приведенный пример ПриЗаписиДокументаВРегистр вообще никак не отработает смену организации в документе.

К сожалению, на текущий момент, в расширение этот функционал не перенести - ввиду отсутствия поддержки механизма "Подписок на события" в расширениях.

Никто не запрещает вмешаться в модуль существующей подписки на событие, благо их разнообразие в типовых конфигурациях покрывает практически все типы объектов и необходимые события.
Goggy; alex67dee; bav123; ids79; sapervodichka; PLAstic; +6 Ответить
2. Bazin 5 18.11.19 06:05 Сейчас в теме
(1) Для каждой задачи - свои решение. Из планов обмен можно получить только текущую версию объекта.
А если нужно иметь все версии для обмена, то как раз удобно использовать связку подписка -> регистр сведений и там хранить версию объекта
Prometeus2011; aximo; +2 1 Ответить
3. insurgut 207 18.11.19 07:16 Сейчас в теме
(2) тут вроде решили обсудить обмены? Для хранения версий есть штатный (для конфигураций на БСП) регистр сведений ВерсииОбъектов, для обмена версиями достаточно данный регистр добавить в план обмена. План обмена гарантирует доставку из источника в приемник. Именно в этом его огромное достоинство. При любых попытках реализовать обмен иначе (как тут третий вариант - через регистр) по сути нужно разрабатывать велосипед функционал обмена данными заново.
baracuda; vvh74; alex67dee; bav123; Artem-B; mvxyz; ids79; sapervodichka; PLAstic; +9 Ответить
5. Bazin 5 18.11.19 08:12 Сейчас в теме
(3) Ухо резануло:
Использовать регистры сведений вместо планов обмена, чтобы подменить ими планы обмена вообще дурной тон


Я так и сделал.
Если предметно: ЗаявкаРасходДС меняет свой статус много раз в день, обмен - раз в сутки. И план обмена - не выход, в вот подписка с регистром версий хорошо подходит
12. PLAstic 295 18.11.19 11:40 Сейчас в теме
(5) А поясните тогда...
Вот в течении дня вы 10 раз туда-сюда переткнули статус документа. Объект к концу дня имеет какой-то конечный(?) статус и подлежит выгрузке, т.к. зареган в узле ПО. И вот он в своём текущем виде выгружается.
А зачем тут РС нужен?
Возможно, у вас методологически некорректное решение? Следует ввести признак "заявка рассмотрена" или "рассмотрение завершено", который ставится окончательно и заявку более невозможно скорректировать никому. И регистрировать в узле ПО только такие заявки.
ipzotov; sapervodichka; +2 Ответить
25. Bazin 5 18.11.19 13:50 Сейчас в теме
(12) Кто и когда изменил статус
29. PLAstic 295 18.11.19 14:30 Сейчас в теме
(25) А причём тут обмены? Если речь про историю изменений, то есть однотипный платформенный механизм и, если платформа старая, то целая подсистема в БСП.
32. Bazin 5 19.11.19 05:19 Сейчас в теме
(29) В Базе-приемнике нужно прогнать все состояния заявки по бизнес-процессу
33. PLAstic 295 19.11.19 09:18 Сейчас в теме
(32) Всё верно. Используйте целевую подсистему и подключите её к плану обмена.
41. buganov 200 15.06.21 07:12 Сейчас в теме
(5) это ужасное решение. Тут скорее всего неправильно понимается механизм обменов. Если статус много раз меняется и на промежуточные, как вариант, не стоит обращать внимания, то для этого 1С сделала целый слой регистрации. Ну сделали бы свои правила регистрации и не пришлось бы пилить целый регистр и дублировать механизмы с минимальными правками
6. Labotamy 18.11.19 08:20 Сейчас в теме
(3)Простите, но сам план обмена ничего подобного не гарантирует.
7. insurgut 207 18.11.19 10:13 Сейчас в теме
(6) сам план обмена, как объект метаданных, конечно не гарантирует. Подразумевался штатный механизм обмена, который снимает с регистрации в источнике объекты только в случае успешного приема сообщения в приемнике.
4. Leon29 18.11.19 07:39 Сейчас в теме
(3)
План обмена гарантирует доставку из источника в приемник. Именно в этом его огромное достоинство.

Верно ли я Вас понял, что он гарантирует включение в себя ссылок на измененные объекты. Т.е. из источника в план обмена. Именно это направление.
Далее читаем план обмена обработкой и передаём сведения в получателя (другая база, файл или иное программное обеспечение), то надежность передачи из плана обмена в приемник уже не зависит от него.
8. insurgut 207 18.11.19 10:15 Сейчас в теме
(4) с регистрации в плане обмена сведения снимаются не после передачи, а после получения ответа о том, что все сведения были загружены.
sapervodichka; +1 Ответить
30. Leon29 18.11.19 14:42 Сейчас в теме
9. uno-c 234 18.11.19 11:37 Сейчас в теме
Все записи справочника "Номенклатура" в конфигурации будут регистрироваться в объекте конфигурации "План обмена" в созданном узле
В объекте конфигурации "План обмена" ничего подобного не регистрируется ;)
11. aximo 2027 18.11.19 11:39 Сейчас в теме
(9)
Все записи справочника "Номенклатура"
в узле
14. TODD22 18 18.11.19 11:48 Сейчас в теме
(11)
в узле

В таблице регистрации изменений. А не в "узле".
16. uno-c 234 18.11.19 11:51 Сейчас в теме
(11)
в узле
В самом узле тоже не регистрируются записи справочника "Номенклатура". Они регистрируются в другом месте.
10. amd1986 18.11.19 11:38 Сейчас в теме
После проектирования и разработки многочисленных интеграций с системами, не связанных с 1С, пришел к выводу, что планы обмена неудобны. Они удобны при синхронизации между 1С.
sapervodichka; +1 Ответить
13. PLAstic 295 18.11.19 11:46 Сейчас в теме
(10) Реализовывал обмены с собственными сайтами клиентов и сторонними сайтами по веб-сервисам через планы обмена. Всё работало удобно и корректно.
Можете уточнить, что конкретно неудобно?
greenlist; sapervodichka; +2 Ответить
17. amd1986 18.11.19 11:58 Сейчас в теме
(13) Да корректно можно сделать по любому. Тут в простоте..
Если говорим о сайтах. То возьмем товар. У товара есть несколько ключевых данных, основанных на регистрах:
1) Его цена
2) Его остаток
3) Его значение свойства

И напрашивается алгоритм: изменилось что нить - делаем ручную регистрацию товара. Итого имеем: изменился изменилась цена товара - в планах будет товар. Но не понять, что конкретно изменилось. И поэтому, когда что то изменилось - выгружаем всю информацию о товарах и это долго, что весьма критично для высоконагруженных сайтов. Нужно выгружать только то, что изменилось. Изменилась цена - выгружаем только цену.. Более того, необходим момент времени регистрации.

Еще такой момент, регистрация в планах хранится в разрезе узла плана, в регистре хранится в разрезе сайтов.
Еще такой момент, товар в 1С - может иметь несколько разных сущностей во внешней системе..
18. TODD22 18 18.11.19 12:00 Сейчас в теме
(17)
Еще такой момент, регистрация в планах хранится в разрезе планов, в регистре хранится в разрезе сайтов.

Один план, один сайт. Нет?
20. amd1986 18.11.19 12:03 Сейчас в теме
(18) Почему 1 план? 1 узел - выгрузка товаров раз в день. 2 узел - выгрузка цен раз в час, 3 узел - выгрузка остатков раз в 15 минут. 4 план - обмен заказами.
Это я еще не говорю, что в 1 узле может быть несколько настроек и выгрузок в разные инфоблоки(commerce ML)
27. PLAstic 295 18.11.19 14:24 Сейчас в теме
(20) Зачем это делать в одном узле? Если даже у вас РИБ, то делают разные узлы. Куда-то дошло, куда-то нет. Что делать с регистрацией? Очищать выгруженные или нет? Одна интеграция с одной целевой системой - один узел одного ПО.
42. buganov 200 15.06.21 07:19 Сейчас в теме
(20) Зачем такая архитектура? Ведь даже в типовом исполнении данные по каталогу и предложениям получаются одним запросом, что логично. А на разные узлы весить как то не очень
43. amd1986 15.06.21 12:10 Сейчас в теме
(42) На разные узлы вешать стоит документы и товары. И имеет смысл разделять, когда товаров очень много, а остатки/цены нужно обновлять очень часто.
21. amd1986 18.11.19 12:07 Сейчас в теме
(18) можно сделать и в одном плане, но возникает вопрос с там, как хранится изменение. Да и настройки монструозные получаются, да и поддержка. На практике проще разделять на разные узлы. Каждый узел - своя операция обмена.
26. PLAstic 295 18.11.19 14:22 Сейчас в теме
(18) Он неправильно изначально написал. Регистрация в планах хранится по узлам. А каждый узел привязан к конкретному сайту. Вообще нет проблем.
22. PLAstic 295 18.11.19 12:22 Сейчас в теме
(17) Если так делать, то да, глупо как-то. Я регистрировал наборы записей РС ЦеныНоменклатуры и понимал, что нужно выгрузить именно цену товара.
23. amd1986 18.11.19 12:58 Сейчас в теме
(22) Ну так реализован типовой обмен с сайтом в конфигурациях 1С.
В вашем примере бывают проблемы, когда документ удалили, не понять, цена какого товара изменилась..

Да понятно, что можно использовать план обмена, но когда хочешь сделать шаг влево или вправо от шаблона использования - начинаются костыли. Я на них ни раз столкнулся и понял, ну их нафиг. Регистр сведений более универсальный.
user1523931; +1 1 Ответить
28. PLAstic 295 18.11.19 14:25 Сейчас в теме
(23)
когда документ удалили, не понять, цена какого товара изменилась
А как же регистрация удаления? Попробуйте в тестовой базе и удивитесь. Берём из набора записей удалённого документа номенклатуру, цепляем к ней цену на текущий момент и выгружаем. Всё работает корректно.
31. insurgut 207 18.11.19 18:14 Сейчас в теме
(17) вебхуки просто идеальны для решения такой задачи, минус вебхуков - только необходимость разработки и подстройки под ту или иную CRM
15. TODD22 18 18.11.19 11:50 Сейчас в теме
Операция "Пометить на удаление" отменяет регистрацию объекта в узле.

А как "Пометку удаления" тогда передать?
Vortigaunt; Artem-B; +2 Ответить
19. TODD22 18 18.11.19 12:02 Сейчас в теме
Да и вообще, посмотрим, как можно зарегистрировать объекты к обмену.

Про правила регистрации то же как то не слова....
guzel001; ids79; sapervodichka; +3 Ответить
24. sapervodichka 6690 18.11.19 13:17 Сейчас в теме
34. kosmo0 107 21.11.19 16:12 Сейчас в теме
Совсем не учтен важный момент - документ передается с движениями или нет. При авторегистрации все делается автоматом, При ручной регистрации все надо прописывать в коде. Причем при распроведении прописывать по ВСЕМ движениям документа (даже если какие-то движения вроде как и не используются). Ах да, если для документа есть последовательность - дополнительное внимание.

ps. в совсем уж тяжком случае объекты зарегистрированные для обмена можно посмотреть через запрос типа
ВЫБРАТЬ
	АдресныеСокращенияИзменения.Узел,
	АдресныеСокращенияИзменения.НомерСообщения,
	АдресныеСокращенияИзменения.Ссылка
ИЗ
	Справочник.АдресныеСокращения.Изменения КАК АдресныеСокращенияИзменения


Минус - нельзя сразу увидеть объекты всех типов.
В стандартном конструкторе запроса чтобы увидеть таблицы объектов на обмен необходимо на вкладке "Таблицы и поля" нажать на кнопку "Отображать таблицы изменений" (слева вверху).
35. transt 1 19.04.20 10:28 Сейчас в теме
Не совсем понял суть статьи

Вариант 1: Понятно, но сейчас не используется, потому что есть вариант 2.
Вариант 2: В типовых 1С если нет правил регистрации, то регистрируются все объекты. Можно написать свои правила(условия) регистрации и не лезть в подписки.
Вариант 3: Если Вы уже определились какие документы отправить, то зачем промежуточный регистр? Что он даёт в Вашем примере?
Однако, не всё так просто с третьим вариантом! Он иногда жутко полезен!
Задача стояла такая: Выгружать в другую базу Номенклатуру которая находится в определённом документе...
Проблема в том, что Номенклатура сначала создаётся, а только потом попадает в документ. Логично... И понять, что надо выгружать эту номенклатуру или нет сложно.
И тогда я создал подобный регистр, который фиксировал какая номенклатура уже должна выгружаться.
Поясню:
По подписке по записи этого документа я анализирую номенклатуру и ищу в данном регистре. Если Номенклатура есть, то я её пропускаю. Если Номенклатуры нет, то вставляю запись в регистр и регистрирую номенклатуру на отправку в узел.
Далее на подписке номенклатуры на запись проверяю по регистру надо её выгружать или нет.

Кстати, вспомнил второй случай, когда понадобился именно такой промежуточный регистр: Выгружалось постоянно оооочень много объектов. Сделал такой регистр и закидывал туда всё что должно было отправится. А перед запуском синхронизации сделал обработку: Проверял количество объектов на оправку. И если количество позволяло, то докладывал из него в регистрацию, а регистр подчищал. Так можно распределить обмен более равномерными порциями.
bav123; acanta; +2 Ответить
37. guzel001 25.01.21 07:10 Сейчас в теме
(35) Добрый день! В конвертации данных (в нужном ПКО) можно установить галку "Не выгружать объекты свойств источника по ссылкам". В моем случае это решило проблему огромного файла обмена.
Прикрепленные файлы:
36. Ikram_6501 10.11.20 18:23 Сейчас в теме
Очень понятная статья, для понимания основных вещей, и да, спасибо за аналогию плану обмену.
38. svetanik 5 16.03.21 06:32 Сейчас в теме
День добрый! А возможно в типовой УТ 11.1.2 поменять узел для зарегистрированного объекта? У клиента почему-то ГТД регистрируются не по той организации, по которой приход был.
39. svetanik 5 16.03.21 16:01 Сейчас в теме
(38) Вопрос снят. Оказывается, последовательность документов нарушена была.
40. frutty 123 29.03.21 11:51 Сейчас в теме
МенеджерРегистра = РегистрыСведений.ДокументыДляВыгрузкиВБухгалтерскуюПрограмму;
НаборЗаписейРегистра = МенеджерРегистра.СоздатьНаборЗаписей();
НаборЗаписейРегистра.Отбор.ДокументСсылка.Установить(Источник.Ссылка);
НаборЗаписейРегистра.Очистить();
НаборЗаписейРегистра.Записать();

Очень плохо "чистить" регистр не по первому измерению.
44. alalexmix 25 17.09.21 10:50 Сейчас в теме
(40) Тут вообще его не надо чистить, т.к. установлен отбор по измерению документа, а сами записи этого набора не определены (не добавлены в набор), поэтому будет записан пустой набор записей с отбором по измерению документа.
45. RomanKod 08.01.22 14:18 Сейчас в теме
Спасибо за статью. Первый раз пришлось пилить регистрацию для планов обмена. Думал все будет гораздо сложнее. Статья развеяла все страхи ))
46. quazare 3574 09.01.22 14:45 Сейчас в теме
(45) на самом деле, Регистрацию в плане обмена можно использовать не только для обмена
47. alexander-lubich 26 06.07.22 18:13 Сейчас в теме
не раскрыт предел ограничений "типовой настройки" .

вопрос блокировок таблиц изменения не раскрыт.

проблемы дедлоков начинают появляться на большом количестве узлов (скажем от 15 ) при массовой регистрации объектов
к пересылке (например контрагент с обвязкой у которого договоры с организациями по всем узлам)
это примерная граница корректной работоспособности "Типовых" обменов без лазанья "под капот" по моему опыту.

как я понимаю - когда возникает такая проблема то система сразу начинает считаться "Высоконагруженной" . и тут начинаются извращения :

1) по 2 узла в базе источнике для базы приемника (Основной и Транзитный для коротких транзакций)
2) по отдельному плану обмена для каждого удаленного узла !!
3) деление обмена на быстрый и медленный , быстрый для НСИ, медленный для документов.
4) Регистры вместо планов обмена (кудаж без них)
5) уменьшение объема пересылаемых данных -регистрация только измененных данных, обычная перезапись - нет.
6) Увеличение интервала сценариев обмена , уменьшение количества одновременных регзаданий обмена которые могут конфликтовать друг с другом за таблицы изменений.

и тд. и тп.

работая с пунктами 5 и 6 пытаются остаться на "Типовых", не всегда получается.

следующий этап - рефакторинг обмена , смена транспорта , очереди, JSON, 1с: Шина, Датареоны тд тп
48. frkbvfnjh 785 13.07.23 06:21 Сейчас в теме
Не привели пример как зарегистрировать и передать удаление объекта, в том числе записи регистра
49. artem04041994 47 14.11.23 10:12 Сейчас в теме
По своему опыту, хотел бы заметить, что использование планов обменов позволит использовать БСПшные процедуры и обработки для реализации обменов, в частности синхронизации. К примеру, обработка "КонвертацияОбъектовИнформационныхБаз" она работает только с планами обмена и регистр ей не подсунуть каким то параметром. А в обработке "УниверсальныйОбменДаннымиXML" использовать регистр можно, но она не подойдет для синхронизации данных, т.к. лично у меня не получилось, используя только правила обмена, добиться удаление объектов в базе приемнике или замещение наборов записей регистров сведений.
Оставьте свое сообщение