Реализация обмена по организации в УТ

05.06.14

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

В связи с открытием филиала в другом городе возникла необходимость организации учета в конфигурации "Управление торговлей для Казахстана, ред. 3" (адаптированный аналог "Управление торговлей, ред. 11"). Как оказалось встроенного обмена по организации не оказалось, есть только "Полный". Пришлось реализовывать самому. Конечно был вариант работы через терминальное подключение и тонкий клиент, но в связи во-первых неустойчивыми каналами связи и с заделкой на будущее (большие объемы данных) решил сделать РИБ. И вот об этом моя первая статья, может поможет кому нибудь.  

Имеем следующее: Работающая информационная база на основе конфигурации "Управление торговлей для Казахстана, ред. 3", в основном используемая для торговых операций в городе А. Решили открыть филиал в городе Б. Выбирали между 3 вариантами:

1. работа в режиме управляемого приложения (тонкий клиент) (отпал из-за неустойчивого канала связи)

2. работа в терминальном режиме (отпал из-за возможного постоянного конфликта блокировок, проблемы с обновлением)

3. РИБ

Выбрали РИБ (по нашему мнению самый отлаженный и надёжный способ работы при больших нагрузках). Реализацию возложили на меня.

Требования вкратце: документы, регистры должны кочевать с региональной привязкой по организации, справочники, константы, планы видов характеристик общие

Описываю алгоритм:

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

2) Откорректировал состав обмениваемых данных. В общих объектах (справочники, константы, планы видов характеристик) поставил авторегистрация=разрешить. В остальных поставил авторегистрация=запретить.

3) В общих модулях создал глобальный общий модуль "ОбменПоОрганизации" . Текст модуля в файле "Общий модуль".  Для выкладывания текст большой.

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

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

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

Функция ОпределитьТипОбъекта(Объект)
	
	Класс = Объект.Метаданные().ПолноеИмя();
	Класс = Лев(Класс, Найти(Класс, ".")-1);	
	
	Возврат Класс;
	
КонецФункции

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

Если ЭтотОбъект.ОбменДанными.Получатели.АвтоЗаполнение и не ЭтотОбъект.ОбменДанными.Загрузка Тогда
        обРегистрацияИзменений(ЭтотОбъект) ;
КонецЕсли;

5) Подчиненный узел создал копированием оригинала и удалением документов, юзеров. Затем сделал рокировку планов обмена (подмена кодов узла). Установил главный узел.
6) Почистил регистрацию изменений на всякий случай. Нужно учитывать если объект хоть где-то удаляется, то он удаляется и в остальных узлах!!!
7) Затем при первоначальном начале работы подчиненного узла убрал вызов помощника настройки обмена.

И все в принципе. Думаю можно это можно использовать в любых конфигурациях, надо немного дописать для регистров бухгалтерии и расчетов. А так для торговых уже готово.

обмен обмен по организации ут управление торговлей

См. также

SALE! 20%

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

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

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

45650 36520 руб.

04.08.2015    159658    363    267    

345

SALE! 15%

[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 22572 руб.

12.06.2017    134913    722    291    

388

SALE! 20%

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

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

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

34650 27720 руб.

15.04.2019    68401    178    138    

111

SALE! 20%

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

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

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

43450 34760 руб.

03.12.2020    34164    80    58    

78

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.87.x) и УТ 11.5 (11.5.16.x).

28000 25200 руб.

23.07.2020    46278    196    64    

156

SALE! 10%

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

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

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

50722 45650 руб.

31.10.2014    231385    124    327    

295

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

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

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

60000 руб.

05.10.2022    9203    9    8    

10

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

28000 25200 руб.

15.12.2021    20232    132    38    

90
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Bor_ka 100 28.08.14 14:55 Сейчас в теме
Понравился подход, можно подробнее о пунктах 5,6,7?
2. Bajo 80 29.08.14 06:51 Сейчас в теме
(1) Bor_ka, по пункту 5. В оригинале базы создал подчиненные узлы. Сделал копию выгрузив базу в *.DT. Загрузил в чистую базу. В планах обмена в новой базе удалил лишние узлы осталось только 2. Поменял коды узлов местами. Откорректировал реквизит "Организация" в соответствии с реальностью.
пункт 6. Все объекты имеют уникальный идентификатор. Если в филиале №1 в справочнике контрагенты произойдет непосредственное удаление элемента, то после обмена с центром этот объект удалится в центральной базе. Затем когда центральная база сделает обмен с филиалом №2, то объект удалится и в этой базе.
пункт 7. при развертке РИБ в типовой конфигурации при первом запуске базы автоматически запускается помощник настройки обмена. он работает косячно. я не стал разбираться, просто отключил его.

базы работают уже полгода никаких проблем с обменом.
3. kumga99 26 18.06.15 14:59 Сейчас в теме
Калайсын,Айтуар? красавчик, буны сен енгизип един эпл ситиде?
4. Bajo 80 30.06.15 14:39 Сейчас в теме
(3) kumga99, Жаксы. Сам как? Да эпл март кой. Кайда жумыс истеп журсин?
Оставьте свое сообщение