Вход | Регистрация
 
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 или кнопку "Обновить" в браузере.