Выгрузка и загрузка документов с движениями

02.09.19

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

Возникла задача перенести документы с движениями, но подменив организацию. Наткнулся на проблему с выгрузкой движений, опишу свой опыт.

Открываем конфигурацию Конвертация 2.0, туда загружаем базу.

Главное, что при получении описания метаданных конфигурации поставить флаг - выгружать движения по регистрам.


Далее создаем все правила автоматически, т.к. это предлагает сделать Конвертация 2.0

Также автоматом создаем все правила выгрузки данных.

Вроде все сделано правильно и движения должны переноситься, но увы этого недостаточно.

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

Необходимо "после загрузке в глобальном контексте" добавить немного кода (подсказал  duhh):

Всё, статья получилась маленькая, но, надеюсь, полезная))

 

МетаданныеОбъекта = Объект.Метаданные();
Если Метаданные.Документы.Содержит(МетаданныеОбъекта) тогда
	ДвиженияВсе = Объект.Движения;
	МассивДвижений = новый Массив;
	Для каждого СтрокаДвижения из ДвиженияВсе Цикл
		МассивДвижений.Добавить(СтрокаДвижения.Выгрузить());
	КонецЦикла;
	Объект.Записать(РежимЗаписиДокумента.Запись);
			
	ИИ = 0; 
	Для Каждого ЭлеменМассива из МассивДвижений Цикл
	//Загрузим движения обратно
	НаборЗаписей = Объект.Движения[ИИ];
	НаборЗаписей.Прочитать();
	НаборЗаписей.Загрузить(ЭлеменМассива);
	НаборЗаписей.Записать();
	ИИ = ИИ +1; 	
	КонецЦикла;
КонецЕсли;

 

правил загрузка документов движения

См. также

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    159267    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    134598    718    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    20088    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".

50722 45650 руб.

31.10.2014    231092    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    34033    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    68191    176    136    

108

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

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

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

60000 руб.

05.10.2022    9155    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    46019    194    64    

153
Отзывы
10. sulfur17 59 25.01.21 08:49 Сейчас в теме
Спасибо за полезную статью. Дополню что при переносе регистров сведений будет выбрасываться исключение, потому что у записи регистра нет метода Метаданные().
Поэтому лучше первые две строчки обработчика заменить на вот такие:
//МетаданныеОбъекта = Объект.Метаданные();
//Если Метаданные.Документы.Содержит(МетаданныеОбъекта) тогда
ТипОбъектаСтрокой = Строка(ТипЗнч(Объект));
Если Лев(ТипОбъектаСтрокой, 8) = "Документ" Тогда
	МассивДвижений = Новый Массив;
	Для каждого СтрокаДвижения из Объект.Движения Цикл
		МассивДвижений.Добавить(СтрокаДвижения.Выгрузить());
	КонецЦикла;
	Объект.Записать(РежимЗаписиДокумента.Запись);
			
	ИИ = 0; 
	Для Каждого ЭлеменМассива из МассивДвижений Цикл
		//Загрузим движения обратно
		НаборЗаписей = Объект.Движения[ИИ];
		НаборЗаписей.Прочитать();
		НаборЗаписей.Загрузить(ЭлеменМассива);
		НаборЗаписей.Записать();
		ИИ = ИИ +1; 	
	КонецЦикла;
КонецЕсли;
Показать
BRT; user1114234; lexxmaster; sertak; +4 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. duhh 236 03.09.19 09:52 Сейчас в теме
Для того чтобы меньше копипастить (не добавлять в каждый обработчик документа), код нужно добавить в "глобальный" обработчик с проверкой на метаданные Документ. (ПРИМЕР МетаданныеОбъекта = Объект.Метаданные(); Если Метаданные.Документы.Содержит(МетаданныеОбъекта)
)
lexxmaster; human_new; +2 Ответить
2. human_new 610 03.09.19 11:09 Сейчас в теме
(1) Спасибо, поменял статью со ссылкой на вас
3. alest 08.09.19 10:59 Сейчас в теме
А отказ от типовой обработки не нужен разве? При выполнении обработчика взводится ведь ОбъектМодифицирован и НужноЗаписатьОбъект, после чего идет Записать(Проведение)...
4. human_new 610 09.09.19 12:29 Сейчас в теме
(3) Так это же обмен, он и так в режиме ОбменДанными.загрузка = истина
5. alest 09.09.19 14:56 Сейчас в теме
(4) Хм, во внешней обработке обмена стоит
РежимОбменДанными = РежимЗаписи = РежимЗаписиДокумента.Запись; 
т.к. иначе упадет.
В обработке из конфы стоит явно ОтменитьПроведениеОбъектаВИБ с постановкой в очередь отложенного проведения.

В любом случае, это же впустую второй раз запишется.
6. human_new 610 09.09.19 15:27 Сейчас в теме
(5) Вы хотите сказать, что надо сделать как-то вот так:
// сначала надо определить мы загрузили новый документ или обновили старый,
//1) Если новый то тогда надо присвоить ему ссылку
НоваяСсылка = Документы.НужныйТип.ПолучитьСсылку(Новый УникальныйИдентификатор());
Объект.УстановитьСсылкуНовго(НоваяСсылка);
НаборЗаписей = Объект.Движения.НужноеДвижение;
Таблица = НаборЗаписей.Выгрузить();
Таблица.ЗаполнитьЗначения(НоваяСсылка, "Регистратор");
НаборЗаписей.Записать();

Мне кажется и двойная запись особо не мешает и более читабельна.
7. alest 09.09.19 18:16 Сейчас в теме
Ну да, можно вообще не записывать документ принудительно.

1 в вашем коде запись идет без режима ОбменДанными.Загрузка, если он нужен, то надо его прописать
2 дальше обработка обмена сама записывает документ, но т.к. РежимЗаписи при генерации правил не устанавливается, то идет просто запись, уже в режиме загрузки (я думал, что там режим проведения и не сработает)
3 от лишней записи объекта лучше избавиться, установив после принудительной записи
ОбъектМодифицирован = Ложь;
НужноБылоЗаписатьОбъект = Ложь;
8. gorakh 26 14.11.19 11:40 Сейчас в теме
Если в целевой конфигурации в модуле НабораЗаписей производится анализ записей а нужно перенести проводки "как есть".
НаборЗаписей.ОбменДанными.Загрузка = Истина; 
НаборЗаписей.Записать();
9. CodeNull 25.06.20 03:22 Сейчас в теме
Предложенный здесь вариант у меня не сработал, помог следующий код, который я помести в ПКО документа событие "После загрузки":
// Отключаем стандартную запись объкта, т.к. она затирает движения документа по регистрам.
Отказ = Истина;

// Записываем объект "вручную", с сохранением движений.
Объект.Движения.Цены.Записывать = Истина;
Объект.Записать(РежимЗаписиДокумента.Запись);
10. sulfur17 59 25.01.21 08:49 Сейчас в теме
Спасибо за полезную статью. Дополню что при переносе регистров сведений будет выбрасываться исключение, потому что у записи регистра нет метода Метаданные().
Поэтому лучше первые две строчки обработчика заменить на вот такие:
//МетаданныеОбъекта = Объект.Метаданные();
//Если Метаданные.Документы.Содержит(МетаданныеОбъекта) тогда
ТипОбъектаСтрокой = Строка(ТипЗнч(Объект));
Если Лев(ТипОбъектаСтрокой, 8) = "Документ" Тогда
	МассивДвижений = Новый Массив;
	Для каждого СтрокаДвижения из Объект.Движения Цикл
		МассивДвижений.Добавить(СтрокаДвижения.Выгрузить());
	КонецЦикла;
	Объект.Записать(РежимЗаписиДокумента.Запись);
			
	ИИ = 0; 
	Для Каждого ЭлеменМассива из МассивДвижений Цикл
		//Загрузим движения обратно
		НаборЗаписей = Объект.Движения[ИИ];
		НаборЗаписей.Прочитать();
		НаборЗаписей.Загрузить(ЭлеменМассива);
		НаборЗаписей.Записать();
		ИИ = ИИ +1; 	
	КонецЦикла;
КонецЕсли;
Показать
BRT; user1114234; lexxmaster; sertak; +4 Ответить
11. sertak 313 28.01.21 16:56 Сейчас в теме
Спасибо за статью!
Делаю свертку базы с нетиповой конфигой переносом в пустую. Столкнулся именно с этой проблемой: отсутствие движений в приемнике.
12. human_new 610 28.01.21 17:16 Сейчас в теме
(11) очень рад, что статья помогла, а то обычно одна критика))
13. trumanl 12 15.03.21 17:44 Сейчас в теме
К сожалению, в моей синхронизации связки ЗУП 3.1 - ЗУП 3.1, указанный код в ПослеЗагрузкиОбъекта не помог, НО получилось решить следующим способом:
1. Минимальная доработка в модуле объекта обработки КонвертацияОбъектовИнформационныхБаз в процедуре ПрочитатьОбъект
ИначеЕсли РежимЗаписи = "Запись" Тогда РежимЗаписи = РежимЗаписиДокумента.Запись; 

2. Код в глобальном ПослеЗагрузкиОбъекта
Если ИмяТипаОбъекта = "Документ" Тогда
	
	РежимЗаписи = "Запись";	
	
КонецЕсли;
14. VovkaPutin 31 02.03.22 18:01 Сейчас в теме
Добрый день,

"Начинаем разбираться в коде и в видим, что после загрузке документы с движениями, но в момент записи документа все движения затираются." - уточните, по какой причине затирается ? Если в свойствах синхрованы регистры документов - они загружаюся в КД 2.1.8.2
15. seravkin 28.07.22 16:02 Сейчас в теме
ТипОбъектаСтрокой = Строка(ТипЗнч(Объект));
Если Лев(ТипОбъектаСтрокой, 8) = "Документ" Тогда
	
   Для каждого СтрокаДвижения из Объект.Движения Цикл  
      СтрокаДвижения.Записывать = Истина;	
   КонецЦикла;
	
КонецЕсли;
Показать
16. Hikari123 06.10.22 11:13 Сейчас в теме
Спасибо все работает!
17. angabanga5 02.12.22 21:20 Сейчас в теме
спасибо, добрый человек
18. erp 08.12.22 22:44 Сейчас в теме
Добрый день. Можете подсказать, где скачать такую обработку по выгрузке метаданных именно с движениями? В папке КД есть только обычная обработка без возможности указания выгрузки движений. Заранее спасибо.
19. human_new 610 09.12.22 07:51 Сейчас в теме
(18) Странно, раньше была, прикрепляю
Прикрепленные файлы:
MD83Exp.epf
20. erp 09.12.22 12:11 Сейчас в теме
21. VoVo 02.03.23 16:10 Сейчас в теме
У меня не все пишутся движения когда переношу списание с расчетного счета бухгалтерии по ссылке тянет отражение зп в бух учете по его движениям дает ошибку как на скрине, а сами движения выглядят(в объекте отражение зп в бух учете что по ссылке идет) как на втором скрине
Прикрепленные файлы:
Оставьте свое сообщение