Удобный способ чтения XML

Публикация № 1504874 27.08.21

Интеграция с оборудованием и сервисами - Обмен через XML

XML ЧтениеXML

Чтение XML

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

Есть много разных способов работы с XML файлом, например через последовательных обход или через построение DOM.

Легко гулятся вот такие снипеты про это : https://helpme1c.ru/chtenie-i-zapis-xml-v-yazyke-1s-8-3-8-2-v-primerax

 

Лично мне оба способа доступа к XML не нравятся. Вот решил поделится тем подходом который на мой вкус красивый.

Суть метода в конвертации XML в Соответствие (Функция ПрочитатьXMLВСоответствие) + Хэлпер для удобного чтения из соответствия (Функция ПрочитатьРеквизитСоотвествия).

Листинг :

Функция ПрочитатьXMLВСоответствие(XML, ТипПоследнегоЭлемента = Неопределено)    
    
    Ветка = Новый Соответствие;
    Значение = "";
    
    Пока XML.Прочитать() Цикл
        ТипУзла = XML.ТипУзла;
        Если ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
            ТипПоследнегоЭлемента = ТипУзлаXML.НачалоЭлемента; 
            Временно = Ветка.Получить(XML.Имя);
            Если Временно = Неопределено Тогда
                Ветка.Вставить(XML.Имя, ПрочитатьXMLВСоответствие(XML, ТипПоследнегоЭлемента));
            Иначе
                Если ТипЗнч(Временно) <> Тип("Массив") Тогда
                    Временно=ПреобразоватьВМассив(Временно);
                    Ветка.Вставить(XML.Имя, Временно);
                КонецЕсли;
                Временно.Добавить(ПрочитатьXMLВСоответствие(XML, ТипПоследнегоЭлемента));
            КонецЕсли;
        ИначеЕсли ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
            ТипПоследнегоЭлемента = ТипУзлаXML.КонецЭлемента;
            Возврат ?(ЗначениеЗаполнено(Ветка), Ветка, Значение);
        ИначеЕсли ТипУзла = ТипУзлаXML.Текст И Не ТипПоследнегоЭлемента = ТипУзлаXML.Текст Тогда
            ТипПоследнегоЭлемента = ТипУзлаXML.Текст;
            Значение = Значение + XML.Значение;
            XML.Прочитать();
            Возврат Значение;
        КонецЕсли
    КонецЦикла;
    
    Возврат Ветка;
КонецФункции


Функция ПрочитатьРеквизитСоотвествия(Соответствие,Путь,ЗначениеОшибки=Неопределено) Экспорт
    
    МассивРеквизитов = СтрРазделить(Путь,".");
    
    Счетчик = 0;
    Пока Счетчик<МассивРеквизитов.Количество() Цикл
        Элемент = МассивРеквизитов[Счетчик]; 
        Если Лев(Элемент,1)="(" и Прав(Элемент,1)<>")" Тогда
            Счетчик2=Счетчик+1;
            Пока Счетчик2<МассивРеквизитов.Количество() и Прав(МассивРеквизитов[Счетчик],1)<>")" Цикл
                МассивРеквизитов[Счетчик]=МассивРеквизитов[Счетчик]+"."+МассивРеквизитов[Счетчик2];
                МассивРеквизитов.Удалить(Счетчик2);
            КонецЦикла;    
        КонецЕсли;
        Элемент = МассивРеквизитов[Счетчик]; 
        Если  Лев(Элемент,1)="(" и Прав(Элемент,1)=")" Тогда
            МассивРеквизитов[Счетчик]=Сред(Элемент,2,СтрДлина(Элемент)-2);
        КонецЕсли;        
        Счетчик=Счетчик+1;
    КонецЦикла;    
    
    Результат=Соответствие;
    Для каждого Реквизит из МассивРеквизитов Цикл
        Индекс=Неопределено;
        лФигурнаяСкобкаНачало=СтрНайти(Реквизит,"[");
        лФигурнаяСкобкаКонец=СтрНайти(Реквизит,"]");
        Если ЗначениеЗаполнено(лФигурнаяСкобкаНачало) и ЗначениеЗаполнено(лФигурнаяСкобкаКонец) Тогда
            Попытка
                Индекс=Число(Сред(Реквизит,лФигурнаяСкобкаНачало+1,лФигурнаяСкобкаКонец-лФигурнаяСкобкаНачало-1));
                Реквизит=СтрЗаменить(Реквизит,СтрШаблон("[%1]",Формат(Индекс,"ЧН=0; ЧГ=")),"");
            Исключение
            КонецПопытки;
        КонецЕсли;    
        
        Если ТипЗнч(Результат)=Тип("Соответствие") Тогда
            Результат=Результат.Получить(Реквизит);
        Иначе
            Результат=ЗначениеОшибки;
            Прервать;
        КонецЕсли;
        
        Если ТипЗнч(Результат)=Тип("Массив") и Индекс<>Неопределено и Результат.Количество()>Индекс Тогда
            Результат=Результат[Индекс];
        КонецЕсли;
    КонецЦикла;    
    
    Если Результат=Неопределено Тогда
        Результат=ЗначениеОшибки;
    КонецЕсли;    
    
    Возврат Результат;
    
КонецФункции    



Функция ПреобразоватьВМассив(Значение)
    Если ТипЗнч(Значение)<>Тип("Массив") Тогда
        ВременныйМассив=Новый Массив;
        ВременныйМассив.Добавить(Значение);
        Возврат ВременныйМассив
    Иначе
        Возврат Значение
    КонецЕсли;    
КонецФункции

Пример использования :

//АдресФайла - Адрес хранилища на сервере куда помещен файл, можно переписать на получение по пути из ФС

Файл = ПолучитьИзВременногоХранилища(АдресФайла);
Поток = Файл.ОткрытьПотокДляЧтения(); 
	
Чтение = Новый ЧтениеXML();
Чтение.ОткрытьПоток(Поток);
	
//Чтение XML в соответствие
РезультатЧтения = ПрочитатьXMLВСоответствие(Чтение);
	
//Примеры произвольного доступа
ПримерДоступаСФигурнымиСкобками = ПрочитатьРеквизитСоотвествия(РезультатЧтения,"Message.Body.(Документ.РеализацияТоваровУслуг)");
ПримерДоступаПоИндексу = ПрочитатьРеквизитСоотвествия(РезультатЧтения,"Message.Body.(Документ.РеализацияТоваровУслуг[0]).КлючевыеСвойства.Дата");
//итд

Чтение.Закрыть();
Поток.Закрыть();

2й параметр у ПрочитатьРеквизитСоотвествия это строка отражающая полный путь до целевого реквизита соответствия

Скобки "()" используются для придания атомарности конструкции внутри скобки. Т.е в примере соответствие ключ будет прямо так и назван "Документ.РеализацияТоваровУслуг"

Скобки "[]" используются для доступа к массиву по индексу.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. capitan 2122 27.08.21 11:36 Сейчас в теме
Если вы на сервере, то почему не работать с XML файлом как с объектом ?
2. Malfarion 233 27.08.21 14:18 Сейчас в теме
(1) К сожалению ваш вопрос не понял. Если вы его попробуете развернуть , возможно я смогу вам ответить =)
6. capitan 2122 27.08.21 15:19 Сейчас в теме
(2)ОбъектXDTO будет с теми же реквизитами
Его можно в 2 строки создать из файла xml
7. Malfarion 233 27.08.21 16:11 Сейчас в теме
(6) Ваша правда, думаю что ОбъектXDTO вместо соответствия тоже подойдет, переписать хэлпер на чтение из ОбъектаXDTO.
Единственный минус который я вижу объекта XDTO что это аналог структуры и ключи там имеют строгие ограничения на названия. Все недопустимые символы заменяются что иногда может быть менее интуитивно.
8. capitan 2122 27.08.21 16:44 Сейчас в теме
(7)Большой плюс, что 1С за вас проверит корректность документа и если нужно соответствие схеме
Это же ответ на ваш единственный минус
Климов Сергей; +1 Ответить
9. Malfarion 233 27.08.21 16:51 Сейчас в теме
(8) Я тут плюсов не вижу, но вам спасибо за дельные замечания.
3. brr 181 27.08.21 14:42 Сейчас в теме
А почему в соответствие, дерево значений ведь удобнее? А что будете делать с повторяющимися элементами?
5. Malfarion 233 27.08.21 15:11 Сейчас в теме
(3) Вот построили вы дерево значений, как вы получите доступ к произвольной строке чтобы считать что-то. Будет то еще удовольствие и спагети кода из Строки.НайтиСтроки() итд.
4. Malfarion 233 27.08.21 15:09 Сейчас в теме
Все повторяющие элементы идут под общим ключом как массив. Я думаю достаточно взять любой XML файл и глянуть что получается =)
10. dhurricane 28.08.21 15:40 Сейчас в теме
Ветка.Удалить(XML.Имя);
Ветка.Вставить(XML.Имя, Временно);
Удаление здесь излишне.
11. Malfarion 233 28.08.21 18:48 Сейчас в теме
12. FractonKireyev 17.10.21 19:32 Сейчас в теме
Структура XML такая:

<Имя1 ...> ... </Имя1>
<Имя2 ...> ... </Имя2>
<Имя1 ...> ... </Имя1>
<Имя2 ...> ... </Имя2>
<Имя2 ...> ... </Имя2>

При этом нет прямого указания на количество строк <Имя2 ...> после <Имя1 ...> - сколько получилось, столько и получилось, но это важно для разбора и загрузки данных (например это количество строк в разделе). При этом <Имя2 ...> не подчинено <Имя1 ...>, но важен порядок следования.

Всё. Ваш алгоритм не справился.

А как быть с чтением атрибутов?
Оставьте свое сообщение

См. также

Использование классов .Net в 1С для новичков Промо

Разработка внешних компонент Универсальные функции Практика программирования v7.7 v8 Бесплатно (free)

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    86085    Serginio    116    

Примеры синхронных и асинхронных функций (обратный вызов, обещание)

Универсальные функции Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Преобразование НСВ - нерекомендуемых синхронных вызовов в асинхронные функции. Асинх. Обещание. Ждать. Обратный вызов.

вчера в 09:00    637    Margo462    29    

Программный интерфейс для доработки форм

Практика программирования Работа с интерфейсом Универсальные функции v8 1cv8.cf Бесплатно (free)

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

25.11.2021    3145    AtamanovYS    19    

Простейший способ учета изменений управляемых форм объектов 1С

Универсальные функции v8 1cv8.cf Бесплатно (free)

Описание методологии, позволяющей контролировать список изменений форм + вспомогательные функции программного изменения форм. Пригодятся при внесении изменений в расширениях, если есть необходимость видеть и контролировать все сделанные с формой изменения.

02.11.2021    1013    avalakh    12    

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    9093    comol    31    

Функции для преобразования справочников и документов в соответствие и обратно

Универсальные функции v8 1cv8.cf Бесплатно (free)

Функции для преобразования справочников и документов в соответствие и обратно. Предназначены для передачи данных между одинаковыми и не очень конфигурациями или как очередной вариант сохранения (архивирования) объектов перед редактированием с последующим восстановлением.

01.11.2021    768    avalakh    5    

Программно свернуть/развернуть узел динамического списка (с основной таблицей). Жирная точка над всеми "i".

Работа с интерфейсом Универсальные функции v8 Бесплатно (free)

Какой пользователь не мечтал поменьше тыркать кнопкой? Особенно в малюсенькие +/- в "древесных" динамических списках. Если вас тоже озадачили, чтобы, при выборе узла дерева сами развернулись все его вложенные элементы , а при выборе другого узла - так же автоматом свернулась ранее развернутая ветка (причем эти узлы могут находится в разных "отношениях" друг с другом)... То вам - сюда.

08.10.2021    1532    e-9    13    

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

Обмен через XML WEB v8 ERP2 Ювелирная промышленность и торговля Россия Бесплатно (free)

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

30.09.2021    5759    1СERP    37    

Подмена заголовка 1С Промо

Универсальные функции Работа с интерфейсом Россия Бесплатно (free)

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

08.12.2018    11669    moolex    26    

Взаимодействие с api Честный знак (Молочная продукция)

WEB Универсальные функции Практика программирования v8 1cv8.cf Бесплатно (free)

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    2254    user5300    45    

Замена символов русской раскладки на английские в штрихкоде

Сканер штрих-кода Универсальные функции 1cv8.cf Бесплатно (free)

Берешь такой сканер, сканируешь, а у тебя русская раскладка. И началось - переключи, опять отскань... Простое решение, которое можно доделать под себя.

29.08.2021    535    Mi11er    0    

Дозагрузка данных в файлы .xml

Обмен через XML Универсальные функции 8.3.14 1cv8.cf Бесплатно (free)

Искал, но не нашел /(может и не умею искать) краткое описание дозагрузки данных в .xml файл, ну и решил сделать из этого первую публикацию.

25.08.2021    1134    BehV    2    

Универсальные функции с примерами использования Промо

Универсальные функции v8 Бесплатно (free)

14 универсальных функций, с примерами использования - для обычного и управляемого интерфейса

26.02.2016    43408    unichkin    47    

Изменение расшифровки макета СКД до компоновки

Универсальные функции Практика программирования v8 v8::СКД Бесплатно (free)

Это не про работу с данными расшифровки. Это про изменение расшифровок полей ДО того, как СКД выполнилась. Быстрый способ сделать нужные расшифровки.

12.07.2021    2469    Yashazz    6    

Лямбда-функции на встроенном языке 1С

Универсальные функции Практика программирования Бесплатно (free)

Анонимная функция средствами 1С. Пророчества грядущих функций первого класса и ООП. Другие смелые заявления.

28.06.2021    5076    AntonProgma    298    

Префиксация объектов - полезный типовой функционал БСП

Универсальные функции БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия БУ УУ Бесплатно (free)

В данной публикации предлагаю рассмотреть основные типовые возможности библиотеки стандартных подсистем (БСП), касаемые префиксации объектов конфигураций.

21.06.2021    5011    quazare    4    

Регулярные выражения без внешних компонент? Легко! Промо

Обмен через XML Практика программирования v8 Бесплатно (free)

Сложный способ организовать проверку строки с помощью регулярного выражения в 1С. При этом ни одна внешняя компонента не пострадала. Ну и от платформы (Linux, MustDie) - не зависит.

04.03.2016    71114    starik-2005    108    

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

Документооборот и делопроизводство Обмен через XML v8 v8::БУ БП3.0 БУ Бесплатно (free)

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

03.06.2021    6796    fixin    26    

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

Внешние источники данных Обмен через XML Перенос данных из 1C8 в 1C8 Распределенная БД (УРИБ, УРБД) WEB v8 Бесплатно (free)

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

17.03.2021    12536    Nikola23    40    

R.I.P. РИБ

Обмен через XML Распределенная БД (УРИБ, УРБД) v8 1cv8.cf Бесплатно (free)

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

19.02.2021    9035    1c-intelligence    132    

Минимализмы 3 Промо

Универсальные функции Практика программирования v8 Бесплатно (free)

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    50168    ildarovich    47    

Последний раз про срез последних (на каждую дату в запросе)

Инструментарий разработчика Консоль запросов Универсальные функции Практика программирования v8 v8::Запросы Бесплатно (free)

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

15.02.2021    11608    randomus    47    

Ускоряем медленный/долгий и тормозной стандартный поиск по динамическому списку, настраиваем его под себя

Универсальные функции Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Пользователи привыкли искать на форме списка, но, вбивая в поиск некорректные данные, могут завесить всю систему, а если еще искать нужно по НЕ полям списка, то решение только в своём поиске - все это решим в публикации с открытым кодом.

14.12.2020    24349    SizovE    2    

Отображение и редактирование в дереве большого количества настроек/параметров/опций программы, конфигурации, документа, справочника - без программного создания элементов формы

Универсальные функции Работа с интерфейсом Практика программирования v8 1cv8.cf Бесплатно (free)

Очень много реквизитов (настроечные опции, параметры) у справочника или документа, и их все необходимо разместить на управляемую форму - лень! Хочется - добавил в метаданные и всё! В публикации отличное, простое и олдскульное решение с открытым кодом, научимся работать с ДанныеФормыДерево, ДеревомЗначений, сделаем быстрый поиск, создадим универсальный инструмент.

11.12.2020    1082    SizovE    6    

Универсальная функция для программного выполнения СКД Промо

Инструментарий разработчика Универсальные функции v8::СКД 1cv8.cf Бесплатно (free)

Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :) Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

20.05.2015    31900    dj_serega    18    

Программное условное оформление динамического списка, раскраска строк списка по цветам справочника или любым другим условиям (условное оформление)

Универсальные функции Работа с интерфейсом Практика программирования v8 v8::УФ 1cv8.cf Бесплатно (free)

Большое количество динамических списков на форме, большое количество условий, долгое интерактивное добавление условий, оформление по значению элементов справочников - всё это не позволяет использовать интерактивный режим назначения условного оформления динамического списка. В публикации с открытым кодом детально разберем программное решение назначения условного оформления, создадим универсальную функцию для оформления списка.

30.11.2020    6595    SizovE    4    

Сохранение настроек

Универсальные функции БСП (Библиотека стандартных подсистем) Практика программирования v8 1cv8.cf Бесплатно (free)

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

22.11.2020    4549    the1    8    

Чтение вложенных свойств Структур Структуры, Соответствий, свойства через точку, разбор JSON

WEB Интеграция с сервисами Универсальные функции Практика программирования v8 Бесплатно (free)

JSON: {user.device.type} - как получить значение {type}? А если вложенность значительно глубже? Как проверить, что оно заполнено или удалить его - всё это в публикации с открытым кодом и даже без рекурсии. Бонусом разбор дерева значений - ДанныеФормыЭлементДерева, СтрокаДереваЗначений.

17.11.2020    2347    SizovE    2    

Выполнение произвольного кода в фоновых заданиях Промо

Универсальные функции v8 Бесплатно (free)

Если надо быстро провести 100`000 документов...

13.01.2016    25303    unichkin    13    

Сохранение настроенного запроса набора данных СКД

Универсальные функции v8 v8::СКД 1cv8.cf Бесплатно (free)

Как сохранить запрос набора данных СКД в том виде, каким он будет выполнен системой для открытия в консоли запросов с диска ИТС.

09.11.2020    1748    Serge R    0    

Произвольные колонтитулы и повтор шапки таблицы в табличном документе (функция)

Универсальные функции v8 Бесплатно (free)

Пример рекурсивной функции, при помощи которой в табличный документ можно выводить верхний или нижний колонтитулы с произвольным содержимым, а также делать повтор шапки таблицы (или таблиц, если их несколько).

07.10.2020    5628    ellavs    3    

Печать в word, pdf через html

Печатные формы Универсальные функции Практика программирования v8 Россия Бесплатно (free)

При работе с клиентами возникла задача: использовать форматированный документ. Итак, существует справочник, в нем табличная часть. Для каждой строки требуется ввести описание, причем описание имеет тип форматированный документ. Потребовалось организовать печать табличной части справочника с описанием для каждой строки. Тип данных "Форматированный документ" не может выводится в табличный документ, поэтому пришлось организовывать печать через Microsoft Word.

11.09.2020    2286    arr    4    

Распределение оплаты по товарам Промо

Универсальные функции Практика программирования v8 1cv8.cf Бесплатно (free)

Учебная задача. Оплата приходит по заказу. Требуется запросом распределить её по товарам. Практическая задача была сложнее. Упростил специально для иллюстрации. Сначала собираем в одну таблицу заказы и товары. Затем ОБЪЕДИНТЬ ВСЕ с оплатами. Потом намазываем оплату на товар.

04.08.2014    19582    Трактор    5    

Самый простой парсинг и обработка веб-страниц в 1С

WEB Универсальные функции v8 1cv8.cf Бесплатно (free)

Рассмотрим самый простой парсинг веб-страниц средствами платформы 1С и еще некоторые полезные приемы работы с веб-страницами.

07.08.2020    13773    YPermitin    23    

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

БСП (Библиотека стандартных подсистем) Универсальные функции v8 1cv8.cf Россия Бесплатно (free)

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    14126    RPGrigorev    0    

Пользовательское поле СКД одной процедурой

Универсальные функции Практика программирования v8 Бесплатно (free)

Быстрое создание пользовательского поля "выражение" одной процедурой

05.08.2020    2319    Yashazz    0    

Загрузка из EXCEL в 1С. Чтение файла XLSX средствами 1С. ПостроительDOM Промо

Универсальные обработки Загрузка и выгрузка в Excel Обмен через XML v8 1cv8.cf Бесплатно (free)

ПРАКТИЧЕСКОЕ ПОСОБИЕ РАЗРАБОТЧИКА: Метод "NativeXLSX" (ПостроительDOM). Обрабатываются данные EXCEL типов: "Строка", "Число", "Дата" ("Время"), "Булево", "Процент", а также изображения.

11.09.2014    79789    StepByStep    27    

Полезные встроенные функции для работы с печатными формами и не только на УТ 11.4 и БП 3.0 (сравнение)

Универсальные функции v8 БП3.0 УТ11 Россия Бесплатно (free)

В данном обзоре приведу примеры встроенных используемых функций для работы с печатными формами на примерах конфигураций Управление торговлей 11.4 и Бухгалтерия 3.0.

10.07.2020    7957    quazare    5    

Вывод дерева в табличный документ СКД

Универсальные функции v8 v8::СКД Бесплатно (free)

Вывод содержимого элемента формы "ДанныеФормыДерево" в табличный документ средствами СКД.

09.07.2020    4398    Yashazz    7    

Конвертация данных 2. Использование подключаемых обработок в правилах обмена. Конвертация дерева значений

Обмен данными и распределенная БД Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Разработка правил обмена с использованием подключаемых обработок. В качестве примера рассмотрена реальная задача конвертации дерева значений.

15.06.2020    6834    Drivingblind    9    

Отладка правил обмена 7.7, 8 Промо

Перенос данных из 1С7.7 в 1C8.X Обмен через XML Перенос данных из 1C8 в 1C8 v8 КД Бесплатно (free)

Отладка правил обмена всегда была для меня больной темой, пока наконец-то не разобрался. В интернете мало тем, посвященных этому, поэтому решил написать небольшую инструкцию по этому поводу. Очень надеюсь, что она будет кому-то полезна. С радостью выслушаю недочеты.

29.10.2013    52747    pyrkin_vanya    71    

Команда "Вывести список" для динамического списка. Программное выполнение (вариант)

Универсальные функции v8::УФ 1cv8.cf Бесплатно (free)

Делаем свою кнопку вместо "Вывести список" из пункта "ещё" динамического списка.

11.06.2020    5021    DanDy    61    

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

Обмен через XML v8 1cv8.cf Бесплатно (free)

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

03.02.2020    12354    John_d    17    

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

Обмен через XML v8 1cv8.cf Бесплатно (free)

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

22.01.2020    7738    John_d    32    

Обмен по расписанию типовыми средствами. Промо

Распределенная БД (УРИБ, УРБД) Обмен через XML Перенос данных из 1C8 в 1C8 v8 1cv8.cf Россия Бесплатно (free)

Часто перед интеграторами стоит задача организовать автообмен (по расписанию или при наступлении какого-либо события) данными между различными конфигурациями. В этой статье я попробую изложить простую инструкцию, как это можно сделать средствами, заложенными в типовые конфигурации 1С (ЗУП, БП, УПП и т.д.). Для обмена используется подсистема "Обмен данными" из БСП

20.06.2012    105747    kser87    52    

Как сделать обмен данными через универсальный формат быстрее? Реализация многопоточного обмена данными

Обмен данными и распределенная БД Обмен через XML v8 1cv8.cf Бесплатно (free)

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

31.12.2019    9781    ids79    17    

Сходство Джаро - Винклера. Нечеткое сравнение строк

Универсальные функции v8 Россия Бесплатно (free)

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

25.12.2019    8552    brooho    19    

Функция - Формат государственного номера автомобиля

Универсальные функции v8 Автомобили, автосервисы Россия Бесплатно (free)

Возникла необходимость в приведении к единому формату хранящихся, и вводимых вновь, автомобильных Регистрационных знаков - Гос.номер.

23.12.2019    6189    brooho    5    

Альтернативные способы работы с XML. Часть 2: Введение в xPath или запросы к XML Промо

Обмен через XML Математика и алгоритмы v8 1cv8.cf Бесплатно (free)

В предыдущей статье "Введение в DOM или объектная модель документа" было описано понятие объектной модели документа (DOM), раскрыты плюсы и минусы использования модели при разборе файлов XML, приведено сравнение с построчным последовательным разбором. Были представлены варианты выборки данных с помощью объекта 1С ДокументDOM. Теперь настало время познакомить читателей с самым, на мой взгляд, интересным способом извлечения данных из XML - при помощи языка запросов xPath.

09.08.2012    43317    1cspecialist    13    

Полезности | Дерево значений | Обычные формы |

Универсальные функции Практика программирования v8 Бесплатно (free)

Полезные функции при работе с деревом значений.

04.12.2019    9045    Mellow    7    

Обработка расширением на клиенте

Универсальные функции v8::УФ 1cv8.cf Бесплатно (free)

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

31.10.2019    7946    EvgenURNN    10    

Использование XML-схемы из макета внешней обработки

Обмен через XML Универсальные функции v8 1cv8.cf Бесплатно (free)

Простой способ использования XML-схем из макета внешней обработки.

28.10.2019    13254    Olesia_Matusevich    10