Склонение ФИО, должностей и подразделений в 1С? Это просто!    
   
Главная | Словоблудие | Изучаем | Подключаем | Склоняем | Файлы и ссылки
   

 

 


..Имя человека - это самый сладостный и самый важный для него звук на любом языке. [Д. Карнеги ]

Кто русский в школе учить пытался - знает, ох, знает, что это за могучий язык! По-видимому, знают об этом и разработчики программного обеспечения: если постараться учесть большую часть правил грамматики, то полноценное кодирование почти наверняка отнимает массу времени (которого почти всегда не хватает). Исходя из этого критерия, механизмы, реализующие функции склонения, например, ФИО сотрудников, можно условно поделить на 2 группы.

К системам первой группы относятся те, краеугольным камнем которых является хранение всех возможных видоизменений начальной формы. Например, вот так можно представить все возможные формы склонения ФИО, заданного тремя строками:

Падеж

Фамилия

Имя

Отчество

именительный

Примеров

Пример

Примерович

родительный

Примерова

Примера

Примеровича

дательный

Примерову

Примеру

Примеровичу

винительный

Примерова

Примера

Примеровича

творительный

Примеровым

Примером

Примеровичем

предложный

Примерове

Примере

Примеровиче


С должностями и подразделениями и так всё понятно. Кто напишет функцию для склонения - получит 100 баксов:) Но не особенно сложные алгоритмы позволяют быстро предоставить необходимую форму данных. Да и вся ответственность по достоверному склонению почти целиком ложится на оператора. Правда, по мере ввода информации в базу данных, последняя "самообучается" и в подходящих случаях может предложить пользователю "автозаполнение", т.к. некоторые варианты к этому моменту уже имеются. Такой подход широко применяется во "взрослых" корпоративных системах автоматизации, как самое эффективное решение при минимальных затратах на реализацию. Как компенсацию морального вреда работникам отделов кадров при вводе данных в пустую базу, можно было бы включать в комплект поставки "Больших Систем" заполненные справочники наиболее часто упоминающихся имен, фамилий и отчеств :)

Системы второй группы - это, как правило, попытки максимально запрограммировать слонение ФИО, должностей и подразделений. СтОящие алгоритмы достаточно сложны, а отладка отнимает довольно много времени. Тем не менее, в виде готовых поключаемых модулей или библиотек, такие программные средства удобно применять там, где не требуется (а то и вовсе нежелательна) модификация структуры существующей базы данных. В кругах, приближённых к 1С, популярны, например, процедуры Ю.Железнякова , позволяющие, путем добавления в глобальный модуль конфигурации текстов автора, вполне сносно склонять то, что требуется.

Оптимальным для качественного склонения, как некоторый симбиоз двух вышеописанных групп ПО, представляется такое решение:

  • информация в БД представлена в своей "начальной" форме ("Примеров Пример Примерович", "Примерист примерного примера")
  • склонение осуществляется алгоритмически (отдел кадров вам на памятник скинется), если это возможно, все остальные случаи рассматриваются как исключения и фиксируются в специальной базе данных.

Очевидно, что:

  • чем лучше правила реализованы программно -тем меньше словарь исключений (а то ведь можно всё в этой жизни считать исключениями - получится ПО первой группы)
  • чем лучше реализован словарь исключений - тем качественнее склоняет программа
  • базу данных исключений можно хранить в той же БД, что и данные, а можно и отдельно: тогда "обученный" таким образом словарь можно будет послать коллеге по почте... При этом, если размечтаться, то можно сделать так, чтобы:
  • программа самостоятельно дополняла свой словарь исключений (после того, как её научит оператор)

Есть такое чудо на белом свете! К тому же универсальное. Работает в MS Office, Delphi и других средах программирования. Научно-подкованная разработка, одна из первых версий заняла приз тестовой лаборатории журнала PC Magazine RE.

 

   
   
(C) 2007 NDeclin
   
Hosted by uCoz