Работа с текстовым документом в языке 1С 8.3, 8.2 (в примерах)
Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.
2017-12-19T18:35:23+00:00<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Как создать текстовый макет в 1С.
/// Как записать текстовый файл в 1с 8.3, 8.2 &НаКлиенте Процедура КакЗаписатьТекстовыйФайл(Команда) КаталогДляЭкспериментов = КаталогДокументов() + "\helpme1s.ru"; СоздатьКаталог(КаталогДляЭкспериментов); ТекстовыйФайл = Новый ТекстовыйДокумент; // Устанавливаем содержимое файла. ТекстовыйФайл.УстановитьТекст(" |Как прекрасен |этот мир!"); // Очищаем содержимое файла. ТекстовыйФайл.Очистить(); // Добавляем первую ... ТекстовыйФайл.ДобавитьСтроку("Первая строчка файла"); // ... и вторую строчку файла. ТекстовыйФайл.ДобавитьСтроку("Вторая строчка файла"); // Меняем первую строчку на "Привет" ТекстовыйФайл.ЗаменитьСтроку( 1, // номер строки в файле, нумеруется с 1 "Привет" ); // Вставляем новую строчку сразу после первой, // то есть на место второй. ТекстовыйФайл.ВставитьСтроку( 2, // номер строки, на место которой вставляем новую "Владимир" ); // Удаляем вторую строчку ("Владимир") ТекстовыйФайл.УдалитьСтроку(2); // Записываем файл на диск. // Если такой файл уже существует - он будет перезаписан. ТекстовыйФайл.Записать( КаталогДляЭкспериментов + "\out.txt", // путь для сохранения КодировкаТекста.UTF8, // кодировка Символы.ВК + Символы.ПС // разделитель строк ); // Открываем созданный файл в блокноте. ЗапуститьПриложение(КаталогДляЭкспериментов + "\out.txt"); КонецПроцедуры /// Как прочитать текстовый файл в 1с 8.3, 8.2 &НаКлиенте Процедура КакПрочитатьТекстовыйФайл(Команда) ОчиститьСообщения(); КаталогДляЭкспериментов = КаталогДокументов() + "\helpme1s.ru"; СоздатьКаталог(КаталогДляЭкспериментов); ПутьКФайлу = КаталогДляЭкспериментов + "\in.txt"; // Создаем случайный текстовый файл. Служебный.СоздатьПроизвольныйТекстовыйФайл(ПутьКФайлу); ТекстовыйФайл = Новый ТекстовыйДокумент; ТекстовыйФайл.Прочитать( ПутьКФайлу, // Если не указать кодировку напрямую, то она // по возможности определится автоматически. КодировкаТекста.UTF8, // К этом значению будут приведены разделители // строк из файла. Если ничего не указывать - // останутся родные. Символы.ВК + Символы.ПС ); // Выводим весь текст целиком. Сообщить(ТекстовыйФайл.ПолучитьТекст()); // Выводим текст по строкам. Для Индекс = 1 По ТекстовыйФайл.КоличествоСтрок() Цикл Сообщить(ТекстовыйФайл.ПолучитьСтроку(Индекс)); КонецЦикла; КонецПроцедуры /// Как использовать текстовый макет для формирования /// печатной формы в 1с 8.3, 8.2 &НаКлиенте Процедура КакВывестиТекстовыйМакетПростейший(Команда) ОчиститьСообщения(); // Рассмотрим простейший случай. // Нам требуется сделать печатную форму, в которой // в шапке будет выводиться номер и дата документа, // а в табличной части: список и количество, // заказанных товаров. // Вызываем функцию, которая сформирует на сервере // печатную форму и вернёт её обратно на клиент. ПечатнаяФорма = СформироватьПростейшуюПечатнуюФорму(); // Выводим её пользователю, а он уже отправит её на печать. ПечатнаяФорма.Показать("Заказ №1"); КонецПроцедуры &НаСервере Функция СформироватьПростейшуюПечатнуюФорму() // Если никаких особых требований к оформлению такой // формы нет - милое (и главное очень быстрое) дело // сделать её через текстовый макет. // О том, как создать текстовый макет - читайте по адресу // helpme1s.ru/kak-sozdavat-tekstovyj-maket-v-1s // В нашем случае такой макет я уже создал и добавил // в эту обработку под именем "ПростейшийТекстовыйМакет" ПечатнаяФорма = Новый ТекстовыйДокумент; Макет = Обработки.ОбработкаДляИспытаний.ПолучитьМакет( "ПростейшийТекстовыйМакет"); // Получаем область и макета по имени. Шапка = Макет.ПолучитьОбласть("Шапка"); // Заполняем её параметры. Шапка.Параметры.Дата = ТекущаяДата(); Шапка.Параметры.Номер = 1; // Выводим её в документ. ПечатнаяФорма.Вывести(Шапка); // Заголовок табличной части. ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьЗаголовок"); ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок); // Обычно в цикле выводятся строки табличной части. ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьСтрока"); // Строка 1 ТабличнаяЧастьСтрока.Параметры.Номенклатура = "Банан"; ТабличнаяЧастьСтрока.Параметры.Количество = 10; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Строка 2 ТабличнаяЧастьСтрока.Параметры.Номенклатура = "Помидор"; ТабличнаяЧастьСтрока.Параметры.Количество = 5; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Завершаем табличную часть подвалом. ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПодвал"); ТабличнаяЧастьСтрока.Параметры.ИтогоКоличество = 15; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Возвращаем печатную форму обратно на клиент. Возврат ПечатнаяФорма; КонецФункции /// Как использовать параметры полей при оформлении /// текстового макета в 1с 8.3, 8.2 &НаКлиенте Процедура КакВывестиТекстовыйМакетПоСложнее(Команда) ОчиститьСообщения(); // Рассмотрим тот же случай, что и выше. // Нам требуется сделать печатную форму, в которой // в шапке будет выводиться номер и дата документа, // а в табличной части: список и количество, // заказанных товаров. // Вызываем функцию, которая сформирует на сервере // печатную форму и вернёт её обратно на клиент. ПечатнаяФорма = СформироватьПечатнуюФормуПосложнее(); // Выводим её пользователю, а он уже отправит её на печать. ПечатнаяФорма.Показать("Заказ №2"); КонецПроцедуры &НаСервере Функция СформироватьПечатнуюФормуПосложнее() // Если никаких особых требований к оформлению такой // формы нет - милое (и главное очень быстрое) дело // сделать её через текстовый макет. // О том, как создать текстовый макет - читайте по адресу // helpme1s.ru/kak-sozdavat-tekstovyj-maket-v-1s // В нашем случае такой макет я уже создал и добавил // в эту обработку под именем "ТекстовыйМакетПосложнее" // Обратите внимание - этот текстовый макет уже содержит // форматирование отдельных полей. // К примеру, мы задали свой формат для поле Дата; // указали, что если поле Номенклатура не помещается // на одной строке - нужно переносить его на следующие; // задали размер дробной части (2) для поля Количество; // переопределили выравнивание поля Номенклатура и т.д. ПечатнаяФорма = Новый ТекстовыйДокумент; Макет = Обработки.ОбработкаДляИспытаний.ПолучитьМакет( "ТекстовыйМакетПосложнее"); // Получаем область и макета по имени. Шапка = Макет.ПолучитьОбласть("Шапка"); // Заполняем её параметры. Шапка.Параметры.Дата = ТекущаяДата(); Шапка.Параметры.Номер = 2; // Выводим её в документ. ПечатнаяФорма.Вывести(Шапка); // Заголовок табличной части. ТабличнаяЧастьЗаголовок = Макет.ПолучитьОбласть("ТабличнаяЧастьЗаголовок"); ПечатнаяФорма.Вывести(ТабличнаяЧастьЗаголовок); // Обычно в цикле выводятся строки табличной части. ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьСтрока"); // Строка 1 ТабличнаяЧастьСтрока.Параметры.Номенклатура = "Очень очень длинное название товара, много строк."; ТабличнаяЧастьСтрока.Параметры.Количество = 100.234234; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Строка 2 ТабличнаяЧастьСтрока.Параметры.Номенклатура = "Короткое название товара, одна строка."; ТабличнаяЧастьСтрока.Параметры.Количество = 30.56757; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Завершаем табличную часть подвалом. ТабличнаяЧастьСтрока = Макет.ПолучитьОбласть("ТабличнаяЧастьПодвал"); ТабличнаяЧастьСтрока.Параметры.ИтогоКоличество = 130.801804; ПечатнаяФорма.Вывести(ТабличнаяЧастьСтрока); // Возвращаем печатную форму обратно на клиент. Возврат ПечатнаяФорма; КонецФункции /// Скачать и выполнить эти примеры на компьютере |
Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)
Как создать текстовый макет в 1С.
Работа с текстовым документом в языке 1С 8.3, 8.2 (в примерах)
<<< XML ZIP WORD DBF HTTP FTP ТекстовыйДокумент ТабличныйДокумент