Регистрация изменений для обмена данными запросом

21.08.23

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

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

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

Наименование Файл Версия Размер
Регистрация изменений для обмена данными МД v1.0:
.epf 142,42Kb
6
.epf 142,42Kb 6 Скачать

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

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

Код, представленный ниже - не "взлетел".

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

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

Суть доработки - это добавить возможность отбора запросом на форму обработки "ВыборОбъектовОтбором", На эту форму была добавлена Группа страницы, типовые элементы перенесены на страницу "СтраницаОтбор" и создана страница "СтраницаОтборЗапросом", также на форму были добавлены реквизиты "ТекстЗапроса" и "Список", и команда "КомандаВыбратьЗапросом".

 

 

За основу для написания логики обработчика команды "КомандаВыбратьЗапросом" была взята типовая процедура "ПроизвестиВыбор".

&НаКлиенте
Процедура КомандаВыбратьЗапросом(Команда)
	
	Перем ВыборкаДанных, Ссылка;
	
	ВыборкаДанных = КомандаВыбратьЗапросом_НаСервере();
	
	СтруктураПараметров = Новый Структура();
	СтруктураПараметров.Вставить("ИмяТаблицы", Параметры.ИмяТаблицы);
	СтруктураПараметров.Вставить("ДанныеВыбора", ВыборкаДанных);
	СтруктураПараметров.Вставить("ДействиеВыбора", Параметры.ДействиеВыбора);
	СтруктураПараметров.Вставить("СтруктураПолей", СтруктураДанных);
	ОповеститьОВыборе(СтруктураПараметров);
	
КонецПроцедуры

&НаСервере
Функция КомандаВыбратьЗапросом_НаСервере()
	
	Перем Запрос, Выборка, ВыборкаДанных, ТабДок, Сч, ВГраница, мСписок;

	мСписок = Новый Массив();
	
	ТабДок = ЭтаФорма.Список;
	ВГраница = ТабДок.ВысотаТаблицы;

	Для Сч = 2 По ВГраница Цикл
		
		Значение = СокрЛП(ТабДок.Область("R" + Формат(Сч, "ЧГ=0") + "C1").Текст);
		
		Если НЕ ЗначениеЗаполнено(Значение) Тогда
			Прервать;			
		КонецЕсли;
		
		мСписок.Добавить(Значение);
	КонецЦикла;	
	
	
	Запрос = Новый Запрос();
	Запрос.Текст = ЭтаФорма.ТекстЗапроса;
	Запрос.УстановитьПараметр("Список", мСписок);
	Выборка = Запрос.Выполнить().Выбрать();
	
	ВыборкаДанных = Новый Массив();
	
	Пока Выборка.Следующий() Цикл
		Элемент = Новый Структура(СтруктураДанных);
		Элемент.Ссылка = Выборка[0];
		ВыборкаДанных.Добавить(Элемент);
	КонецЦикла;
	
	Возврат ВыборкаДанных;
КонецФункции

Ещё в модуль формы была добавлена процедура "ИнициализироватьСтраницуОтборЗапросом", а в конец процедуры "ПриСозданииНаСервере" её вызов.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

	...


	ИнициализироватьСтраницуОтборЗапросом(ИмяТаблицыДанных, МетаИнфо);
КонецПроцедуры


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

Собственно, вот и вся модернизация.

Ну а теперь о том, как это работает:

Открываем модернизированную обработку, выбираем нужный узел обмена, находим интересующий нас объект, жмём правую кнопку мыши и, в появившемся контекстном меню, выбираем пункт "Зарегистрировать изменения при помощи отбора"

 

 

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

 

 

Далее жмём кнопку "Выбрать запросом" и вуаля:

 

 

Если у вас нет времени, чтобы самому вносить изменения в типовую обработку "Регистрация изменений для обмена данными", можете скачать модернизированную мною обработку, взятую из типовой конфигурации УТ11 (11.5.13.74).

Обработка тестировалась на платформе 1С 8.3.22.2106.

#РегистрацияИзмененийЗапросом #РегистрацияИзмененийДляОбменаДанными #РегистрацияИзмененийДляОбменаДаннымиЗапросом

См. также

SALE! 10%

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

Обмен между базами 1C Платформа 1С v8.3 1С:Управление производственным предприятием Россия Платные (руб)

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

46083 41475 руб.

04.08.2015    155835    289    263    

331

SALE! 10%

Перенос данных из УПП 1.3 / КА 1.1 в БП 3.0

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

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

43889 руб.

25.02.2015    166929    282    236    

365

[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    131565    685    290    

379

SALE! 10%

Перенос данных из УПП 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.215.x) и БП 3.0 (3.0.144.x). Правила подходят для версии ПРОФ и КОРП.

28000 25200 руб.

15.12.2021    18173    116    36    

68

SALE! 10%

Перенос данных из ERP 2 (ЕРП) / КА 2 в ЗУП 3 [КД 2]

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

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

43889 39500 руб.

03.12.2020    32658    67    56    

69

SALE! 10%

Перенос данных из УТ 10.3 в УТ 11 / КА 2 / ERP 2 (ЕРП 2)

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

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

43889 39500 руб.

24.04.2015    188193    264    235    

267

SALE! 10%

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

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

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

35000 31500 руб.

15.04.2019    66084    164    131    

95

SALE! 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.85.x) и УТ 11.5 (11.5.15.x).

28000 25200 руб.

23.07.2020    43263    185    63    

138
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ili4hKing 21.08.23 09:15 Сейчас в теме
Статья хорошая, но почему просто не воспользовались конструкцией
Объект = Ссылка.ПолучитьОбъект();
Объект.ОбменДанными.Получатели.Добавить(Узел);
Объект.Записать();

Такой вариант был бы проще, и его можно выполнить из большинства запросников
2. triviumfan 87 21.08.23 10:46 Сейчас в теме
(1) Или так)
ПланыОбмена.ЗарегистрироватьИзменения(Получатели, Данные)
Ili4hKing; +1 Ответить
4. Eugen-S 364 21.08.23 12:14 Сейчас в теме
(2) Вот эту штуку я пробовал, но почему-то типовая обработка "Регистрация изменений для обмена данными" не показала, что добавленные таким образом объекты находятся в очереди обмена.
Возможно раньше такой подход работал, но на УТ11 (11.5.13.74) - этот способ не "взлетел" :(
3. Eugen-S 364 21.08.23 11:38 Сейчас в теме
(1) Зачем лишний раз перезаписывать объект, если можно обойтись без этого.
К тому же, а если объект в исходной базе в закрытом периоде, для этого действа нужно будет специально открывать период.
5. svbel85 45 22.08.23 17:47 Сейчас в теме
Инструментами разработчика часто делаю так, выбираю консолью запроса - результат передаю в подбор и обработку объектов - и там регистрирую на узле
Оставьте свое сообщение