Сериализация данных 1С

13.01.21

Интеграция - Файловый обмен (TXT, XML, DBF), FTP

В данной статье я хочу рассказать о сериализации данных в 1С.

А сейчас немного о самом определении: Сериализация указывает возможность поддержки чтении/записи значений данных.

Когда нам нужно сохранить значения, для дальнейшего его хранения или передачи, в этом случае нам без нее не обойтись, но стоит учитывать, что сериализация данных применима для всех объектов 1С, в описании которых есть пометка "Сериализуется".

Хочется уточнить, что речь идет не только сериализации, применимой в рамках одной базы данных, но и о XML – сериализация. Последняя является отдельной возможностью, и применяется между различными базами данных.

Согласитесь, это неотъемлемая часть 1С, так как очень часто данные в базе нужно сохранять, а тем более если речь идет о передаче данных из одной базы в другую или например, во внешний источник.

Сейчас рассмотрим сериализацию в рамках одной информационной базы.

Для сохранения значений во время сеанса используют методы  ЗначениеВФайл() и ЗначениеИзФайла(). Если же нам требуется сохранить данные между сеансами, что удобно для пользователя, чтобы не вводить данные каждый раз на форме, то мы будем использовать методы СохранитьЗначение() и ВосстановитьЗначение(), но стоит обратить внимание что данные методы работают только при корректном завершении работы в программе,  если вдруг пк будет обесточен, то значения не сохранятся.  Также не стоит забывать о сохранении значений в объекте типа ХранилищеЗначений. Подобный тип используется для картинок, образов файлов, так как для них в конфигурации нет соответствующих типов полей.

Если необходимо сохранить значения в строку и восстановить значения из строки, то для этого используются методы ЗначениеВСтрокуВнутр() и ЗначениеИзСтрокиВнутр(). Эти методы реализованы в основном для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать их в большинстве случаев не рекомендуется. Для сохранения значений в базу данных рекомендуется использовать, описанный выше, объект типа ХранилищеЗначения, а для получения некоторого строкового идентификатора ссылочного значения можно использовать возможность получения уникального идентификатора ссылки (метод УникальныйИдентификатор()) и соответственно преобразование его к строке.

А теперь немного о XML – сериализации.

Рассмотрим сериализацию на примере объектов xml, потому что они используются чаще всего.

Есть глобальный метод ЗаписатьXML() предназначенный для этого.

Стоит отметить, что значения не всех типов могут быть записаны в формате XML данным методом. Доступные для записи типы данных делятся на на два типа: простые и сложные.

К простым типам данных относятся типы, значения которых представляются подсистемой XML-сериализации в виде элементов XML только с текстовым содержимым:

К первому относятся:

  • Число;
  • Строка;
  • Дата;
  • Булево;
  • ДвоичныеДанные;
  • Null;
  • УникальныйИдентификатор;
  • ХранилищеЗначения;
  • все ссылки на объекты базы данных;
  • ссылки на перечисления, определяемые в метаданных.

Значения сложных типов представляются в виде элементов XML, содержащих вложенные элементы:

  • Тип;
  • ОписаниеТипов;
  • КонстантаМенеджерЗначения.<имя константы>;
  • все объекты базы данных;
  • наборы записей регистров, последовательностей, перерасчетов;
  • УдалениеОбъекта;

 

Пример кода

Функция ПолучитьПримерXML(Значение)

ЗаписьПримерXML = Новый ЗаписьXML;

ЗаписьПримерXML.УстановитьСтроку();

ЗаписатьXML(ЗаписьПримерXML, Значение);

Возврат ЗаписьПримерXML.Закрыть();

КонецФункции

Для всех остальных типов, для которых невозможно использовать метод ЗаписатьXML() - будем преобразовывать сначала значения в XDTO, а затем уже используем выше описанный метод.

Рассмотрим на примере подробнее:

У нас есть таблица значений, которую мы хотим  записать в XML:

 

Пример кода
 

Функция ПолучитьПримерXML(Значение)

ОбъектXDTO = СериализаторXDTO.ЗаписатьXDTO(Значение);

ЗаписьПримерXML = Новый ЗаписьXML;

ЗаписьПримерXML.УстановитьСтроку();

ФабрикаXDTO.ЗаписатьXML(ЗаписьПримерXML, ОбъектXDTO);

Возврат ЗаписьПримерXML.Закрыть();

КонецФункции

Надеюсь, моя статья была для Вас полезна. Спасибо, что прочли.

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

Сериализация данных СериализаторXDTO XDTO XML

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

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

См. также

Перенос данных 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    190370    370    294    

427

Перенос данных 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    85823    231    181    

168

SALE! 20%

Перенос данных 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    162823    989    329    

486

Перенос данных 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    209147    178    253    

297

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

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

70760 руб.

10.04.2026    886    3    8    

2

SALE! 10%

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

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

42000 37800 руб.

15.12.2021    35446    261    68    

199

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

Федеральная таможенная служба России давно поддерживает унифицированный формат электронных документов для обмена с информационными системами предприятий. xmlns="urn:customs.ru:Information:ExchangeDocuments:". Структура, утвержденная комиссией Таможенного союза. Осталось только сделать загрузку в 1С из этого формата. На выходе - два документа ГТД по импорту и Поступление (акты, накладные) Обработка актуализирована на начало 2026 года (ставка НДС 22%)

24400 руб.

09.08.2016    95918    373    379    

117

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

Правила переноса кадровых и расчетных данных и справочной информации из "1С:УПП1.3" или "1С:КА 1.1" в "1С:ЗУП 3.1 | Разработан в формате КД 2 (правила конвертации данных) | При выгрузке есть фильтр по организациям | Обновляется при выходе новых релизов 1С | Развитие алгоритмов | Расчетные документы переносятся в документ "Перенос данных" | Создаются документы "Начальная штатная расстановка" и "Начальная задолженность по зарплате", переносятся кадровые документы

58000 руб.

29.10.2018    63511    83    135    

82
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 4268 13.01.21 14:53 Сейчас в теме
Откройте для себя JSON
-> СериализаторXDTO.ЗаписатьJSON(
Аж в 8.3.6 появилось
1CUnlimited; arbuz2525; simuljakr; vindsor; rinat1c; mysm; Поручик; Drivingblind; +8 Ответить
2. capitan 2593 14.01.21 09:32 Сейчас в теме
Руководитель поручил написать статью на ИС ?
ROk_dev; daMaster; bocharovki; SaDiSST; +4 Ответить
3. caponid 14.01.21 15:31 Сейчас в теме
Для всех остальных типов, для которых невозможно использовать метод ЗаписатьXML() - будем преобразовывать сначала значения в XDTO, а затем уже используем выше описанный метод
и упадем в исключение при чтении, если поменяются метаданные.

ЗЫ: не тянет это на статью....
4. o4karek 18.01.21 08:57 Сейчас в теме
Сериализация указывает возможность поддержки чтении/записи значений данных.

Сериализация - это не возможность. Сериализация - это процесс.
Почитайте хотя-бы, как сама 1с определяет термин "сериализация".
5. lev6975 19.05.21 20:59 Сейчас в теме
не работает код для структуры
ошибка отображения типов!
Если кому пригодится - есть в 1С такая волшебная и всеми позабытая функция "ЗначениеВСтрокуВнутр(ЛюбойОбъект)"
Преобразует все надежно и без всяких ошибок...
Минусы - плохочитаемый контент... но тут уже кому чего, моим требованиям оно не помешало
Rafaraf; serverstar; sulfur17; Raskad; +4 Ответить
6. user1312100 257 11.06.21 06:14 Сейчас в теме
(4) Что является здесь объектом?
7. UralKIT 3 06.12.21 20:08 Сейчас в теме
если 1С изменила имя объекта после обновления, а они это любят делать очень часто, сериализация в пролёте
Для отправки сообщения требуется регистрация/авторизация