Загрузка данных


&НаСервере
Процедура ЗагрузитьДанныеНаСервере(Результат, ДопПараметры) Экспорт
    // Проверяем, что файл был выбран (Результат не пустой)
    Если Результат = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    // Создаем текстовый документ и читаем содержимое файла в кодировке UTF-8
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    ТекстовыйДокумент.Прочитать(Результат[0], КодировкаТекста.UTF8);
    
    // Преобразуем текст из формата JSON в структуру данных 1С     
    ДанныеИзJSON = ПрочитатьЗначениеJSON(ТекстовыйДокумент.ПолучитьТекст());
    
    // Обходим каждый элемент загруженного массива
    Для каждого ТекущаяСтрока Из ДанныеИзJSON Цикл
        // Пытаемся найти контрагента по коду (поле id)
        НовыйКонтрагент = Справочники.Контрагенты.НайтиПоКоду(ТекущаяСтрока.id);
        
        // Если контрагент не найден (пустая ссылка), создаем новый элемент справочника
        Если НовыйКонтрагент.Пустая() Или НовыйКонтрагент = Неопределено Тогда 
            НовыйКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
            // Заполняем реквизиты из данных JSON
            НовыйКонтрагент.Код = ТекущаяСтрока.id;
            НовыйКонтрагент.Наименование = ТекущаяСтрока.name;
            НовыйКонтрагент.Адрес = ТекущаяСтрока.addres; // Проверьте название поля в JSON
            НовыйКонтрагент.ИНН = ТекущаяСтрока.inn;
            НовыйКонтрагент.Телефон = ТекущаяСтрока.phone; // Исправлено: точка вместо запятой
            НовыйКонтрагент.Продавец = ТекущаяСтрока.salesman;
            НовыйКонтрагент.Покупатель = ТекущаяСтрока.buyer; // Исправлено: buyer вместо buye
            НовыйКонтрагент.Записать();
        Иначе
            // Если контрагент с таким кодом уже есть, сообщаем об этом
            Сообщить("Контрагент с номером " + ТекущаяСтрока.id + " уже существует");
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ЗагрузитьДанные(Команда)
    // Создаем диалог выбора файла
    ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогВыбора.Заголовок = "Выберите файл";
    ДиалогВыбора.Фильтр = "Файл JSON|*.json";
    ДиалогВыбора.МножественныйВыбор = Ложь;
    ДиалогВыбора.Показать(Новый ОписаниеОповещения("ЗагрузитьДанныеНаСервере", ЭтотОбъект, Новый Структура));
    
    Элементы.Список.АвтоОбновление = Истина;
    Элементы.Список.ПериодАвтоОбновления = 1;
КонецПроцедуры