Консультация № 160718
17.02.2009, 15:56
0.00 руб.
0 1 1
Уважаемые эксперты! Помогите, пожалуйста, решить проблему с выгрузкой из 1С 7.7, 630 релиз, заявок на кассовый расход в Казначейскую систему. Формат выгрузки - самый распоследний, 0901. Дело в том, что 1сная выгрузка делает сокращение руководителя и главного бухгалтера по образцу:
Иванов А.И.. Казначейство требует, чтобы было А.И. Иванов. В выгрузке разобраться не получилось, слишком все обобщенно, не видно, где идет сокращение.

Обсуждение

Неизвестный
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) + ".";
ФИО = Фамилия + " " + Имя + Отчество;
КонецЕсли;
Возврат ФИО
КонецЕсли;
Возврат С
КонецЕсли;
КонецФункции
Форма ответа