Блог
Строительство и ремонт
Репетиторы
Красота
Фрилансеры
Разные специалисты
Уход за животными
Тренеры
Автоинструкторы

Программирование в Excel — удалённая работа в Москве

Дата: 2025-08-21
Детали
Регион
Москва
Занятость
дистанционно
Стоимость
договорная
Дата публикации
2025-08-21
Описание
Автоматизация формирования отчётов, анализ и работа с базами данных. Техническое задание есть. Вы описали идеальную архитектуру для сбора конфиденциальных или индивидуальных данных, где каждый участник работает только со своим файлом и не видит других. Это реализуется с помощью Google Forms и Google Apps Script (скриптов). Вот как это работает: --- Общая схема работы 1. Пользователь заполняет общую Google Форму. 2. Скрипт автоматически создает для него персональную Google Таблицу. 3. Скрипт записывает ответы пользователя и ссылку на его персональную таблицу в вашу главную таблицу. 4. Скрипт отправляет пользователю письмо со ссылкой на его личную таблицу. В итоге: · Вы в главной таблице видите все данные и все ссылки на личные файлы. · Каждый пользователь имеет доступ только к своей личной таблице и не видит ни главную таблицу, ни таблицы других людей. --- Пошаговая инструкция по реализации Это более сложный скрипт, но он решает именно вашу задачу. Шаг 1: Подготовка файлов 1. Создайте Главную таблицу (Master Sheet). · Создайте новую Google Таблицу. Это будет ваша база данных. · Создайте заголовки для столбцов, например: Timestamp, Email, Link to Personal Sheet. · Запишите ее ID из URL (длинная строка между /d/ и /edit). 2. Создайте Шаблон личной таблицы (Template Sheet). · Создайте новую Google Таблицу, оформите ее: сделайте заголовки, формулы, инструкции — все, что должен видеть пользователь. · Важно: Не заполняйте ее данными пользователей. Это просто шаблон. · Запишите ее ID. 3. Создайте Google Форму. · Создайте форму, которая будет собирать данные для доступа (как минимум, email). · В настройках формы (шестеренка) включите сбор email-адресов. · Привяжите к форме скрипт: в форме нажмите меню (три точки) -> Редактор скриптов. Шаг 2: Написание скрипта Вставьте этот код в редакторе скриптов, связанном с вашей Формой. Вам нужно будет заменить значения в `CONFIG` на свои. ```javascript // КОНФИГУРАЦИЯ - ЗАМЕНИТЕ ЭТИ ЗНАЧЕНИЯ НА СВОИ const CONFIG = { // ID главной таблицы (из URL) MASTER_SHEET_ID: 'Ваш_ID_Главной_Таблицы', // Имя листа внутри главной таблицы, куда писать данные (обычно “Лист1“) MASTER_SHEET_NAME: 'Лист1', // ID таблицы-шаблона (из URL) TEMPLATE_SHEET_ID: 'Ваш_ID_Таблицы_Шаблона', // Папка на Google Диске, куда складывать личные таблицы (необязательно). Оставьте пустым, чтобы файлы создавались в корне. TARGET_FOLDER_ID: '' }; function onFormSubmit(e) { // Получаем ответ из формы var formResponse = e.response; var itemResponses = formResponse.getItemResponses(); var respondentEmail = formResponse.getRespondentEmail(); // Получаем email из настроек формы // Если в форме были другие вопросы, вы можете получить их ответы здесь // var answer1 = itemResponses[0].getResponse(); // 1. СОЗДАЕМ КОПИЮ ШАБЛОНА ДЛЯ ПОЛЬЗОВАТЕЛЯ var personalSheet = createPersonalSheet(respondentEmail); // 2. ЗАПИСЫВАЕМ ДАННЫЕ В ГЛАВНУЮ ТАБЛИЦУ writeToMasterSheet(formResponse, respondentEmail, personalSheet.getUrl()); // 3. ОТПРАВЛЯЕМ ПРИГЛАШЕНИЕ ПОЛЬЗОВАТЕЛЮ НА ЕГО ТАБЛИЦУ sendEmailWithLink(respondentEmail, personalSheet.getUrl()); } function createPersonalSheet(userEmail) { // Открываем шаблон var template = DriveApp.getFileById(CONFIG.TEMPLATE_SHEET_ID); // Создаем имя для новой таблицы var newFileName = 'Моя персональная таблица для ' + userEmail; // Создаем копию шаблона var personalSheetFile = template.makeCopy(newFileName); // Если указана папка, перемещаем файл в нее if (CONFIG.TARGET_FOLDER_ID) { var targetFolder = DriveApp.getFolderById(CONFIG.TARGET_FOLDER_ID); personalSheetFile.moveTo(targetFolder); } // Открываем копию как Google Таблицу var personalSheet = SpreadsheetApp.openById(personalSheetFile.getId()); // Даем пользователю права на редактирование ЭТОЙ таблицы personalSheet.addEditor(userEmail); // Опционально: удаляем права у всех, кроме владельца и пользователя // var editors = personalSheet.getEditors(); // for (var i = 0; i < editors.length; i++) { // if (editors[i].getEmail() != Session.getActiveUser().getEmail()) { // personalSheet.removeEditor(editors[i]); // } // } return personalSheet; } function writeToMasterSheet(formResponse, userEmail, sheetUrl) { // Открываем главную таблицу и нужный лист var masterSheet = SpreadsheetApp.openById(CONFIG.MASTER_SHEET_ID).getSheetByName(CONFIG.MASTER_SHEET_NAME); // Формируем строку для записи: [Время, Email, Ссылка] var timestamp = formResponse.getTimestamp(); var newRow = [timestamp, userEmail, sheetUrl]; // Добавляем строку в конец таблицы masterSheet.appendRow(newRow); } function sendEmailWithLink(userEmail, sheetUrl) { var subject = 'Доступ к вашей персональной таблице'; var body = 'Здравствуйте! Ваша персональная таблица готова. ' + 'Перейдите по ссылке, чтобы начать работу: ' + sheetUrl; MailApp.sendEmail(userEmail, subject, body); } ``` Шаг 3: Настройка триггера Как и в первом примере, вы должны настроить триггер для функции onFormSubmit, чтобы она запускалась При отправке формы. --- Что получится в итоге? Действие пользователя Результат 1. Пользователь заполняет форму и указывает email. 2. Скрипт создает копию шаблона, дает права на нее пользователю, записывает данные в вашу главную таблицу и шлет email. 3. Пользователь получает письмо со ссылкой. 4. Он переходит по ссылке и видит только свою личную таблицу. Он даже не подозревает о существовании главной таблицы и таблиц других участников. 5. Вы открываете свою Главную таблицу. 6. Вы видите список всех участников, их email и прямые ссылки на их личные таблицы. У вас есть полный контроль и обзор над всем процессом. Это мощная, профессиональная и очень надежная схема для управления данными множества пользователей, полностью соответствующая вашим требованиям.
Похожие заказы
Программисты
дистанционно
договорная
Разработка игр. Сделать проект под ключ. Игра: Android only. Игра: одиночная. Жанр: аркада. Платформа: android. Графика: 2D. Была игра старая на андроид. Есть стаканы рандомной формы (10-12 вариантов от граненного, до бокала для вина). В зависимости от уровня (с уровнями сложность растет) линия, по которую нужно налить стакан варьируется. Чем ближе к уровню - тем больше скор (лимит 1000, из которых 1% идет в монеты). За монеты покупаются жидкости (простенькие анимации, мол если вода - сверху показывается бутылка воды, если вино - горлышко бутылки вина, без струи, стакан наполняется снизу-вверх, вариантов жидкостей штук 20-24 - разные жидкости, анимация нужна только базовая, мол газы для газированных напитков, 1.5 секундная анимация для обычных). Налить нужно за 1 удержание пальца на экране, если перелил более чем на 5-7% - проиграл. Игра не подразумевает размещения где-то или коммерческой продажи - сугубо поностальгировать.
Москва
Фрилансеры
2025-08-24
Откликнуться
Создание нейросетей
дистанционно
договорная
Разработка с нуля, доработка существующего продукта. Мы команда нейропродакшена. На рынке 4й год. Работаем на рынке РФ, ОАЭ, Саудия, Германия и Франция, Америка(ЛА) и др. Для долгосрочных проектов рассматриваем в команду ИИ-креаторов, кто умеет работать с топовыми нейросетями. Направляйте, пожалуйста, сразу своё портфолио. Также есть интересные внутренние проекты по съёмкам полного метра на ИИ, нейрочелленджи, вертикальные видео с персонажами, есть курс по ИИ (сейчас готовим очередной курс для образоват учреждений) для нового учебного года. Кто хочет присоединится в дружную быстро-растущую креативную команду, пишите.
Москва
Фрилансеры
2025-08-24
Откликнуться
Разработка игр
дистанционно
договорная
Создать мультиплеер на базе выделенного сервера. Игра: для установки на ПК. Игра: многопользовательская. Жанр: Симулятор. Графика: 3D.
Москва
Фрилансеры
2025-08-24
Откликнуться
Программисты
дистанционно
договорная
Разработка чат-ботов. Задачи чат-бота: информирование клиентов. Платформа: Telegram. Продукт: Яндекс Такси. Техзадание есть.
Амурская область
Фрилансеры
2025-08-24
Откликнуться
Программисты
дистанционно
договорная
Веб-разработка. Разработка с нуля. Все в пдф файле.
Москва
Фрилансеры
2025-08-24
Откликнуться
Разработка ИИ
дистанционно
договорная
Техническое задание (ТЗ) на разработку ИИ-агента для студии лазерной эпиляции 1. Название проекта: Разработка и интеграция интеллектуального ИИ-ассистента для автоматизации студии лазерной эпиляции. 2. Цель проекта: Создать единую систему автоматизации, которая будет выступать первичным консультантом, администратором и напоминателем для клиентов, интегрированную с CRM-системой YCLIENTS и работающую across всех основных каналов коммуникации. 3. Ключевые функции системы: 3.1. Коммуникация и консультация: Вежливое приветствие и представление бота. Ответы на частые вопросы о процедурах, подготовке, уходе. Консультация по противопоказаниям на основе предоставленного списка. Отправка актуального прайс-листа (текстом или файлом) по запросу клиента. Обработка сложных и креативных вопросов с помощью нейросети (например, "больно ли?", "посоветуйте, что лучше сделать?"). 3.2. Работа с записями (Интеграция с YCLIENTS API): Проверка свободных слотов в расписании мастеров через API YCLIENTS. Полноценное оформление записи: получение от клиента данных (имя, телефон, выбранная услуга, желаемая дата и время) и автоматическое создание соответствующей записи в YCLIENTS. Автоматическое отправление клиенту подтверждения об успешной записи с деталями. 3.3. Система напоминаний: Автоматическая отправка напоминания за 24 часа до процедуры. Автоматическая отправка напоминания за 1 час до процедуры. Напоминания должны отправляться в тот же мессенджер, через который была осуществлена запись. 3.4. Мультиканальность: Агент должен быть полноценно интегрирован и работать в: Telegram (через Telegram Bot API) Instagram Direct (через Instagram Graph API) WhatsApp (через WhatsApp Business API) IP-Телефония (через интеграцию с виртуальной АТС, например, Zadarma/Mango Office). Функционал: прием входящего звонка, преобразование речи в текст (STT), обработка запроса, преобразование текстового ответа в речь (TTS) и озвучивание. 4. Что необходимо предоставить по итогу: Полностью работоспособного и протестированного ИИ-агента. Настроенные и подключенные каналы связи (Telegram-бот, аккаунт в Instagram, WhatsApp Business, номер телефонии). Рабочую интеграцию с YCLIENTS (создание записей, проверка слотов). Настроенную систему напоминаний. Инструкцию для администратора по управлению базой знаний (как обновлять прайс, акции, противопоказания). Техническую документацию по архитектуре решения. 5. Критерии приемки: Агент корректно и без ошибок обрабатывает 95%+ типовых запросов. Запись из всех мессенджеров и с телефона создается в YCLIENTS корректно, все данные передаются без искажений. Напоминания приходят стабильно и без сбоев. Скорость ответа агента не превышает 3-5 секунд.
Москва
Фрилансеры
2025-08-23
Откликнуться
Разработка ботов Telegram
дистанционно
договорная
Задачи чат-бота: финансовые операции. Продукт: промтинг. Техзадание есть. Функционал который видит пользователь: Человек жмет кнопку старт, бот пишет "я готов, давай свой промт", человек пишет боту сообщение в свободной форме, бот говорит "я понял твой промт, подтверждаешь?Делаем?", человек сбрасывает или соглашается, если согласился то бот ему выдает json промт текстом. JSON промты выдаёт мой ИИ агент, вам ничего про JSON знать не требуется. У пользователя списался один тестовый запрос из 3х. И так далее. После того как он три раза получил промт на четвертый раз пользователь получает сообщение "ваши бесплатные запросы кончились и обновится через неделю" и видит кнопку КУПИТЬ Дальше нажимает кнопку купить, выбирает вручную сумму(оплата через крипто мерчант Heleket) все апи дам. пользователь пополнил, ему упали токены и у него эти токены дальше тратятся также на промты. Как это должно быть реализовано: После нажатия кнопки старт карточка пользователя заносится в supabase или гугл таблицу. Сообщение от человека отправляется ИИ агенту, проверяет занятость и очередь(технически один промт в зависимости от сложности обрабатывается 10-30 секунд). объяснение - Занятость может быть из-за того что пользователей одновременно может быть множество, а ИИ агентов ограниченное количество. Независимо от очереди как только человек подтвердил свой промт-сообщение то человеку отправляется техническое сообщение "запрос принят, примерное время выполнения 2 минуты(зависит от очереди). Как только ИИ агент выполнил задачу и сгенерил json промт сразу отдает боту и бот выдает его пользователю и списывает с него токены. Также необходимо прикрутить реферальную систему при которой за каждого приглашенного пользователя будут начисляться токены. Каждые 10 запросов реферала накопят на один бесплатный запрос пригласителю.
Москва
Фрилансеры
2025-08-23
Откликнуться