Универсальный метод сериализации значений в XML для локальных баз 1С на любом типе клиента под платформы 8.2 и 8.3

Публикация № 1514425 15.09.21

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

ЗначениеВоВнутСтроку ЗначениеИзВнутСтроки мобильная платформа.

Описаны способы сериализации данных со стороны 1С методов.

В настоящее время со стороны 1С существуют 3 метода сериализации значений:

  1. Старый способ со времен 7.7.
  2. Метод XML - довольно распространенный.
  3. Метод JSON - начиная с 8.3.6. 

Однако, при знакомстве с мобильной платформой выяснились следующие проблемы: старые добрые функции для серилизации не работают - это ЗначениеИзВнутСтроки() и ЗначениеВоВнутСтроку(). Точнее их вообще нет здесь.

Так как при создании моей Консоли Запросов я использовал не только платформу 8.3, но и 8.2 - то единственным доступным вариантом в моем случае остался 2-й метод. 

 

Универсальная Сериализация через XML

Стандартно для этих целей существуют следующие функции из БСП: 

//  Строка - XML-строка.
//
Функция ЗначениеВСтрокуXML(Значение) Экспорт
	
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();
	СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение);
	Возврат ЗаписьXML.Закрыть();
КонецФункции

// Выполняет преобразование (десериализацию) XML-строки в значение.
// См. также ЗначениеВСтрокуXML.
//
// Параметры:
//  СтрокаXML - Строка - XML-строка, с сериализованным объектом..
//
// Возвращаемое значение:
//  Произвольный - значение, полученное из переданной XML-строки.
//
Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт
	
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаXML);
		
	Значение=СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
	Возврат Значение;
	
КонецФункции

Эти функции, взятые из БСП, - хорошие. Однако передать через них серьезные объекты (в моем случае это был тип данных РезультатЗапроса) без выгрузки или других танцев с бубном в рамках портирования консоли на мобильные платформы оказалось абсолютно невозможным, так как данные типы тип не сериализуются XDTO. 

Однако для этого можно применить следующее правило, которое может работать в пределах одной базы: 

  1. Если тип сериализуется - ничего не делаем. Сразу преобразуем.
  2. Если нельзя сериализовать- упаковываем в хранилище значений. Следует отметить, что хранилище значений упаковывается также, чтобы с ним не было проблем.

Итоговые правки в код дают следующие функции:

// Преобразованы в могут быть любые объекты (дополнено через ХранилищеЗначения.
// См. также ЗначениеИзСтрокиXML.
//
// Параметры:
//  Значение - Произвольный - значение, которое необходимо сериализовать в XML-строку.
//
// Возвращаемое значение:
//  Строка - XML-строка.
//
Функция ЗначениеВСтрокуXML(Значение) Экспорт
	
	ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.УстановитьСтроку();
    Если Значение=Тип("ХранилищеЗначения") Тогда
      //Сохраняем жизнь исходному типу - через оборачивание.
        ХранилищеЗначения=новый ХранилищеЗначения(Значение);
		СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ХранилищеЗначения);
    иначе
       //Выполняем Сериализацию:
	   попытка
		  СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Значение);
	   исключение
		 ХранилищеЗначения=новый ХранилищеЗначения(Значение);
		 СериализаторXDTO.ЗаписатьXML(ЗаписьXML, ХранилищеЗначения);
	   КонецПопытки;
    КонецЕсли;
	Возврат ЗаписьXML.Закрыть();
КонецФункции

// Выполняет преобразование (десериализацию) XML-строки в значение.
// См. также ЗначениеВСтрокуXML.
//
// Параметры:
//  СтрокаXML - Строка - XML-строка, с сериализованным объектом..
//
// Возвращаемое значение:
//  Произвольный - значение, полученное из переданной XML-строки.
//
Функция ЗначениеИзСтрокиXML(СтрокаXML) Экспорт
	
	ЧтениеXML = Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаXML);	
	ХранилищеЗначение=СериализаторXDTO.ПрочитатьXML(ЧтениеXML);
    //Восстанавливаем значение из Хранилища:
	Если ХранилищеЗначение=Тип("ХранилищеЗначения") Тогда
		
		Возврат ХранилищеЗначение.Получить();

	иначе 
		Возврат ХранилищеЗначение;

	КонецЕсли;
	
КонецФункции

Если есть необходимость ввести универсальную функцию, которая совместима на компьютерных платформах со старым внутренним форматом 1С (мне понадобилось для работы с Консолью Запросов на Windows), тогда полученные универсальные функции:

Функция УниверсальнаяЗначениеВСтрокуВнутр(Значение) 
	
	Попытка
		
		
		возврат Вычислить("ЗначениеВСтрокуВнутр(Значение)");
		
	Исключение
		//Для мобильных приложений выполняем по правилам XMl-Функций, которые были переделаны:
		
		возврат ЗначениеВСтрокуXML(Значение);
		
		
	КонецПопытки;	
	
КонецФункции	


Функция УниверсальнаяЗначениеИзСтрокиВнутр(Значение) 
	
	Попытка
		
		возврат Вычислить("ЗначениеИзСтрокиВнутр(Значение)");
		
	Исключение
		//Для мобильных приложений выполняем по правилам XMl-Функций, которые были переделаны:
		
		возврат ЗначениеИзСтрокиXML(Значение);
				
	КонецПопытки;	
	
КонецФункции

PS: приведенными функциями в пределах одной базы можно пользоваться на следующих платформах: 

  1. Компьютерные: 1С 8.2 и 1С 8.3 - Тонкий, Толстый, ВебКлиент.
  2. На мобильных платформах 8.3 можно использовать универсальные переделанные функции БСП для аналога внутренних значений.

Тестировалось на платформах 8.2 и 8.3. Режим совместимости с 8.1 не пострадал.

Специальные предложения

Оставьте свое сообщение

См. также

xPath в 1С

Файловый обмен (TXT, XML, DBF), FTP Языки и среды Платформа 1С v8.3 Бесплатно (free)

Опыт работы методами языка xPath в 1С.

04.03.2023    3249    DemetrKlim    39    

41

Работа с ФабрикойXDTO без ПакетовXDTO

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Как можно использовать ФабрикуXDTO при невозможности создавать необходимые ПакетыXDTO в конфигурации.

16.02.2023    2284    DemetrKlim    28    

39

Инструменты обмена данными через xml используя сериализацию объектов

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Восстановление справочников, документов, регистров сведений из копии через xml, используя сериализацию объектов. Выгрузка/загрузка объектов базы данных в xml, используя сериализацию. Выгрузка/загрузка таблицы значений в xml, используя сериализацию.

24.01.2023    1251    andrey1508    8    

29

Создание и использование периферийной базы в 1С: Предприятие 8.3 8

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Здравствуйте, коллеги! В данной статье разберемся в том, как работает распределенная информационная база и периферийная база, подробно рассмотрим этапы ее создания и настройки. Периферийная база в 1С Предприятие 8.3 8 является частью РИБ (распределенная информационная база) и позволяет синхронизировать две или более используемые информационные базы, как правило, удаленных друг от друга, где используется загрузка файлов документов и их выгрузка, которую можно передавать по электронной почте или возможна передача файлов FTP путем один или несколько раз в день с любой периодичностью.

26.09.2022    1707    Koder_Line    2    

1

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Пример разработки инструмента загрузки данных SAP в 1С

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

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

14.09.2022    1276    Anirina    3    

7

Ошибка при взаимодействии УПП с ФСС - 2

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

При попытке отправить в УПП ответ на запрос ФСС для расчета пособия при рождении ребенка, получаем вот такой исчерпывающий ответ: Ошибка формата сообщения, Unknown format message. И что с этим делать, совершенно непонятно. Если так отвечает сервис ФСС, то похожие проблемы могут возникать и в других конфигурациях. Проблему удалось решить, но пришлось потратить пару дней. Возможно, мои заметки позволят вам в похожей ситуации решить проблему быстрее.

19.08.2022    2389    alex_bob    4    

8

Обход по группировкам в запросе, соединение таблиц, параметры в запросе, выгрузка прайс-листа в Excel, PDF, Docx, TXT

Запросы Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В помощь начинающим программистам. Использую обработку из предыдущей моей публикации для разработки выгрузки Прайс-листа в Excel, PDF, Docx, TXT. Рассмотрю, как работает обход результата запроса ПоГруппировкам (релиз платформы 1С:Предприятие 8.3 (8.3.20.1674), самописная конфигурация).

18.07.2022    3543    Pproksima    2    

8

Создание обработки для выгрузки в Excel, PDF, Docx, TXT (управляемые формы)

Загрузка и выгрузка в Excel Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В помощь начинающим программистам. Создание простой обработки для выгрузки табличного документа в файлы различных форматов, на примере справочника Контрагенты (релиз платформы 1С:Предприятие 8.3 (8.3.20.1674), самописная конфигурация).

18.07.2022    3567    Pproksima    6    

6

Выгрузка версии хранилища в XML файлы

Файловый обмен (TXT, XML, DBF), FTP Групповая разработка (Git, хранилище) Платформа 1С v8.3 Бесплатно (free)

Скрипт, выполняющий выгрузку произвольной версии из хранилища в XML.

17.03.2022    1046    kraynev-navi    2    

7

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

Доработка УПП 1.3 для выгрузки без ЭДО файлов всех сотрудников из документа "Сведения о застрахованных лицах, ФСС" для СБИС

Зарплата Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Платформа 1С v8.3 1С:Управление производственным предприятием Россия Бухгалтерский учет ФОМС, ЕФС Бесплатно (free)

ФСС потребовал предоставить полные списки работников при переходе на безбумажные больничные. Если сотрудников в УПП довольно много, становится проблематично каждого сотрудника выгружать в ФСС вручную. Можно даже сказать - довольно кропотливо. Вариант работы с ЭДО не требует жмакать кнопку для каждого сотрудника, но это платно (для второй и последующих организаций). Оказывается к ЭДО можно пока не подключаться. Предлагаю вариант автоматической выгрузки.

22.02.2022    3037    ksnik    12    

8

Использование LibreOffice для конвертации файлов в pdf на сервере

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коллеги, в данной публикации я хочу поделиться примером конвертации файлов в pdf с помощью LibreOffice на сервере.

26.01.2022    1703    pavelpribytkin96    5    

8

Список значений параметра в конвертации данных 2.0 (подключаемые обработки)

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Неоднократно сталкивался с вопросом: как сделать тип параметра - список значений, одно из самых простых решений - использовать подключаемые обработки в конвертации данных 2.0 (связать с параметрами конвертации). В данной статье будет дана подробная инструкция по данному вопросу.

26.01.2022    1373    Shining_ninja    0    

6

Немного про (кривые) кодировки XML

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Парочка функций для правильного чтения строк из XML.

24.11.2021    2635    ImHunter    5    

14

Интеграция 1С с ГИИС ДМДК

WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    36140    1СERP    159    

30

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Загрузка данных из файла .CSV

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Украина Бесплатно (free)

Алгоритм для загрузки данных в учебную конфигурацию из файла с расширением CSV.

23.08.2021    4841    user1571738    0    

14

Сравнительный анализ вариантов интеграции между системами

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На Infostart Meetup «Интеграционные решения для 1С» выступил Сергей Наумов – руководитель центра аналитики и консалтинга WiseAdvice. Сергей поделился с коллегами кейсами из собственной практики: какие интеграционные решения остаются актуальными до сих пор, а каких приемов стоит избегать – даже в безвыходных ситуациях.

30.07.2021    4276    SergeyN    1    

10

Новичок новичку: как выгрузить/загрузить XML данные

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Россия Бесплатно (free)

Рассказываю на примере, как с помощью xml файлов выгружать/загружать метаданные (документы, справочники, регистры). Рассматривается клиент-серверный вариант. Вариант передачи файла на сервер. Вариант загрузки файла без создания временных файлов.

04.06.2021    31343    user1312100    14    

25

Как вносить изменения в новое ЭДО от 1С в БП 3? Июнь 2021, БП 3.0.93.20

Документооборот и делопроизводство (СЭД) Файловый обмен (TXT, XML, DBF), FTP ЭДО и ОФД Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Обновились на 3.0.93.20, и все мои расширения под ЭДО перестали работать. Разберем, где вообще искать код, который выводит данные электронного документа в XML, где вмешиваться в ход этого вывода?

03.06.2021    11237    fixin    34    

19

Правила обмена больше не нужны

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

Есть несколько общепринятых подходов к написанию обмена между 1С-системами, каждый из которых упирается в длительное изучение технологии, мучительную отладку правил конвертации и написание большого количества сервисного кода, в котором потом тяжело разобраться. О принципах работы универсального фреймворка liteExchange, который реализует быстрые обмены между 1С и внешними системами, и берет на себя всю техническую обвязку по стандартному преобразованию данных, на INFOSTART MEETUP Saint Petersburg.Online рассказал Николай Крылов.

17.03.2021    18963    Nikola23    40    

79

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

R.I.P. РИБ

Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

РИБ, спасибо и до свидания.

19.02.2021    13393    1c-intelligence    133    

69

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

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

13.01.2021    11306    DanteLissi    7    

8

Загрузка или обновление файла на яндекс диске через rest-api

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Коллеги, в данной публикации я хочу поделиться кодом, с помощью которого можно загрузить файл на яндекс диск или обновить существующий.

12.08.2020    7184    pavelpribytkin96    11    

68

Загрузка или обновление файла на гугл диске

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коллеги, в данной публикации я хочу поделиться кодом, с помощью которого можно загрузить файл на гугл диск или обновить существующий.

06.08.2020    5167    pavelpribytkin96    9    

48

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

REST API multipart/form-data или отправка файлов в nexus

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Понадобилось в nexus складывать файлы для автодеплоя. Для этого использовал onescript и rest api. Библиотека 1connector не отработала, примеры на зазеркалье и ИТС тоже. В этой статье расскажу как поборол проблему.

28.02.2020    3401    pashamak    2    

6

[БСП] Обмен через Конвертацию данных 2.1

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Добавим новый план обмена и настроим в БСП типовой обмен через правила конвертации данных (КД 2.1)

03.02.2020    18739    John_d    22    

170

Вариант публикации каталога товаров из 1С с изображениями

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

02.02.2020    2847    malikov_pro    8    

6

Обмен через Конвертацию данных 2.1 во внешней обработке + Запуск внешней обработки по расписанию (БСП)

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

22.01.2020    9669    John_d    33    

100

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Двусторонний обмен с поставщиком через интернет-магазин для реализации товаров с ответственного хранения (с 01.02.2020 "Партии" не используются)

Файловый обмен (TXT, XML, DBF), FTP WEB-интеграция Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Бесплатно (free)

Рассмотрены реализация двустороннего обмена данными с использованием API-сервиса сайта поставщика при продаже товаров со склада ответственного хранения, алгоритм движения товаров и обмена документами на примере конфигурации 1С: УНФ у партнера, который взаимодействует с поставщиком "ООО Пауэр-Интернэшнл-шины" - одним из крупнейших в России поставщиков автомобильных шин и дисков.

16.01.2020    6108    chkurs    9    

3

Преобразование XML в таблицу значений или иной объект 1С методом XSL преобразования

Универсальные функции Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

24.10.2019    20625    kraspila    33    

58

Практика XDTO. Нюансы

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Бесплатно (free)

Некоторые практические моменты работы с XDTO. Дополнения к очевидному.

23.09.2019    23046    Yashazz    31    

71

Запись/Чтение XML, пример обмена по COM соединению

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

08.09.2019    22265    user5300    9    

19

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Бесплатно (free)

Основные этапы загрузки данных через EnterpriseData. Идентификация объектов загружаемых полностью и по ссылке. Приведены схемы процессов загрузки данных. Описание основных операций и обработчиков. Перечень процедур БСП, используемых при загрузке данных, структура «КомпонентыОбмена».

22.08.2019    22540    ids79    14    

97

Загрузка данных в БП 3.0 (Универсальный обмен данными XML)

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

Решение задачи по загрузке данных из имеющегося файла в формате xml в БП 3.0 (в том числе на 1cfresh.com) без доработок

26.05.2019    8680    rutadmeen    5    

13