Документооборот в Google Drive?

от автора

Казалось бы, вот оно общее информационное пространство, в котором можно распределять права доступа, систематизировать файлы и добавлять к ним дополнительные поля. Чего не хватает для электронного документооборота? Уже на нескольких крупных строительных объектах мы испробовали Google Drive в деле документооборота, нашли популярные грабли и удачные решения. В майские праздники я (наконец-то!) упаковал этот опыт в 7-минутный ролик, отобрав самые полезные приемы.

image

Хотя примеры из строительной тематики, так как это моя область работы (управленческий учет, фин. планирование, визуализации и т.п.), они вполне применимы в любой другой:

Самое интересное, на мой взгляд, это структура на листе 2 объединяющая плюсы и человекопонятной формы и реляционной базы данных. С одной стороны люди просто заносят в удобной структуре данные, видят иерархию и всякие сумматоры, с другой к ним можно обратиться хоть с SQL запросом (для этого в Гугл таблицах есть формула QUERY), хоть сводную таблицу в пару кликов сформировать.

Ну и если кому пригодится скрипт для загрузки файлов “прямо в ячейки таблицы”, делюсь. С подробнейшими комментариями, читается легко, как рецепт пельменей:

// Создание папки в выделенной ячейке function createFolder(){   // берем ячейку, в которой стоит курсор   var currentCell = SpreadsheetApp.getCurrentCell();    // проверяем, что она пустая (папки создаем только в пустых)   if (currentCell.isBlank()) {     // берем текущую таблицу     var ss = SpreadsheetApp.getActiveSpreadsheet(); //берем текущую таблицу     // при первом запуске рядом с таблицей создается родительска папка, в которой будут все папки, создаваемые в ячейках     // чтобы каждый раз обращаться к родительской папке, ее id будет храниться в ячейке А1 на листе "settings", который тоже будет создан при первом запуске     // берем в таблице лист settings     var settingsSheet = ss.getSheetByName("settings");     // если взять не получилось, значит листа еще не существует и родительской папке тоже (т.е. это первый запуск)     if (!settingsSheet) {       // создаем родительскую папку       var contentFolder = DriveApp.getFileById(ss.getId()).getParents().next().createFolder("Файлы "+ss.getName());       // создаем лист settings       settingsSheet = ss.insertSheet('settings');       // скрываем его, чтобы людей не отвлекать       settingsSheet.hideSheet();       // записываем в ячейку А1 id родительской папки       settingsSheet.getRange(1, 1).setValue(contentFolder.getId());     };     // создаем папку в родительской папке (в качстве имени берется ставится текущая дата, но можете использовать значения из других ячеек)     var newFolder = DriveApp.getFolderById(settingsSheet.getRange(1, 1).getValue()).createFolder((new Date()).toISOString());     // в текущую ячейку вставляем надпись "Файлы" и ссылку на папку     currentCell.setFormula('=HYPERLINK("https://drive.google.com/drive/folders/' + newFolder.getId() + '";"Файлы")');   }else{     // если ячейка была все таки не пустая, выдаем сообщение     Browser.msgBox("Можно создать папку только в пустой ячейке")   } }  

Интересно узнать конструктивную критику от тех, кто в теме. Ну и любые полезные мнения, дополнения, советы.

ссылка на оригинал статьи https://habr.com/ru/post/502876/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *