Работа с JSON в 1С 8 3

Поділитися
Вставка
  • Опубліковано 5 бер 2022
  • Как можно меня отблагодарить: pay.cloudtips.ru/p/0c670bd3
    В видео рассмотрены основы работы с JSON средствами языка 1С. Приводятся три основных подхода к формированию и чтению JSON - объектный подход, построчная запись, и сериализация прикладных объектов.
    Также приводится пример использования функции восстановления при чтении JSON.
    Формат JSON находит широкое применение в платформе 1С 8, и используется в http-сервисах, web-сервисах, обмене с другими базами данных 1С, формировании различных файлов настроек и конфигурационных файлов.
    Для удобства пользуйтесь таймкодами:
    00:31 - немного о формате JSON
    02:02 - запись и чтение объектов языка - массивов, структур, соответствий.
    04:30 - объектное чтение JSON
    06:32 - чтение JSON с повторяющимися ключами
    07:33 - функции восстановления и работа с датами в JSON
    11:30 - потоковый подход к работе с JSON в языке 1С.
    12:10 - потоковая (построчная) запись JSON средствами языка 1С
    14:43 - потоковое чтение из JSON
    19:20 - сериализация прикладных объектов 1С в JSON
    Добавляйте в закладки мой сайт 1c.alexcode.ru/first-steps/ с полезными материалами по настройке и программированию 1С
    Курс «Разработчик 1С с нуля»
    1c.alexcode.ru/
    Индивидуальное обучение 1С
    1c.alexcode.ru/online-consult...
    Видео также размещено на моем Дзен-канале «1С с Леоновым»: dzen.ru/video/watch/63772387b...

КОМЕНТАРІ • 25

  • @vika5247
    @vika5247 18 днів тому +1

    Отличное видео!

  • @avagafonov
    @avagafonov Рік тому +1

    Спасибо! Полезный материал для понимания JSON! Надеюсь, Вы находите время в том числе и на преподавание в учебных заведениях!

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Спасибо за душевный отзыв! Да, преподаю в одной из известных онлайн-школ, а также провожу индивидуальные занятия в онлайне.😇

  • @alexaks7293
    @alexaks7293 Рік тому +1

    Отличный уроки, и на сайте полезная информация. Спасибо!

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Очень приятный и позитивный отзыв! Вдохновляет.👍🏻 Идей для видео ещё очень много, главное найти на всё это время 🤭

  • @8tshk8
    @8tshk8 Рік тому +1

    Спасибо за видео. Приятно слушать и смотреть. А главное полезно.

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Благодарю за обратную связь и высокую оценку! Да уж, до 30% "неприятного и бесполезного" безжалостно вырезаю на этапе монтажа😄😉

  • @andreyagapov9177
    @andreyagapov9177 Рік тому +1

    Очень круто. Спасибо огромное!

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Стараемся:) Рад, если видео оказалось полезным.

  • @Paskyduch
    @Paskyduch Рік тому +1

    Спасибо тебе большое!

    • @alexcode_1c
      @alexcode_1c  Рік тому

      Спасибо за подписку! ;)

  • @user-jn9ue2fw4b
    @user-jn9ue2fw4b 2 роки тому +6

    Огромное спасибо! А можно подобное видео про работу с XDTO? Был бы Очень признателен.

    • @alexcode_1c
      @alexcode_1c  2 роки тому +7

      Благодарю за идею! Как раз думал, будет ли интересно, если записать про SOAP сервисы и XDTO. Раз интерес есть, конечно запишу!

    • @user-fp7jn9ev4v
      @user-fp7jn9ev4v Рік тому +1

      Да, было бы неплохо

  • @linkagemaster
    @linkagemaster Рік тому +1

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

    • @alexcode_1c
      @alexcode_1c  Рік тому +1

      Благодарю! Приятно знать, что мои старания кому-то пригодились :)
      По поводу подсветки - это можно сделать в меню Сервис / Параметры, вкладка Модули, там вкладка Редактирование. Нужно найти пункт Выбранный идентификатор, и выбрать цвет какой захотите. Также можно указать цвет для пункта Текущий идентификатор.

  • @user-wu1iq8oi7o
    @user-wu1iq8oi7o 7 місяців тому

    Спасибо.Можно вопрос:Если не управляемые формы на экран показать СтрокаJson.Да и управляемые формы, ни видно ,как ставили в форму реквизит СтрокаJson

    • @alexcode_1c
      @alexcode_1c  7 місяців тому

      Не совсем понял в чем вопрос :)
      Элементы на форму мы добавляем как обычно, хоть в управляемых формах, хоть в обычных.

  • @user-sl1tw9vg8x
    @user-sl1tw9vg8x Рік тому +1

    Ваш вариант потокового чтения не правильно читает JSON с валютой.:
    {
    "base": "USD",
    "date": "2022-02-27T00:00:00",
    "rate": 100
    }
    Поле "rate" не попадает в ПрочитанноеСоответствие

    • @alexcode_1c
      @alexcode_1c  Рік тому +1

      Код для разбора конкретного формата JSON в потоковом чтении и не должен читать любой произвольный JSON :)
      Как правило, оно пишется под конкретную заранее известную структуру, в видео я делаю на этом акцент (15:15). И пример потокового чтения основан на тексте JSON из примера с потоковой записью
      В примере с валютой алгоритм не учитывает что есть строка с пустым значением, и неверно определяет соответствие ключей и строк
      Попробуйте например без переноса строки перед последней скобкой
      {
      "base": "USD",
      "date": "2022-02-27T00:00:00",
      "rate": 100}
      Чтобы это учесть, нужно по-другому написать потоковый разбор текста JSON ;)
      А для универсального подхода есть объектное чтение через ПрочитатьJSON, и в принципе 90% задач применяется именно объектный подход - т.е. сразу JSON читается в объект 1С, без построчного анализа.

  • @div1966
    @div1966 4 місяці тому +1

    Подскажите, конструкция
    МассивИменВосстановления = Новый Массив;
    МассивИменВосстановления.Добавить("name");

    МассивФизЛиц = ПрочитатьJSON(ЧтениеJSON,Истина,"birthday",ФорматДатыJSON.ISO,"ФункцияВосстановленияЧтениеФизЛица",ЭтотОбъект,,МассивИменВосстановления);
    &НаКлиенте
    Функция ФункцияВосстановленияЧтениеФизЛица(Свойство,Значение,ДополнительныеПараметры) Экспорт
    Если Свойство = "name" Тогда
    Возврат ПолучитьФизЛицо(Значение);
    КонецЕсли;
    КонецФункции
    &НаСервере
    Функция ПолучитьФизЛицо(Значение)
    ФизЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(Значение,Истина);
    Возврат ?(ЗначениеЗаполнено(ФизЛицо),ФизЛицо,Значение);
    КонецФункции
    если читается несколько JSON-объектов не является с точки зрения обращения к СУБД запросом в цикле? Есть информация, как метод ПрочитатьJSON "внутри" работает?

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

      Да, тут несомненно будет запрос в цикле. Можно предусмотреть несколько оптимизаций - например, организовать кэш уже найденных физлиц через структуру, и чтение запросом, а не найти по наименованию. Но однозначно, это будет не очень производительно. Вместо функции восстановления можно прочитать JSON как обычный текст в структуру или соответствие, и уже потом собрать запрос с наименованиями физлиц и провести замену. А как работает ПрочитатьJSON внутри, вам могут рассказать только разработчики платформы :)

    • @div1966
      @div1966 4 місяці тому

      @alexcode_1c Я надеялся, что ПрочитатьJSON вначале все прочитает в некую коллекцию , а потом ко ВСЕЙ этой коллекции однократно применит функцию восстановления (версий как именно применит нет))). У меня мысль ПрочитатьJSON (без восстановления) в ТЗ, загрузить ТЗ во временную таблицу запроса и связать по Наименованию (name) c таблицей справочника "Физические лица"

    • @alexcode_1c
      @alexcode_1c  4 місяці тому

      @@div1966 Да, это рабочий подход, сам чаще всего примерно так и делаю