Как прочитать файл 1с

Как прочитать файл 1с

« Как стать программистом 1С » Язык 1С » Текстовый файл 1С — ЧтениеТекста 1С, ЗаписьТекста 1С, ЗначениеВФайл 1С, ЗначениеИзФайла 1С

Текстовый файл 1С — ЧтениеТекста 1С, ЗаписьТекста 1С, ЗначениеВФайл 1С, ЗначениеИзФайла 1С

Для работы с текстовыми файлами 1С предназначены объекты ЧтениеТекста 1С и ЗаписьТекста 1С. Функция ЗначениеВФайл() позволяет быстро и просто сохранить в текстовый файл 1С «любое» значение 1С, в том числе такие объекты как таблица значений и прочие.

Чтение текстового файла 1С

Пример чтения текстового файла (про строки и работу с символами переноса строки см. подробнее «Работа со строками»).

Пример 1. Чтение текстового файла 1С целиком с помощью ЧтениеТекста 1С (в одну «строку с переносами»)
Файл = Новый ЧтениеТекста(«D:\Текстовый файл.txt»);
ВесьФайлОднойСтрокой = Файл.Прочитать();
Файл.Закрыть();

Пример 2. Чтение текстового файла 1С построчно с помощью ЧтениеТекста 1С (в данном примере в массив строк)
мСтрокФайла = Новый Массив();
Файл = Новый ЧтениеТекста(«D:\Текстовый файл.txt»);

//прочитать строку считывает одну строку из файла
//если достигнут конец файла, то возвращается значение НЕОПРЕДЕЛЕНО
Строка = Файл.ПрочитатьСтроку();
//а не был ли файл пуст?
Если Строка <> Неопределено Тогда
мСтрокФайла.Добавить(Строка);
КонецЕсли;

//цикл пока чтение строки не вернет НЕОПРЕДЕЛЕНО
//внутри цикла повторяем чтение
Пока Строка <> Неопределено Цикл
Строка = Файл.ПрочитатьСтроку();
Если Строка <> Неопределено Тогда
мСтрокФайла.Добавить(Строка);
КонецЕсли;
КонецЦикла;

Запись текстового файла 1С

Пример 3. Запись текстового файла 1С с помощью ЗаписьТекста 1С (пример – формирование xml файла текстом)

Получившийся текстовый файл 1С с помощью ЗаписьТекста 1С:

Пример 4. Сохранение значения 1С в текстовый файл 1С с помощью ЗначениеВФайл 1С, чтение с помощью ЗначениеИзФайла 1С
//запросом выбираем все документы поступления товара
Запрос = Новый Запрос(«ВЫБРАТЬ * ИЗ Документ.ПоступлениеТоваров»);

//Запрос.Выполнить().Выгрузить() — выгружает в таблицу значений все выбранные запросом документы
//ЗначениеВФайл 1С — сохраняет таблицу значений в файл
ЗначениеВФайл(«D:\Текстовый файл.txt», Запрос.Выполнить().Выгрузить());

//ЗначениеИзФайла — считывает значение из файла обратно, в то значение, которое было сохранено, в данном случае в таблицу значений
//если выполнить этот код в другой базе, то ссылки на объекты не сохранятся, а простые типы данных (строка, число, дата, булево) — сохраняться
//вариант — проходить таблицу перед сохранением в цикле, заменяя все ссылочные значения на простые типы (подробнее см. «Работа с типами»)
тЗначений = ЗначениеИзФайла(«D:\Текстовый файл.txt»);
тЗначений.ВыбратьСтроку();

Чтение текстового файла в 1С 8.3 — разные способы с примерами

Как прочитать текстовый файл средствами платформы 1С 8.3 и как работать с ними в целом? Если не брать во внимание чтение специализированных форматов текстовых файлов то, по сути, во встроенном языке для этих целей реализованы два объекта: ЧтениеТекста и ТекстовыйДокумент. Рассмотрим на примерах, какие возможности предоставляет каждый из них.

ЧтениеТекста()

Объект ЧтениеТекста() предназначен для последовательного чтения текстовых файлов (большой длины)

Пример №1 — Прочитать файл по строкам

В данном примере осуществляется последовательное чтение строк и последовательный вывод всех символов после разделителя до символа перевода строки в окно сообщений.

Пример №2 — Чтение через «Файл»

Если требуется предварительно проанализировать параметры файла или параметры каталога, в котором он расположен необходимо использовать совместно с объектом Файл(). Пример кода, который перед чтением проверяет текстовый файл на существование, может выглядеть так:

Пример №3 — Выбираем файл на диске и читаем его

Зачастую требуется возможность интерактивного выбора файла. Тогда необходимо использовать объект ДиалогВыбораФайла().Доступны три режима роботы объекта: ВыборКаталога, Открытие, Сохранение. Пример кода:

Пример №4 — Чтение текста «порциями»

Если есть необходимость контролировать длину читаемых строк текстового файла, стоит заменить метод ПрочитатьСтроку() на Прочитать(). Однако отметим, что при указании параметра <РазмерСтроки>, заданное число может включать в себя символы переноса строки. То есть символы переноса строки идут в счёт параметра. Пример кода:

ТекстовыйДокумент()

Объект ТекстовыйДокумент() предназначен для работы с текстами. Позволяет получать и сохранять текст в файле, работать со строками, открывать текст в текстовом редакторе 1С:Предприятия. Обладает более богатым набором методов и свойств в отличие от объекта ЧтениеТекста(). При необходимости к нему так же применимы объекты Файл() и ДиалогВыбораФайла().

Если вы только начинаете программировать в 1С или просто хотите систематизировать свои знания — попробуйте Школу программирования 1С нашего друга Владимира Милькина. Пошаговые и понятные уроки даже для новичка с поддержкой учителя.
Попробуйте бесплатно по ссылке >>

Таким образом, с помощью данных объектов разработчику предоставляются широкие возможности для анализа и обработки текстовых документов.

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

Чтение файла Excel в 1С

Чтение файла Excel в 1С 8.х может проводиться несколькими способами. Одним из самых простых способов программного чтения файлов Excel в 1С является подключение через COMобъект.

Перед тем как перейти к процедурам чтения файла Excel, нужно найти его адрес. Для этого удобно воспользоваться стандартным диалогом открытия файла. Нужно создать текстовое поле с достаточной длиной (адреса бывают длинные). В обработчике события НачалоВыбора нужно прописать следующую процедуру.

Процедура ФайлНачалоВыбора ( Элемент , ДанныеВыбора , СтандартнаяОбработка )
Диалог = Новый ДиалогВыбораФайла ( РежимДиалогаВыбораФайла . Открытие ) ;
Диалог . ПредварительныйПросмотр = Ложь ;
Диалог . Фильтр = "(*.xls)|*.xls" ;

Если ЗначениеЗаполнено ( Файл ) Тогда
Диалог . ПолноеИмяФайла = Файл ;
КонецЕсли ;

Если Диалог . Выбрать ( ) Тогда
Файл = Диалог . ПолноеИмяФайла ;

После этого в реквизите Файл должен находить полный адрес файла Excel.

Допустим, файл содержит две колонки:

  1. Артикул.
  2. Наименование товара.

Данные начинаются с 4 строки. Всего строк в файле 5000.

Процедура будет выглядеть так:

Ехсел = Новый COMObject ( "Excel.Application" ) ;
Книга = Ехсел . Workbooks ;
Книга . Open ( Файл ) ;

ТЗ = новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( "Артикул" ) ;
ТЗ . Колонки . Добавить ( "Наименование" ) ;
Для СчетчикЦикла = 4 По 5000 Цикл

НоваяСтрока = ТЗ . Добавить ( ) ;
НоваяСтрока . Артикул = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 1 ) . value ) ;
НоваяСтрока . Наименование = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 2 ) . value ) ;
КонецЦикла ;

Ехсел . Application . Quit ( ) ; // Если этого не сделать, процесс EXCEL останется в памяти

Пустые ячейки файла Excel имеют значение Неопределено. Поэтому, если количество строк в файле заранее не известно, но есть уверенность, что записи идут одна за другой и не прерываются пустыми строками, то процедуру можно модифицировать так.

Ехсел = Новый COMObject ( "Excel.Application" ) ;
Книга = Ехсел . Workbooks ;
Книга . Open ( Файл ) ;

ТЗ = новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( "Артикул" ) ;
ТЗ . Колонки . Добавить ( "Наименование" ) ;

Пока СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 1 ) . value ) <> Неопределено Цикл

НоваяСтрока = ТЗ . Добавить ( ) ;
НоваяСтрока . Артикул = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 1 ) . value ) ;
НоваяСтрока . Наименование = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 2 ) . value ) ;
СчетчикЦикла = СчетчикЦикла + 1 ;

Ехсел . Application . Quit ( ) ; // Если этого не сделать, процесс EXCEL останется в памяти

Кроме того, можно определить количество строк в файле Excel. Это делается так:

После этого можно применять полученные значения количества строк и колонок в коде, аналогичном описанному выше.

Ехсел = Новый COMObject ( "Excel.Application" ) ;
Книга = Ехсел . Workbooks ;
Книга . Open ( Файл ) ;

Если Версия = "8" тогда
ФайлСтрок = Ехсел . Cells . CurrentRegion . Rows . Count ;
ФайлКолонок = Макс ( Ехсел . Cells . CurrentRegion . Columns . Count , 13 ) ;
Иначе
ФайлСтрок = Ехсел . Cells ( 1 , 1 ) . SpecialCells ( 11 ) . Row ;
ФайлКолонок = Ехсел . Cells ( 1 , 1 ) . SpecialCells ( 11 ) . Column ;
Конецесли ;

ТЗ = новый ТаблицаЗначений ;
ТЗ . Колонки . Добавить ( "Артикул" ) ;
ТЗ . Колонки . Добавить ( "Наименование" ) ;
Для СчетчикЦикла = 4 По ФайлСтрок Цикл

НоваяСтрока = ТЗ . Добавить ( ) ;
НоваяСтрока . Артикул = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 1 ) . value ) ;
НоваяСтрока . Наименование = СокрЛП ( Ехсел . Cells ( СчетчикЦикла , 2 ) . value ) ;
КонецЦикла ;

Ехсел . Application . Quit ( ) ; // Если этого не сделать, процесс EXCEL останется в памяти

Как прочитать файл 1с

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

  • Как записать текстовый файл
  • Как прочитать текстовый файл
  • Как использовать текстовый макет для формирования печатной формы
  • Как использовать параметры полей при оформлении текстового макета
  • Скачать и выполнить эти примеры на компьютере

Работа с текстовым документом в языке 1С 8.3, 8.2 (в примерах)

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *