Глава 2
Все процедуры и функции, указанные в этом файле действуют.
//*******************************************
В 1с они вызываются тремя кнопками: Вставить, Вставить01, Удалить.
Функция НеКонецПредложения(Буфер)
//-------------------------------------------
Функция ВзятьСлово(Буфер)
Пробел=Найти(Буфер," ");
Если 0=Пробел Тогда
return Слово;
Буфер=Сред(Буфер,Пробел+1);
return Слово;
//-----------------------
//Считываем построчно из файла
НовСотр.Записать();
Процедура Вставить()
НовСотр = СоздатьОбъект("Справочник.НовыеСотрудники");
Текст = СоздатьОбъект("Текст");
Текст.Открыть("ТекстДляВставки.txt");
Если Текст.КоличествоСтрок() = 0 Тогда
Возврат;
Для Ном = 1 По Текст.КоличествоСтрок() Цикл
Буфер = Текст.ПолучитьСтроку(Ном);
//
Пока (1=НеКонецПредложения(Буфер)) Цикл
НовСотр.АдресПрописка = ВзятьСлово(Буфер);
НовСотр.Документ = ВзятьСлово(Буфер);
НовСотр.Должность = ВзятьСлово(Буфер);
НовСотр.Оклад = ВзятьСлово(Буфер);
//---------------------
Текст = СоздатьОбъект("Текст");
//Считываем построчно из файла
// сохраним в Темп строку без первого слева слова
//новый поиск
Темп=Прав(Буфер,(СтрДлина(Буфер)-Индекс));
//новый поиск
Процедура Вставить01()
Текст.Открыть("ТекстДляВставки.txt");
Если Текст.КоличествоСтрок() = 0 Тогда
Возврат;
Для Ном = 1 По Текст.КоличествоСтрок() Цикл
// Сообщить("Цикл №" + Ном);
// Сообщить(Стр);
Стр = Текст.ПолучитьСтроку(Ном);
Индекс = 0;
Слово = "";
Буфер=СокрЛП(Стр);//убрали пробелы по краям
//начнем поиск
Если(0 < Найти(Буфер," "))Тогда //пробел есть
НовСотр.Наименование=Лев(Буфер,Индекс); //строка до пробела
Индекс=СтрДлина(Буфер);//Найти конец слова
Темп=Прав(Буфер,(СтрДлина(Буфер)-Индекс));
Буфер=СокрЛ(Темп);//уберем пробелы слева
Если(0 < Найти(Буфер," "))Тогда //пробел есть
НовСотр.АдресПрописка=Лев(Буфер,Индекс); //строка до пробела
Индекс=СтрДлина(Буфер);//Найти конец слова
КонецЕсли;
НовСотр.Записать();
Буфер=СокрЛ(Темп);
Если(0 < Найти(Буфер," "))Тогда //пробел есть
НовСотр.Документ=Лев(Буфер,Индекс); //строка до пробела
НовСотр.Записать();
-----------------------
Процедура Удалить()
ф=1;
Пока (ф<10) Цикл
НовСотр.Удалить(0); //пометка на удаление
НовСотр.Удалить(1); //непосредственное удаление
ф=ф+1;
Анализ:
Процедура Вставить() предпочтительней процедуры Вставить01().
Хотя результат их работы одинаков, но первая функция компактнее и более
универсальна благодаря тому, что использует вызовы служебных функций
НеКонецПредложения() и ВзятьСлово.
Процедуру Удалить() желательно переписать так, чтобы она работала, пока есть
элементы в справочнике.
Назад |
Начало урока |
Вверх |
Вперед
Содержание