🔒 Защита данных по условию: автоматическая блокировка строк в Google Таблицах Привет, автоматизаторы! Недавно в нашем чате возник интересный вопрос о защите данных. Сегодня поделимся решением от одного из подписчиков, который разработал удобный скрипт для автоматической защиты строк при изменении статуса! 🤔 Зачем нужна автоматическая защита строк? Представьте, что у вас есть таблица, где нескольким пользователям доступно редактирование. Когда заказ, платеж или другая запись получает статус "Подтверждено", важно защитить эти данные от случайных изменений. Но как это сделать автоматически? Именно здесь пригодится наш скрипт! Автоматическая защита данных позволяет: 1. Предотвратить случайное изменение важной информации 2. Сохранить целостность подтвержденных записей 3. Избавиться от ручной настройки защиты для каждой строки 4. Гибко контролировать, какие столбцы защищать, а какие оставить доступными 🤓 Как это работает: В скрипте отслеживается изменения в столбце K (Подтверждено?). Когда там появляется значение "Подтверждено", автоматически защищаются ячейки от A до J в этой строке. Если статус меняется на другой — защита снимается. 👩💻🧑💻 Скрипт от нашего подписчика:👩💻 function onEdit(e) { // Проверяем, что объект события существует if (!e || !e.source || !e.range) { return; } const sheet = e.source.getActiveSheet(); const range = e.range; const row = range.getRow(); const column = range.getColumn(); const value = e.value; // Указываем столбец, до которого нужно защищать строку const endColumn = 10; // Защищаем до столбца J // Проверяем, что изменение произошло в нужном столбце (K) if (column === 11) { // Получаем все защиты на листе const protections = sheet.getProtections(SpreadsheetApp.ProtectionType.RANGE); // Ищем защиту для текущей строки const existingProtection = protections.find(prot => { const protRange = prot.getRange(); return ( protRange.getRow() === row && protRange.getSheet().getName() === sheet.getName() && protRange.getColumn() === 1 && protRange.getNumColumns() === endColumn ); }); if (value === "Подтверждено") { // Если выбрано "Подтверждено" и защиты ещё нет, устанавливаем её if (!existingProtection) { const protection = sheet.getRange(row, 1, 1, endColumn).protect(); protection.setDescription(`Защищено: строка ${row} до столбца ${endColumn}`); protection.removeEditors(protection.getEditors()); protection.setWarningOnly(false); } } else { // Если значение изменено, снимаем защиту с этой строки protections.forEach(prot => { const protRange = prot.getRange(); if ( protRange.getRow() === row && protRange.getSheet().getName() === sheet.getName() ) { prot.remove(); } }); } } } 🤓 Что здесь происходит: 1. Триггер onEdit отслеживает редактирование данных в таблице 2. Скрипт проверяет, произошло ли изменение в 11-м столбце (K) 3. Если в ячейке выбрано "Подтверждено", создается защита для строки 4. Защита применяется от 1-го до 10-го столбца (A-J) 5. Если значение меняется на другое, защита автоматически снимается 6. Проверка на существующую защиту предотвращает создание дубликатов 🤩 Где это особенно полезно: - Таблицы с заказами или клиентскими данными - Финансовые отчеты и бухгалтерия - Системы учета и инвентаризации - Любые таблицы с совместным доступом - Проектная документация ⚙️ Настройка под себя: 1. Измените значение column === 11 на номер вашего столбца со статусом 2. Настройте endColumn = 10 на нужное количество защищаемых столбцов 3. Поменяйте условие value === "Подтверждено" на ваше значение статуса Раздел: #скрипты #защита_данных #автоматизация Функции: #onEdit #protect #getProtections ❔ Документация по функциям: onEdit protect getProtections А как вы защищаете важные данные в своих таблицах? Поделитесь в комментариях! Хотите больше полезных скриптов и решений для Google Таблиц? 💬 Чат 📢 Канал #GoogleSheets #GoogleAppsScript
Таблицы и скрипты Гугл. Эффективная автоматизация бизнеса.
83
подписчика
Мы автоматизируем бизнес. С помощью Таблиц Гугл, скриптов и собственных приложений. От сбора и анализа данных, до объединения разных сервисов в единую систему.
Раздел: #скрипты #защита_данных #автоматизация Функции: #onEdit #protect #getProtections ❔ Документация по функциям: onEdit protect getProtections А как вы защищаете важные данные в своих таблицах? Поделитесь в комментариях! Хотите больше полезных скриптов и решений для Google Таблиц? 💬 Чат 📢 Канал #GoogleSheets #ЗащитаДанных #GoogleAppsScript
Доброе утро! Ловите обновление! 🟢Актуальная версия библиотеки: 12 🟢Новая версия Таблицы для получения товаров из Озон здесь 🟢Код открытый, стать соучастником можно здесь: https://github.com/googlesheets-ru/OzonFromGAS Обратите внимание на существенные изменения в наборе данных, которые возвращает Озон
🔄 🧿 Важное обновление: Изменения в API Ozon для получения информации о товарах Привет, друзья! Ozon обновил свой API для получения информации о товарах, и мы оперативно (ну почти) адаптировали (на самом деле, это hotfix) нашу библиотеку под эти изменения. Если вы используете наш код для загрузки товаров из Ozon в Google Таблицы, этот пост для вас! ❗️ Что произошло: • Ozon изменил структуру API для получения данных о товарах • Это вызвало ошибки при попытке загрузить информацию в таблицы • Мы выпустили обновление библиотеки, которое решает проблему ✅ Что нужно сделать: 1. Откройте редактор скриптов вашей Google Таблицы 2. В левом меню найдите "Библиотеки" 3. Найдите нашу библиотеку в списке 4. Измените версию библиотеки на 6 5. Сохраните изменения 6. Готово! На всякий случай: • Инструкция по работе с редактором скриптов • Подробнее про библиотеки • Обучающая статья по интеграции с Ozon 📝 Что изменилось в данных: Обновленный API предоставляет расширенную информацию о товарах, включая: • Информацию о комиссиях • Данные об уценённых товарах • Расширенные настройки видимости • Ценовые индексы • Дополнительные статусы товаров 💡 После обновления проверьте корректность загрузки данных в вашу таблицу. Если появятся новые проблемы, о которых мы еще не знаем - пишите в комментариях. Спасибо, что используете наши решения для автоматизации! Вы делаете правильный выбор, развивая свой бизнес с помощью современных инструментов. Раздел: #обновления #API #решения Хотите узнать больше? Присоединяйтесь к нашему сообществу! 💬 Чат 📢 Канал
Есть задача: В смету должны попадать столбцы внутренней таблицы: A, B, C, D, E, F, G, H, J, M, N, O, P, S, T, U, V, W При этом дано: Таблица-источник Что делать, если мне не нужны буквы столбцов, потому что в дальнейшем я буду опираться только на заголовки? Как вывести заголовки, опираясь на буквы столбцов? В приложении решение и приглашение поразмять мозги - может быть найдется другой интересный вариант? Наш канал и чат про Таблицы
Google Таблицы — это не просто инструмент для расчетов. Для многих сообществ и бизнес-команд они становятся цифровым рабочим пространством, где хранятся идеи, решения и стратегии. Но что, если в один момент всё это превратится в бесполезный набор ошибок? Именно это произошло с нашим проектом, где Google Таблица служила сборником с более чем 500 решениями задач. История началась с надежды победить в противостоянии злопыхателю, а закончилась приостановкой проекта. Вредительские атаки на Google Таблицы: как формула разрушила нашу инициативу, и что делать, чтобы вам этого избежать https://contributor.pw/post/vreditelskiye-ataki-na-google-sheets/ Наш канал и чат про Таблицы (теперь с собственным блаженным 🤪)
#решение #кейс QUERY + ПОИСКПОЗ - Выбор/поиск нужного столбца по заголовку - Всегда найдет, даже если столбцы поменяются местами - Не нужно каждый раз исправлять в формуле номер столбца для Col* =QUERY( {C10:E13} ; "select Col" & ПОИСКПОЗ(G10; C10:E10) ) Таблица-пример
🔥 Кто еще не успел запостить про DeepSeek Qwen? 😎 А знаете, что еще круче? Мы нашли магический промпт для форматирования формул через DeepSeek Qwen! 💫 Работает как часы: ✅ Идеальные отступы ✅ Четкая группировка элементов ✅ Автоматические переносы ✅ Ни единой ошибки за 24/7 тестов Как повторить? 1️⃣ Создайте новый чат и начните с: Я буду передавать код и формулы, их нужно будет форматировать как в prettier 2️⃣ Следующим сообщением отправьте вашу формулу или кусок кода И наблюдайте, как нейросеть превращает хаос в элегантные строчки! 🧙🔮✨ P.S. Говорят, после этого промпта некоторые начинают специально писать криво, чтобы посмотреть на "танец форматирования" 🤫
#задачка Все отошли от праздников?🥳 Тогда новая задачка! 🎯 Обозначить условным форматированием первые экземпляры дубликатов в мини-таблице. Поиск дубликатов согласно табличному стандарту проводить сначала по столбцам, затем по строкам.
Анализ публикаций ресурса за 2024 в Таблицах https://habr.com/ru/articles/867068/ Спасибо, @empenoso
Анализ публикаций ресурса за 2024 в Таблицах https://habr.com/ru/articles/867068/ Спасибо, @empenoso
#задачка Если вдруг кому скучно в этот воскресный день, сделал пример. Дано: периоды, заданные первой и последней датой. Задание: перечислить все недели, входящие в каждый из периодов. Недели также обозначать первой и последней датой из периода. Даты недели записать через дефис. Например. Период 01.12.2024 - 31.12.2024 Недели 01.12.2024 - 01.12.2024 02.12.2024 - 08.12.2024 09.12.2024 - 15.12.2024 16.12.2024 - 22.12.2024 30.12.2024 - 31.12.2024