18.02.2009, 11:21
общий
это ответ
Здравствуйте, Kismet!
Скорее всего, обработка вызывает процедуру из глобального модуля глФИО или глПолучитьФИО (ну или по смыслу), которая берет из карточки сотрудника Ф.И.О. и формироует строку вида Фамилия И.О., а Вам необходимо эту процедуру из глобального модуля переместить в модуль этой обработки и подкорректировать, чтобы строка формировалась как нужно казначейству: И.О. Фамилия.
В Приложении пример переделанной процедуры.
Успехов!
С уважением, Владимир.
Приложение:
// получаем ФИО сотрудника в краткой или полной форме
Функция глФИО(Сотр,Кратко=0) Экспорт
Если ТипЗначенияСтр(Кратко) = "Перечисление" Тогда // Перечисление.ДаНет.Да или Нет
Кратко = ?(Кратко = Да,0,1);
КонецЕсли;
Если ТипЗначения(Сотр) = 11 Тогда // Справочник
С = Сотр;
Если Сотр.Вид() = "МестаХранения" Тогда
// ФИО МОЛа
Если Сотр.Тип = Перечисление.ТипыМестХранения.МОЛ Тогда
С = Сотр.МОЛ;
Иначе
// для склада выдадим наименование (забыли, что это не МОЛ?)
Возврат Сотр.Наименование;
КонецЕсли;
КонецЕсли;
Если Кратко = 1 Тогда // !!! вот здесь и формируем инициалы+фамилия (в оригинале Фамилия+И.О.)
Если ПустоеЗначение(С.Отчество) = 1 Тогда // если у сотрудника нет отчества (например, иностранец)
Возврат Сред(С.Имя,1,1)+" "+Сокрлп(С.Фамилия)+".";
Иначе //в полной форме
Возврат Сред(С.Имя,1,1)+". "+Сред(С.Отчество,1,1)+"."+" "+СокрЛП(С.Фамилия);
КонецЕсли;
Иначе
Возврат Сокрлп(С.Имя) + " " + Сокрлп(С.Отчество)+" "+Сокрлп(С.Фамилия) ;
КонецЕсли;
Иначе
С = Сотр;
Если (Кратко = 1) И (Найти(С,".") = 0) Тогда
ФамилияПоз = Найти(С," ");
Фамилия = Лев(С,ФамилияПоз - 1);
С = СокрЛП(Сред(С, СтрДлина(Фамилия) + 2));
Если Найти(С," ") = 0 Тогда // если нет пробела - значит нет отчества
ФИО = Фамилия + " "+Лев(С,1) + ".";
Иначе //в полной форме
Имя = Лев(С,Найти(С," ") - 1);
Отчество = Сред(С, СтрДлина(Имя) + 2);
Имя = Лев(Имя,1) + ". ";
Отчество = Лев(Отчество,1) + ".";
ФИО = Фамилия + " " + Имя + Отчество;
КонецЕсли;
Возврат ФИО
КонецЕсли;
Возврат С
КонецЕсли;
КонецФункции