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

11.07.13

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

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

Файлы

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

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

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

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

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

Недавно случилась следующая ситуация. У бухгалтера оказались "не те" бухгалтерские проводки, которые были ранее (неделей, месяцем - уже и не вспомнить), а перепроведение документа нежелательно, поскольку документ находится в "закрытом" периоде. И таких документов с "поехавшими" проводками оказалось несколько, порядка 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

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

См. также

SALE! 10%

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

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

55778 50200 руб.

04.08.2015    178281    398    292    

418

SALE! 10%

Перенос данных 1C Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист 1С v8.3 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" с помощью правил конвертации будет максимально комфортным! | Можно бесплатно проверить перенос на вашем сервере!

48278 43450 руб.

25.02.2015    177908    327    274    

396

SALE! 10%

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

55778 50200 руб.

15.04.2019    78760    211    162    

150

SALE! 15%

Перенос данных 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. Не требуется синхронного обновления правил после обновления другой конфигурации, участвующей в обмене. Типовой обмен через планы обмена кнопкой Синхронизация вручную или автоматически по расписанию, или вручную обработкой.

27660 руб.

12.06.2017    152229    887    302    

461

SALE! 10%

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

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

53111 47800 руб.

03.12.2020    41702    119    75    

112

SALE! 10%

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

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

55778 50200 руб.

31.10.2014    242645    111    350    

316

SALE! 10%

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

Перенос данных из 1С:Управление торговлей 10.3 в 1С:Управление торговлей 11.5 с помощью правил обмена. Переносятся остатки, документы (обороты за период), справочная информация. Правила проверены на конфигурациях УТ 10.3 (10.3.88.x) и УТ 11.5 (11.5.24.x).

38000 34200 руб.

23.07.2020    61164    289    81    

229

Перенос данных 1C Программист Бухгалтер 1С v8.3 Сложные периодические расчеты 1С:Зарплата и Управление Персоналом 3.x Россия Бухгалтерский учет НДФЛ ФОМС, ЕФС Платные (руб)

Обработки для быстрого перехода с конфигураций «КАМИН:Расчет заработной платы 3.0», «КАМИН:Зарплата для бизнеса 4.0» и «КАМИН:Зарплата 5.0» на конфигурацию «Зарплата и управление персоналом» версии 3.1.

12000 руб.

25.09.2016    86167    370    257    

310
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1929 11.07.13 21:05 Сейчас в теме
ВыгрузкаЗагрузкаДанныхXML самое то в описанной вами ситуации
KonstB; charushkin; +2 Ответить
2. EarlyBird 7 11.07.13 21:18 Сейчас в теме
(1) echo77, с помощью ВыгрузкаЗагрузкаДанныхXML - сделает любой тупица.
Автору плюс, за то что воспользовался этой в общем-то рутинной задачей, для своего самообучения, и повысил свои знания.
tricolor; +1 Ответить
3. Stamper 44 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 2421 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 не помогла, т.к. конфигурации уже разные и выгружать нужно только движения по определённым документам, но без самих документов. Плюс у некоторых документов правленые вручную проводки.
Для отправки сообщения требуется регистрация/авторизация