Использование полей-инфоблоков в вычислениях полей

Да, использовать в Вычислить значения поля инфоблоки было бы удобно и нужно

Да, использовать в Вычислить значения поля инфоблоки было бы удобно и нужно
1
100%
Нет, слишком это сложно, путь будет как будет
0
Голосов нет
 
Всего голосов: 1
Аватара пользователя
Илья Федоров
Сообщения:12
Зарегистрирован:16.12.2020 08:11
Использование полей-инфоблоков в вычислениях полей

15.02.2021 12:15

Добрый день, Уважаемые коллеги. Прошу высказать ваши мнения и ваши кейсы по этой теме и проголосовать за эту тему.
Итак суть вопроса: по письмах в Деду Морозу в конце 2020 года любимая нами команда ПланФикс выкатила изменение которое позволило в правилах почты подставлять значения из полей-инфоблоков в название задачи и описание задачи (возможно что и в комментарий пока не проверял).
13.02.2021 я увидел что для метода Вычислить значение поля, также есть возможность выбирать поля-инфоблоки, но при тестировании оказалось, что на текущий момент работа с ними в методе Вычислить значение поля не предусмотрена.
Объясню кейс для которого такая возможность может быть использована.
Допустим у вас есть форма обратной связи настроенная через Яндекс формы. Результат заполнения формы присылается в виде при котором ответ выводится после вопроса в новой строке.
Такая логика навязывает нам использовать для извлечения по меткам способ "от метки до метки", а не способ до конца строки.
При этом можно настроить письмо так чтобы в нем либо приходили вопросы и ответы только по тем вопросам на которые заполнен ответ либо по всем вопросам формы, но в этом случае после вопроса на который не задан ответ присылается текст Нет ответа.
Например, у на есть форма в которой три вопроса (специально делаю самый простой вариант), первые два ответа обязательны, последний нет.
Если мы получаем в ПФ письмо с вариантом "только с ответами", и пользователь не заполнял третий вопрос (который не обязательный) то у нас нет метки конца для вычисления значения второго поля.
Вопрос 1:
Ответ на вопрос 1
Вопрос 2
Ответ на вопрос 2

Если мы получаем в ПФ письмо с вариантом "все вопросы", и пользователь не заполнял третий вопрос (который не обязательный) то у нас нет метки конца для вычисления значения второго поля.
Вопрос 1:
Ответ на вопрос 1
Вопрос 2:
Ответ на вопрос 2
Вопрос 3:
Нет ответа.
В этом случае мы разберем ответы на вопрос 1, 2, 3. Но в ответе 3 будет бесполезная для нас информация Нет ответа.

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

Если будет возможность в методе вычислить значение поля использовать поле-инфоблок, в том числе с использованием формул и функций то эта вариативность может быть устранена настройкой правильной формулы вычисления.
В этом случае мы можем попробовать извлечь ответ на вопрос 2, таким образом.
Делаем для извлечения для двух вариантов
Ответ 2.1 от метки: Вопрос 2: до метки Вопрос 3:
Ответ 2.2 от метки: Вопрос 2: до служебной метка из специального поля яндекс формы например ID Ответа.

Таким образом
Если есть ответ на вопрос 3, то нужный нам результат будет в поле Ответ 2.1. (в поле Ответ 2.2. тоже что-то будет но нам этот результат не нужен)
Если нет ответа на вопрос 3, то нужный нам результат будет в поле Ответ 2.2.

А теперь при Вычислении значения в поле Ответ на вопрос 2 (тип строк или текст) можем сделать такую формулу:
Если({{Инфоблок.Ответ 2.1}}="";{{Инфоблок.Ответ 2.2}};{{Инфоблок.Ответ 2.1}})

Таким образом мы в поле задачи Ответ на вопрос 2 получили нужный нам результат, не делая несколько правил разбора.
Надеюсь понятно объяснил.

Ответить