1С:предприятие 7.7 НЕКОРРЕКТНОЕ ОТОБРАЖЕНИЕ ОТВЕТСТВЕННОГО ЛИЦА
26.11.2010
14:44
#61
Подведём итог.
Если устраивает вариант в подписи ИП Иванов С. Г., то заводить между словами "ИП" и "Иванов" надо не пробел, а символ с кодом 255.
Если устраивает вариант в подписи ИП Иванов С. Г., то заводить между словами "ИП" и "Иванов" надо не пробел, а символ с кодом 255.
26.11.2010
14:52
#62
"Да! И в сотрудниках писать полностью "ИП255Иванов Иван Иванович"! Из полного ФИО программа делает инициалы, по моему, в этой функции:
Функция ФИО(Сотрудник) Экспорт
Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
Перем ПозицияПервогоПробела, ПозицияВторогоПробела;
ПолноеИмя = Сотрудник.Наименование;
ПозицияПервогоПробела = Найти(ПолноеИмя, " ");
Если ПозицияПервогоПробела = 0 Тогда
Возврат ПолноеИмя;
Иначе
Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
ИмяОтчество = СокрЛ(ИмяОтчество);
Имя = Лев(ИмяОтчество, 1)+".";
ПозицияВторогоПробела = Найти(ИмяОтчество, " ");
Если ПозицияВторогоПробела = 0 Тогда
Возврат Фамилия+Имя;
Иначе
Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
Отчество = СокрЛ(Отчество);
Отчество = Лев(Отчество, 1)+".";
Возврат Фамилия+Имя+Отчество;
КонецЕсли;
КонецЕсли;
КонецФункции"
Функция ФИО(Сотрудник) Экспорт
Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
Перем ПозицияПервогоПробела, ПозицияВторогоПробела;
ПолноеИмя = Сотрудник.Наименование;
ПозицияПервогоПробела = Найти(ПолноеИмя, " ");
Если ПозицияПервогоПробела = 0 Тогда
Возврат ПолноеИмя;
Иначе
Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
ИмяОтчество = СокрЛ(ИмяОтчество);
Имя = Лев(ИмяОтчество, 1)+".";
ПозицияВторогоПробела = Найти(ИмяОтчество, " ");
Если ПозицияВторогоПробела = 0 Тогда
Возврат Фамилия+Имя;
Иначе
Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
Отчество = СокрЛ(Отчество);
Отчество = Лев(Отчество, 1)+".";
Возврат Фамилия+Имя+Отчество;
КонецЕсли;
КонецЕсли;
КонецФункции"
26.11.2010
14:56
#63
"Читал долго, много смеялся. В общем решил все-таки помочь человеку. вот значит то, что нужно изменить:
Заходим в Конфигуратор, открываем Глобальный модуль, найти и изменить следующие функции на то, что я предлагаю:
__Первая функция:
Функция глФамилияИмяОтчество(Объект,Фамилия="""",Имя="""",Отчество="""") Экспорт
Если ТипЗначения(Объект)=2 Тогда
Список = глРазложить(СтрЗаменить(Объект, ".",". "), " ");
Иначе
Список = глРазложить(СтрЗаменить(Объект.Наименование, ".", ". ")," ");
КонецЕсли;
Фамилия = ?(0 < Список.РазмерСписка(), Список.ПолучитьЗначение(1), """");
Имя = ?(1 < Список.РазмерСписка(), Список.ПолучитьЗначение(2), """");
Если Список.РазмерСписка() > 2 Тогда
//Начало Изменено Безденежных Д.Е.
//вот тут нам нужно учесть дополнения к отчеству, например что нибудь типа "оглы". поэтому меняем процедуру на это вот
//// а вот отчество бывает и не из одного слова
//Для Сч = 3 По Список.РазмерСписка() Цикл
// Отчество = Отчество + Список.ПолучитьЗначение(Сч) + " ";
//КонецЦикла;
Если Список.РазмерСписка() > 3 Тогда
Отчество = Список.РазмерСписка(3);
Для Сч = 4 По Список.РазмерСписка() Цикл
ДопОтчество = ДопОтчество + Список.ПолучитьЗначение(Сч) + " ";
КонецЦикла;
ИначеЕсли Список.РазмерСписка() = 3 Тогда
Отчество = Список.РазмерСписка(3);
КонецЕсли;
//Конец Изменено Безденежных Д.Е.
Если ПустоеЗНачение(Отчество) = 0 Тогда
Отчество = Лев(Отчество,СтрДлина(Отчество)-1);
КонецЕсли;
КонецЕсли;
//Начало Изменено Безденежных Д.Е.
//учитываем ДопОтчество
//Возврат Фамилия+?(ПустоеЗначение(Имя)=0," "+Лев(Имя,1)+"."+?(ПустоеЗначение(Отчество)=0,Лев(Отчество,1)+".",""""),"""")
Возврат Фамилия+?(ПустоеЗначение(Имя)=0," "+Лев(Имя,1)+"."+?(ПустоеЗначение(Отчество)=0,Лев(Отчество,1)+".","""") + ?(ПустоеЗначение(ДопОтчество) = 0, " " + ДопОтчество, """"),"""")
//Конец Изменено Безденежных Д.Е.
КонецФункции // глФамилияИмяОтчество
__Вторая функция:
Функция ФИО(Сотрудник) Экспорт
Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
Перем ПозицияПервогоПробела, ПозицияВторогоПробела;
ПолноеИмя = Сотрудник.Наименование;
ПозицияПервогоПробела = Найти(ПолноеИмя, " ");
Если ПозицияПервогоПробела = 0 Тогда
Возврат ПолноеИмя;
Иначе
Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
ИмяОтчество = СокрЛ(ИмяОтчество);
Имя = Лев(ИмяОтчество, 1)+".";
ПозицияВторогоПробела = Найти(ИмяОтчество, " ");
Если ПозицияВторогоПробела = 0 Тогда
Возврат Фамилия+Имя;
Иначе
Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
Отчество = СокрЛ(Отчество);
//Начало Изменено Безденежных Д.Е.
//вот тут сделаем красивость, учтем дополнительно отчество, например "оглы"
//Отчество = Лев(Отчество, 1)+".";
//Возврат Фамилия+Имя+Отчество;
ДопОтчество = """";
Список = глРазложить(СтрЗаменить(Отчество, ".",". "), " ");
Если Список.РазмерСписка() > 1 Тогда
Отчество = Лев(Список.ПолучитьЗначение(1), 1)+".";
Для Сч = 2 По Список.РазмерСписка() Цикл
ДопОтчество = ДопОтчество + Список.ПолучитьЗначение(Сч) + " ";
КонецЦикла;
Иначе
Отчество = Лев(Отчество, 1)+".";
КонецЕсли;
Возврат Фамилия+Имя+Отчество + ?(ПустоеЗначение(ДопОтчество) = 0, " " + ДопОтчество, """");
//Конец Изменено Безденежных Д.Е.
КонецЕсли;
КонецЕсли;
КонецФункции
у меня работает... Оптишитесь плиз, буду ждать..."
Заходим в Конфигуратор, открываем Глобальный модуль, найти и изменить следующие функции на то, что я предлагаю:
__Первая функция:
Функция глФамилияИмяОтчество(Объект,Фамилия="""",Имя="""",Отчество="""") Экспорт
Если ТипЗначения(Объект)=2 Тогда
Список = глРазложить(СтрЗаменить(Объект, ".",". "), " ");
Иначе
Список = глРазложить(СтрЗаменить(Объект.Наименование, ".", ". ")," ");
КонецЕсли;
Фамилия = ?(0 < Список.РазмерСписка(), Список.ПолучитьЗначение(1), """");
Имя = ?(1 < Список.РазмерСписка(), Список.ПолучитьЗначение(2), """");
Если Список.РазмерСписка() > 2 Тогда
//Начало Изменено Безденежных Д.Е.
//вот тут нам нужно учесть дополнения к отчеству, например что нибудь типа "оглы". поэтому меняем процедуру на это вот
//// а вот отчество бывает и не из одного слова
//Для Сч = 3 По Список.РазмерСписка() Цикл
// Отчество = Отчество + Список.ПолучитьЗначение(Сч) + " ";
//КонецЦикла;
Если Список.РазмерСписка() > 3 Тогда
Отчество = Список.РазмерСписка(3);
Для Сч = 4 По Список.РазмерСписка() Цикл
ДопОтчество = ДопОтчество + Список.ПолучитьЗначение(Сч) + " ";
КонецЦикла;
ИначеЕсли Список.РазмерСписка() = 3 Тогда
Отчество = Список.РазмерСписка(3);
КонецЕсли;
//Конец Изменено Безденежных Д.Е.
Если ПустоеЗНачение(Отчество) = 0 Тогда
Отчество = Лев(Отчество,СтрДлина(Отчество)-1);
КонецЕсли;
КонецЕсли;
//Начало Изменено Безденежных Д.Е.
//учитываем ДопОтчество
//Возврат Фамилия+?(ПустоеЗначение(Имя)=0," "+Лев(Имя,1)+"."+?(ПустоеЗначение(Отчество)=0,Лев(Отчество,1)+".",""""),"""")
Возврат Фамилия+?(ПустоеЗначение(Имя)=0," "+Лев(Имя,1)+"."+?(ПустоеЗначение(Отчество)=0,Лев(Отчество,1)+".","""") + ?(ПустоеЗначение(ДопОтчество) = 0, " " + ДопОтчество, """"),"""")
//Конец Изменено Безденежных Д.Е.
КонецФункции // глФамилияИмяОтчество
__Вторая функция:
Функция ФИО(Сотрудник) Экспорт
Перем ПолноеИмя, Фамилия, ИмяОтчество, Имя, Отчество;
Перем ПозицияПервогоПробела, ПозицияВторогоПробела;
ПолноеИмя = Сотрудник.Наименование;
ПозицияПервогоПробела = Найти(ПолноеИмя, " ");
Если ПозицияПервогоПробела = 0 Тогда
Возврат ПолноеИмя;
Иначе
Фамилия = Лев(ПолноеИмя, ПозицияПервогоПробела);
ИмяОтчество = Сред(ПолноеИмя, ПозицияПервогоПробела+1);
ИмяОтчество = СокрЛ(ИмяОтчество);
Имя = Лев(ИмяОтчество, 1)+".";
ПозицияВторогоПробела = Найти(ИмяОтчество, " ");
Если ПозицияВторогоПробела = 0 Тогда
Возврат Фамилия+Имя;
Иначе
Отчество = Сред(ИмяОтчество, ПозицияВторогоПробела+1);
Отчество = СокрЛ(Отчество);
//Начало Изменено Безденежных Д.Е.
//вот тут сделаем красивость, учтем дополнительно отчество, например "оглы"
//Отчество = Лев(Отчество, 1)+".";
//Возврат Фамилия+Имя+Отчество;
ДопОтчество = """";
Список = глРазложить(СтрЗаменить(Отчество, ".",". "), " ");
Если Список.РазмерСписка() > 1 Тогда
Отчество = Лев(Список.ПолучитьЗначение(1), 1)+".";
Для Сч = 2 По Список.РазмерСписка() Цикл
ДопОтчество = ДопОтчество + Список.ПолучитьЗначение(Сч) + " ";
КонецЦикла;
Иначе
Отчество = Лев(Отчество, 1)+".";
КонецЕсли;
Возврат Фамилия+Имя+Отчество + ?(ПустоеЗначение(ДопОтчество) = 0, " " + ДопОтчество, """");
//Конец Изменено Безденежных Д.Е.
КонецЕсли;
КонецЕсли;
КонецФункции
у меня работает... Оптишитесь плиз, буду ждать..."
26.11.2010
15:01
#65
Хотя это наверное способ уйти от типовой платформы о_О ну да ладно, работает ведь
26.11.2010
15:06
#68
Да вижу уже
пока писал, опередили меня тут)) хотя все равно ведь вариант, не так ли? ))
Читают тему
(гостей: 1)