Последовательный доступ к тексту



Мы поможем в написании ваших работ!


Мы поможем в написании ваших работ!



Мы поможем в написании ваших работ!


ЗНАЕТЕ ЛИ ВЫ?

Последовательный доступ к тексту



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

Объект ЗаписьТекста для последовательной записи текстовых файлов.

Текст=Новый ЗаписьТекста("c:\test.txt",КодировкаТекста.ANSI, Символы.ПС);

Текст.Записать("ааааа");

Текст.Закрыть();

Символы - определяет набор специальных символов. Значения этого набора имеют тип Строка. Значения:

ПС – перевод строки;

ПФ – перевод формы (страницы);

Таб – символ табуляции и пр.

Записать -записывает строку текста в файл. Разделитель за записываемой строкой не ставится.

ЗаписатьСтроку - записывает строку текста в файл. В конце строки записывается разделитель.

Текст=Новый ЗаписьТекста("c:\test.txt",КодировкаТекста.ANSI, Символы.ПС);

Текст.Записать("ааааа");

Текст.ЗаписатьСтроку("ббббб");

Текст.Записать("ввввв");

Текст.Закрыть();

 

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

Файл=Новый ЧтениеТекста("c:\test.txt",КодировкаТекста.ANSI,Символы.ПС);

А=Файл.Прочитать(5);

Б=Файл.ПрочитатьСтроку();

В=Файл.Прочитать();

Файл.Закрыть();

 

Прочитать - считывает строку произвольной длины. Если размер возвращаемой строки не указан, текстовый файл читается до конца.

ПрочитатьСтроку - считывает строку текста, ограниченную разделителем.

Закрыть - закрывает открытый текстовый файл.

 

Файл=Новый ЧтениеТекста("c:\test.txt",КодировкаТекста.ANSI,Символы.ПС);

НЭ=Справочники.Контрагенты.СоздатьЭлемент();

НЭ.Код=Файл.ПрочитатьСтроку();

НЭ.Наименование=Файл.ПрочитатьСтроку();

НЭ.Записать();

Файл.Закрыть();

Поиск в справочнике

Поиск элемента или группы производится методами НайтиПоКоду, НайтиПоНаименованию, НайтиПоРеквизиту. Эти методы возвращают ссылку на найденный элемент или пустую ссылку, если элемент не найден. Проверка на пустую ссылку производится методом Пустая (булево).

 

СпрСсылка=Справочники.Контрагенты.НайтиПоКоду(000000072);

Если СпрСсылка.Пустая() Тогда

Сообщить("Контрагент не найден");

Иначе

Сообщить(СпрСсылка.Наименование);

КонецЕсли;

 

Удаление элемента или группы

Удаление элемента справочника производится толь с помощью объекта СправочникОбъект. Следует различать пометку на удаление и непосредственное удаление объекта.

 

СпрСсылка=Справочники.Контрагенты.НайтиПоКоду(72);

Если НЕ СпрСсылка.Пустая() Тогда

СпрОбъект=Спр.ПолучитьОбъект();

//1

СпрОбъект.ПометкаУдаления=Истина;

СпрОбъект. Записать();

//2

СпрОбъект.УстановитьПометкуУдаления(Истина);

//3

СпрОбъект.Удалить();

КонецЕсли;

 

ПолучитьОбъект - получает по ссылке объект, предназначенный для модификации справочника.

ПометкаУдаления – свойство справочника, содержит признак пометки на удаление элемента справочника.

УстановитьПометкуУдаления(<Пометка удаления>, <Включая подчиненные>) - устанавливает/снимет пометку на удаление. Объект при этом не удаляется из базы данных. Окончательное удаление помеченных элементов справочника происходит при удалении помеченных объектов. Применение метода влечет инициирование события ПередЗаписью, т.к. происходит сохранение измененного свойства ПометкаУдаления.

Удалить() - удаляет элемент справочника из базы данных. В отличие от метода УстановитьПометкуУдаления, данный производит непосредственное удаление элемента справочника без возможности восстановления и без проверки ссылочной целостности. Использовать данный метод нужно крайне осмотрительно.

 

Открытие форм справочника

Часто требуется программно открыть какую-либо форму справочника, например, при нажатии на клавишу Подбор в документах для заполнения табличной части. Рассмотрим возможные варианты открытия форм:

 

// Обращение к форме по имени

Форма=Справочники.Контрагенты.ПолучитьФорму("ФормаСписка");

Форма.Открыть();

// Открыть основную форму списка

Справочники.Контрагенты.ПолучитьФормуСписка().Открыть();

Модуль объекта

Существуют следующие события, обработчики которых располагаются в модуле справочника:

ПриКопировании - возникает при создании элемента справочника копированием. В обработчике события можно, например, заполнить некоторые реквизиты элемента справочника.

ПередЗаписью(<Отказ>) - возникает перед выполнением записи элемента справочника. Процедура-обработчик вызывается после начала транзакции записи, но до начала записи элемента справочника. Здесь можно отказаться от записи элемента. Параметр <Отказ> - признак отказа от записи элемента. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись элемента выполнена не будет. Значение по умолчанию: Ложь.

ПриЗаписи(<Отказ>) - возникает при записи объекта. Процедура-обработчик вызывается после записи объекта в базу данных, но до окончания транзакции записи. Параметр <Отказ> - признак отказа от записи элемента. Если в теле процедуры-обработчика установить данному параметру значение Истина, запись элемента выполнена не будет.

ПередУдалением(<Отказ>) - возникает перед непосредственным удалением объекта из базы данных.

ПриУстановкеНовогоКода(<Стандартная обработка>, <Префикс>) - возникает в момент, когда выполняется установка нового кода элемента справочника.

Параметры: <Стандартная обработка>. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная генерация нового кода производиться не будет. Значение по умолчанию: Истина. <Префикс> - Префикс, который будет использоваться для генерации кода. Может быть изменен в процедуре-обработчике события.

ОбработкаЗаполнения(<Основание>) - возникает при вводе элемента справочника на основании, а также при выполнении метода Заполнить. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов элемента справочника на основании переданного значения. Параметры:<Основание> Тип: Произвольный. Значение, которое используется как основание для заполнения.

 

Документы

Работа с документами производится с помощью следующих объектов:

· ДокументыМенеджер. Обеспечивает доступ ко всем справочникам конфигурации. Свойства этого объекта совпадают с именами справочников и содержат объекты типа СправочникМенеджер.

· ДокументМенеджер. Обеспечивает доступ к операциям над справочником как множеством элементов. Через методы этого объекта можно осуществлять поиск, получать выборку, создавать новые элементы, обращаться к формам и макетам справочника.

· ДокументСсылка. Однозначно идентифицирует элемент (группу) справочника и позволяет обращаться к нему в режиме «только чтение». Через свойства и методы этого объекта можно прочитать реквизиты элемента (группы), обратиться к его табличным частям. Значение этого типа хранится в реквизитах, ссылающихся на элементы данного справочника, например, в реквизите Сотрудник документа ПриемНаРаботу хранится ссылка на конкретный элемент справочника Сотрудники.

· ДокументОбъект.Предоставляет доступ к элементу с возможностью записи. Данный объект содержит методы, влияющие на элемент в базе данных, например, методы Записать и Удалить.

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

· ДокументСписок. Объект для управления списком элементов в табличном поле. Позволяет управлять колонками, отбором и сортировкой в списке.

 

Проведение документов

Как правило, при регистрации события изменяется состояние регистров, например, формируется бухгалтерские проводки, изменяется количество товара на складе. Все эти действия совершаются при проведении документа. При проведении документа вызывается процедура – обработчик события ОбработкаПроведения, в которой определяются действия данного документа.

Оперативное проведение. Документ проводится оперативно в момент совершения самой операции. При таком проведении можно контролировать текущие остатки регистров. Если документ проводится «задним числом» (из-за ошибки), применяется неоперативное проведение, при котором не должно быть обращений к текущим итогам регистров.

 



Последнее изменение этой страницы: 2016-12-28; просмотров: 191; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 54.227.97.219 (0.007 с.)