Перенос регистра бухгалтерии между идентичными базами используя xml-сериализацию

11.07.13

Интеграция - Перенос данных 1C

Приводится пример использования xml-сериализации для переноса данных (в частности, записей регистра бухгалтерии) между идентичными базами, использование которого позволяет добиться очень компактного и "понятного" кода.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Перенос проводок между идентичными базами
.epf 7,51Kb
93 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

Итак, все прикладные объекты в 1С имеют xml-сериализацию (почти уверен, что все), а это значит, что 1С обладает встроенными средствами для записи и (что более важно) корректного чтения этих данных с записью в базу 1С. Из названия понятно, что обмен при этом происходит посредством записи/чтения файлов типа XML. При этом процесс как записи, так и чтения банально просты.

Вот пример процедуры записи:

ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.ОткрытьФайл(ИмяФайла, "UTF-8");
ЗаписьXML.ЗаписатьНачалоЭлемента("Данные");
ЗаписьXML.ЗаписатьАтрибут("Дата_Выгрузки", Формат(ТекущаяДата(), "ДЛФ=Д"));
ЗаписьXML.ЗаписатьКомментарий("Выгрузка проводок по документу:" + СокрЛП(Документ));

НаборЗаписей = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Регистратор.Установить(Документ);
НаборЗаписей.Прочитать();
ЗаписатьXML(ЗаписьXML, НаборЗаписей);

ЗаписьXML.ЗаписатьКонецЭлемента();
ЗаписьXML.Закрыть();

А это пример чтения (и одновременно записи данных в базу):

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

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

01.png

Синхронизация всех объектов, а это сам документ, субконто проводок, счета и пр. происходят по уникальному идентификатору, поэтому нам не нужно делать каких-либо дополнительных манипуляций с их поиском - все предельно просто и однозначно, главное, чтобы базы у нас были идентичными (не только в плане идентичности конфигурации, но и самих данных, т.е. в связке копия-рабочая база, но НЕ главная-распределенная).

Напоследок скажу, что подобным образом можно переносить любые приклданые объекты конфигурации, для которых доступна xml-сериализация (пишется в справке по объекту).

02.png

Вступайте в нашу телеграмм-группу Инфостарт

См. также

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

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

50050 руб.

25.02.2015    191495    375    295    

431

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

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

58000 руб.

04.08.2015    193378    468    309    

466

SALE! 15%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27633 руб.

12.06.2017    163906    995    329    

488

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Разработчик 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Управленческий учет Платные (руб)

Переносите справочную информацию, остатки и документы из УПП 1.3 в Бухгалтерию 3.0 с помощью готовых правил. Переносится более 50 видов документов. Простой интерфейс и понятные настройки.

42000 37800 руб.

15.12.2021    36229    265    68    

202

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

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

58000 руб.

15.04.2019    86763    232    182    

168

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

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

50200 руб.

24.04.2015    210136    180    253    

299

Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Системный администратор Разработчик Бухгалтер 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Платные (руб)

Обработка не только формирует начальные остатки по всем счетам на нужную дату (экономя время на свёртке базы БП 3), но и полностью переносит справочные данные и документы за заданный период. Гибкая настройка включает фильтр по организациям и множество параметров выгрузки. Работайте в удобном формате: выполните однократный полный переход или настройте регулярную догрузку только новых документов из БП 3 в БП 3.0. Интеграция правил конвертации в план обмена гарантирует точную выгрузку исключительно зарегистрированных объектов.

70760 руб.

10.04.2026    1254    3    8    

2

Рабочее место Производство готовой продукции (работ, услуг) Перенос данных 1C Пользователь 1С:Предприятие 8 1С:Управление производственным предприятием 1С:Документооборот 1С:Комплексная автоматизация 2.х 1С:КА 1С:ДО Платные (руб)

Продукт "Интеграция с 1С:Документооборот" позволяет использовать функции программы "1С:Документооборот 8" напрямую из учетной системы (1С:УПП; 1С:КА, 1С:УТ 10.3, 1С:БГУ 1.0, 1С:ЗБУ 1.0, 1С:УПП для Казахстана и отраслевых решений, разработанных на их основе) на платформе "1С:Предприятие 8": выполнять и ставить задачи, просматривать документы, скан-копии и прочие файлы, штрих-кодировать документы отправлять письма, вести учет рабочего времени - не входя в "1С:Документооборот 8", работая в одной программе, что значительно сокращает время и делает работу более комфортной и эффективной. Продукт прошел сертификацию 1С-Совместимо

135530 руб.

11.06.2015    63617    39    20    

51
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1943 11.07.13 21:05 Сейчас в теме
ВыгрузкаЗагрузкаДанныхXML самое то в описанной вами ситуации
KonstB; charushkin; +2 Ответить
2. EarlyBird 7 11.07.13 21:18 Сейчас в теме
(1) echo77, с помощью ВыгрузкаЗагрузкаДанныхXML - сделает любой тупица.
Автору плюс, за то что воспользовался этой в общем-то рутинной задачей, для своего самообучения, и повысил свои знания.
tricolor; +1 Ответить
3. Stamper 45 12.07.13 11:45 Сейчас в теме
(2) EarlyBird, или у него не было подписки на ИТС =)
4. KonstB 182 16.07.13 23:15 Сейчас в теме
(2) EarlyBird, автор прокачалася молодец, но зачем об этом трезвонить... Обмен опытом - это да, но обмен таким "опытом"...
Перед тем как выкладывать посмотреть в интернете что есть... 5 минут и выход на выгрузкуЗагрузкуДанныхХМЛ
5. EarlyBird 7 17.07.13 13:14 Сейчас в теме
(4) KonstB, мне кажется, ты несколько зашорен, и не желаешь выглядывать из-за своих шор.
Автор воспользовался ситуацией, чтобы узнать больше об XML-сериализации.
Теперь он постиг Дао XML-сериализации и умеет применять её в своей работе.
А ты по-прежнему продолжай копаться с ВыгрузкойЗагрузкойДанныхXML, при этом твой кругозор (и твоя стоимость как специалиста) не повышается ни на копейку.
6. wolfsoft 2420 17.07.13 15:32 Сейчас в теме
(5) EarlyBird,
при этом твой кругозор (и твоя стоимость как специалиста) не повышается ни на копейку

Как специалист он и так уже на порядок выше, поскольку хороший специалист должен уметь пользоваться готовым инструментом, а не изобретать по каждому поводу "велосипед", занимаясь собственной "прокачкой" за счёт работодателя.
8. KonstB 182 17.07.13 20:07 Сейчас в теме
(5) EarlyBird, пфф )))

Зашорены (или заштырены) Вы, сударь. Ибо даже не понимаете смысл мого комментария.
10. p_kuzmichev 8 15.10.14 23:39 Сейчас в теме
(1) echo77, Но ВыгрузкаЗагрузкаДанныхXML не выгружает корректно бухгалтерские справки. Надо будет завтра попробовать с помощью этой обработки перенести.
7. EarlyBird 7 17.07.13 15:54 Сейчас в теме
Как специалист он и так уже на порядок выше, поскольку хороший специалист должен уметь пользоваться готовым инструментом, а не изобретать по каждому поводу "велосипед", занимаясь собственной "прокачкой" за счёт работодателя.

«Вы, Шариков, чепуху говорите и возмутительнее всего то, что говорите её безапелляционно и уверенно.»
© М. Булгаков. Собачье сердце.
9. EarlyBird 7 18.07.13 09:02 Сейчас в теме
11. IvStark 22.01.25 15:07 Сейчас в теме
Благодарю, пригодилось.
При обновлении доработанной бухи слетела колонка "Подразделение" в Регистре бухгалтерии по некоторым видам документов. (Забыл, что она была добавлена в проводки)
Пришлось выгружать движения по этим документам из копии базы и загружать в рабочую.

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