Все сервисы Хабра

Сообщество IT-специалистов

Ответы на любые вопросы об IT

Профессиональное развитие в IT

Удаленная работа для IT-специалистов

Войти на сайт
  • Все вопросы
  • Все теги
  • Пользователи

Хабр Q&A — вопросы и ответы для IT-специалистов

Получайте ответы на вопросы по любой теме из области IT от специалистов в этой теме.

Узнать больше
другие проекты хабра
  • Хабр
  • Карьера
  • Фриланс
Задать вопрос
vladd56

Владимир Зуев

Пенсионер
  • 0
    вклад
  • 40
    вопросов
  • 6
    ответов
  • 17%
    решений
Комментарии
  • Информация
  • Ответы
  • Вопросы
  • Комментарии
  • Подписки
  • Нравится
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Спасибо. Только я так и не получил ответа на вопрос. Как найти userCodeAppPanel? Задавал я его раньше. Ошибки приходят такого вида в браузере
    Uncaught TypeError: Cannot read property 'style' of null
        at HTMLButtonElement.model (userCodeAppPanel:7)
    model @ userCodeAppPanel:7

    И где она эта userCodeAppPanel? Какая строка? Как можно пользоваться таким отладчиком если не знаешь где произошла ошибка? Только узнаёшь что где то есть ошибка. А если код на 1000 строк. Как найти ошибку. Вот сегодня с утра копирую одну функцию в index, html и вставляю её в picker.html.Перестаёт работать код, который до этого работал. Удалил эту функцию - опять код заработал. Как понять в чём причина такой ошибки? Поэтому и хотелось бы отлаживать программы в редакторе кода. Там всё таки проще искать ошибки.
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    mityayka1, А как этой функции выполнять свои методы из файла gs. Допустим создать новый элемент в файле html.
    Привожу код
    function createModel(){
     //debugger;
         const models = document.getElementById("parent");     
         let col_value = document.getElementById("color-result-nameID").textContent;
         let col_text = document.getElementById("color-result-text_col").textContent;
         let profit_ratio = document.getElementById("profit_ratio").value;
         let manager_ratio = document.getElementById("manager_ratio").value;
         let ad_ratio = document.getElementById("ad_ratio").value;
         let n = document.getElementById("color-result-divn").textContent;
         document.getElementById("color-result-divn").textContent = n+1;
        
           const model = `
           <div id = "child"; class="child-${n+1}">
             <div   class="child-1"  style="background: ${col_value}">
                <p class="collor-text"   style="color: ${col_text}" >Цвет текста<span class="letter" onclick="closeDiv(this.closest('[id^=child]'))">&#215</span></p>
             </div>
             <p style="color: ${col_value}">Кф. прибыли
                <p class="color-kf">${profit_ratio}</p></p>
             <p style="color: ${col_value}">Кф.менеджера</p>
             <p class="color-kf">${manager_ratio}</p></p>
             <p style="color: ${col_value}">Кф. рекламы</p>
             <p class="color-kf">${ad_ratio}</p></p>
          </div>
           `;
        models.insertAdjacentHTML('afterbegin', model);
       };

    Мне нужно запустить функцию в редакторе кода. Чтобы я мог пошагово отработать её в редакторе кода. И найти ошибки которые она делает.
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    mityayka1, Я же поэтому и задал вопрос как вызвать функцию в сайдбаре google таблицы? Я не знаю как вызвать функцию из html в файле gs. Вы писали что можно попробовать при загрузке html. Я как понял так и попробовал. Но видимо я что то не правильно понял. Поэтому и спрашиваю. Как запустить функцию сразу на сервере (в файле.gs скрипта) функцию лежащую в html?
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Пишет
    Ошибка	ReferenceError: Document is not defined
        at sidebar(Code:22:3)
        at runCreateModel(Code:2:3)

    Что делать?
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    mityayka1, Из функции showSidebar я могу открыть index.html. А как открыть функцию, которая находиться в этом файле? Вставить код
    Document.onload = () => {
    google.script.run.functionFromGas()
    }

    в коде
    function sidebar(){
      var ui = SpreadsheetApp.getUi();
      var html = HtmlService
        .createTemplateFromFile("index")
        .evaluate();
      html.setTitle("Коэффициенты по цвету текста");
    
      ui.showSidebar(html);
    };

    После строки
    html.setTitle("Коэффициенты по цвету текста");
    Только не понятна строка
    google.script.run.
    Она применяется для запуска функции из файла gs. А здесь применяю для запуска функции из файла html.
    На строке
    Document.onload = () => {
    У меня программа вылетает. Что делать?
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    mityayka1, functionFromGas() это функция которая находиться в файле html. Я правильно понял. И её я могу вызвать в файле gs.
    Написано более года назад
  • Как вызвать функцию в сайдбаре google таблицы?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    А где надо разместить эти строки? В каком файле?
    Написано более года назад
  • Как правильно увеличить место для сайдбара google таблице?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Григорий Боев, Вот ссылка на мою таблицу
    https://docs.google.com/spreadsheets/d/1sXnbzTtIO-...
    Написано более года назад
  • Что делать чтобы предупреждения больше не было?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Ярослав Александров, После загрузки https://docs.google.com/spreadsheets/u/0/ выскакивает такое предупреждение. Что делать?
    Написано более года назад
  • Что делать чтобы предупреждения больше не было?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    А можно это как то проверить?
    Написано более года назад
  • Что делать чтобы предупреждения больше не было?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Ярослав Александров, Загружаю google таблицу в браузер google chrom.
    Написано более года назад
  • Как вставить массив в таблицу?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Спасибо. Всё заработало.
    Написано более года назад
  • Как вставить массив в таблицу?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Сделал как подсказали. Получил код
    async function CitiesNovaPoshta2 () {
      const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Города");
      let x = 0;
      var payload = {
        'apiKey': '6bde07fde09a9f1d11b034df69403d73',
        'modelName': 'Address',
        'calledMethod': 'getCities',
      }
      var options = {
        'method' : 'post',
        'headers': {
          'content-type': 'application/json',
        },
        'payload': JSON.stringify(payload),
      };
      while (x < 10) { 
        var result = await UrlFetchApp.fetch('https://api.novaposhta.ua/v2.0/json/', options);
        if (result) {break;}        
        x++
      }; 
      var dataCities =  JSON.parse(result.getContentText());
      //var orderList1 = JSON.stringify(dataCities, null, 2);
      //Logger.log(orderList1);
      const  lengthCities =  dataCities["data"].length;
     
      //lr = sheet.getLastRow()-1;
      let array = [];
      for (let i = 0; i < lengthCities; i += 10) {
        
        for (let j= i; j<i+10; j++){
          let buffer = [];
          
        buffer.push(dataCities["data"][j]["Description"]);
        buffer.push(dataCities["data"][j]["DescriptionRu"]);
        buffer.push(dataCities["data"][j]["Ref"]);
        buffer.push(dataCities["data"][j]["Delivery1"]);
        buffer.push(dataCities["data"][j]["Delivery2"]);
        buffer.push(dataCities["data"][j]["Delivery3"]);
        buffer.push(dataCities["data"][j]["Delivery4"]);
        buffer.push(dataCities["data"][j]["Delivery5"]);
        buffer.push(dataCities["data"][j]["Delivery6"]);
        buffer.push(dataCities["data"][j]["Delivery7"]);
        buffer.push(dataCities["data"][j]["Area"]);
        buffer.push(dataCities["data"][j]["SettlementType"]);
        buffer.push(dataCities["data"][j]["IsBranch"]);
        buffer.push(dataCities["data"][j]["PreventEntryNewStreetsUser"]);
        buffer.push(dataCities["data"][j]["Conglomerates"])
        buffer.push(dataCities["data"][j]["CityID"]);
        buffer.push(dataCities["data"][j]["SettlementTypeDescription"]);
        buffer.push(dataCities["data"][j]["SettlementTypeDescriptionRu"]);
        buffer.push(dataCities["data"][j]["SpecialCashCheck"]);
        buffer.push(dataCities["data"][j]["Postomat"]);
        buffer.push(dataCities["data"][j]["AreaDescription"]);
        buffer.push(dataCities["data"][j]["AreaDescriptionRu"]);
         buffer = buffer.map(x=>[x])
          array.push(buffer);
          //sheet.appendRow(buffer);
         //Logger.log(buffer);   
             }
       
        sheet.getRange(sheet.getLastRow() + 1,1,array.length, array[0].length).setValues(array);
       //sheet.appendRow(array);
        SpreadsheetApp.flush()
      }
    }

    Но в таблице всё равно нет массива.
    Написано более года назад
  • Когда следует создавать функции?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Alexander Ivanov, А как это осуществить на практике. Какой код для того чтобы грузить допустим по 10 строк ?
    Написано более года назад
  • Когда следует создавать функции?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Просто там код очень большой. Да и пока не работает эта вставка
    function AppendRow() {
      let sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Data");
      var array = ['Петя',44444,'Петя',44444,'Петя',44444,44444,44444,44444,'Петя','Петя',44444,'Петя','Петя'];
      let lr = sheet.getLastRow()+1;
      let lc = array.length;
      sheet.getRange(lr,1,lr,lc).appendRow(array);
    }

    Последняя строка. Как правильно сделать ещё не нашёл.
    Написано более года назад
  • Когда следует создавать функции?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Я вот сейчас пытаюсь заменить в цикле присвоение 16 ячейкам значений на одно присваивание через массив. Вы считаете это не укоротит время выполнения программы из за работы браузера?
    Написано более года назад
  • Когда следует создавать функции?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Кода очень много. Поэтому выкладывать весь код смысла по моему нет. Вот например активизация страницы для работы с ней. Вызывается в некоторых функциях несколько раз. Для удобства чтения кода создал такую функцию
    function ActiveSheet(sheetName) {
    var ss = SpreadsheetApp.getActiveSpreadsheet()
    var sheet = ss.getSheetByName(sheetName)
    SpreadsheetApp.flush()
      return sheet;
    };

    И вызывал её так.
    Читаемость кода улучшилась.
    var sheet1 = ActiveSheet(sheetName)
    Время исполнения по моему увеличилось. Сейчас использую такую активизацию
    let sheet1 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Продажи на Prom ua");

    Вроде быстрее стало работать.
    Написано более года назад
  • Как увидеть переменную при отладке?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Alexander Ivanov, Спасибо за помощь.
    Написано более года назад
  • Как увидеть переменную при отладке?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Здравствуйте.
    Также заметил когда у переменной значение пусто тогда она исчезает из поля видимости. Жаль что нельзя управлять видимостью заданных переменных.
    Написано более года назад
  • Как выделить диапазон в таблице?

    vladd56
    Владимир Зуев @vladd56 Автор вопроса
    Спасибо. Всё выделяется сразу. Теперь видно с каким диапазоном работаю. Намного более понятно что попадает в значения диапазона.
    Написано более года назад
  • 1
  • 2
  • 3
  • Следующие →
Самые активные сегодня
  • rPman
    • 8 ответов
    • 0 вопросов
  • низкомолекулярный макрос
    • 6 ответов
    • 1 вопрос
  • 0xD34F
    0xD34F
    • 6 ответов
    • 0 вопросов
  • ALonUa
    • 6 ответов
    • 0 вопросов
  • sergey-kuznetsov
    Сергей Кузнецов
    • 5 ответов
    • 0 вопросов
  • Айнур Бирдин
    • 5 ответов
    • 0 вопросов
  • © Habr
  • О сервисе
  • Обратная связь
  • Блог

Войдите на сайт

Чтобы задать вопрос и получить на него квалифицированный ответ.
Войти через центр авторизации