10.01.2023 Пётр Быков 8138
Загрузка из Comma-Separated Values (CSV) в ко...

Содержание:

1.      Что такое CSV Comma-Separated Values?

2.      Как загрузить данные из файла CSV в систему программы 1С: Предприятие?  

   

1.      Что такое CSV Comma-Separated Values?


CSV «Comma-Separated Values» — значения разделённые запятыми, это текстовый формат CSV, предназначенный для представления табличных данных. Строка таблицы соответствует строке текста, которая содержит одно или несколько полей, CSV разделенных запятыми.


Зачастую разработчикам ставят задачу загрузки данных в 1С в каком-либо формате, таких как XLS, DOC, TXT, CSV, DBF, XML и т.д. К примеру для разового переноса системы нормативно-справочной информации при переходе с других программ, загрузки 1С контактной информации и дополнительных справочников с сайтов и т.д.


Так как CSV это текстовый формат, то идентичным формату TXT будет и код загрузки в 1С.


В качестве задания нужно будет выгрузить в табличную часть обработки идентичные данные из файла example.txt и example.csv, в строке указано три поля через разделитель «;» (см.рис 1)

            


example.txt и example.csv   

   

2.      Как загрузить данные из файла CSV в систему программы 1С: Предприятие?


Для начала в режиме конфигуратор 1С создадим обработку в которой добавим в шапку два реквизита и табличную часть с тремя реквизитами (колонками) куда будем загружать данные из файла данных формата CSV: (см.рис .2)


Реквизиты шапки

1.      ПутьКФайлу тип Строка длина 256

2.      ФорматФайла тип Строка длина 3


Реквизиты табличной части 

1.Наименование тип Строка длина 150

2.ПолноеНаименование тип Строка длина 256

3.Артикул тип Строка длина 10

   

 

Реквизиты


Далее создаем форму и настраиваем расположение элементов, добавляем и перетаскиваем на форму команду ПрочитатьФайл (см.рис.3)



ПрочитатьФайл


Затем в модуле формы пишем или размещаем данный код. (см.рис.4)


&НаКлиенте

Процедура ПутьКФайлуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка) //Выбор Файла

            Проводник = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

            Проводник.Заголовок = "Выберите нужный файл";

            Если Объект.ФорматФайла = "TXT" Тогда

                        Фильтр = "Тектовый документ (*.txt)|*.txt";

            ИначеЕсли Объект.ФорматФайла = "CSV" Тогда

                        Фильтр = "Тектовый документ (*.csv)|*.csv";

            Иначе

                        Возврат;

            КонецЕсли;

            Проводник.Фильтр = Фильтр;

            Оповещение = Новый ОписаниеОповещения("ПослеВыбораФайла",ЭтотОбъект);

            Проводник.Показать(Оповещение);

           

КонецПроцедуры   

 

&НаКлиенте

Процедура ПослеВыбораФайла(ВыбранныеФайлы,ДополнительныеПараметры)Экспорт // После выбора файла

            Если ВыбранныеФайлы = Неопределено Тогда

                        Возврат;

            КонецЕсли;

            Объект.ПутьКФайлу = ВыбранныеФайлы[0];

КонецПроцедуры

 

 

&НаКлиенте

Процедура ПрочитатьФайл(Команда)             Объект.ДанныеФайла.Очистить(); //Очищаем табличную часть

            Если Объект.ФорматФайла = "TXT" ИЛИ Объект.ФорматФайла = "CSV" Тогда

                        ПрочитатьФайл_TXT_CSV();

            КонецЕсли;

КонецПроцедуры     

&НаКлиенте

Процедура ПрочитатьФайл_TXT_CSV() // Читаем файл

 

            ПоследовательноеЧтение = Истина;  

            Если ПоследовательноеЧтение Тогда

                        Текст = Новый ЧтениеТекста;

                        Текст.Открыть(Объект.ПутьКФайлу,КодировкаТекста.UTF8);

                        ТекСтрока = Текст.ПрочитатьСтроку();

                        Пока ТекСтрока <> Неопределено Цикл

                                    МассивСлов = СтрРазделить(ТекСтрока, ";"); //определеяем разделитель ";"

                                    Если МассивСлов.Количество()< 3 Тогда    //если в строке меньше 3 полей то пропускаем

                                               Продолжить;

                                    КонецЕсли;

                                   

                                               НоваяСтрока = Объект.ДанныеФайла.Добавить();

                                    НоваяСтрока.Наименование = МассивСлов[0];

                                    НоваяСтрока.ПолноеНаименование = МассивСлов[1];

                                    НоваяСтрока.Артикул = МассивСлов[2];

                                   

                                    ТекСтрока = Текст.ПрочитатьСтроку();

                                   

                        КонецЦикла;

                       

            Иначе

                       

                        Текст = Новый ТекстовыйДокумент ;

                        Текст.Прочитать(Объект.ПутьКФайлу,КодировкаТекста.UTF8);

                        Для НомерСтроки=1 По Текст.КоличествоСтрок()Цикл

                                    ТекСтрока = Текст.ПолучитьСтроку(НомерСтроки);

                                    МассивСлов = СтрРазделить(ТекСтрока, ";"); //определеяем разделитель ";"

                                    Если МассивСлов.Количество()< 3 Тогда    //если в строке меньше 3 полей то пропускаем

                                               Продолжить;

                                    КонецЕсли;

                                   

                                    НоваяСтрока = Объект.ДанныеФайла.Добавить();

                                    НоваяСтрока.Наименование = МассивСлов[0];

                                    НоваяСтрока.ПолноеНаименование = МассивСлов[1];

                                    НоваяСтрока.Артикул = МассивСлов[2];

                                   

                        КонецЦикла;

            КонецЕсли;

КонецПроцедуры

 


Процедура


Определяем обработку данных в 1С к какой-нибудь подсистеме. (см.рис.5)



Обработка


Запускаем приложение в режиме запуска «1С Предприятие» и проверяем функциональность обработки, как видим мы добились желаемого результата в обоих случаях выгрузки. (см.рис.6)

 


Загрузка данных из файла


Практически во всех типовых конфигурациях 1С уже присутствуют аналогичные по функционалу обработки.

Пример 1С Бухгалтерия предприятия 3.0 в подсистеме Администрирование – Загрузка данных из файла. (см.рис.7 и 8)



Загрузка данных из файла


Открываем обработку (см.рис.8)                                                                          



Загрузка данных в справочник

   

Специалист компании "Кодерлайн"
Пётр Быков

Наши проекты

ООО "НЦКТ"
ООО "НЦКТ"

Отрасль:
Профессиональные услуги

Внедренное типовое решение:
1С:Управление нашей фирмой 8 ПРОФ

Взаиморасчеты с покупателями
Автоматизация бизнес-процессов...

Доработка конфигурации Заказчика «1С:Управление строительной организацией»
ЗАО «Стройтрансгаз»

Отрасль:
Проектирование

Внедренное типовое решение:
1С:Управление строительной организацией

Взаиморасчеты с поставщиками;
- Оформление заказов поставщикам;
- Склад и логистика;
- Транспорт;
- Планирование расхода ГС...

МГК "Световые Технологии"
МГК "Световые Технологии"

Отрасль:

Внедренное типовое решение:
1С:Предприятие 8. ERP Управление предприятием 2

Специалисты "Кодерлайн" произвели доработки в системе 1С:ЕРП 2.4 с учетом требований заказчика, осуществили настройки загрузки и выгрузки н...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО Фирма «Бисер»
ООО фирма «Бисер»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Финансы, управленческий учет, мониторинг показателей:
- Налоговый учет...

Апгрейд 1С:Бухгалтерия 8 ПРОФ (USB) до версии 1С:Бухгалтерия 8 КОРП (USB)
ООО «Ява Строй»

Отрасль:
Строительство

Внедренное типовое решение:
1С:Бухгалтерия 8 КОРП (USB)

- Создание чистых конфигураций. Внесение изменений в БД ЗУП и новая расчетная ведомость;
- Администрирование MS SQL Server;
- Сжати...

Автоматизация кадрового учета на базе «1С:ERP Управление предприятием 2.0»
Автопредприятие ПАО «Газпром»

Отрасль:
Транспорт

Внедренное типовое решение:
1С:ERP Управление предприятием 2.0

- Настройка подсистемы кадрового учета;
- Перенос персональных данных;
- Заполнение НСИ и классификаторов. ...

ФГОУ ВПО «Горский государственный аграрный университет»
ФГОУ ВПО «Горский государственный аграрный университет»

Отрасль:
Образование

Внедренное типовое решение:
1С:Колледж ПРОФ

- Управление персоналом и кадровый учет (HRM):
Кадровый учет
Управление обучением и повышением квалификации
- Финансы, управлен...

Внедрение ПП "1С:Бухгалтерия 8 ПРОФ" в ООО «Союз Три» (Кондитерский дом Renardi)
ООО «Союз Три»

Отрасль:
Производство

Внедренное типовое решение:
1С:Бухгалтерия 8 ПРОФ

Бухгалтерский учет
- Банк и касса
- Расчеты с контрагентами
Налоговый учет ...

ООО "ТК "Сытый Дом-НН"
ООО "ТК "Сытый Дом-НН"

Отрасль:
Торговля, склад, логистика, транспорт

Внедренное типовое решение:
1С:Управление торговлей 8

Взаиморасчеты с покупателями
Оптовая торговля
Управление складскими запасами...

ООО «ДАФ Тракс Рус» (DAF Trucks Rus)
ООО «ДАФ Тракс Рус» (DAF Trucks Rus)

Отрасль:
Машиностроение

Внедренное типовое решение:
«1С:Управление корпоративными финансами»

- Осуществлена разработка матрицы прав и ролей для финансового подразделения:
• распределение ролей стало более четким и структурированны...

1с-РАРУС МСК
1с-РАРУС МСК

Отрасль:
Разработка компьютерного программного обеспечения

Внедренное типовое решение:

- Совместная работа по внедрению разных решений, в том числе «1С:ERP Управление предприятием», «1С:Управление корпоративными финансами»...

ООО «Лаборатория успеха»
ООО «Лаборатория успеха»

Отрасль:
Общественное и плановое питание, гостиничный бизнес, туризм

Внедренное типовое решение:
1С:Зарплата и управление персоналом 8. КОРП

Кадровый учет;
Расчет зарплаты;...

Наши соц. сети

Telegram-канал «Koderline 1С» Группа в Вконтакте «Кодерлайн КОРП» Rutube

Остались вопросы - обратитесь к нам!

Впишите свои Имя и Телефон, чтобы мы ответили на все интересующие Вас вопросы.
ФИО*
E-mail*
Телефон*
Сообщение