Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Импорт из .txt

Импорт из .txt
Я
   Antoha18rus
 
25.02.20 - 20:14
Кому надо загрузку из тхт, вот работающий пример!

&НаСервере
Процедура Команда1НаСервере()
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
        Перем Стр;
    Стр="";
    
    Режим = РежимДиалогаВыбораФайла.Открытие;
    ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
    ДиалогОткрытияФайла.ПолноеИмяФайла="";
    Текст = "ru = ""Текст""; en = ""Text""";
    Фильтр = Нстр(текст)+"(*.txt)|*.txt";
    ДиалогОткрытияФайла.Фильтр = Фильтр;
    ДиалогОткрытияФайла.МножественныйВыбор=Ложь;
    
    Если ДиалогОткрытияФайла.Выбрать() Тогда
        
        ИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
        
    Иначе
        
        Предупреждение("Файл не выбран!");
        
    КонецЕсли;
    
    ТекДок = Новый ЧтениеТекста(ИмяФайла);
    
    Пока Стр <> Неопределено Цикл
        
        Стр = ТекДок.ПрочитатьСтроку();
        Позиция = Найти(Стр,",");
        Код = Сред(Стр,1,Позиция-1);
        
        СтрИмя = Сред(Стр,Позиция+1);
        НайтиИмя = Найти(СтрИмя,",");
        Имя = Сред(СтрИмя,1,НайтиИмя-1);
        
        СтрФамилия = Сред(СтрИмя,НайтиИмя+1);
        НайтиФамилия = Найти(СтрФамилия,",");
        Фамилия = Сред(СтрФамилия,1,НайтиФамилия-1);
        
        СтрДР = Сред(СтрФамилия,НайтиФамилия+1);
        НайтиДР = Найти(СтрДР,",");
        ДР = Сред(СтрДР,1,НайтиДР-1);
        
        СтрПол = Сред(СтрДР,НайтиДР+1);
        НайтиПол = Найти(СтрПол,",");
        Пол = Сред(СтрПол,1,НайтиПол-1);
        
        СтрНП = Сред(СтрПол,НайтиПол+1);
        НайтиНП = Найти(СтрНП,",");
        НП = Сред(СтрНП,1,НайтиНП-1);
                
        СтрИП = Сред(СтрНП,НайтиНП+1);
        НайтиИП = Найти(СтрИП,",");
        ИП = Сред(СтрИП,1,НайтиИП-1);
        
        СтрДО = Сред(СтрИП,НайтиИП+1);
        НайтиДО = Найти(СтрДО,",");
        ДО = Сред(СтрДО,1,НайтиДО-1);
        
        СтрПП = Сред(СтрДО,НайтиДО+1);
        НайтиПП = Найти(СтрПП,",");
        ПП = Сред(СтрПП,1,НайтиПП-1);

        СтрПР = Сред(СтрПП,НайтиПП+1);
        НайтиПР = Найти(СтрПР,",");
        ПР = Сред(СтрПР,1,НайтиПР-1);
        
        СтрП = Сред(СтрПР,НайтиПР+1);
        НайтиП = Найти(СтрП,",");
        П = Сред(СтрП,1,НайтиП-1);
        
        СтрТаб = Объект.ТЧ.Добавить();
        
        
        СтрТаб.Код = Код;
        СтрТаб.Имя = Имя;
        СтрТаб.Фамилия = Фамилия;
        СтрТаб.ДатаРождения = ДР;
        СтрТаб.Пол = Пол;
        СтрТаб.ПоложениеИД = НП;
        СтрТаб.ИмяПоложения = ИП;
        СтрТаб.ДолжностныеИнструкции = ДО;
        СтрТаб.ПериодныйПлатеж = ПП;
        СтрТаб.Ставка = ПР;
        СтрТаб.Email = П;
        
        
    КонецЦикла;
    
    Сообщить(ИмяФайла);
КонецПроцедуры

&НаСервере
Процедура ДобавитьВСправочникНаСервере()
    Для каждого СтрТаб из Объект.ТЧ Цикл
        
    
    
    Если  Справочники.Положение.НайтиПоНаименованию(СтрТаб.Код).Пустая() Тогда
        Справв = Справочники.Положение.СоздатьЭлемент();
        Справв.Код = СтрТаб.ПоложениеИД;
        Справв.Наименование = СтрТаб.ИмяПоложения;
        Справв.ДолжностныеИнструкции = СтрТаб.ДолжностныеИнструкции;
        Справв.ПериодПлатежа = СтрТаб.ПериодныйПлатеж;
        Справв.СтавкаОплаты = СтрТаб.Ставка;
        Справв.Записать();
    КонецЕсли;
    Если  Справочники.Персонал.НайтиПоНаименованию(СтрТаб.Имя).Пустая() Тогда
        Справ = Справочники.Персонал.СоздатьЭлемент();
        Справ.Код = СтрТаб.Код;
        Справ.Наименование = СтрТаб.Имя;
        Справ.Фамилия = СтрТаб.Фамилия;
        Справ.ДатаРождения = СтрТаб.ДатаРождения;
        Справ.Пол = СтрТаб.Пол;
        Справ.НомерПоложения = Справочники.Положение.НайтиПоНаименованию(СтрТаб.ПоложениеИД);
        Справ.Email = СтрТаб.Email;
        Справ.Записать();
    КонецЕсли;
    
    КонецЦикла;
КонецПроцедуры

&НаКлиенте
Процедура ДобавитьВСправочник(Команда)
    ДобавитьВСправочникНаСервере();
КонецПроцедуры

&НаКлиенте
Процедура Очистить(Команда)
    Объект.ТЧ.Очистить();
КонецПроцедуры
   zladenuw
 
1 - 25.02.20 - 20:28
Сударь. кроме своего велосипеда.
учим типовые. БСП

вот есть функция. и куча строк улетело 

Функция "расщепляет" строку на подстроки, используя заданный 
//        разделитель. Разделитель может иметь любую длину. 

//        Если в качестве разделителя задан пробел, рядом стоящие пробелы 
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр

//        игнорируются.
//        Например, 

//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов, 
//        три из которых - пустые строки, а 

//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//

//    Параметры: 
//        Стр -             строка, которую необходимо разложить на подстроки. 

//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.
   palsergeich
 
2 - 25.02.20 - 20:37
(1) эта функция давно уже часть платформы.
СтрРазделить называется
   ДенисЧ
 
3 - 25.02.20 - 20:49
Make me unseen it!
   zladenuw
 
4 - 25.02.20 - 21:10
(2) для староверов. только код
   Garykom
 
5 - 25.02.20 - 21:21
(0) А теперь раздели если в данных (наименованиях или в чем еще) будут символы ";" или Символ(10) с Символ (13)
   Garykom
 
6 - 25.02.20 - 21:23
(0) Ну и в след раз используй теги в конце [/1C] а в начале [1C] кода
   Garykom
 
7 - 25.02.20 - 21:24
(6)+ Чтобы вот так
 было

   MyNick
 
8 - 25.02.20 - 22:08
(0) нашел что выкладывать. Спрячь и никому такое не показывай.
   palsergeich
 
9 - 25.02.20 - 23:03
(0) ипать колотить, а это он хвастается.
Ужас какой, Ты или мисту как pastebin используешь, или весна началась, такой разврат прилюдно показывать(

Список тем форума
Рекламное место пустует  Рекламное место пустует
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.