Сообщение Val » 19.06.2007 14:45
Функция для распознавания доп классификаторов при импорте пп
// найти значение длина_л следующеее за имя_л в текст_л длиной длина_л
// например из "фы44втс020100пал66опп" выделить 020100 идущее за "тс"
функция РаспознатьДопКлассификаторы(текст_л : Строка; длина_л : целое; имя_л : строка) : целое;
переменные
поз_л, флаг_л : целое;
буф_л : строка;
классификатор_л : целое;
начало
поз_л := 1;
флаг_л := 1;
буф_л := текст_л;
пока флаг_л делать
начало
буф_л := подстрока(буф_л,поз_л,длина(буф_л) - поз_л + 1);
поз_л := Позиция(имя_л,прописные(буф_л));
если поз_л<>0 тогда
начало
классификатор_л := строкавцелое(Подстрока(буф_л,поз_л+2,длина_л));
поз_л := поз_л + 2;
если классификатор_л = 0 тогда флаг_л := 1 иначе флаг_л := 0;
конец
иначе
начало
классификатор_л := 0;
флаг_л := 0;
конец;
конец;
если классификатор_л < 0 или классификатор_л > 99999999 тогда классификатор_л := 0;
результат := классификатор_л;
конец;
..................................
// вызовы
типсредств := РаспознатьДопКлассификаторы(Т.стр(32),6,"ТС");
мероприятие := РаспознатьДопКлассификаторы(Т.стр(32),6,"МЕ");
субкэср := РаспознатьДопКлассификаторы(Т.стр(32),7,"СК");
бо := РаспознатьДопКлассификаторы(Т.стр(32),9,"БО");
если бо = 0 тогда бо := РаспознатьДопКлассификаторы(Т.стр(32),9,"УН");
..........................................
// присваивание
//-----------------------------------------------------------------
если типсредств = 0 тогда типсредств := 10100;
Деталь.Поле("SourceMeansTypeCls").КакСтрока := типсредств;
Деталь.Поле("SourceFactCLS").КакСтрока := мероприятие;
Деталь.Поле("BuhOperationCls").КакСтрока := "01601";
Деталь.Поле("SourceFinTypeCls").КакСтрока := "100";
Деталь.Поле("SourceSubKESR").КакСтрока := субкэср;
если бо<>0 тогда Деталь.Поле("SourcePromise").КакСтрока := бо;
//-----------------------------------------------------------------
[/i]