Преобразование 1С->JSON->1С для обменов, Web-сервисов

Публикация № 308198 20.10.14

Разработка - Инструментарий разработчика

веб-сервис web XML JSON

Небольшая библиотека функций по преобразованию данных из 1С в строку JSON и обратно.
Удобна для обмена данными между двумя базами 1С.
Позволяет преобразовывать в строку и обратно любые типы данных, для которых доступна XML-сериализация + объекты 1С (справочники, документы, ПВХ, ПВР).
Ссылки и объекты при передаче преобразуются из адресного пространства одной базы в адресное пространство другой базы по UID.

За основу брались функции преобразования из JSON и UnJSON в 1С

Добавлена поддержка любых XML-сериализуемых типов (ссылочных типов 1С, дат, перечислений, двоичных данных, хранилище значений и др)  + объектов 1С (справочников, документов, ПВХ, ПВР). При передачи объектов полное соответствие структур баз отправителя и получателя не обязательно. Совпадающие реквизиты заполняются, не совпадающие игнорируются. Если объект в базе приемнике найден, то он перезаполняется, иначе создается новый.

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

Работа аналогична исходной обработке. Есть 2 функции: преобразование из строки в JSON и обратное из JSON в строку.
1. В первой базе выполняем команду "СтрокаJSON = JSON(Значение)";
2. Строковое значение "СтрокаJSON" передаем в другую базу любым способом (через файл, веб-сервис, .COM);
3. Во второй базе выполняем обратное преобразование "Значение = UnJSON(СтрокаJSON)";

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

#Область ПрограммныйИнтерфейс

Функция JSON(Значение) Экспорт

	СоответствиеХМЛ = Новый Соответствие;	
//	СоответствиеХМЛ.Вставить(Тип("Тип этой 1С базы"),"Тип 1С базы получателя");
	СоответствиеХМЛ.Вставить(Тип("Дата"),"Дата");
	СоответствиеХМЛ.Вставить(Тип("ВидДвиженияНакопления"),"ВидДвиженияНакопления");
	СоответствиеХМЛ.Вставить(Тип("ДвоичныеДанные"),"ДвоичныеДанные");
	СоответствиеХМЛ.Вставить(Тип("ХранилищеЗначения"),"ХранилищеЗначения");
	СоответствиеХМЛ.Вставить(Тип("УникальныйИдентификатор"),"УникальныйИдентификатор");
	СоответствиеХМЛ.Вставить(Тип("ВидСчета"),"ВидСчета");
	СоответствиеХМЛ.Вставить(Тип("ДокументСсылка.Поступление"),"ДокументСсылка.ПоступлениеТоваровУслуг");

	СоответствиеОбъектов = Новый Соответствие;	
//  ДЛЯ УКАЗАННЫХ ТУТ ОБЪЕКТОВ ОБЯЗАТЕЛЬНО УКАЗАНИЕ СООТВЕТСТВИЯ ССЫЛОК В СТРУКТУРЕ СоответствиеХМЛ	
//	СоответствиеОбъектов.Вставить(Тип("Тип объекта этой 1С базы"),"Конструктор нового объекта базы получателя");
	СоответствиеОбъектов.Вставить(Тип("ДокументОбъект.Поступление"),"Документы.ПоступлениеТоваровУслуг.СоздатьДокумент()");

	СоответствиеТипов = Новый Структура("СоответствиеХМЛ,СоответствиеОбъектов",СоответствиеХМЛ,СоответствиеОбъектов);
	Возврат НеФорматированныйJSON(Значение,СоответствиеТипов);	
КонецФункции

Функция UnJSON(СтрJSON) Экспорт
	Перем Значение;
	
	Если ПолучитьЗначениеJSON(СтрJSON,Значение)=0 Тогда
		Возврат Значение
	КонецЕсли;
	Возврат Неопределено
КонецФункции

#КонецОбласти 


У обработки есть форма с несколькими примерами для проверки преобразования.


В приложении 2 варианта обработки. Первая преобразует только XML-сериализуемых типы, вторая также  объекты 1С (справочники, документы, ПВХ, ПВР).

UPD. Пример использования:
1. Выгрузка/загрузка данных в формате JSON для отличающихся конфигураций (Такси+ОФ) - универсальная обработка по переносу данных между любыми конфигурациями.

Скачать файлы

Наименование Файл Версия Размер
1С_JSON_1.1.epf

.epf 11,55Kb
84
.epf 11,55Kb 84 Скачать
1С_JSON_1.2.epf

.epf 12,57Kb
365
.epf 12,57Kb 365 Скачать

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. vano-ekt 122 20.10.14 11:59 Сейчас в теме
2. ekaruk 4742 20.10.14 12:06 Сейчас в теме
(1) vano-ekt, В 8.3.6 будет всего лишь добавлена возможность потокового чтения,
преобразования простых типов (строка, булево и др). Никаких встроенных функций по преобразованию в JSON типов 1С новшество пока не предусматривает (хотя возможно еще добавят).
Теоретически новая платформа позволит работать с JSON на порядок быстрее,чем при работе со строкой.
Но с точки функционала он не даст ничего, что не было бы уже кем-то реализовано в обработках. Возможности полноценного преобразоваия типов 1С в ней не добавили.
Собственно, это видно в самом анонсе на примере подразделения организации.
Когда появится возможность, я, возможно, поменяю в этой же библиотеке работу со строкой на работу с типами JSON. Но сам интерфейс и принцип работы не изменится абсолютно.
izidakg; RustIG; +2 Ответить
6. Serginio 918 20.10.14 14:42 Сейчас в теме
(2) Можно это реализовать и на нет, предварительно описав классы
http://msdn.microsoft.com/ru-ru/library/bb412179(v=vs.110).aspx

и
http://infostart.ru/public/238584/
11. RustIG 1693 23.10.14 10:49 Сейчас в теме
(1) спасибо за ссылку, интересная информация.
не знаете, статьи "Заметки из Зазеркалья" дублируются в диски ИТС?
Хотелось бы видеть такого рода статьи в разделах ИТС-дисках.
3. vano-ekt 122 20.10.14 12:21 Сейчас в теме
Так я к тому что стоит ли торопиться?)
...
При чтении документы JSON отображаются в фиксированный набор типов платформы: Строка, Число, Булево, Неопределено, Массив, ФиксированныйМассив, Структура, ФиксированнаяСтруктура, Соответствие, Дата.
...
Дальнейшее развитие
Мы думаем над тем, чтобы предоставить вам возможность сериализации в JSON прикладных типов 1С:Предприятия: ссылок, объектов, наборов записей и т.д. Поэтому есть вероятность появления ещё одного, третьего уровня средств работы с JSON. Этот уровень позволит вам преобразовывать в JSON любые типы 1С:Предприятия, для которых поддерживается XDTO-сериализация в XML.
4. ekaruk 4742 20.10.14 12:24 Сейчас в теме
(3) vano-ekt, Так никто и не торопится.
Я просто выложила то, что уже корректно работает на любой платформе.
Дальше посмотрим, что там еще придумают.
5. vano-ekt 122 20.10.14 13:15 Сейчас в теме
(4) ага, быстрее б родили :) при больших нагрузках алгоритм с ИС заметно ресурсы ест :)
8. kser87 2359 20.10.14 23:46 Сейчас в теме
c 8.3.6 Json будет поддерживаться на уровне платформы.
9. vabue 121 22.10.14 09:29 Сейчас в теме
Кто-нибудь тестировал что быстрее в мире 1С, разбор JSON или XML? А генерация?
10. ekaruk 4742 22.10.14 10:55 Сейчас в теме
(9) vabue, Не тестировала. Думаю, на текущий момент в мире 1С быстрее ХМЛ. Просто потому, что 1С работае.т с ним средствами платформы. С JSON работа выполняется как со строкой. Имеет смысл проверять разве что с 8.3.6.
Из плюсов JSON - он компактнее.
vabue; RustIG; +2 Ответить
12. ZLENKO 398 23.10.14 14:08 Сейчас в теме
(9) vabue, "Кто-нибудь тестировал что быстрее в мире 1С, разбор JSON или XML? А генерация?"

Голосую за XDTO :-) Сериализация мгновенная, десериализация очень быстрая!
Можно десериализацию делать используя неймспейс другой базы для обмена между разными конфигурациями.
14. Serginio 918 23.10.14 18:18 Сейчас в теме
(12) В Мире Net да и вообще сейчас модно использовать protobuf
http://www.forum.mista.ru/topic.php?id=722310#53
dour-dead; vabue; +2 Ответить
51. Teut_Vlad 144 11.07.19 16:33 Сейчас в теме
52. Serginio 918 11.07.19 16:56 Сейчас в теме
(51) Старая уже. Сейчас в тренде Microsoft Bond
13. a.podobin 23.10.14 18:04 Сейчас в теме
15. vabue 121 27.10.14 22:17 Сейчас в теме
(13) a.podobin, Ну, тут две разных структуры данных. Да и интересовало разработчика именно загрузка на сайт, а не выгрузка из 1С.

(12) ZLENKO.PRO, Есть ли поддержка XDTO в гетерогенных системах? Например, в тех же ESB?

(10) Надо будет провести эксперимент :)
16. bendarik 03.11.14 15:31 Сейчас в теме
А почему не вышло нормально обрабатывать значения с типом "Дата"?
На сколько я понимаю, Вы добавляете тип "Дата" в "СоответствиеХМЛ" и после работаете с ним как с не примитивным типом.

При сериализации у Вас получается избыточная конструкция:

"Период":{
"Type":"Дата",
"UID":"2014-11-03T14:29:06"
}

когда должно быть:

"Период":"2014-11-03T14:29:06"
17. ekaruk 4742 03.11.14 16:30 Сейчас в теме
(16) bendarik, Она не избыточная.
Теоретически у нас может быть текстовое поле, в котором указано значение "2014-11-03T14:29:06".
При сериализации мы должны сохранить его текстом, а не преобразовать в дату.
Такое представление гарантирует идентичность исходных и полученных данных.
18. bendarik 03.11.14 17:16 Сейчас в теме
(17) согласен, что во имя идентичности исходных и полученных данных необходимо дополнительное описание свойств значений НО...

но, к примеру, я использую (де)сериализацию JSON для уменьшения размера передаваемых пакетов при обмене через web-сервисы и было бы ибеально даты обрабатывать как примитивные типы без дополнительного описания типа, т.к. это лишние байтики (мелочь, а приятно).

Например, дату можно было бы сериализовать как и сейчас в формате XML, но без кавычек:
"Период":2014-11-03T14:29:06

К слову, Ваша публикация подтолкнула начитаться и решиться переписать обмены с XML на JSON ;)
20. ekaruk 4742 03.11.14 17:28 Сейчас в теме
(18) bendarik,
"Период":2014-11-03T14:29:06

Именно в таком формате нельзя. Двоеточие это разделитель. Хотя, конечно, какой-то формат можно было подобрать.
Я пошла по простому пути. Думаю, не принципиально.
По переписыванию рекоммендую подождать 8.3.6. Гораздо быстрее будет работать на платформенных механизмах, чем на строковых функциях.
19. bendarik 03.11.14 17:24 Сейчас в теме
(17) Вы аналогично поступаете со значениями типа "булево", записывая их без кавычек как true или false. Вероятно, что дату так же можно считать.

Но лучше попробовать и написать, что вышло
21. Serginio 918 03.11.14 17:31 Сейчас в теме
http://snippets.artvolk.sumy.ua/view/167/daty-v-formate-iso-8601-pri-json-serializacii-v-aspnet-mvc

Сериализатор JSON, используемый в ASP.NET MVC по умолчанию сериализует даты в строки подобного вида:

"\/Date(1299741864000)\/"
Причины подробно объясняются авторами: в спецификации JSON не определён тип данных для даты и времени, а выбранный для ASP.NET MVC формат удобен для JavaScript-клиентов.
bendarik; +1 Ответить
22. Serginio 918 03.11.14 17:41 Сейчас в теме
http://msdn.microsoft.com/ru-ru/library/bb412170(v=vs.110).aspx
Формат DateTime при передаче по линиям связи
Значения типа DateTime представляются строками JSON вида "/Date(700000+0500)/", где первое число (в данном случае 700000) — это число миллисекунд в часовом поясе GMT по обычному (не летнему) времени, прошедшее с 1 января 1970 г. Это число может быть отрицательным для представления более раннего времени. Часть строки "+0500" является необязательной и показывает, что это время в формате Local, т. е. при десериализации оно должно быть преобразовано в местный часовой пояс. Если эта часть строки отсутствует, время десериализуется как Utc. Собственно число (в данном случае "0500") и его знак (+ или -) игнорируются.
При сериализации времен формата DateTime, Local и Unspecified времена записываются со смещением, а время формата Utc записывается без смещения.
JavaScript-код клиента ASP.NET AJAX автоматически преобразует такие строки в экземпляры DateTime JavaScript. При наличии других строк аналогичного вида, не принадлежащих к типу DateTime в .NET, они также преобразуются.
Преобразование происходит только при условии, что символы "/" предваряются escape-знаками (т. е. JSON-фрагмент выглядит так: "\/Date(700000+0500)\/"); по этой причине JSON-кодировщик WCF (реализуемый привязкой WebHttpBinding) всегда предваряет символ "/" escape-знаком.
23. phsin 183 20.11.14 10:56 Сейчас в теме
А для 7.7 есть что-нибудь похожее?
24. Elisy 947 28.11.14 08:00 Сейчас в теме
По скорости, если кому-то интересно. Сериализация Json работает очень медленно по сравнению с XML-сериализацией.
Оптимизация делалась для веб-сайта http://www.oboi.kg
На данных из примерно 5 тысяч записей таблицы значений перевод в XML уменьшил время обработки со 120 секунд (2 минуты) до 4 секунд.
26. ekaruk 4742 28.11.14 11:19 Сейчас в теме
(24) Elisy, (25) Serginio, XML и JSON это всего лишь форматы текстового представления данных.
Скорость работы зависит не от формата, а от используемой для преобразования библиотеки.
Можно найти примеры разницы скорости на ПОРЯДКИ при использовании одних и тех же форматов.
То, что написанная Васей библиотека на PHP для работы с XML в 100 раз быстрее, чем написанная Петей на Python библиотека для работы с JSON, абсолютно ничего не говорит о скорости форматов.
Имеет смысл обсуждать скорости работы библиотек, но не имеет смысла обсуждать скорости форматов.
Фреймворк 1С-Предприятие на текущий момент имеет встроенные библиотеки для работы с XML, поэтому стандартная сериализация в XML через XDTO-типы в любом случае будет быстрее любой JSON-сериализации через строку.
С выходом 8.3.6 можно будет говорить о сравнении скорости стандартных библиотек XML и JSON.
Сейчас обсуждени скорости, на мой взгляд, смысла особого не имеет.
27. Serginio 918 28.11.14 11:40 Сейчас в теме
(26) Не совсем так. Я еще упоминал Protobuf и вот появляются новые форматы например MsgPack http://en.wikipedia.org/wiki/MessagePack
При этом это не всегда текстовая сериализация. Бинарная она и компактнее и быстрее доступ. Например в XML сериализации проблема с циклическими ссылками http://www.forum.mista.ru/topic.php?id=687222#15

поэтому ищутся компактные и более продвинутые форматы.
А в 1С куча чего нет, так что например наполную приходится использовать например Net
28. ekaruk 4742 28.11.14 12:39 Сейчас в теме
(27) Serginio, Разумеется, бинарное представление компактнее текстового.
Но у текстового есть огромное преимущество, которое перекрывает этот недостаток - его можно открыть любым текстовым редактором и просмотреть.
На самом деле для большинства решаемых в 1С задач быстродействие +/- несколько секунд и даже пару минут не критично абосолютно. С учетом постоянных изменений, скорость разработки и простота модификации и поиска ошибок часто важнее, чем быстродействие.
Трата времени на ускорение в несколько секунд путем усложнения кода просто нерентабельна.
29. Serginio 918 28.11.14 12:59 Сейчас в теме
(28) Угу. Помню пришлось переписать универсальный обмен на обмен через сериализацию ОбъектовXDTO . Бывают разные объемы где потери секунд превращаются в часы. Все зависит от задачи. По твоей логике XML сериализация лучше всех, однако приходится писать Json сериализацию, так как нужно общаться с сайтами которые используют именно такой вариант обмена. А затем и для ProtoBuf. Ты можешь считать как угодно, а программисты для высоконагруженных серверов выбирают более быстрые и компактные алгоритмы сериализации. Вот ты уже столкнулась с тем, что при каждом вызове Вэб сервиса 1С происходит инициализация сессии и тебя это напрягает. А представь, что нужно обрабатывать десятки или сотни тысяч обращений в секунду.
30. ekaruk 4742 28.11.14 18:01 Сейчас в теме
(29) Serginio, Есть разные задачи.
Бывает, что критичны и милисекунды. Такие задачи я тоже решала.
Но реально в 95% случаев трата времени разработчика на ускорение просто нерентабельна.
Лучше сделать проще и понятнее, все равно скорее всего через месяц алгоритм менять и все переписывать..
31. Serginio 918 28.11.14 21:32 Сейчас в теме
Я не про то, что лучше для тебя, а то что тебе нужно подстраиваться под других которые и выбирают форматы.
Раньше был XML, затем JSON, сейчас ProtoBuf. Ты же написала парсер не для обмена между своими программами, а для обмена между сайтами сторонних производителей, а вот для них уже свои параметры, что хорошо, а что плохо. А вот, то что через месяц менять алгоритм, это хорошо только на период отладки. А вот например на Net я напишу обмен с 1С для любого алгоритма без всяких затрат времени, так что проблема не во времени, а в квалификации.
32. bendarik 04.12.14 12:55 Сейчас в теме
Сравнил XML и JSON.
JSON молодец, но сжатый XML ни чем не уступает сжатому JSON...

Вот цитата из лекции о сжатии данных:
"В основе алгоритма сжатия (алгоритмы группы KWE) по ключевым словам положен принцип кодирования лексических единиц группами байт фиксированной длины. Примером лексической единицы может быть обычное слово. На практике, на роль лексических единиц выбираются повторяющиеся последовательности символов, которые кодируются цепочкой символов (кодом) меньшей длины. Результат кодирования помещается в таблице, образовывая так называемый словарь."

Я по web-сервису меняюсь двоичными данными и архивирую каждый файл обмена. Такие дела...
33. pitnn 10.12.14 12:17 Сейчас в теме
Добрый день.
Что-то я не разобрался как из JSON-строки получить структуру данных ключ/значение для дальнейшего использования в 1С. Подскажите, пожалуйста
34. ekaruk 4742 10.12.14 12:32 Сейчас в теме
(33) pitnn, Просто пишете UnJSON(<ВашаСтрока>). На выходе будет объект в типах 1С (соответствие или массив, с которыми можно стандартно работать). Сама функция в модуле объекта обработки.
Если объекты 1С (ссылки, документы) не используете, то СоответствиеХМЛ заполнять не нужно вообще. Пусть остается пустым.
35. pitnn 10.12.14 14:51 Сейчас в теме
(34) спасибо за ответ, но в том-то и дело, что не так все просто как описано вами ))). При разборе JSON-строки вылетает ошибка:
"Не удалось преобразовать строку в значение!{ВнешняяОбработка.JSON_1C.МодульОбъекта(213)}: Ошибка при вызове метода контекста (Вставить)
ОбъектСтруктура.Вставить(Ключ,Значение);
по причине:
Задано неправильное имя атрибута структуры".

А связано это вот с чем. При обработке конструкции вида:
[
{
...
"deliveryAddress": {
"": null
},
...
}
]
ключ оказался пустым, что и привело к вызову исключения при добавлении в структуру.
36. ekaruk 4742 10.12.14 15:09 Сейчас в теме
(35) pitnn, Ну, логично. Ключ не может быть пустым. Иначе как 1С его должна в структуру вставить? Вроде стандарты JSON такого не предусматривают. Добавьте свою обработку (ключ по умолчанию или такие значения игнорировать), если у Вас такие данные встречаются.
37. pitnn 10.12.14 15:10 Сейчас в теме
Аналогично с конструкцией вида:
"deliveryAddress": {
"177353": "г. Москва"
},

Тут ключ имеет числовое значение и не может использоваться в структуре
39. ekaruk 4742 10.12.14 15:18 Сейчас в теме
(37) pitnn, А где Вы такие данные нашли?
У меня были похожие проблемы выгрузке в JSON контактной информации для организаций. Там какой-то сложный формат XML хранится.
Не помню точно, как обходила.
В этой обработке http://infostart.ru/public/308563/ я добавляла дополнительные ветки в стандартный разбор. Если у вас передача данные между базами 1С, можете попробовать из неё код взять или просто проверить на своих данных.
40. pitnn 10.12.14 15:23 Сейчас в теме
(39) Сторонний сайт такие данные предоставляет. Я не могу на это влиять, поэтому приходится обрабатывать то, что дают ))
38. pitnn 10.12.14 15:11 Сейчас в теме
А в целом спасибо за обработку
41. uri1978 135 06.02.15 17:47 Сейчас в теме
Спасибо, сильно помогли.
42. Serjeo 106 20.11.15 17:41 Сейчас в теме
В 8.3.7 полностью реализована возможность JSON-сериализации объектов XDTO.
43. AlBelkin 04.03.16 18:34 Сейчас в теме
Здравствуйте! Очень интересная штука. Подскажите, какой версии 1С будет достаточно, чтобы "пощупать" эту библиотеку? Есть демка 1С для обучения http://1c-uroki.ru/articles/download_1C_8.2 , она подойдёт?
44. ekaruk 4742 06.03.16 12:53 Сейчас в теме
(43) AlBelkin, Подходит для любой платформы, начиная с 8.2.
Демка вполне подойдет.
45. dsdred 2612 11.03.16 14:21 Сейчас в теме
Не совсем понял зачем такие сложности?
Для обмена использую сериализацию.
ДанныеВходные - могут быть ТЗ, Структура, просто значение и т.д.

//Серилизатор/Десирелизатор JSON
Функция СериализаторJSON(ДанныеВходные) Экспорт
ЗаписьJSON = Новый ЗаписьJSON;
ЗаписьJSON.УстановитьСтроку();
СериализаторXDTO.ЗаписатьJSON(ЗаписьJSON,ДанныеВходные,НазначениеТипаXML.Явное);
СтрокаJSON = ЗаписьJSON.Закрыть();
Возврат СтрокаJSON;
КонецФункции
Функция ДесерилизаторJSON(ДанныеВходные) Экспорт
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.УстановитьСтроку(ДанныеВходные);
ДанныеВозврат = СериализаторXDTO.ПрочитатьJSON(ЧтениеJSON);
ЧтениеJSON.Закрыть();
Возврат ДанныеВозврат;
КонецФункции
dock; soci0pat; +2 1 Ответить
46. ekaruk 4742 11.03.16 15:25 Сейчас в теме
(45) dsdred,
1. Ну вообще-то преобразование структуры это немного не то, что преобразование документа. Эта библиотека преобразует объект 1С (документ/справочник) в другой объект 1С.
2. Ваш код не будет работать на платформах ниже 8.3.6.
47. dsdred 2612 11.03.16 15:48 Сейчас в теме
(46) ekaruk
1 Ясно. Обычно сопоставление (документ/справочник) на стороне веб сервиса обрабатываю после десерилизации.
2 Это да, есть еще те кто сидят на старых Платформах... Это при том, что на днях 8.3.8 выйдет и уже есть версия для тестирования 8.4.1.445
48. zels 170 24.02.17 20:47 Сейчас в теме
Хорошая штука, но пришлось немного допилить:
1. Сделал загрузку файлов и JSON->объекты в обычном приложении, т.к. если запускать в тонком клиенте, то при записи объектов могут возникать ошибки (если используются процедуры обычного клиента).
2. Сделал возможность транзакции и вывода через 100 объектов, т.к. при загрузке десятков тысяч объектов вывод каждого тормозит.
49. pavel_pss 287 21.03.18 10:26 Сейчас в теме
Хорошая обработка, но она выгружает только один объект. То есть в обработке выбирается документ и в файл попадет вся информация о нем, а поля например контрагент будут выгружены в только виде ГУИДа, а самого описания контрагента нет, это же не правильно! Нужно было тогда дописывать чтобы и ссылочные реквизиты выгружались. А так обработка получается не полноценной. Кому нужно будет полную версию, обращайтесь. Позже выложу в свою учетку.
53. LomayaZakat 14.10.19 11:45 Сейчас в теме
54. Skotarev 15 24.03.20 01:40 Сейчас в теме
Обработка в архиве была довольно давно, в целях изучения.
Сейчас пригодилась на практике в экстренной ситуации.
Спасибо, очень помогла.
55. SoftIce 42 21.04.20 01:07 Сейчас в теме
При записи в файл ( ЗаписьJSON.ЗаписатьЗначение(JSON(МассивЗначений)); )
все переносы строк, включая структурные, т.е. переносы строк которые образуют структуру json документа превращаются в символ "\n".
Так в файле образуется одна длинная строка.
"[\n{\n\"OBJECT\":true,\n\"NEW\":\"Справочники.ВидыНоменклатуры.СоздатьЭлемент()\", и.т.д.
Что приводит к проблемам обратного преобразования из json в значение 1С.
Например Ключ структуры OBJECT превращается в
"
OBJECT"
и выдает ошибку при создании структуры.
56. SoftIce 42 21.04.20 14:21 Сейчас в теме
Перечисления тоже некорректно обрабатываются. В файл попадает синоним значения.
При десериализации по синониму не может найти корректное значение. Хотя, почему то не находит даже если Синоним значения перечисления совпадает с его Именем.
57. jafarn1 08.12.20 21:59 Сейчас в теме
Здравствуйте, подскажите как при помощи вашей обработки 1.2.1 добавить для выгрузки все документы определенного вида, в частности интересует все документы комплектации номенклатура в БП 3.0? По одному выбирать очень долго, а с запросами я что то не разобрался (((
Оставьте свое сообщение

См. также

Infostart Toolkit

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Простые и удобные инструменты: Консоль запросов, СКД, Редактор объекта, Поиск ссылок и другие. Редактор запросов и кода с раскраской и контекстной подсказкой. Улучшенный конструктор тонкого клиента и др.

10000 руб.

02.09.2020    80713    394    366    

469

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

2400 1920 руб.

14.01.2013    164678    1010    0    

769

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    93582    227    95    

276

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    19891    11    14    

19

Универсальная обработка создания связанных документов (универсальный "ввод на основании")

Инструментарий разработчика Обработка документов Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x Платные (руб)

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

2500 руб.

02.04.2017    42154    72    27    

128

Заполнение документа "Корректировка регистров" произвольными данными

Закрытие периода Корректировка данных Инструментарий разработчика Обработка документов Платформа 1С v8.3 Система компоновки данных 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Управленческий учет Платные (руб)

Внешняя обработка, позволяющая произвольным образом заполнять документ "Корректировка регистров" Предназначена для использования в конфигурациях "Управление торговлей 11", "Управление небольшой фирмой", "ERP Управление предприятием", а также в других конфигурациях, в состав которых входит библиотека стандартных подсистем (БСП) версии 2.2+ и указанный выше документ.

2400 руб.

13.07.2015    46625    155    27    

105

Программное формирование существующих печатных форм

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

17.12.2021    12690    32    RocKeR_13    5    

42

Бустер Конвертации данных 3 (Infostart Toolkit)

Инструментарий разработчика 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    11593    2    12    

36

Универсальный редактор данных (УРД)

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    15966    206    Adeptus    57    

92

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

Инструментарий разработчика Платформа 1С v8.3 Платформа 1C v8.2 Платформа 1С v8.1 Конфигурации 1cv8 Платные (руб)

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    10611    2    9    

7

Подсистема "Показатели объектов"

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

06.03.2021    14450    8    pila86    17    

29

Чтение метаданных 1С из SQL Server и PostgreSQL

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

Описание файла DBNames таблицы Params и файлов объектов метаданных таблицы Config.

16.02.2021    11754    zhichkin    74    

79

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Данная публикация является продолжением описания функционирования обработки "FormCodeGenerator " в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.

5 стартмани

21.12.2020    19605    32    huxuxuya    11    

36

DaJet Studio: расширенный язык запросов 1С, очереди сообщений и web сервисы

Инструментарий разработчика Платформа 1С v8.3 Бесплатно (free)

DaJet Studio - разработка и управление скриптами, хранимыми процедурами и функциями, написанными на расширенном языке запросов 1С, а также очередями сообщений и web сервисами, основанными на использовании Microsoft SQL Server.

10.11.2020    12799    126    zhichkin    14    

25

Проверка ведения учета (универсальная)

Инструментарий разработчика Анализ учета Платформа 1С v8.3 Запросы Абонемент ($m)

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

2 стартмани

11.08.2020    11576    61    vozhd    4    

19

Глобальное меню разработчика для управляемых форм

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

Подсистема "Инструменты разработчика". Глобальное контекстное меню разработчика для управляемых форм в толстом клиенте.

03.08.2020    9037    tormozit    29    

94

Внешний регламент для 1С

Инструментарий разработчика Платформа 1С v8.3 Россия Абонемент ($m)

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

1 стартмани

05.03.2020    17364    14    moolex    13    

15

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

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

3000 руб.

27.08.2019    15088    3    6    

32

Markdown-editor в 1С (с сохранением в HTML)

Инструментарий разработчика Управляемые формы Конфигурации 1cv8 Абонемент ($m)

В этой обработке вы пишете свой текст, используя синтаксис Markdown, а на выходе получаете чистый HTML-код, избавленный от JS-библиотеки, которая его сформировала. Совместим с Webkit и IE.

1 стартмани

04.07.2019    19822    34    riposte    6    

52

Модель объекта

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    24830    3    vadim1980    5    

17

CFU & CFE - reader (версия 3.1).

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка для анализа файлов обновлений (.cfu) и расширений (.cfe) в режиме предприятия в любой конфигурации для 1С 8.3.+. Основана на разработке https://infostart.ru/public/97194/.

2 стартмани

21.06.2019    17430    48    vandalsvq    12    

28

Блин, мы забыли включить регламентные задания…

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

08.04.2019    34970    23    slozhenikin_com    37    

61

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

31.01.2019    105641    bonv    261    

874

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Инструментарий разработчика Платформа 1С v8.3 Мобильная платформа Бухгалтерский учет Управленческий учет Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    77976    286    informa1555    246    

207

Легкое и гибкое управление списком доступных баз 1С у пользователей

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Когда в локальной сети много пользователей, а еще большое количество различных баз и при этом каждому нужны свои, то администрирование этого зоопарка превращается в АД! Этот комплекс позволяет централизованно управлять списком доступных баз в разрезе пользователей. За пару кликов можно добавить или убрать базу у всех пользователей.

7 стартмани

05.12.2018    30485    30    RomikR    11    

18

Очистка кэша 1С 8 (8.0, 8.1, 8.2, 8.3). Грамотная чистка кэша 1С с сохранением настроек.

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Эффективное средство для устранения ошибок, возникающих в локальном кэше 1С на клиенте, которым легко сможет воспользоваться пользователь с любым уровнем знаний. Wsf-скрипт, созданный на стандартном языке автоматизации Windows - "WSH JScript", очищает кэш 1С просто, быстро и безопасно. Кроме варианта, очищающего кэш текущего пользователя, имеется также вариант для чистки кэша 1С всех пользователей терминального-сервера.

1 стартмани

04.11.2018    68327    647    Eugen-S    36    

52

Навигатор по конфигурации базы 1С 8.3

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Универсальная внешняя обработка для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Платформа 8.3, управляемые формы. Версия 1.1.0.95 от 07.05.2023

3 стартмани

28.10.2018    59962    536    ROL32    72    

183

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Абонемент ($m)

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

10 стартмани

14.08.2018    159582    3532    Evg-Lylyk    800    

624

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    46492    35    informa1555    30    

77

Работа со схемой запроса

Инструментарий разработчика Платформа 1С v8.3 Запросы Абонемент ($m)

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

1 стартмани

24.04.2018    59341    kalyaka    40    

212

Регистры правил [Расширение]

Инструментарий разработчика Платформа 1С v8.3 Управление правами 1С:Управление торговлей 11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    32446    33    33lab    5    

18

Заполняем по шаблону (по умолчанию)

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

08.02.2018    44303    25    mvxyz    17    

79

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    26201    2    10    

9

Программное формирование форматированной строки в стиле html+inline CSS

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Если вам приходилось работать с форматированными строками программно, то вы знаете, какая это боль. Данное решение облегчает программное формирование таких строк.

1 стартмани

18.11.2017    58757    60    bonv    13    

74

Быстрое удаление неиспользуемых версий 1С:Предприятие 8, кэша метаданных и информационных баз

Инструментарий разработчика Платформа 1С v8.3 Абонемент ($m)

При обновлении платформы 1С:Предприятие 8 предыдущие версии не удаляются. Со временем количество неиспользуемых версий платформы растет. Они занимают место на диске. Для решения этой проблемы предназначена программа OneCleaner. Она позволяет быстро удалить неиспользуемые версии платформы, а также почистить кэш метаданных и удалить ненужные информационные базы данных.

1 стартмани

14.11.2017    39154    109    bonv    17    

48

Закрываем всплывающие сообщения платформы

Инструментарий разработчика Управляемые формы Абонемент ($m)

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

1 стартмани

10.11.2017    20810    13    RomaH    8    

12

DataReducer — R-консоль для «1С:Предприятия»

Инструментарий разработчика Платформа 1С v8.3 Анализ и прогнозирование Абонемент ($m)

Программа для обработки, анализа и визуализации данных информационных баз «1С:Предприятия» с использованием возможностей языка программирования R.

10 стартмани

10.07.2017    33551    3    DataReducer    13    

47

Многопоточность. Универсальный «Менеджер потоков» (фреймворк) с отслеживанием зависимости объектов

Универсальные функции HighLoad оптимизация Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Восстановление партий, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

26.05.2017    54037    DarkAn    87    

196

Набор подсистем "Умные таблицы"

Инструментарий разработчика Платформа 1С v8.3 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    48924    119    Silenser    34    

75