Доброго времени суток ! Ребят помогите оптимизировать код плз... под стандарты !
Это выгрузка в DBF "ИНАГРО_ЗарплатаКВыплатеОрганизаций"
Процедура ВыгрузитьНажатие(ДокументыНаЭкспорт)
Если DOS = Истина
Тогда ANSI = Ложь;
Кодировка = "DOS"
ИначеЕсли ANSI = Истина
Тогда Dos = Ложь;
Кодировка = "ANSI"
КонецЕсли;
ФайлDBF = Новый XBase;
ФайлDBF.Поля.Добавить("PROJ_REF","C",14,0); //Номер
ФайлDBF.Поля.Добавить("BRANCH","C",3,0); //
ФайлDBF.Поля.Добавить("ZPKOD","C",10,0); //
ФайлDBF.Поля.Добавить("CARD_NO","C",22,0); //Номер карты
ФайлDBF.Поля.Добавить("LSTBL","C",20,0); //ИНН
ФайлDBF.Поля.Добавить("FAM","C",50,0); //фамилия
ФайлDBF.Поля.Добавить("NAME","C",50,0); //Имя
ФайлDBF.Поля.Добавить("OT","C",50,0); //Отчество
ФайлDBF.Поля.Добавить("RLSUM","N",15,2); //Сумма
ФайлDBF.Поля.Добавить("INN","C",20,0); //ИНН
ФайлDBF.Поля.Добавить("RLKOD","C",30,0); //
ФайлDBF.Поля.Добавить("CARD_PR_S","C",4,0); //
ФайлDBF.Поля.Добавить("TYPE","C",4,0); //Тип
ФайлDBF.Поля.Добавить("CARDBRANCH","C",3,0); //
ФайлDBF.Поля.Добавить("SYBR_NAME","C",4,0); //
ФайлDBF.Поля.Добавить("FUND_REF","C",14,0); //
Попытка
ФайлDBF.СоздатьФайл(ФайлВыгрузки );
Исключение
Предупреждение("Ошибка создания файла " + ФайлВыгрузки);
Возврат;
КонецПопытки;
Если РаботникиОрганизации.Количество() > 0 Тогда
ТабРабОрг = РаботникиОрганизации.Выгрузить();
Для Каждого Строка Из ТабРабОрг Цикл
Если ЭтотОбъект.Проведен = Истина Тогда
ФайлDBF.Добавить();
КонецЕсли;
ФИОРаботника = Строка.Сотрудник;
ПозицияФ = Найти(ФИОРаботника," ");
ФамилияР = Лев(ФИОРаботника,ПозицияФ-1);
//=//=//=//=//=//=//=//=//=//=//=//=//=//=//=//=///=//=//=//=//=//=//=///=//=//=//=//=//
ДлинаСтроки = СтрДлина(ФИОРаботника);
инд = 1;
Пока инд <= ДлинаСтроки и Найти(" ",Сред(ФИОРаботника,инд,1))=0 Цикл
инд = инд + 1;
КонецЦикла;
Если инд <= ДлинаСтроки Тогда
ИмяОтчество = Сред(ФИОРаботника,инд+1);
КонецЕсли;
ПозицияИ = Найти(ИмяОтчество," ");
ИмяР = Лев(ИмяОтчество,ПозицияИ);
//=//=//=//=//=//=//=//=//=////=//=//=//=//=//=///=//=//=//=//=//=//=///=//=//=//=//=//=//
ДлинаСтроки = СтрДлина(ИмяОтчество);
инд = 1;
Пока инд <= ДлинаСтроки и Найти(" ",Сред(ИмяОтчество,инд,1))=0 Цикл
инд = инд + 1;
КонецЦикла;
Если инд <= ДлинаСтроки Тогда
Отчество = Сред(ИмяОтчество,инд+1);
КонецЕсли;
ПозицияО = Найти(Отчество," ");
ОтчествоР = Прав(ИмяОтчество,ПозицияО);
//=//=//=//=//=//=//=//=//=////=//=//=//=//=//=///=//=//=//=//=//=//=///=//=//=//=//=//=//
Фамилия = СтрЗаменить(ФамилияР," ","");
Имя = СтрЗаменить(ИмяР," ","");
Отчество = СтрЗаменить(ОтчествоР," ","");
Карта = Строка.НомерКарточки;
НомерКарты = Лев(Карта, 4) + "********" + Прав(Карта,4);
ИНН = Строка.Сотрудник.Физлицо.КодПоДРФО;
//Меняем символы
Фамилия = СтрЗаменить(Фамилия,"і","i");
Имя = СтрЗаменить(Имя,"і","i");
Отчество = СтрЗаменить(Отчество,"і","i");
//ФайлDBF.PROJ_REF
ФайлDBF.BRANCH = "2F4";
ФайлDBF.ZPKOD = "014";
ФайлDBF.CARD_NO = НомерКарты;
ФайлDBF.LSTBL = ИНН;
ФайлDBF.FAM = Фамилия;
ФайлDBF.NAME = Имя;
ФайлDBF.OT = Отчество;
//ФайлDBF.RLSUM
ФайлDBF.INN = ИНН;
//ФайлDBF.RLKOD
ФайлDBF.CARD_PR_S = "1";
ФайлDBF.TYPE = "CARD";
//ФайлDBF.CARDBRANCH
//ФайлDBF.SYBR_NAME
//ФайлDBF.FUND_REF
Если Кодировка = "DOS" Тогда
ФайлDBF.Кодировка = КодировкаXBase.OEM;
Иначе
ФайлDBF.Кодировка = КодировкаXBase.ANSI;
КонецЕсли;
ФайлDBF.Записать()
КонецЦикла;
КонецЕсли;
ФайлDBF.ЗакрытьФайл();
Попытка
Сообщить(НСтр("ru='Данные успешно выгружены в файл ';uk='Дані успішно вивантажені в файл '") + ФайлВыгрузки);
Исключение
Сообщить(НСтр("ru='Не удалось записать данные в файл. Возможно, отсутствует каталог.';uk='Не вдалося записати дані в файл. Можливо, відсутній каталог.'") + ФайлВыгрузки);
КонецПопытки;
Возврат;
КонецПроцедуры