Замена i-го токена
Как-то в процессе реализации задачи по подарочным сертификатам столкнулся с необходимостью поменять 58-й токен в строке, разделенной запятыми для выгрузки на Фронтол.
Для подарочных сертификатов нужно было «2» заменить на «1»:

Можно было по рабоче-крестьянски сделать изменения в типовой код, но мне претит такая насильственная модификация кода.
Поэтому я не менял типовой код, а сделал пост-обработку. Уже полученную строку я обработал следующим кодом:

Вот код функции, которую пришлось набросать для этого незатейливого дела:
Функция ЗаменитьВПозиции(Знач Строка, Разделитель, Позиция, Замена) Экспорт
//Осипов ПодарочныеСертификаты 2020-11-23
//Ищет в строке позицию, считая разделители
ТекСтрока = Строка;
РезСтрока = «»;
ТекПозиция = 1;
Последний = ложь;
Пока Истина Цикл
ПозицияРазделителя = Найти(ТекСтрока, Разделитель);
Если ПозицияРазделителя = 0 Тогда
ТекАтом = ТекСтрока;
Последний = истина;
Иначе
ТекАтом = Сред(ТекСтрока, 1, ПозицияРазделителя — 1);
ТекСтрока = Сред(ТекСтрока, ПозицияРазделителя + 1);
КонецЕсли;
Если Позиция = ТекПозиция Тогда
ТекАтом = Замена;
КонецЕсли;
ТекПозиция = ТекПозиция + 1;
РезСтрока = РезСтрока + ТекАтом + ?(Последний, «», Разделитель);
Если Последний Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Возврат РезСтрока;
КонецФункции