Задать вопрос
  • Какой фриланс сервис выбрать для разработки веб проекта?

    IonDen
    @IonDen
    JavaScript developer. IonDen.com
    fl.ru или freelansim.ru если планируете искать разработчиков в России. И upwork.com если зарубежом
    Ответ написан
    2 комментария
  • Как запустить 10-15 функции последовательно в google apps script?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Может, третья или четвертая функция падает с ошибкой, и поэтому выполнение дальше не идет?
    Ответ написан
    1 комментарий
  • Как зафиксировать приход и уход времени сотрудника на работу?

    @shandrey
    Есть очень хороший сервис https://ifttt.com/ там можно настроить действие от гео-позиции.
    Например, при заходе в какой-то сектор, он будет писать в ГуглДокс время и место куда зашли.
    Можно настраивать и управлять такими задачами.
    Потом уже скриптами консолидировать в таблицу общего журнала ;)
    774577478b5b42dbbc205991ac62d5d7.jpg
    Ответ написан
    Комментировать
  • Как бороться со страхом использовать Javascript на сервере?

    zolt85
    @zolt85
    Программист
    А Вы у коллег спросить не пробовали? :-)

    Скажу за себя. Я кручусь в "кровавом ынтерпрайзе" на Java. Имею дело с JavaScript только на клиенте. Слово debug относительно JavaScript вызывает у меня фантомные боли. Писать код то можно, но как его отлаживать? Отлаживать так, чтоб это было приятно? Может быть кто-то ответит, и развеет мой страх?
    Ответ написан
    6 комментариев
  • Как зафиксировать приход и уход времени сотрудника на работу?

    alextitoff
    @alextitoff
    Основатель Интемс | SecurityRussia.com
    Вот таким например устройством, конечно это устройство не единственное с помощью которого можно организовать учет рабочего времени.
    Ответ написан
    Комментировать
  • Как составить план передачи знании для нового сотрудника?

    dimacurca
    @dimacurca
    omnidesk.ru, mac, blackberry
    В этом конкретном случае можете передать знания устно, паралельно делая себе примечания для создания базы знаний (можно закрытую). По мере адаптации нового сотрудника, он будет задавать вопросы, а у вас появиться прозрение как лучше структурировать материал, что важнее, а что нет. Предложите и другим сотрудникам, новичкам (в форме «как я понял как это и то работает») делиться знаниями в форме новых статей для базы знаний, а вы из редактируйте при необходимости. Со временем обучать новых сотрудников будет легче.
    Ответ написан
    1 комментарий
  • Как сделать вложенный цикл в google spreadsheet?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Ни при каких обстоятельствах не дразните систему setValue(), да еще и во вложенном цикле. Запись происходит не на ваш ПК, а на сервер. Кому понравится, когда его так дергают?

    Чтобы работало даже с "черновиками", т.е. до 50 000 строк на лист, сначала берите ВСЕ данные, потом формируйте ГОТОВЫЙ массив, потом делайте setValue().

    Примерно так:
    function writeData(){
      //Не факт, что поможет, но вдруг
      SpreadsheetApp.flush();
      
      //Далее как у всех
      var ss = SpreadsheetApp.getActiveSpreadsheet();
      
      var resultSheet = ss.getSheetByName("Result");
      var agentsSheet = ss.getSheetByName("Buyers");
      var productsSheet = ss.getSheetByName("Products");
      
      var aV = agentsSheet.getDataRange().getValues();
      var pV = productsSheet.getDataRange().getValues();
      
      //срезать шапку
      aV.shift();
      //  pV.shift();
      
      var res = [];
      
      for(var i = 0; i< aV.length; i++)
      {
        res.push([].concat([aV[i][0]], pV[0]));    
        for(var j = 1; j < pV.length; j++){      
          res.push([].concat([''], pV[j]));      
        }
      }
      
      res = res.slice(0, 50000);
      resultSheet.getDataRange().clear(); 
      resultSheet.getRange(1, 1, res.length, res[0].length).setValues(res);
    }
    Ответ написан
    1 комментарий
  • Как связать или внедрить данные в Google Docs?

    oshliaer
    @oshliaer Куратор тега Google Sheets
    Google Products Expert
    Технически это возможно с большими оговорками.

    Во-первых, не сравнивайте сервисы Google с настольным приложением, это позволит более трезво взглянуть на вещи.
    Во-вторых, встроенных средств не существует. И, если еще раз прочитать "во-первых", они и не нужны.
    В-третьих, можно извернуться и программно добавлять значения в Документ, но это довольно хлопотно. В конце-концов в Google Apps Script есть некий класс Class Range, который, все же, пока болтается без дела.

    Это все, что можно сказать по существу на данный момент.
    Обычно решают вопрос созданием шаблонов и генерацией на их основе новых Документов, а не преобразованием текущего.

    Обновление от 2019-01-23
    Существует возможность "привязать" Таблицу к Документу. Необходимо выделить диапазон Таблицы, скопировать в буфер и вставить в Документ. Пример https://vk.com/wall-174824632_8
    Ответ написан
    Комментировать
  • Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

    @Razrab32
    Нет! Не стоит!
    Ответ написан
    Комментировать
  • Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

    sivabur
    @sivabur
    Заблокировали просто так!
    Не стоит!
    К ним автоматически имеет доступ огромное число лиц.
    Если вы храните данные то к ним имеет доступ только вы и хостинг!(и то вы их можете зашифровать и тому подобное).
    А если храните данные на локальном сайте то к ним будут иметь доступ только вы=)
    Ответ написан
    Комментировать
  • Как зафиксировать приход и уход времени сотрудника на работу?

    mobilesfinks
    @mobilesfinks
    сисадмин *nix
    https://www.yast.com/timetracker/
    дёшево и сердито.
    Раньше у нас был трекер времени в bitrix24 но мы от битрикса отказались т.к. он оказался особо не нужным. Я сам для себя трекаю по ссылке что выше дал. А так, там вроде можно корпоративный аккаунт заводить. Ну и пришёл, открыл жмакнул кнопку, пошёл на обед жмакнул кнопку, пришёл жмакнул кнопку.
    А автоматизация возможна если вы поставите на дверь СКУД и с неё будете брать данные кто-куда-когда-откуда
    Ответ написан
    1 комментарий
  • Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

    @AVKor
    Нет, конечно.

    И - в качестве дополнения -
    Мы их храним в excel на локальном компьютере, я постоянно делаю бэкапы.

    это вообще неверная организация работы. То, что
    Я пробовал загрузить эти данные в MS SQL Server

    мыслите в правильном направлении. Но такие вещи должны делаться профессионалами. Обратитесь к специалистам. Тогда и Ваш коммерческий директор получит желаемое.
    Ответ написан
    4 комментария
  • Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

    @dero2084
    Discovering new
    На этих данных наша организация держится, но эти данные интересны только предпринимателям из нашего города, а для других ценности не представляет.


    Пересмотрите, нет ли там информации которую следует отнести к комерческой тайне.

    С одной стороны если их кто то угонит, то это не страшно. Страшно если кто-то получит несанкционированный доступ к данным и сможет внести изменения, которые приведут к нежелательным последствиям. Такие действия извне может сделать как действующий так и бывший сотрудник, которому известны пароли доступа. Также нельзя гарантировать что логины и пароли не попадут в руки нарушителей в следствии подключения работниками к сервисам Google из внешних ПК (домашние, интернет кафе, телефоны и тп).

    Главная цель защиты информации - избежание ущерба. Если Вы уверенны, что информация не становит какой-либо ценности и в случае ее утички, искажения и других незаконных действий в отношеии ее, Ваше предприятие, партнеры, сотруднки не понесут ущерб, значит такую информацию защищать не надо и можна испльзовать различные подходи к ее обработке.

    Не рекомендуется.
    Ответ написан
    Комментировать
  • Стоит ли хранить конфиденциальные/персональные данные на серверах Google?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Три проблемы:
    • Нет никаких гарантий, что гугл внезапно не прикроет лавочку.
    • Что будете делать, если пропадет доступ в интернет? Офис-то встанет.
    • Что будете делать, если угонят аккаунт? Закроете бизнес?
    Ответ написан
    Комментировать
  • Где программисту искать стартап-идею?

    @Meyvorrrata
    1) Потребность
    2) Ради прикола (так взлетели многие проекты)
    3) Для себя
    4) Идея не приходит за пару секунд, я бы вам посоветовал сесть и каждый день писать идеи (минимум 30-50 штук) как улучшить мир пусть сначала будут и бредовые, но как говориться, раз в год и палка стреляет
    Ответ написан
    Комментировать
  • Как в momentjs установить время?

    Почитать мануал: momentjs
    Ответ написан
    Комментировать
  • Как сохранить входящие письма в таблицу Гугл?

    isqua
    @isqua
    Научу HTML, CSS, JS, BEM и Git
    https://ifttt.com/recipes/90162-add-receipts-order...

    Поменять поле «Search for» на «from:email-отправителя».
    Ответ написан
    Комментировать
  • Как получить ссылку на изображение из Google диска по id?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Здравствуйте.

    Берут сомнения меня, что CAJA, даже в режиме IFRAME, предоставляет нам DOM-документ. Все же, с большой вероятностью, это некий фарш LIKE_DOM = CAJA(DOM);

    Поэтому инструкция, чтобы в нее не передавали, не будет "responsive":
    document.getElementByTagName('img').src = data.image;

    Но, это же DOM, в конце концов! Создаем элемент, вместо изменения атрибута:
    index.html
    <div>
    	<input type="button" onclick="showImage()" value="Click Me!" />
    	<div id="app"></div>
    </div>
    <script>
    	function showImage() {
    		google.script.run.withSuccessHandler(doStuff).withFailureHandler(function serverFailureHandler(e) {
    			console.log(JSON.stringify(e))
    		}).getImageId();
    	};
    	function doStuff(id) {
    		var img = document.createElement('img');
    		img.src = 'https://drive.google.com/uc?export=download&id=' + id;
    		document.getElementById('app').appendChild(img);
    	};
    </script>

    Code.gs
    function doGet(e){
      return HtmlService.createHtmlOutputFromFile('index');
    }
    function getImageId(){
      return '0BzStSAirQJ2oREZGYnM5MjBUZTQ';
    }

    Заметьте, нет никакой необходимости вызывать DriveApp. Он вам понадобится, только если изображение будет не в общем доступе. Тогда вам придется брать Blob, кодировать его в base64 и передавать слепок. Размер слепка не может превышать 10Мб.

    И еще я заметил у вас
    <?!= include('JavaScript'); ?>
    Не забудьте, что шаблоны не исполняют асинхронного кода Load data asynchronously, not in templates, поэтому, создавая нечто объемное, постарайтесь выдать HTML как можно быстрее:
    function doGet(e){
      return HtmlService.createHtmlOutputFromFile('index');
    }
    Ответ написан
    Комментировать
  • Как сгенерить md5 строку на Google Script?

    oshliaer
    @oshliaer Куратор тега Google Apps Script
    Google Products Expert
    Здравствуйте.

    Мне кажется, что у вас неполные представления о методах Google Apps Script, алгоритмах хэширования и системах исчисления.

    Во-первых, computeDigest возвращает массив Byte[], что он и должен делать.
    Во-вторых, вам просто его надо "преобразовать в 16-ричную хэш строку", как сказано выше.

    Попробуйте сделать так:

    function test(){
      Logger.log(toMD5('56'));
    }
    const toMD5 = function(charset, toByte) {
      charset = charset || Utilities.Charset.UTF_8;
      var digest = Utilities.computeDigest(Utilities.DigestAlgorithm.MD5, this, charset);
      if(toByte) return digest;
      var __ = '';
      for (i = 0; i < digest.length; i++) {
        var byte = digest[i];
        if (byte < 0) byte += 256;
        var bStr = byte.toString(16);
        if (bStr.length == 1) bStr = '0' + bStr;
        __ += bStr;
      }
      return __;
    }
    Ответ написан
    Комментировать