Имя: Пароль:
1C
1С v8
Вопрос от чайника про ЗаписьJSON
0 petya_
petrov_63
 
28.11.23
13:32
Ну коли мне статус поставили чайника, то можно и вопросы чайника задавать не стесняясь )
Есть код

&НаСервере
Функция ПреобразованиеЗначения(Свойство,Значение, ДопПаратметры,Отказ) Экспорт
    Рез = "";
    Возврат Рез;
КонецФункции

&НаСервере
Функция СтруктураЗапроса()
    Результат = Новый Структура();
    Результат.Вставить("НомерДоговора","");
    Результат.Вставить("ДатаДоговора",Дата(1,1,1));
    Результат.Вставить("АдресСтрока","");
    Результат.Вставить("Имя","");
    Результат.Вставить("Фамилия","");
    Результат.Вставить("Отчество","");
    Результат.Вставить("Телефон","");
    Результат.Вставить("ВидДоговора","");
    
    Возврат Результат;
КонецФункции

    Запись = Новый ЗаписьJSON;  
    ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(ПереносСтрокJSON.Нет);
    Запись.УстановитьСтроку(ПараметрыЗаписиJSON);
СтруктураДанных = СтруктураЗапроса();
.
.
.

            ЗаписатьJSON(Запись,СтруктураДанных,,"ПреобразованиеЗначения",ЭтотОбъект);



Отваливается с ошибкой

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(128)}: Ошибка при вызове метода контекста (ЗаписатьJSON)
            ЗаписатьJSON(Запись,СтруктураДанных,,"ПреобразованиеЗначения",ЭтотОбъект);
по причине:
Метод 'ПреобразованиеЗначения' не найден

Почему не видется функция? Функция находится в контексте формы. Перенос в модуль обработки не помог. Обработка внешняя. Запускаю все из толстого клиента. На конфе режим совместимости Версия 8.2.13.
1 timurhv
 
28.11.23
13:43
Синтаксис:
ЗаписатьJSON(<ЗаписьJSON>, <Значение>, <НазначениеТипаXML>)
2 timurhv
 
28.11.23
13:44
А, 8.2.13...
3 Галахад
 
28.11.23
13:45
Хм. Может не ЭтотОбъект, а ЭтаФорма?
4 petya_
petrov_63
 
28.11.23
13:46
(2) я не про метод ФабрикаXDTO, а про
Глобальный контекст (Global context)
ЗаписатьJSON (WriteJSON)
5 petya_
petrov_63
 
28.11.23
13:50
(3) неа, не помогло
6 petya_
petrov_63
 
28.11.23
13:55
Если верить всплывающей подсказе то тип у 5 параметра должен быть КомандаКомандногоИнтерфейса, УправляемаяФорма, ОбщиийМодуль . Ладно попробую по элементно записать.
7 Pprog151713
 
28.11.23
13:56
ПараметрыЗаписиJSON = Новый ПараметрыЗаписиJSON(, Символы.Таб);
    ЗаписьJSON = Новый ЗаписьJSON;
    ЗаписьJSON.УстановитьСтроку(ПараметрыЗаписиJSON);
    ЗаписатьJSON(ЗаписьJSON, Структура);
    Данные = ЗаписьJSON.Закрыть();
8 Pprog151713
 
28.11.23
13:59
Перечисления надо строкой делать по моему или дату в строку тоже....
9 petya_
petrov_63
 
28.11.23
15:43
(2) да, конкретно в этой реализации затык (если верить подсказке (6)) именно в ОФ.
10 Fedor-1971
 
28.11.23
17:23
(0) Ошибка означает, что нету заявленной процедуры, т.е. нужно определить процедуру для преобразования в форме (или убрать оную, если стандартно Структура прожуётся для JSON на 8.2)
И поле с типом Дата - лучше самому преобразовать в строку через Формат
11 Fedor-1971
 
28.11.23
17:28
раз уж записался в чайники, начни с простого создания JSON без структуры:
инфОписание = новый ЗаписьJSON;
инфОписание.УстановитьСтроку();
            инфОписание.ЗаписатьНачалоОбъекта();
инфОписание.ЗаписатьИмяСвойства("ТипИнформации");
инфОписание.ЗаписатьЗначение("ОтправкаПлатПорученийБух1С8");
                инфОписание.ЗаписатьИмяСвойства("УИД_Организация_ДО");
инфОписание.ЗаписатьЗначение(Строка(Объект.Организация.УникальныйИдентификатор()));
                инфОписание.ЗаписатьИмяСвойства("УНП_Организация");
инфОписание.ЗаписатьЗначение(СокрЛП(параметрыСоединения.ИНН));

инфОписание.ЗаписатьКонецОбъекта();

стрJSON = инфОписание.Закрыть();
12 Valdis2007
 
28.11.23
17:43
(0) Почему не видется функция? ...Поставь - экспорт
13 petya_
petrov_63
 
29.11.23
09:06
(10),(11) - я уж в принципе заставил работать через структуру, проблема была в том что в структуре было значение не примитивного типа, а перечисление.
(12) Экспорт стоит, смотрите листинг.
14 vyaz
 
29.11.23
16:03
извините, что не по теме (редко форум читаю последнее время):
1. Где посмотреть статус чайника у себя?
2. Какой текущий статус у ЛивингСтара?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан