База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как выгрузить справочник «Категории номенклатуры» с характеристиками в JSON в УН
- В этой теме 1 ответ, 2 участника, последнее обновление 2 месяца, 1 неделя назад сделано
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.—
### Пример кода выгрузки
1С (Код)1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556Процедура ВыгрузитьКатегорииСХарактеристикамиВJSON()Результат = Новый Массив;// Получаем все категории номенклатурыКатегории = Справочники.КатегорииНоменклатуры.Выбрать();Пока Категории.Следующий() ЦиклКатегорияСтруктура = Новый Структура;КатегорияСтруктура.Вставить("Ссылка", Категории.Ссылка);КатегорияСтруктура.Вставить("Код", Категории.Код);КатегорияСтруктура.Вставить("Наименование", Категории.Наименование);// Получаем характеристики для текущей категорииХарактеристики = Новый Массив;Запрос = Новый Запрос;Запрос.Текст ="ВЫБРАТЬ| Характеристики.Ссылка КАК Ссылка,| Характеристики.Код КАК Код,| Характеристики.Наименование КАК Наименование|ИЗ| Справочник.ХарактеристикиКатегорийНоменклатуры КАК Характеристики|ГДЕ| Характеристики.Владелец = &Категория";Запрос.УстановитьПараметр("Категория", Категории.Ссылка);РезультатЗапроса = Запрос.Выполнить();ВыборкаХар = РезультатЗапроса.Выбрать();Пока ВыборкаХар.Следующий() ЦиклХарСтруктура = Новый Структура;ХарСтруктура.Вставить("Ссылка", ВыборкаХар.Ссылка);ХарСтруктура.Вставить("Код", ВыборкаХар.Код);ХарСтруктура.Вставить("Наименование", ВыборкаХар.Наименование);Характеристики.Добавить(ХарСтруктура);КонецЦикла;КатегорияСтруктура.Вставить("Характеристики", Характеристики);Результат.Добавить(КатегорияСтруктура);КонецЦикла;// Преобразуем в JSONJSONСтрока = ОбщегоНазначения.ПреобразоватьВ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/ (работа со справочниками в УНФ)
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.