22 ноября, 2024

Оставляем только числа

С последними нововведениями в учете в стандартных конфигурациях оказалась востребованной возможность программы автоматически очищать строку символов от знаков, не являющихся цифрами: в новой налоговой накладной, в печатной форме, выводятся номера телефонов, для этих номеров предусмотрены 10 клеток, в которые вносятся цифры, по одной в каждую клетку. Как правило, в справочнике, номера телефонов записаны так, как это обычно принято – с разделением на код в скобках и номер, часто номер разделен на группы через тире. Когда номер телефона выводится на печатную форму программа просто берет подряд первые 10 символов из строки с номером и расставляет символы по клеткам. Можно, конечно, сказать пользователям, чтобы привели все номера в базе к виду без скобок тире и прочих ненужных символов, но тогда в других местах, где удобнее было-бы читать “нормальный” номер будет выводится уже исправленный и неудобочитаемый.

Верное, программное решение: добавить функцию, выдающую строку, полученную из исходной путем удаления нечисловых символов. Алгоритм простой – посимвольно перебирать исходную строку, символы проверять числовой или нет, числовые копировать в новую строку, нечисловые пропускать. Один из вариантов функции (для платформы 1С версии 7.7):

2011-06-10_142653

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