База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выгрузить справочник «Категории номенклатуры» с характеристиками в JSON в УН
- В этой теме 1 ответ, 2 участника, последнее обновление 1 день, 18 часов назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
23 декабря 2025 в 13:15 #35254
уточняю управление нашей фирмой 3.0.12.211
-
23 декабря 2025 в 13:15 #35255
В конфигурации «Управление нашей фирмой» (УНФ) 3.0.12.211 для выгрузки справочника «Категории номенклатуры» со значениями характеристик в формате JSON потребуется написать собственный код на встроенном языке 1С, так как типовой функционал выгрузки в JSON для справочников с вложенными характеристиками отсутствует.
Общий подход следующий:
1. **Получить данные из справочника «Категории номенклатуры»**
Выполнить запрос или перебор элементов справочника, получить основные реквизиты категорий.2. **Для каждой категории получить связанные характеристики**
В УНФ характеристики категорий хранятся в справочнике «Характеристики категорий номенклатуры» (или аналогичном). Нужно получить все характеристики, у которых владелец — текущая категория.3. **Сформировать структуру данных для JSON**
Для каждой категории создать структуру с реквизитами категории и массивом характеристик, где каждая характеристика — это структура с нужными реквизитами (код, наименование и т.п.).4. **Преобразовать структуру в JSON**
Использовать стандартный механизм 1С — объект `JSON` и метод `ЗаписатьСтрокуJSON` или `ПреобразоватьВJSON`.—
### Пример кода выгрузки
Процедура ВыгрузитьКатегорииСХарактеристикамиВJSON() Результат = Новый Массив; // Получаем все категории номенклатуры Категории = Справочники.КатегорииНоменклатуры.Выбрать(); Пока Категории.Следующий() Цикл КатегорияСтруктура = Новый Структура; КатегорияСтруктура.Вставить("Ссылка", Категории.Ссылка); КатегорияСтруктура.Вставить("Код", Категории.Код); КатегорияСтруктура.Вставить("Наименование", Категории.Наименование); // Получаем характеристики для текущей категории Характеристики = Новый Массив; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Характеристики.Ссылка КАК Ссылка, | Характеристики.Код КАК Код, | Характеристики.Наименование КАК Наименование |ИЗ | Справочник.ХарактеристикиКатегорийНоменклатуры КАК Характеристики |ГДЕ | Характеристики.Владелец = &Категория"; Запрос.УстановитьПараметр("Категория", Категории.Ссылка); РезультатЗапроса = Запрос.Выполнить(); ВыборкаХар = РезультатЗапроса.Выбрать(); Пока ВыборкаХар.Следующий() Цикл ХарСтруктура = Новый Структура; ХарСтруктура.Вставить("Ссылка", ВыборкаХар.Ссылка); ХарСтруктура.Вставить("Код", ВыборкаХар.Код); ХарСтруктура.Вставить("Наименование", ВыборкаХар.Наименование); Характеристики.Добавить(ХарСтруктура); КонецЦикла; КатегорияСтруктура.Вставить("Характеристики", Характеристики); Результат.Добавить(КатегорияСтруктура); КонецЦикла; // Преобразуем в JSON JSONСтрока = ОбщегоНазначения.ПреобразоватьВJSON(Результат); // Записываем в файл ИмяФайла = КаталогВременныхФайлов() + "КатегорииНоменклатурыСХарактеристиками.json"; ЗаписьФайла = Новый Файл(ИмяФайла); ПотокЗаписи = ЗаписьФайла.ПолучитьПотокЗаписи(); ПотокЗаписи.ЗаписатьСтроку(JSONСтрока); ПотокЗаписи.Закрыть(); Сообщить("Выгрузка завершена. Файл: " + ИмяФайла); КонецПроцедуры—
### Важные моменты:
— В УНФ 3.0.12.211 справочник характеристик категорий может называться иначе, уточните точное имя в вашей базе.
— Если характеристик много, можно добавить фильтрацию или пагинацию.
— Для более сложных структур можно расширить структуру данных.
— Для удобства можно сделать обработку с выбором пути сохранения файла.—
### Рекомендации
— Используйте встроенный механизм `ОбщийМодуль.ОбщегоНазначения.ПреобразоватьВJSON` для преобразования структур и массивов в JSON.
— Если требуется выгрузка с учетом вложенных характеристик номенклатуры, то алгоритм аналогичный, только меняется справочник и связи.
— Для отладки можно выводить промежуточные данные через `Сообщить`.—
Рекомендую посмотреть здесь:
https://infostart.ru/public/1012589/ (пример обхода характеристик)
https://infostart.ru/public/137862/ (работа с табличными документами и JSON)
https://infostart.ru/public/1839811/ (работа со справочниками в УНФ)
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.