Имя: Пароль:
1C
 
Передача КомпоновщикНастроек.Настройки.ДоступныеПоляВыбора в JSON. СКД в JSON
0 Shecurok
 
25.02.25
11:27
Всем привет!

Задача в общем то не тривиальная - сделать во внешнем сервисе свой конструктор СКД...

Надо передавать доступные поля выбора, чтоб пользователь сам выбирал и т.д. Как все это реализовать пока не понятно. Про получение данных в 1С пока молчим, начнем с малого - как передать эти самые доступные поля в JSON? Тип "КоллекцияДоступныхПолейКомпоновкиДанных"

Обходить циклом для каждого из.. и т.д.?

Возможно уже есть какие-то статьи/темы форумов для этого, но я скорее всего не умею нормально искать.
1 Волшебник
 
25.02.25
11:36
ФабрикаXDTO.ПрочитатьJSON
2 Shecurok
 
25.02.25
11:44
(1) ознакомлюсь, но можно, пожалуйста, чуууть подробнее)
3 Волшебник
 
25.02.25
11:46
ФабрикаXDTO.ПрочитатьJSON(<ЧтениеJSON>, <Тип>, <ИмяФункцииВосстановления>, <МодульФункцииВосстановления>, <ДополнительныеПараметрыФункцииВосстановления>, <ТипыДляОбработкиВосстановления>, <ИменаСвойствДляВосстановления>)
4 Мультук
 
гуру
25.02.25
11:49
(0)

1) Что такое "внешний сервис" ?

2) Вы хотите редактировать настройки СКД какого-то готового отчета ? или что-то совсем абстрактное ?

P.S.
JSON это сильное колдунство, но нужно получить LevelUP, возможно не один.
5 Shecurok
 
25.02.25
12:13
(4)
грубо говоря, очень грубо говоря - это web 1С, данные получаем/отправляем в json

готовый отчет, да
6 Shecurok
 
25.02.25
12:19
(3) не совсем то, что я имел в виду, но спасибо)
7 toypaul
 
гуру
25.02.25
12:33
Насчет json не скажу, но схему целиком можно сохранить в xml. Из конфигуратора и не только. Например, в консоли СКД от 1С есть программное сохранение. Или в ИТК тоже есть
8 Garykom
 
гуру
25.02.25
13:07
(0) Делал такое
Из ERPУХ в ДО через безшовку
Там сильное колдунство!

1. Самое сложное это рекурсивность при переборе элементов
Ибо в типовом ОтборКомпоновкиДанных есть группы (И/ИЛИ/НЕ)
2. Уже простейшее
	Тип = ТипЗнч(Значение);
	Если Тип = Тип("Массив") ИЛИ Тип = Тип("ОтборКомпоновкиДанных") Тогда
		Результат = ОбщегоНазначения.ЗначениеВСтрокуXML(Значение);
	Иначе
		Результат = Значение;
	КонецЕсли;


На другой стороне просто парсишь и все
Если там тоже 1С - простейше
Если не 1С - ну изобретаешь свой конструктору аля СКД
9 Garykom
 
гуру
25.02.25
13:09
(8)+ А еще
3. Средняя сложность - замена ссылочных типов между базами
Т.е. вместо ссылок на справочники и документы одной базы 1С надо передавать нечто для замены их на объекты другой базы
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.