Множество различных документов (счетов) от поставщиков
Сегодня мои руки снова были не для скуки, а душа не для занудства и отдыха. Я доделал функцию красивого форматирования номеров моих документов в моей базе CS CRM (все посты про неё по тэгу «CRM»). Потому что задрало смотреть на то, как другие (даже крайне серьёзные и суровые) поставщики и разработчики (вплоть до АБС банков) ни разу не парятся про то, как выглядят их номера и то, насколько удобно их читать и вводить, если нельзя скопипастить.
Сейчас я — ярый сторонник того, что многое зависит от мелочей. И одна из таких мелочей — это то, что я с самых ранних времён проектирования своей базы сделал там возможность хранить номера внешних (входящих) документов.
Для этого у каждого документа моей базы есть галочка «Входящий документ» и поля для указания его типа, номера и даты. Выглядит это вот так:
Хранение типа и номера входящего документа в CS CRM (счёт, заказ, накладная)
Вроде бы это мелочь… но пользы от неё дофигища:
- Всё хранится в одной единой базе. Не надо искать номер счёта или заказа где-то в почте или в текстовом файле;
- База поддерживает вложения (можно, как в E-Mail, вложить к документу файл — счёта, заказа). Можно найти нужный счёт и прям из базы его открыть;
- Этот номер выводится в распечатках и отчётах (например, заказы по поставщикам);
- Так как деньги учитываются в этой же базе, то получается очень удобно: оплатил заказ во ВсеИнструменты и сразу записал его номер там, где платил;
- Если надо позвонить поставщику и поинтересоваться о том, как идут дела, можно открыть документ моей базы, и сразу увидеть номер заказа (или счёта) у поставщика вместе со списком того, что было заказано.
В общем, вся информация у меня под рукой. Я даже не знаю, как я без этого жил вообще.
Чем больше я вносил номера входящих документов, тем больше я начинал злиться на кучу дураков, которые делают информационные системы предприятий.
Вот посмотрите на этот списочек:
Различные номера заказов за историю CS CRM. Цифры везде пишутся слитно
Все эти номера объединяет то, что их легко скопировать на компьютере, но для человека они не читаемы, так как в них не разделены цифры. Иногда приходится тыкать ручкой, ставить точечки и так, группами цифр, это набивать.
Так как в базах данных у каждой записи есть уникальный ID, то чаще всего он и является номером заказа. Всё, что делают программисты — это выводят такой номер «наружу» в печатную форму, не заботясь о том, насколько он будет читабелен.
Некоторые фирмы пытаются изгаляться и вводят разные префиксы, но это показывает их бескультурие ещё больше:
Примеры документов с нечитаемыми номерами (все цифры идут слитно)
- Зачем ставить дату в номере счёта, если она и так есть? Если бы уж ставили — то хоть в обратном порядке (Месяц-День), чтобы потом можно было сортировать по дате не как «0605», «0708», «0810», «3105» (жирным выделил месяц, который идёт не по порядку), а как у нормальных людей: «0506″, «0531″, «0807″, «1008″ (кавычки будут сбиты — это так чёртов движок форматирует текст).
- Всякие сраные префиксы чуток помогают жить, но когда после них идёт куча цифр, пользы это не приносит.
В общем, меня всё это выбесило и я решил, что СВОИ номера документов при печати я буду форматировать ДЛЯ ЛЮДЕЙ!
Нумерация всех объектов в моей базе — сквозная. Я не начинаю новые номера в каждом году, и они всегда идут подряд. Благодаря этому они уникальны в пределах базы, и вы всегда можете сказать «Щит номер 342» или «Договор 420», и я легко и точно найду именно его.
Сегодня днём поотдыхал в базе и сделал в Константах такую вот настройку режима форматирования номеров документов:
Настройка для форматирования номеров документов в CS CRM
А потом написал такой вот код и вставил его в вывод номеров документов в их заголовках (кроме колонтитулов):
Код 1С для форматирования номеров документов в CS CRM
Итого, у меня есть три режима форматирования номера (я буду пользоваться третьим, но у меня есть привычка кодить универсально):
- Не форматировать: номер будет выведен как есть, например «1234532»;
- Разделять триады всегда: номер будет всегда поделён на три части, например «123 456» или «1 234»;
- Разделять триады от 5 знаков: номер будет разделяться, если в нём 5 или более знаков, например «1234» или «12 345».
Мне нравится третий вариант, потому что если тупо разделять триады (учитесь, учитесь мелочам и тонкостям!), то когда номер документа имеет 4 знака, первый теряется. Мозгу неудобно отличать «1 453», и он отлично увидит и запомнит «1453», потому что мнемонически скажет «четырнадцать пятьдесят три». А когда он увидит «14 231», то тоже легко скажет «четырнадцать двести тридцать один», и всё будет хорошо.
Дополнительно можно указать то, через что разделять триады чисел: пробел (так и сделано), тире, точка или ещё какой-то знак. Я этим не буду пользоваться, но, если захочется, можно выводить номера как «21-529» или что-то в этом роде.
Вот примерчик работы моей функции. Мне чертовски нравится!
Примеры форматирования номеров документов в CS CRM
Проекту исполнилось 16 лет! Поддержать проект материально, проспонсировать проекты Автора или сделать ему подарок можно на этой странице: "Донаты и Спонсорство, Список Желаний".
В данном случае правильнее использовать не пробел, а неразрывный пробел « ».
Он не только для разделения разрядов в числах применяется: https://ru.wikipedia.org/wiki/Неразрывный_пробел
…вот только в 1С 7.7 1998 года такого понятия нет в принципе. ВООБЩЕ.