...

Импорт данных из внешнего источника для элемента "Список"

Тема в разделе "Вопросы по платформе", создана пользователем mxustin, 21 окт 2022.

  1. mxustin

    mxustin Участник

    Приветствую, коллеги!
    Подскажите, пожалуйста, для такого элемента формы как "Категория", возможен ли импорт данных из внешнего источника? Около 800 позиций вбивать руками не хочется. Как можно "загрузить" список с использованием "средств малой механизации"?
  2. daniyar1997

    daniyar1997 Участник

    Самый простой вариант:
    1. Преобразуете свои данные в JSON-строку
    2. Копируете JSON-строку в свойство типа "строка" на форме.
    3. Клиентским TS скриптом обрабатываете строку как вам надо.
  3. mxustin

    mxustin Участник

    а скрипт, получается, нужно вызывать при запуске формы?... то есть, когда открывается форма, скрипт должен из строки взять данные и загрузить в "категорию"?...
  4. daniyar1997

    daniyar1997 Участник

    Для начала сделайте самый простой вариант. Создайте на форме строку и кнопку.
    На кнопку повесьте скрипт обработки строки.
    Использование:
    1. Открываете форму.
    2. Вставляете в строку свой JSON (ctrl+c , ctr+v)
    3. Нажимаете кнопку
    4. Скрипт обрабатывает строку и загружает данные, куда надо
  5. mxustin

    mxustin Участник

    А есть справка, чтобы добавить скрипт к форме?
  6. daniyar1997

    daniyar1997 Участник

    https://tssdk.elma365.com/ru/
    Если вы в программировании слабоваты - проще вручную перебить, много времени потратите.
  7. mxustin

    mxustin Участник

    https://elma365.com/ru/help/client_server_scripts.html
    на сколько я понимаю, это тут... но как-то маловато данных. Где можно посмотреть структуру объектов?
  8. mxustin

    mxustin Участник

    Спасибо за ссылку.

    В моем случае ситуация "вручную" не подойдет. Причина очень простая, мало того, что список довольно большой (порядка 700 позиций... и вбивать это все руками — это какая-то особая форма мазохизма), но он еще и динамически изменяется (появляются новые позиции, исчезают ране существовавшие).
  9. daniyar1997

    daniyar1997 Участник

    Вот примеры работы с json. Это кусочки.
    JSON строка выглядит так:
    Код:
    
    [{"№":1,"Артикул":"Hello","Наименование":"\u0428\u043A\u0430\u0444 \u0428\u0410\u0423\u0410\u04221-3","Ед. изм.":"\u0448\u0442","Кол-во":1,"Цена без учета НДС":100.25,"Сумма без учета НДС":100.25},{"№":2,"Артикул":"160209-II-06-41/1,43/1,44,46,47,117-\u0410\u0422\u0425-\u041E\u041B2","Наименование":"\u0428\u043A\u0430\u0444 \u0428\u0410\u0423\u0410\u04221-4","Ед. изм.":"\u0448\u0442","Кол-во":1,"Цена без учета НДС":1000,"Сумма без учета НДС":1000},{"№":3,"Артикул":"160209-II-06-41/1,43/1,44,46,47,117-\u0410\u0422\u0425-\u041E\u041B3","Наименование":"\u0428\u043A\u0430\u0444 \u0428\u0410\u0423\u0410\u04221-5","Ед. изм.":"\u0448\u0442","Кол-во":1,"Цена без учета НДС":1000,"Сумма без учета НДС":1000}]
    Код:
    
    //Обработка json
    function getJsonData(jsonStringstring): any {
        if (
    jsonString == null || jsonString == undefined) return;
        return 
    JSON.parse(jsonString);
    }
    Код:
    
    //Заполнение таблицы спецификации
        
    let json getJsonData(Context.data.sp3_json_stroka!);
        for (
    let i 0json.lengthi++) {
            const 
    row table!.insert();

            
    row.nomer json[i]["№"].toString();
            
    row.artikul json[i]["Артикул"];
            
    row.naimenovanie json[i]["Наименование"];
            
    row.ed_izm json[i]["Ед. изм."];
            
    row.kolvo json[i]["Кол-во"].toString();
            
    row.cena_bez_ucheta_nds = new Money(json[i]["Цена без учета НДС"], 'RUB');
            
    row.summa_bez_ucheta_nds = new Money(json[i]["Сумма без учета НДС"], 'RUB');
            
    row.tip_rabot json[i]["Тип работ"];

        }
    Прикрепил Excel документ, где есть перевод данных в json-строку.
    Ну дальше надо разбираться.

    Вложения:

  10. mxustin

    mxustin Участник

  11. mxustin

    mxustin Участник

    :) кусочки красивые ))
  12. daniyar1997

    daniyar1997 Участник

    Обратите внимание на Excel-документ. По сути, у вас есть все инструменты, чтобы сделать автоматизацию для Excel источника.
    Вы из Excel данные хотите тянуть?
  13. mxustin

    mxustin Участник

    Ну, хотелось бы из БД непосредственно. Потому что выгружать в Excel, чтобы потом тянуть из Excel — как по мне, так это лишний шаг.
    В идеале хотелось бы, чтобы данные в список подгружались непосредственно из БД, где они и хранятся (и апдэйтятся) по мере необходимости.
  14. mxustin

    mxustin Участник

    а что вы подразумеваете под "Excel-документом"? это тип данных такой? если да, то не смог найти такого типа для форм. Таблицы видел. А именно excel-документ не видел
  15. daniyar1997

    daniyar1997 Участник

    Надеюсь, что вы осознаете, что для решения таких задач нужны соответствующие компетенции.
    Тут уже вам скорее нужен свой модуль (администрирование-модули).
    В любом случае, удачи ;)
  16. daniyar1997

    daniyar1997 Участник

    Нет, просто excel-документ. Думал, у вас там данные хранятся, а не в БД.
    Просто вы очевидные вещи слабо понимаете (возможно, это из-за незнакомой elma365), поэтому подумал, что БД у вас не задействовано.
  17. mxustin

    mxustin Участник

    Да. ELMA я только недавно начал изучать.
    Модуль так модуль. Буду пробовать. Просто список большой, не статичный (меняется не регулярно), и "вбивать" его каждый раз руками — это совсем не дело. Он должен импортироваться из внешней БД, где он хранится, ведется, и содержится в актуальном состоянии.

    Менеджеры по продажам говорили, что возможны интеграции. Если это окажется невозможным, то будет грустненько.