helpf.pro
Регистрация

v8: Как загрузить данные из .cvs в 1с 8 ?

yakov
09.10.2014 05:18Прочитано: 3634

Как загрузить данные из .cvs в 1с 8 ?

Yandex
Возможно, вас также заинтересует
Реклама на портале
DJ_Serega
09.10.2014 11:08Ответ № 1

Построчно через Новый ТекстовыйДокумент.

yakov
09.10.2014 13:01Ответ № 2

Спасибо!

E_Migachev
09.10.2014 16:22Ответ № 3

Вот рабочий пример загрузки, разделитель тильда ~

Код 1C v 8.х
 //Выбор файла
Режим = РежимДиалогаВыбораФайла.Открытие; 
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим); 
ДиалогОткрытияФайла.ПолноеИмяФайла = ""; 
Фильтр = "Текст(*.txt)|*.txt"; 
ДиалогОткрытияФайла.Фильтр = Фильтр; 
ДиалогОткрытияФайла.МножественныйВыбор = Ложь; 
ДиалогОткрытияФайла.Заголовок = "Выберите файл для загрузки"; 
Если ДиалогОткрытияФайла.Выбрать() Тогда 
ПутьКФайлу = ДиалогОткрытияФайла.ПолноеИмяФайла; 
КонецЕсли;


ДатаГр=Дата;
Если ВвестиДату(ДатаГр,"Введите дату заргузки!") тогда
Если ДатаГр <> Дата Тогда Дата = ДатаГр; КонецЕсли;
КонецЕсли;
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Грузим Реестр?"+Символы.ПС+"ДА - Загрузка реестров"+Символы.ПС+"НЕТ - Загрузка удержаний", Режим, 0);
//Выбор вида удержания пользователем
Если НДФЛСведенияОДоходах.Количество()>0 тогда
Предупреждение("Внимание! В таблице уже есть данные, новые данные Добавлены к существующим данным!");
КонецЕсли;
текдок=Новый ТекстовыйДокумент;
текдок.Прочитать(ПутьКФайлу);
Для Ном=1 по текдок.КоличествоСтрок() цикл
Стр = текдок.ПолучитьСтроку(Ном);
//Разложим строку в массив данных
СтрМ=ОбщегоНазначенияЗК.РазложитьСтрокуВМассивПодстрок(стр,"~");

//Попробуем определить что за файл
Попытка
СумУдерж = Число(СтрМ[3]);
Исключение
СумУдерж = 0;
КонецПопытки;

Если Ответ = КодВозвратаДиалога.Нет Тогда
//Добавляем новую строку
//Если Число(СтрМ[2]) = 0 Тогда //Это удержания
Состояние("Загружаю удержания...");
//Ищем Физика
Физик = Справочники.ФизическиеЛица.НайтиПоКоду(СтрМ[0]);
Если СокрЛП(Физик.Наименование) = СокрЛП(СтрМ[1]) тогда                                       
ФизикН = Физик;
Иначе 
Сообщить("В справочнике Физ. Лиц не найден "+СтрМ[1],СтатусСообщения.ОченьВажное);
КонецЕсли;

//Добавляем удержание
НовСтрУд=НДФЛУдержанный.Добавить();
НовСтрУд.ФизЛицо= ФизикН;
НовСтрУд.ПериодРегистрации=ДатаГр;
НовСтрУд.МесяцНалоговогоПериода = НачалоМесяца(ДатаГр);
            НовСтрУд.СтавкаНалогообложения=Перечисления.НДФЛСтавкиНалогообложенияРезидента.Ставка13;
НовСтрУд.Налог=Число(СтрМ[3]);
Иначе // это реестр
Состояние("Загружаю реестр...");
//Ищем Физика
Физик = Справочники.ФизическиеЛица.НайтиПоКоду(СтрМ[0]);
Если СокрЛП(Физик.Наименование) = СокрЛП(СтрМ[1]) тогда                                       
ФизикН = Физик;
Иначе 
Сообщить("В справочнике Физ. Лиц не найден "+СтрМ[1],СтатусСообщения.ОченьВажное);
КонецЕсли;
НовСтр=НДФЛСведенияОДоходах.Добавить();
НовСтр.ДатаДохода=ДатаГр;
НовСтр.Физлицо = ФизикН;
НовСтр.МесяцНалоговогоПериода = НачалоМесяца(ДатаГр);
НовСтр.ПериодРегистрации = ДатаГр;
        НовСтр.КодДохода=Справочники.ДоходыНДФЛ.Код4800;
НовСтр.СуммаДохода=Число(СтрМ[2]);
НовСтр.СуммаНалогаИсчисленная=СумУдерж;
КонецЕсли;
КонецЦикла;
Комментарий="НДФЛ Доходы и удержания "+СтрЗаменить(ДиалогОткрытияФайла.ПолноеИмяФайла,ДиалогОткрытияФайла.каталог,"");


Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.