Многопоточная выгрузка одного сообщения обмена

Публикация № 565515 05.12.16

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

обмен данными планы обмена многопоточное выполнение фоновые задания сообщение обмена параллельное выполнение

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

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

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

Заранее прошу прощения если это "баян". В таком случае просьба дать ссылки где почитать источники.

Код состоит из двух частей:

1. Управление формированием фоновых заданий и объединение результатов их работы.

2. Управление выполнением списка фоновых заданий.

Полный исходный код реализации идеи находится во вложенном к публикации файле.

Идея заключается в следующем:

1. Мы как обычно начинаем выгрузку.

2. В момент, когда начинаем выбирать изменения, мы распараллеливаем запись файла сообщения обмена по объектам конфигурации, которые входят в состав плана обмена. Для каждого такого объекта мы создаём отдельное фоновое задание и пишем все его изменения в отдельный файл - часть сообщения обмена. Подробнее можно посмотреть в моей статье в разделе "Запись изменений в сообщение обмена".

3. Ожидаем завершения выполнения всех сформированных заранее фоновых заданий.

4. Объединяем результаты фоновых заданий в один главный файл сообщения обмена.

5. Завершаем выгрузку как обычно.

Код главной управляющей процедуры выглядит следующим образом:

Процедура СформироватьСообщениеОбмена()
	
	УзелОбмена = ПланыОбмена.Тестовый.НайтиПоНаименованию("Узел получатель", Истина);
	
	// Получаем список объектов конфигурации, который входят в состав плана обмена
	СоставПланаОбмена = Метаданные.ПланыОбмена.Тестовый.Состав;
	
	// Открываем главный файл сообщения обмена
	ЗаписьXML = Новый ЗаписьXML();
	ПолноеИмяФайла = КаталогСообщений + "\" + Строка(УзелОбмена.УникальныйИдентификатор()) + ".xml";
	ЗаписьXML.ОткрытьФайл(ПолноеИмяФайла);
	
	// Создаём объект "ЗаписьСообщенияОбмена" и блокируем узел (объектная блокировка)
	ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();
	ЗаписьСообщения.НачатьЗапись(ЗаписьXML, УзелОбмена);
	НомерСообщения = ЗаписьСообщения.НомерСообщения;
	
	// Массив фоновых заданий - по одному на каждый объект конфигурации, который входит в состав плана обмена
	СписокФоновыхЗаданий = Новый Массив();
	
	// Количество постоянно активных фоновых заданий.
	// Управление их выполнением осуществляется специальными процедурами (см. ниже).
	// Обычно их количество должно равняться количеству ядер сервера.
	// На практике нужно подбирать их количество в зависимости от загрузки сервера.
	// Слишком большое количество фоновых заданий может "положить" сервер.
	КоличествоАктивныхЗаданий = 4;
	
	// Цикл формирования списка фоновых задний и их параметров
	Для Каждого Элемент Из СоставПланаОбмена Цикл
		
		ИмяЗадания = "Экспорт сообщения № " + Формат(НомерСообщения, "ЧГ=0") + ": " + Элемент.Метаданные.ПолноеИмя();
		
		Параметры = Новый Массив();
		Параметры.Добавить(УзелОбмена);
		Параметры.Добавить(НомерСообщения);
		Параметры.Добавить(Элемент.Метаданные);
		
		ПараметрыФоновогоЗадания = Новый Структура();
		ПараметрыФоновогоЗадания.Вставить("ИмяЗадания", ИмяЗадания);
		ПараметрыФоновогоЗадания.Вставить("ИмяПроцедуры", "ОбщийМодульОбменаДанными.ВыполнитьВыгрузкуИзмененийОбъектаКонфигурации");
		ПараметрыФоновогоЗадания.Вставить("ПараметрыПроцедуры", Параметры);
		
		СписокФоновыхЗаданий.Добавить(ПараметрыФоновогоЗадания);
		
	КонецЦикла;

	// Передача списка фоновых заданий управляющим процедурам на выполнение
	// Формируем части сообщения обмена по одному файлу для каждого объекта конфигурации
	ВыполнитьФоновыеЗадания(СписокФоновыхЗаданий, КоличествоАктивныхЗаданий);
	
	// Собираем все части сообщения обмена вместе в главном файле (см. выше)
	СформироватьЕдиноеСообщениеОбмена(СоставПланаОбмена, УзелОбмена, НомерСообщения, ЗаписьXML);
	
	// Завершаем формирование сообщения обмена
	ЗаписьСообщения.ЗакончитьЗапись();
	
КонецПроцедуры

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

Функция ПолучитьИмяФайлаЧастиСообщенияОбмена(УзелОбмена, НомерСообщения, ОбъектМетаданных)
	
	Возврат КаталогСообщений +
		"\" +
		Строка(УзелОбмена.УникальныйИдентификатор()) +
		"_" +
		Формат(НомерСообщения, "ЧГ=0") +
		"_" +
		ОбъектМетаданных.Имя + ".xml";
		
КонецФункции

Процедура, которая формирует файл части сообщения:

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

Собираются все части вместе такой процедурой:

Процедура СформироватьЕдиноеСообщениеОбмена(СоставПланаОбмена, УзелОбмена, НомерСообщения, ЗаписьXML)
	
	Для Каждого ОбъектМетаданных Из СоставПланаОбмена Цикл
		
		ПолноеИмяФайла = ПолучитьИмяФайлаЧастиСообщенияОбмена(УзелОбмена, НомерСообщения, ОбъектМетаданных);
		
		Файл = Новый Файл(ПолноеИмяФайла);
		Если Файл.Существует() Тогда
			
			ЧтениеТекста = Новый ЧтениеТекста(ПолноеИмяФайла, КодировкаТекста.UTF8);
			
			// Дописываем часть в главный файл сообщения обмена
			ЗаписьXML.ЗаписатьБезОбработки(ЧтениеТекста.Прочитать());
			
		КонецЕсли;
		
	КонецЦикла;
	
КонецПроцедуры

Внимание!

Накладные расходы на создание файлов частей сообщения + последующее их объединение в один главный файл сообщения могут "съесть" всю выгоду от распараллеливания процесса. Это зависит от размеров такого сообщения. Тестируйте код перед его применением!

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

Наименование Файл Версия Размер
Многопоточная выгрузка одного сообщения обмена

.txt 8,28Kb
4
.txt 8,28Kb 4 Скачать

Специальные предложения

Вознаграждение за ответ
Показать полностью
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. TODD22 18 05.12.16 14:50 Сейчас в теме
Этот код я так понимаю пишет в один файл? То есть это для выгрузки в один узел?
А можно таким же способом выгружать сразу по нескольким узлам? Например по 4 магазинам?
2. zhichkin 1303 05.12.16 15:09 Сейчас в теме
(1)
Этот код я так понимаю пишет в один файл? То есть это для выгрузки в один узел?

Этот код пишет несколькими заданиями в один файл - формирует одно сообщение обмена. Соответственно это сообщение для одного узла.
А можно таким же способом выгружать сразу по нескольким узлам? Например по 4 магазинам?

Если дописать логику формирования сообщений по нескольким узлам, то да, можно. Хоть для 100 узлов одновременно, если сервер потянет.
3. caponid 05.12.16 17:24 Сейчас в теме
Вот тут "ЧтениеТекста.Прочитать()" вполне возможно получить когда нибудь "Out of memory". причем внезапно.. память течет и фрагментируется.
А вот тут "Выборка.Получить()" вместо объекта - блокировку
4. zhichkin 1303 05.12.16 17:57 Сейчас в теме
(3) Спасибо за дельный комментарий!
Вы правы - в таком виде код отправлять в бой никак нельзя.
Цель статьи: озвучить идею и дать прототип решения.
В целях упрощения восприятия исходный код максимально сокращён.
8. caponid 06.12.16 12:02 Сейчас в теме
(4)
Вы правы, блокировки обычно вот тут возникают - ПланыОбмена.ВыбратьИзменения
И дополнение - зачем все переносить в один файл? - это все таки довольно затратная операция. Проще все таки тогда все передать пакетом файлов - записать их имена в сообщение обмена - да и при загрузке многопоточку организовать
Как то так...
Для Каждого ОбъектМетаданных Из СоставПланаОбмена Цикл
    КраткоеИмяФайла = ПолучитьКраткоеИмяФайлаЧастиСообщенияОбмена(УзелОбмена, НомерСообщения, ОбъектМетаданных);
    Файл = Новый Файл(ПолноеИмяФайла);
	Если Файл.Существует() Тогда
		ЗаписьXML.ЗаписатьНачалоЭлемента("metaFiles", "http://metafiles");
		ЗаписьXML.ЗаписатьАтрибут("metaName", ОбъектМетаданных.ПолноеИмя());
		ЗаписьXML.ЗаписатьАтрибут("File", КраткоеИмяФайла);
		ЗаписьXML.ЗаписатьКонецЭлемента();	
	КонецЕсли;
КонецЦикла;
Показать
starik-2005; +1 Ответить
9. zhichkin 1303 06.12.16 12:41 Сейчас в теме
(8) Да, "ВыбратьИзменения" генерирует UPDATE номера сообщения в таблице регистрации изменений объекта. Если таблица большая, то эта команда выполняется долго и это может приводить даже к ошибкам превышения таймаута ожидания. Подробнее можно почитать в статье, ссылку на которую я даю в этой публикации.

По поводу отправки пакета файлов и организации многопоточной загрузки данных на принимающей стороне: согласен, можно (вероятно даже нужно) делать и так. Фантазия ограничена только возможностями. Цель этой публикации была именно в том, чтобы показать возможность.
5. zhichkin 1303 05.12.16 18:47 Сейчас в теме
(3) Кстати, при управляемом режиме блокировок "Выборка.Получить()" не рискует нарваться на блокировку. Получится "грязное" чтение, так как при read_commited_snapshot = ON мы получим версию данных до начала блокирующей транзакции (UPDATE или DELETE в данном случае).
6. Makushimo 160 06.12.16 06:25 Сейчас в теме
Про выгрузку по правилам обмена тут можно и не заикаться?
7. zhichkin 1303 06.12.16 08:12 Сейчас в теме
(6) Почему Вы так решили? Можно конкретный пример?
ПКО, например, можно передать в фоновое задание в виде параметра ... Возможно это потребует некоторой переделки самих правил, но сам механизм КД, на мой взгляд, это не отменяет.
10. caponid 07.12.16 16:17 Сейчас в теме
Не тянет это на публикацию - нет цельной идеи.
11. Tangram 157 07.12.16 17:15 Сейчас в теме
Сейчас на практике реализую порционный обмен (по правилам обмена).
Я пошел другим путем - весь массив изменений, заранее выбранный запросами, бьется на порции, а потом каждая порция выбирается и выгружается.
По метаданным неудобно - в выгрузке может быть несколько сотен одинаковых объектов, например Реализаций, велика вероятность нарваться на блокировку.
zhichkin; +1 Ответить
12. zhichkin 1303 07.12.16 19:14 Сейчас в теме
(11)
потом каждая порция выбирается и выгружается

Это тоже вариант.
Уточните, пожалуйста, изменения заранее выбираются куда? В оперативную память?
Вы ПланыОбмена.ВыбратьИзменения используете? Что указываете в качестве третьего параметра фильтрации выборки?
велика вероятность нарваться на блокировку

Уточните, пожалуйста, какую блокировку Вы имеете ввиду? В какой момент выгрузки?

Обычно блокировка, которая мешает, это команда UPDATE при вызове ПланыОбмена.ВыбратьИзменения. Она возникает только на этом этапе и её длительность зависит исключительно от количества изменений в таблице и третьего параметра фильтрации этого метода. Предполагаю, что Вы используете массив ссылок на объекты, который является порцией данных ... Если это так, то, вероятно, это самая удачная реализация выборки изменений.
13. Tangram 157 07.12.16 22:52 Сейчас в теме
(12) да , изменения заранее выбираются в память. сейчас обмен в стадии тестов, в боевой базе у меня первоначально 70000-200000 объектов к выгрузке, надеюсь, сервер х64 простит мне это
В ВыбратьИзменения в третий параметр отдаю массив из 50-200 ссылок на объекты, выбранный из основного массива.
14. Tangram 157 07.12.16 23:08 Сейчас в теме
а вот про блокировки интересно...
Мои опыты на КА 1.1 (с изменениями) показывают следующее:
ВыбратьИзменения() отрабатывает оч. быстро, данные из боевой базы: 177000 объектов в выборке за 6 секунд.
А вот потом начинается мистика (или суровая реальность), из-за которой я затеял порционный обмен:
фактически все 177000 объектов блокируются на запись до окончания выгрузки до операторов
// Завершаем запись сообщения
ЗаписьСообщения.ЗакончитьЗапись();

ЗаписьXML.Закрыть();
Причем это я проверял даже на копии: выбираю все изменения, там 150 документов "Реализация". выбираю из них первые 50 и на них делаю ВыбратьИзменения(). иду отладчиком по процедуре выгрузки (я слегка модиф. типовую) и в другом сеансе пытаюсь проводить документы. Пока не пройдет ЗакончитьЗапись(), ни один из "выбранных" 50 документов перепровести нельзя (стандартная ошибка MS SQL на превышение времени блокировки), остальные пожалуйста.
16. zhichkin 1303 07.12.16 23:59 Сейчас в теме
(14)
все 177000 объектов блокируются

Какой режим управления блокировками у Вас используется (автоматический или управляемый)? Где начинается и заканчивается транзакция? Нет ли эскалации блокировок? Какой набор данных блокируется на самом деле (нет ли сканов)? На все эти вопросы нужно дать однозначный ответ.

Не настаиваю, но рекомендую почитать мою статью про планы обмена: http://infostart.ru/public/561460/ Там всё очень подробно расписано, в том числе про блокировки. Кстати, если будут замечания или дополнения, то я с удовольствием внесу их в статью =)
15. Tangram 157 07.12.16 23:44 Сейчас в теме
А вот сейчас воспроизвел ситуацию на типовой КА 1.1.61.2 и все документы, попавшие в ВыбратьИзменения(), спокойно перепроводятся в процессе выгрузки...
Завтра попробую 1.1.78 и походу буду искать блокировку в доработках...
17. zhichkin 1303 08.12.16 00:05 Сейчас в теме
(15) Интересно, а у Вас случайно нет там где-нибудь начала транзакции типа "НачатьТранзакцию" после "ВыбратьИзменения" или до этого, а "ЗафиксироватьТранзакцию" где-нибудь после "ЗакончитьЗапись" ? Чисто теоретически получилась бы одна большая транзакция, для которой все остальные были бы вложенными ... Честно говоря, была у меня мысль проверить такой случай, но руки пока что не дошли =) Если это неожиданно так, то границы транзакции могут быть значительно шире ...
18. Tangram 157 08.12.16 00:16 Сейчас в теме
(17)
а у Вас случайно нет там где-нибудь начала транзакции

есть, причем это типовой код.... сейчас проверю...
19. zhichkin 1303 08.12.16 00:22 Сейчас в теме
(18) Если у Вас на уровне SQL Server не отключена эскалация блокировок до уровня всей таблицы для таблицы регистрации изменений, то UPDATE более 5000 записей этой таблицы в результате вызова метода "ВыбратьИзменения" может привести к блокировке всей таблицы. Кажется я об этом тоже в своей вышеупомянутой статье писал ...
20. Tangram 157 08.12.16 00:28 Сейчас в теме
типовой код примерно такой:
НачатьТранзакцию();
ВыбратьИзменения(...все...);

Далее Цикл по выборке, но через каждые условно 10 объектов
идет ЗафиксироватьТранзакцию(); НачатьТранзакцию();

и в типовой конфе реально объекты, захваченные в первой десятке, отпускаются после первого же ЗафиксироватьТранзакцию().
а в моей базе почему-то не так...
Спасибо большое за наводки, завтра на свежую голову буду копать дальше. Если что интересное для науки найду, напишу ).
21. kolya_tlt 80 11.01.17 14:24 Сейчас в теме
Добрый день, Дмитрий.
вы не пробовали объединить общие для всех узлов справочники\регистры и выгрузить их один раз для всех узлов?
22. zhichkin 1303 11.01.17 14:40 Сейчас в теме
(21) Нет не пробовал. Если бы я решал подобную задачу, то я бы отказался от регистрации изменений по всем узлам. Делал бы это для одного какого-то узла по умолчанию, например, а потом выгружал бы один раз.
Кроме этого, после выгрузки по всем узлам нужно обновить значение реквизита "НомерОтправленного" для каждого из них. При этом обновить это значение нужно не только в плане обмена, но и в служебной таблице регистрации изменений объекта. Без вызова метода "ВыбратьИзменения" плана обмена сделать это невозможно, а первым обязательным (!) параметром этого метода является узел плана обмена. Короче говоря, всё сильно связанно друг с другом ...
23. kolya_tlt 80 12.01.17 09:22 Сейчас в теме
(22) поясните почему вы выбрали решение с одним узлом и как поддержка будет в этом случае контролировать обмен на скажем 500 магазинов?
24. zhichkin 1303 12.01.17 13:55 Сейчас в теме
(23) Стоп =) Конкретного решения для конкретной ситуации я не принимал =) Я дал, так скажем, дружеский совет =) Не более того =)

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

По поводу 500 магазинов ... На моей практике РИБ в районе 150 узлов "умирает" или требует постоянного внимания и рукоприкладства. В таких случаях делается своя нетиповая разработка.
eeeio; user1541025; +2 Ответить
Оставьте свое сообщение

См. также

Простая конвертация данных

Обмен между базами 1C Платформа 1С v8.3 Абонемент ($m)

Тем, кому "не зашла" конвертация данных 2 (или 3), а также тем, кто только еще пробует свои силы в данной теме, предлагается эта простая конвертация данных. С ней у вас точно все получится!

10 стартмани

29.08.2022    7368    83    mkalimulin    190    

65

Консоль обмена по протоколу TCP

Внешние источники данных Обмен между базами 1C Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Внешняя консоль-обработка, позволяющая осуществить обмен пакетами данных между любыми приложениями или устройствами по сетевому протоколу TCP. Консоль работает как в режиме TCP-клиента, так и в режиме TCP-сервера. Реализована с использованием стандартной библиотеки Windows "MS Winsock".

3 стартмани

10.04.2022    6961    29    Bassgood    15    

44

Создание стартовой базы

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Часто требуется создать «Новую базу» почти пустую, но совпадающую с «Исходной базой» по необходимым обязательным настройкам: константам, регистрам сведений, справочникам, видам субконто и планами счетов и т.п., при этом уникальные идентификаторы объектов должны совпадать.

1 стартмани

11.10.2021    13303    23    sapervodichka    48    

110

Настройка обмена с любой устаревшей конфигурацией на базе 8.2 через обработку "Универсальный обмен данными в формате XML" и "Конвертацию данных 2.0"

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

Разберем кейс, как настроить простенький обмен с любой устаревшей конфигурацией на базе 8.2 через обработку "Универсальный обмен данными в формате XML" и Конвертацию данных 2.0 с возможностью настройки гибких отборов по периоду, организации и списку документов.

1 стартмани

23.11.2020    26650    23    orfos    14    

66

Выгрузка зарплаты из ЗУП 3 в БП 3 по принципу обмена ЗУП 2.5 в БП 3

Обмен между базами 1C Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

Выгрузка отражения зарплаты из ЗУП 3 в Бухгалтерию 3 без настройки типового обмена! т.е. по принципу, как было в ЗУП 2.5.

10 стартмани

13.05.2020    11260    108    boobzx    43    

12

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Tunesoft: Универсальная выгрузка, загрузка и обмен данными между похожими конфигурациями, через JSON

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка «Универсальная выгрузка и загрузка» предназначена для оперативного переноса объектов между двумя идентичными или похожими конфигурациями. Быстрая, надежная и очень простая в использовании обработка.

2 стартмани

29.01.2020    35160    523    vladnet    65    

67

hsИнтегратор 3. Онлайновый обмен и удаленное исполнение функций по HTTP протоколу

Обмен между базами 1C Платформа 1С v8.3 Абонемент ($m)

Кроссплатформенный онлайновый обмен данными и удаленное исполнение функций по протоколу HTTP. Новая функциональность - обмен элементами плана видов расчета и данными расчетных регистров. Увеличение производительности и упрощение пользовательского API. Тестирование обменов выполнялось с демонстрационными базами: "Бухгалтерия предприятия, редакция 3.0 3.0.72.66" и "Зарплата и Управление Персоналом, редакция 3 3.1.10.135"

1 стартмани

19.05.2019    14647    53    hobi    10    

31

Доработка универсального обмена в формате EnterpriseData

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

В публикации показана доработка универсального обмена в формате EnterpriseData для получения документа поступления товаров из Бухгалтерии 3.0 в Управление Автотранспортом.

1 стартмани

03.05.2019    29209    36    gzharkoj    22    

42

Выгрузка и загрузка данных XML с гибкими отборами

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка выгрузки и загрузки данных через XML между идентичными конфигурациями с возможностью установки произвольных отборов на выгружаемые объекты.

1 стартмани

07.04.2019    50164    1296    sapervodichka    54    

74

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

РИБ и расширения

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Как заставить работать РИБ с расширением.

1 стартмани

20.02.2019    50103    78    RocKeR_13    58    

61

Выгрузка данных из Бухгалтерии ред. 3.0 в Управление небольшой фирмой, ред. 1.6

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

Выгрузка данных из 1С БП 3.0 в УНФ 1.6. Обработка переносит документы по банку, кассе, движения ТМЦ + справочники контрагентов, номенклатуры и другие связанные справочники. Полный список документов на скриншоте.

1 стартмани

08.02.2019    37634    532    dinarz    225    

37

Выполнение запроса в другой базе 1С без com-соединения. HTTP-сервис

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Выполнение любого запроса с параметрами из одной базы 1С в другую. Используя HTTP-сервис. Посредством POST-запроса и JSON.

1 стартмани

30.11.2018    46160    54    John_d    30    

110

Пример получения данных из другой базы 1С через Web-сервис

Обмен между базами 1C Платформа 1С v8.3 Россия Абонемент ($m)

В данной статье описан пример получения данных справочника из другой базы 1С через Web-сервис.

1 стартмани

11.11.2018    64442    53    flyDrag    30    

128

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Синхронизация (выгрузка) данных ЗУП 3.1 - БП 2.0, УПП 1.3

Обмен между базами 1C Зарплата Платформа 1С v8.3 Бухгалтерский учет Сложные периодические расчеты 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет Абонемент ($m)

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

3 стартмани

22.03.2018    66293    778    diso    227    

63

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

Создание в 1С 7.7 XML в формате EnterpriseData (универсальный формат обмена), версия 1.5. Инструкции и примеры переноса данных из устаревшей конфигурации 1С 7.7 в любую современную 1С 8.3, поддерживающую EnterpriseData, через Конвертацию данных 3

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v7.7 Платформа 1С v8.3 Конфигурации 1cv7 Россия Абонемент ($m)

Воспользоваться современным средством переноса данных "Конвертация данных 3.0.5.3" можно только выгрузив из системы - источника данных XML в формате обмена данными EnterpriseData. В этой публикации можно скачать приемы выгрузки из 1С 7.7 универсального формата обмена для Конвертации данных 3. Выполняем перенос данных из «1С:Предприятие 7.7» в «1С:Предприятие 8.3». Используем Конвертацию данных КД 3.0 из 1c 7.7 --> 1С 8.3. На первой стадии еще не опубликовано иного способа подложить файл для Конвертации данных 3 кроме как сформировать его вручную, постараемся решить данную проблему.

1 стартмани

26.02.2018    59508    66    ksnik    5    

40

[УТ 11][БП 3.0] Перенос данных из БП 3.0 в УТ 11 (начальное заполнение УТ 11 по данным БП 3.0)

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

Перенос данных из БП 3.0 в Ут 11 для первоначального заполнения УТ данными из БП. 31.01.2020 Версия 2.8.7.3 БП 3.0.84.35 платформа 8.3.18.1128.

1 стартмани

29.01.2018    61015    667    Alex_E    191    

53

Правила переноса документов из ЗУП 2.5 в ЗУП 3.1

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

Перенос документов из ЗУП 2.5 в ЗУП 3.1 - позволяет снизить объем работ при опытной эксплуатации ЗУП 3.1 параллельно с ЗУП 2.5.

1 стартмани

04.12.2017    46403    516    AntonH851    38    

34

Отключение и подключение узла распределенной базы (РИБ)

Обмен между базами 1C Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Внешняя обработка (работает в обычном и управляемом интерфейсе). Пригодиться для работы с узлами распределенных баз данных: 1) Снимает замки блокировки конфигурации подчиненного узла или возвращает их. 2) Дает возможность подключить архив рабочей базы как подчиненный узел без создания образа. 3) Дает возможно синхронизировать конфигурации узлов вручную, если например есть ошибки обмена или размер конфигурации велик для передачи через сообщения обмена. Ситуации описаны в полном описании. Проверялось на платформе 8.1, 8.2, 8.3, для 1С:УПП, 1С:Розница, 1С:Бухгалтерия 1.6, 2.0, 3.0, 1С:ERP

1 стартмани

27.11.2017    41160    317    sapervodichka    19    

30

1С:Конвертация данных 2.0. Анализ состава выгруженных данных из базы источника до загрузки в базу-приемник

Обмен между базами 1C Платформа 1С v8.3 1С:Конвертация данных 1С:Бухгалтерия 3.0 1С:Зарплата и Управление Персоналом 3.x Россия Абонемент ($m)

Обработка анализирует файл выгрузки данных конвертации и формирует дерево выгруженных объектов по категориям с возможностью просмотра выгруженных реквизитов (свойств). Идеально подходит для анализа выгруженных данных при переходе на ЗУП 3.1 или Бухгалтерия 3.0 с ранних версий.

1 стартмани

16.11.2017    26962    107    leosoft    5    

36

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Синхронизация данных по правилам КД2.0

Обмен между базами 1C Анализ учета Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Новый инструмент для сравнения и загрузки данных, сочетающий в себе: гибкость запросов (используются для сопоставления объектов); наглядный вывод отличий; удобный отбор загружаемых данных; возможность пообъектной синхронизации двух баз по правилам КД2 с помощью вызова обработки "Универсальный обмен XML" в базе-источнике через COM-соединение.

1 стартмани

27.08.2017    38622    130    vikad    40    

125

Перенос справочников и документов из УТ 10.3 в БП 3.0

Обмен между базами 1C Платформа 1С v8.3 1С:Управление торговлей 10 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Налоговый учет Управленческий учет Абонемент ($m)

Синхронизация справочников и документов из Управление торговлей 10.3 в Бухгалтерию предприятия 3.0. Обработка не затрагивает штатный механизм. Подключение и перенос документов происходит посредством OLE. Без ввода начальных остатков.

10 стартмани

25.07.2017    35065    24    fullstack1c    6    

7

«Горыныч - то НЕ НАСТОЯЩИЙ!» … или О Конвертации Данных ред.3 (КД 3) и обменах в универсальном формате Enterprise Data… доступным русско-народным языком

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

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

1 стартмани

13.06.2017    35974    164    Davlad_A    16    

70

Обмен данными между УТ 10.3 и Розницей 2.2 (правила обмена данными между "Управлением торговлей" ред. 10.3. и "Розницей" ред. 2.2)

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

Данные правила предназначены для обмена в формате XML данных из программы «Управление торговлей» ред. 10.3. и "Розница" ред. 2.2 по основным группам документов и основных справочников. Загрузка данных осуществляется через встроенную обработку «Универсальный обмен данными XML». Основная цель обработки – корректировка типовых правил на выявленные ошибки и расширение выгрузки для корректной выгрузки данных по ЕГАИС и продажам в целом. Протестировано до УТ 10.3.47.х и Розница 2.2.11.х

3 стартмани

16.09.2016    69486    21    SEOAngels    65    

30

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Соответствия объектов обмена

Обмен между базами 1C Платформа 1С v8.3 1С:Комплексная автоматизация 1.х Россия Абонемент ($m)

Обработка позволяет проверять, исправлять ошибки, добавлять и удалять соответствия объектов в обменах данными между конфигурациями на основе «Комплексной автоматизации 1.1» или похожими конфигурациям. Подходит для обменов с использованием регистра сведений «СоответствиеОбъектовДляОбмена».

1 стартмани

26.08.2016    34317    13    xxxelaaa    3    

7

Перенос объектов по OLE из идентичной конфигурации

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Перенос по OLE справочников, документов и пользователей из базы источника с идентичной конфигурацией без использования правил обмена, поиск по реквизитам, замена ГУИД, сохранение настроек в файл

1 стартмани

10.07.2016    23746    140    slava_1c    14    

30

Перенос данных из ЗУП 2.5 в ЗУП 3.1

Обмен между базами 1C Зарплата Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 2.5 1С:Зарплата и Управление Персоналом 3.x Бухгалтерский учет Абонемент ($m)

Обработка предназначена для переноса некоторых данных из ЗУП 2.5 в ЗУП 3.1 через COM-соединения. Обработка была написана потому, что типовые правила переноса не предоставляют возможности переносить данные по отдельности, а некоторые данные не переносят вовсе. Тестировалась на версии 3.1.14.129 (8.3.15.1830).

2 стартмани

26.05.2016    60405    829    yojeeg    102    

55

Выгрузка данных из УТ 11.3/11.4 в БП 3.0 (перенос документов и справочной информации из "Управление торговлей" ред. 11.3/11.4 в "Бухгалтерия предприятием" ред. 3.0). Обновлен до УТ 11.3.4.х/11.4.7х и БП 3.0.7х.х

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

Данная обработка предназначена для выгрузки в формате XML данных из программы «Управление торговлей» ред. 11.3/11.4 по основным группам документов (документы покупки/продажи товаров и услуг, складские документы, счета-фактуры, ценообразование), а также набор основных справочников. Загрузка данных в БП ред. 3.0 через обработку «Универсальный обмен данными XML». Основная цель обработки – оптимизация работы бухгалтеров во время обмена данными между программами, а также выборочная корректировка загруженных ранее документов.

1 стартмани

04.03.2016    75314    217    SEOAngels    67    

62

Выгрузка/загрузка данных в формате JSON v 1.1.2

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для обмена данными между схожими конфигурациями в формате JSON. Этот формат обладает рядом существенных преимуществ по сравнению с xml и прочими популярными форматами. В отличие от существующих аналогов, обработка не использует никаких дополнительных библиотек. (де)Сериализация всех объектов происходит средствами встроенного языка и методов ЗаписатьJSON() и ПрочитатьJSON(). Работает на платформе версии не ниже 8.3.6.

4 стартмани

27.01.2016    61218    428    kser87    57    

61

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

[COM] Перенос данных через COMConnector

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Обработка обмена между двумя информационными базами схожей (не обязательно совпадающей) структуры. Изначально была заточена под бухгалтерию предприятия, сейчас используется для для обменов через COM любых конфигураций с режимом запуска "Управляемое приложение". Ближайший аналог - выгрузка-загрузка XML, но здесь нет промежуточных файлов выгрузки/загрузки, и обмен не прекращается в случае, когда состав реквизитов источника и приёмника различен!!! 22.05.2020 Версия 5.2.3.4 Исправлена ошибка в таблице соответствия планов счетов, любезно подсказанная Fox_65. Все реквизиты таблицы соответствия теперь с типом строка, чтобы избежать в дальнейшем повторения этой ошибки, если обработку вдруг будет сохранена в конфигурации, не имеющей Плана счетов Хозрасчтный. Соответственно изменены заполнеие таблицы соответствия счетов и поиск счетов между базами. Из нового - добавлен возможность переноса Счетов на оплату покупателю из КА 1.1 в Заказ клиента КА 2.4 (случилась такая хотелка у клиента) (тестировалось на платформе 8.3.17.1386, БП 3.0.77.89 )

2 стартмани

23.11.2015    65483    753    Alex_E    223    

102

Мастер XML-обмена

Обмен между базами 1C Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Конфигурации 1cv7 Абонемент ($m)

Функциональный аналог конвертации данных в кармане - комплекс обработок предназначенный для быстрой и удобной разработки обмена данными между информационными базами 1С.

5 стартмани

02.09.2015    44861    21    Lancelot-2M    23    

31

Управление изменениями в планах обмена (Управляемое приложение) v 1.0

Внешние источники данных Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Простая в использовании и наглядная обработка для регистрации изменений или отмены регистрации в планах обмена используя гибкие возможности отбора СКД.

2 стартмани

15.08.2015    38852    57    kser87    3    

6

Перенос справочников и документов из 1С 7.7 "Торговля и склад 9.2" в 1С 8.2 "Бухгалтерия предприятия 2.0".

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

Немного доработанные типовые правила обмена для конфигураций из ТиС 9.2. в БП 2.0 - «ПОД_Перенос_Справочников_ТиС_БП20.xml» и «ОбработкаВыгрузкиСправочников.ert». Добавлены правила выгрузки справочников: Организации, контрагенты и номенклатура. Доработал типовые ПОД для переноса только контрагентов и номенклатуры без документов в новую базу бухгалтерии 2.0, протестировал на типовых конфигурациях ТиС 9.2 рел.984 и БП 2.0.64.23.

1 стартмани

05.06.2015    59588    117    Kuzya_brаtsk    3    

4

Создание и сброс главного узла, Признак РИБ. 8.2 - 8.3

Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для сброса и создания главного узла РИБ 8.2 - 8.3

1 стартмани

04.04.2015    52445    387    programmistSVS    7    

3