Ошибка `TypeError: Cannot read properties of undefined (reading 'source')` указывает на то, что скрипт пытается получить доступ к свойству объекта, который не определен. Определение точного причины этой ошибки требует просмотра кода скрипта, но я дам общие советы по исправлению и настройке такого скрипта.
Во-первых, нужно убедиться, что скрипт использует правильные объекты API, доступные в Excel для веба, которые могут отличаться от тех, что доступны в настольной версии Excel.
Чтобы исправить ошибку и настроить скрипт для отслеживания изменений и отправки уведомлений в Telegram:
1. Убедитесь, что у вас есть действующий бот в Telegram и получите его токен.
2. Создайте скрипт Office Script, который будет работать в Excel для веба. Код может быть написан в редакторе скриптов, доступном в Excel для веба.
Примерное содержание скрипта для отслеживания изменений:
```javascript
async function onEdit(e) {
try {
// Получение информации о том, что было изменено
const range = e.range; // e - это объект события, но в Office Scripts он не используется так же, как в Google Sheets или VBA
const sheet = range.getWorksheet();
const cellValue = range.getValue();
// Логика для определения, была ли добавлена новая строка с фамилией
// и/или изменен статус на "Готово"
if (cellValue === "Готово") {
// Отправить уведомление в Telegram
await sendTelegramNotification("Статус изменен на 'Готово'");
}
} catch (error) {
console.error("Ошибка: " + error.message);
}
}
async function sendTelegramNotification(message) {
const telegramToken = 'ВАШ_ТЕЛЕГРАМ_ТОКЕН';
const chatId = 'ВАШ_CHAT_ID';
const url = `https://api.telegram.org/bot${telegramToken}/sendMessage?chat_id=${chatId}&text=${encodeURIComponent(message)}`;
// Тут будет отправка сообщения используя Office Script
// На текущий момент непосредственная отправка HTTP запросов из Office Scripts не поддерживается,
// вам потребуется использовать Power Automate или другие сервисы для интеграции с Telegram API.
}
```
Обратите внимание, что Office Scripts не поддерживает отправку HTTP запросов напрямую. Вместо этого можно использовать Microsoft Power Automate (ранее Microsoft Flow) для создания HTTP запроса в Telegram API. Ваш скрипт может вызвать Power Automate, который в свою очередь отправит сообщение в Telegram.
3. Настройте событие изменения ячейки. В Excel для веба встроенные события изменения ячейки не поддерживаются так же, как, например, в Google Sheets. Вам нужно будет использовать регулярное выполнение скрипта (например, через Power Automate) для проверки изменений на листе.
4. Если у вас есть доступ к Power Automate, создайте задание, которое будет регулярно запускать ваш скрипт Excel и в случае обнаружения изменений вызывать отправку уведомления в Telegram.
5. Проверьте своё решение, убедитесь, что уведомления приходят корректно.
Учтите, что это только общий план решения задачи. Реализация может потребовать более тщательной настройки в зависимости от специфики ваших данных в