Перенос документов между идентичными конфигурациями для платформы не ниже 8.2.18.82

Обмен - Перенос данных из 1C8 в 1C8

38
Обработка выполняет перенос документов между идентичными конфигурациями на платформе не ниже 8.2.18.82. Тестирование выполнялось для конфигурации "Бухгалтерия предприятия версия 2.0.49.15"

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

38

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

Наименование Файл Версия Размер
Перенос между идентичными конфигурациями
.epf 31,14Kb
09.08.13
855
.epf 5 31,14Kb 855 Скачать

См. также

Комментарии
Избранное Подписка Сортировка: Древо
1. paulpit 20 30.07.13 00:30 Сейчас в теме
Обработка переносит измененные документы?
А чем не устроила универасльная обработка с ИТС-а?
2. XSlava 126 30.07.13 07:50 Сейчас в теме
Этой обработке все равно изменен или не изменен документ, т.к. в качестве основного правила обмена используется сама структура конфигурации (метаданные). Почему не с ИТС, искать, затем разбираться и проверять, тоже самое по времени, что и написать. Скорее всего для типовой обработки нужны еще и правила.
Надеюсь, что ответил на ваши вопросы.
10. apostal86 198 08.08.13 13:45 Сейчас в теме
(2) XSlava, Стандартную ИТС-кую проверять не нужно, с ней все ОК, работает во всех идентичных конфигурациях. Для типовой правила не нужны. То что у Вас выложено практически то же самое, что и в обработке с ИТС. Какое у Вашей обработки принципиальное отличие?
3. awbyk 77 01.08.13 11:14 Сейчас в теме
Попробовал перенос для БГУ из редакции 1.0.14.2 в редакцию 1.0.20.6

Пришлось слегка подправить модуль формы:
- Организации изменил на Учреждения;
- Обошел попыткой, исключением, поскольку в редакции 1.0.14.2 нет константы.ЗаголовокСистемы строку
ЭтаФорма.Заголовок = ЭтаФорма.Заголовок + " " + константы.ЗаголовокСистемы.Получить();
- Список видов документов отсортировал по представлению.

В принципе удобнее, чем универсальный перенос.
4. Жискар 7 05.08.13 12:39 Сейчас в теме
Запускал в «Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.60.3)» ,
«Бухгалтерия предприятия, редакция 2.0 (2.0.49.11)».
Платформа 1С:Предприятие 8.2 (8.2.18.109).
Получал сообщение «Обработка завершена».
Ни одной записи в результат не перенесено.
Может что-то ещё надо установить, чтобы обработка работала?
5. XSlava 126 05.08.13 14:36 Сейчас в теме
На закладке "Настройки переноса" нужно выбрать вид документа, затем нажать кнопку "Заполнить", за указанный период будет заполнена таблица переносимых документов. Затем переносить.
6. Жискар 7 05.08.13 15:16 Сейчас в теме
Брал один вид документа "Начисление зарплаты" по одной организации и за период с февраля по апрель.
Вибиралось штук 5. Нажал выполнить. Обработка завершена.
Перенесено 0 документов. Все гладко, только результата нет.
7. XSlava 126 05.08.13 15:28 Сейчас в теме
Значит при переносе есть ошибки, их можно посмотреть создав файл отладки.
8. Жискар 7 05.08.13 16:13 Сейчас в теме
Файл отладки не создается вообще, даже пустой. Машина домашняя, доступно всё.
15. XSlava 126 09.08.13 13:41 Сейчас в теме
16. Жискар 7 09.08.13 15:32 Сейчас в теме
(15) XSlava, Все прекрасно работает. Спасибо.
Началась новая жизнь.
17. XSlava 126 09.08.13 15:35 Сейчас в теме
(16) Жискар, Хорошо. Пишите, если будут идеи по улучшению.
9. XSlava 126 05.08.13 16:44 Сейчас в теме
Странно. "Начисление зарплаты" говорите. Посмотрю.
11. XSlava 126 08.08.13 14:15 Сейчас в теме
Видимо отличается формой.
12. Жискар 7 08.08.13 15:27 Сейчас в теме
apostal86. Извиняюсь за серость. Стандартная ИТС-кая это ВыгрузкаЗагрузкаДанныхXML82.epf
или что-то другое?
13. XSlava 126 08.08.13 15:43 Сейчас в теме
Я не знаю, никогда не пользовался. Возникла необходимость, написал свою.
14. Slater_7 09.08.13 09:35 Сейчас в теме
Таже ерудна что и у Жискар. Говорит что Завершено, но ничего не переносит и отладка не создаётся. Конфа - Бухгалтерия для Казахстана(2.0.11.8) 1С:Предприятие 8.2 (8.2.18.102). Где копать хотябы - есть идеи?
18. hawl 12.08.13 13:05 Сейчас в теме
Спасибо большое, всё работает хорошо.
19. ilsijar 63 23.09.13 10:38 Сейчас в теме
Не очень универсален, но доработать для себя можно.Спасибо,сэкономила время.
20. silver-747 17.10.13 19:58 Сейчас в теме
Спасибо. выручила обработка.
21. Felix1 10.11.13 21:14 Сейчас в теме
Выдает ошибку "
{ВнешняяОбработка.ПереносМеждуИдентичнымиКонфигурациями.МодульОбъекта(46)}: Ошибка при вызове метода контекста (Записать)
о.Записать();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.16.368): Не удалось записать "Счет на оплату покупателю ДПб00000365 от 23.08.2013 16:23:45"!
"
22. Felix1 10.11.13 21:16 Сейчас в теме
не понимаю в чем проблема ? переношу документы за 4 кв 2013 г, в базе приемнике установил дату запрета редактирования по 30.09.2013 ? вопрос причем тут счет от23.08.2013
23. XSlava 126 11.11.13 08:42 Сейчас в теме
Скорее всего в каком нибудь переносимом документе есть ссылка на данный счет, вот он его и переносит.
24. Felix1 11.11.13 08:57 Сейчас в теме
А что с этим делать ???, если я сниму дату запрета редактирования, то у меня поедет прошлый период ?
25. XSlava 126 11.11.13 10:04 Сейчас в теме
(24) Felix1, Один из вариантов очистить ссылку на данный документ в переносимом документе. Решение данной проблемы зависит от задач которые вы решаете.
26. Felix1 11.11.13 11:21 Сейчас в теме
хорошо , а как мне найти тот самый документ,
на который ссылается на счет ???
27. XSlava 126 11.11.13 11:40 Сейчас в теме
(26) Felix1, Написать запрос, затем обработку.
28. Felix1 11.11.13 11:46 Сейчас в теме
(27) XSlava, А для бухгалтера, есть вариант по проще ???
32. likan 27.11.13 08:52 Сейчас в теме
(26)а найти счет и посмотреть подчиненные документы, религия не позволяет?
33. Felix1 27.11.13 12:47 Сейчас в теме
(32) likan, 1.Вопрос уже решен стандартной обработкой с ИТС
2. Если есть конкретные предложения, или желаете помочь, пишите по делу, религия тут не причем.
29. XSlava 126 11.11.13 12:01 Сейчас в теме
30. Felix1 11.11.13 12:39 Сейчас в теме
(29) XSlava, Тогда у меня оборотно-сальдовая ведомость не изменится ??? и вообще все показатели ???
31. XSlava 126 11.11.13 12:50 Сейчас в теме
(30) Felix1, Сделайте резервную копию, проверьте сначала на копии. У вас очень серьезные вопросы, для ответа на которые нужно знать гораздо больше о ваших задачах, чем выпи пишете.
34. imarok 30.11.13 15:22 Сейчас в теме
при выполнение обработки в ут 10.3.15.9 ошибка
{Обработка.ПереносМеждуИдентичнымиКонфигурациями.МодульОбъекта(139)}: Ошибка при вызове метода контекста (СоздатьЭлемент)
ОЭлемент = Открытие.Справочники[ВидСпр].СоздатьЭлемент();
по причине:
Произошла исключительная ситуация (1C:Enterprise 8.2.18.109): {Справочник.Номенклатура.МодульОбъекта(122,33)}: Переменная не определена (РаботаСТорговымОборудованием)
35. imarok 30.11.13 15:34 Сейчас в теме
Разобрался, прошу прощения
36. tanselja 4 30.11.13 16:04 Сейчас в теме
Вроде и стандартная хорошо работает.
37. yalo 03.12.13 09:42 Сейчас в теме
А в чем отличие от стандартной обработки? Использую ее, переносит все необходимые документы и справочники и т.д.
38. Natuhai 3 20.01.14 18:39 Сейчас в теме
Спасибо. Пригодилась обработка. Бухи потерли полтора десятка документов с табличной частью этак в 3000 строк ... Перенес им из бекапа.
39. Alister 9 23.01.14 15:33 Сейчас в теме
Спасибо за работу, все что нужно перенесла.
40. if56 19.02.14 14:52 Сейчас в теме
Есть ошибка.
Если не устанавливать флаг Перезаписывать документы, то таб части документов , перенесенных ранее , задваиваются. Ошибка в функции ПолучитьДокумент(ТекДок)

Кусок кода:

Если ФлПерезаписыватьДоки и не ЭтоНовый тогда
инфа("Документ уже переносился!!! Изменяем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);
//Очистим табличные части
Для каждого ТЧ из Открытие.Метаданные.Документы[ВидДока].ТабличныеЧасти цикл
ДокБух[ТЧ.Имя].Очистить();
КонецЦикла;
ИначеЕсли не ФлПерезаписыватьДоки и не ЭтоНовый тогда // Все равно пишем
инфа("Документ уже переносился!!! Пропускаем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);
//////////////////////////////////////// надо бы Возврат Неопределено;

Иначе
инфа("Создаем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);
КонецЕсли;
Возврат ДокБух;
КонецКуска
41. arjuna 26.03.14 00:43 Сейчас в теме
(40) if56.ru,
Есть ошибка.
Если не устанавливать флаг Перезаписывать документы, то таб части документов , перенесенных ранее , задваиваются. Ошибка в функции ПолучитьДокумент(ТекДок)

У меня упорно задваивает все документы. Уже всю голову сломал, не видет он УникальныйИдентификатор в удаленной базе.
42. sps02 14.08.14 15:21 Сейчас в теме
Извините, если вопрос глупый(( Могу ли я перенести документы из одинаковых конфигураций, но если это разные контрагенты?
Спасибо заранее
43. sps02 14.08.14 17:39 Сейчас в теме
Закачала, но выдает такую ошибку. подскажите как решить: Не смог записать элемент справочника Номенклатура Набор для кофе "Бернадот 0000" 110 мл на 6перс.12пред {ВнешняяОбработка.ПереносМеждуИдентичнымиКонфигурациями.МодульОбъекта(405)}: Ошибка при вызове метода контекста (Записать): Произошла исключительная ситуация (1C:Enterprise 8.2.19.90): Ошибка при выполнении обработчика - 'ПередЗаписью'
Заранее спасибо
44. sps02 15.08.14 11:40 Сейчас в теме
Скажите, пожалуйста почему номенклатура не загружается?
45. makas 44 08.10.14 18:15 Сейчас в теме
Обработка в 1С:Предприятие 8.2 (8.2.19.106) "Управление торговлей", редакция 10.3 (10.3.29.1) пишет сообщение "База данных не открыта !!!"

В чем может быть моя ошибка?

46. XSlava 126 09.10.14 08:01 Сейчас в теме
В чем угодно. Нет доступа к каталогу или еще чего.
47. SvetlanaP 27.02.15 12:57 Сейчас в теме
Спасибо за обработку! С ней намного легче работать. Сначала все время появлялось сообщение "База данных не открыта!!!", но потом все получилось. У меня все переносится идеально.
48. Evrey.biysk 11.03.15 06:33 Сейчас в теме
Одна из причин почему база данных не открыта, пробелы в логине или пароле
Если таковые имеются то
v8=Новый COMОбъект("v8"+Прием+".COMConnector");
	Состояние("Подключение к базе");
	строкаЗапуска="";
	Если ФлБазаНаСервере тогда  
		строкаЗапуска = "Srvr="""+ СокрЛП(ф.Сервер) + """;"+"Ref="""+СокрЛП(ф.ИмяБазы)+ """;Usr=" + СокрЛП(ф.ИмяПользователя) + ";Pwd=" + СокрЛП(ф.Пароль);
	иначе	
		строкаЗапуска = "File="""+ СокрЛП(ф.Каталог) + """;Usr=" + СокрЛП(ф.ИмяПользователя) + ";Pwd=" + СокрЛП(ф.Пароль);
		Если не ЗначениеЗаполнено(ф.ИмяПользователя) тогда
			строкаЗапуска = "File="""+ СокрЛП(ф.Каталог) + """";
		КонецЕсли;	
	конецесли;
	
	Сообщить(строкаЗапуска);
	Попытка   		
		Открытие = V8.Connect(строкаЗапуска); 
		Состояние("Подключились"); 
	Исключение 
		Предупреждение("База данных не открыта!!!"); 
		Возврат Ложь; 
	КонецПопытки;
	Возврат Истина;
Показать


Надо заменить следующим:

v8=Новый COMОбъект("v8"+Прием+".COMConnector");
	Состояние("Подключение к базе");
	строкаЗапуска="";
	Если ФлБазаНаСервере тогда  
		строкаЗапуска = "Srvr="""+ СокрЛП(ф.Сервер) + """;"+"Ref="""+СокрЛП(ф.ИмяБазы)+ """;Usr=""" + СокрЛП(ф.ИмяПользователя) + """;Pwd=""" + СокрЛП(ф.Пароль)+"""";
	иначе	
		строкаЗапуска = "File="""+ СокрЛП(ф.Каталог) + """;Usr=""" + СокрЛП(ф.ИмяПользователя) + """;Pwd=""" + СокрЛП(ф.Пароль)+"""";
		Если не ЗначениеЗаполнено(ф.ИмяПользователя) тогда
			строкаЗапуска = "File="""+ СокрЛП(ф.Каталог) + """";
		КонецЕсли;	
	конецесли;
	
	Сообщить(строкаЗапуска);
	Попытка   		
		Открытие = V8.Connect(строкаЗапуска); 
		Состояние("Подключились"); 
	Исключение 
		Предупреждение("База данных не открыта!!!"); 
		Возврат Ложь; 
	КонецПопытки;
	Возврат Истина;
Показать
49. LavinVadik 91 22.10.15 23:35 Сейчас в теме
на 8.3 тоже работает
маленько код надо тока поправить

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



//v8=Новый COMОбъект("v8"+Прием+".COMConnector");
v8=Новый COMObject("V83.COMConnector");
или добавить в список выбора "Прием"


и не предусмотрено если в базе приемники такой документ уже есть и он помечен на удаление то документ не проводится, вот пример
надо добавить
Если ДокБух.ПометкаУдаления Тогда
ДокБух.УстановитьПометкуУдаления(Ложь);
КонецЕсли;



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

	Иначе
		ДокБух = Открытие.Документы[ВидДока].СоздатьДокумент();
		НоваяСсылка = Открытие.Документы[ВидДока].ПолучитьСсылку(УИ);
		ДокБух.УстановитьСсылкуНового(НоваяСсылка);
		ЭтоНовый = Истина;
	КонецЕсли;
	Если ФлПерезаписыватьДоки и не ЭтоНовый тогда	
		инфа("Документ уже переносился!!! Изменяем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);
		//Очистим табличные части
		Для каждого ТЧ из Открытие.Метаданные.Документы[ВидДока].ТабличныеЧасти цикл
			ДокБух[ТЧ.Имя].Очистить();
		КонецЦикла;	
	ИначеЕсли не ФлПерезаписыватьДоки и не ЭтоНовый тогда	
		инфа("Документ уже переносился!!! Пропускаем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);	
	Иначе	
		инфа("Создаем документ "+ВидДока+" № "+ТекДок.Номер+" от "+ТекДок.Дата,0);
	КонецЕсли;	
	Возврат ДокБух;
КонецФункции
Показать
Светлый ум; +1 Ответить
50. Доня 273 02.03.17 16:06 Сейчас в теме
(49)
Вы в комментариях написали :
<<< 49. Вадик Лавин (LavinVadik) 57 22.10.15 23:35
на 8.3 тоже работает
маленько код надо тока поправить ...>>>
не могли бы Вы скинуть поправленный на мою почту tathr@mail.ru
Я сделала все Ваши добавки, но не работает на 8.3
51. XSlava 126 03.03.17 12:08 Сейчас в теме
Пришлите мне файл который вы доработали, я его проверю на 8.3 и поправлю если не будет работать.
Оставьте свое сообщение