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

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

Обновлено: 27.02.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.

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

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

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

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