Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы документов
Редакторы документов
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
ВКС и мессенджер
ВКС и мессенджер
Мобильные редакторы
Мобильные редакторы
Почтовый сервер
Почтовый сервер
Органайзер
Органайзер
Сервер лицензирования
Сервер лицензирования
Файл-Экспресс
Файл-Экспресс
Аналитика
Аналитика
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Пользовательские функции

Обновлено: 30.10.26

Введение

В редакторе таблиц есть возможность создания своих функций с помощью плагина Пользовательские функции.

Важно

Такая возможность есть только в редакторе таблиц.

Вкладка Плагины в десктопной версии:


Пользовательские функции доступны в десктопной версии и в онлайн версии редактора и поддерживают язык программирования JavaScript. Сама функция работает с примитивными типами данных такими как: Number, String, Array, Boolean, которые передаются в аргументы функции. Создавать функции можно с любым количеством аргументов. Возвращаемый результат переводится во внутренний тип данных ячейки (например, если вернуть A1, то будет преобразование на значение ячейки).
Важно

Диапазоны данных при передаче в аргументы оборачиваются в квадратные скобки « [] ».

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

Для десктопной версии созданные функции сохраняются локально, поэтому ими можно пользоваться в любом документе редактора таблиц на этом устройстве. Для онлайн версии созданные функции сохраняются локально для каждого браузера (если функция была создана в документе, открытом в браузере Яндекс, то, открыв этот документ в браузере Google Chrome, вы не увидите созданную функцию).

Обратите внимание

  1. Созданные функции не могут быть вызваны из мастера формул;
  2. У функций нет доступа к API редактора;
  3. Функции могут быть как синхронными, так и асинхронными (с возможностью внешних запросов);
  4. Функции нельзя использовать в макросах.

Создание пользовательской функции

Для создания функции выполните следующие шаги.

1. На вкладке Плагины нажмите кнопку Пользовательские функции Пользовательские функции:

2. В окне Пользовательские функции нажмите кнопку Создать.

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

3. Для проверки работоспособности функции нажмите кнопку Выполнить, для проверки всех созданных функций — ОК:


Если в коде функции будет найдена ошибка, то редактор её обозначит при помощи всплывающего сообщения:


Если вычисление функции выполняется больше 5 секунд, то в строке состояния отобразится предупреждение формата «Функция [название функции] выполняется дольше 5 секунд»:


4. После закрытия редактора пользовательских функций будет вызван пересчет таблицы.

Для синхронных функций:

  • Если внутри функции есть return, то функция обрабатывается как обычная стандартная функция;
  • Если внутри функции нет return, то последним аргументом будет передана функция updater ячейки, в любой момент можно в неё передать результат, в функцию updater вторым аргументом можно будет передать функцию destroy для закрывающей логики.

Для асинхронных функций:

  • Если внутри функции есть return, то изначально будет возвращено пустое значение. Затем, когда запрос завершится, после выполнения промиса будет установлено значение из промиса;
  • Если внутри функции нет return, то последним аргументом будет передана функция updater ячейки, в любой момент можно в неё передать результат, в функцию updater вторым аргументом можно будет передать функцию destroy для закрывающей логики.

5. Результат функции кэшируется. Если в ячейке A1 уже получили значение, то в A2 с такой же функцией будет отдано кэшированное значение, при этом выполняется функция. Если значение изменилось, то будет перерисовка, новое значение уйдет в кэш.

Пример синхронной функции с return


Важно

В данном примере первым аргументом передана функция return.

Пример синхронной функции без return


Важно

В данном примере последним аргументом передана функция updater.

Пример асинхронной функции с return


Важно

В данном примере первым аргументом передана функция return.

Пример асинхронной функции без return


Важно

В данном примере последним аргументом передана функция updater.

Изменение/удаление пользовательской функции

Для изменения функции выделите её в списке функций, внесите изменения в код функции и нажмите кнопку Выполнить.
Для переименования функции:

1. Выделите функцию и нажмите кнопку Переименовать;

2. Введите название и нажмите ОК:


Для удаления функции выберите её в списке функций и нажмите кнопку Удалить.

Пример

Пользователь создал функцию, которая должна складывать два аргумента.

1. Выделите ячейку, в которой должен отображаться результат выполнения функции.

2. Введите знак равно « = ».

3. Начните набирать название функции. Сразу после ввода первой буквы автоматический поиск будет выдавать подходящие результаты:


Автоматический поиск функции

4. Выберите нужную функцию и введите значения аргументов в скобках функции. Аргументы разделите точкой с запятой без добавления пробелов между аргументами.

5. Нажмите клавишу Enter.

Пример записи функции в строке формул и результат сложения представлен на рисунке ниже:

Была ли эта статья полезной?

Поделитесь пожалуйста своим мнением

      В статье есть ошибкиРекомендации не помоглиТекст трудно понятьСодержание статьи не соответствует заголовкуДругое