Имя: Пароль:
1C
1С v8
Импорт из .txt
0 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;
        Справ.Записать();
    КонецЕсли;
    
    КонецЦикла;
КонецПроцедуры

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

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

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

Функция "расщепляет" строку на подстроки, используя заданный
//        разделитель. Разделитель может иметь любую длину.
//        Если в качестве разделителя задан пробел, рядом стоящие пробелы
//        считаются одним разделителем, а ведущие и хвостовые пробелы параметра Стр
//        игнорируются.
//        Например,
//        РазложитьСтрокуВМассивПодстрок(",ку,,,му", ",") возвратит массив значений из пяти элементов,
//        три из которых - пустые строки, а
//        РазложитьСтрокуВМассивПодстрок(" ку   му", " ") возвратит массив значений из двух элементов
//
//    Параметры:
//        Стр -             строка, которую необходимо разложить на подстроки.
//                        Параметр передается по значению.
//        Разделитель -     строка-разделитель, по умолчанию - запятая.
2 palsergeich
 
25.02.20
20:37
(1) эта функция давно уже часть платформы.
СтрРазделить называется
3 ДенисЧ
 
25.02.20
20:49
Make me unseen it!
4 zladenuw
 
25.02.20
21:10
(2) для староверов. только код
5 Garykom
 
гуру
25.02.20
21:21
(0) А теперь раздели если в данных (наименованиях или в чем еще) будут символы ";" или Символ(10) с Символ (13)
6 Garykom
 
гуру
25.02.20
21:23
(0) Ну и в след раз используй теги в конце а в начале кода
7 Garykom
 
гуру
25.02.20
21:24
(6)+ Чтобы вот так
было
8 MyNick
 
25.02.20
22:08
(0) нашел что выкладывать. Спрячь и никому такое не показывай.
9 palsergeich
 
25.02.20
23:03
(0) ипать колотить, а это он хвастается.
Ужас какой, Ты или мисту как pastebin используешь, или весна началась, такой разврат прилюдно показывать(
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс