//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++
//	|                              Абстрактный набор записей                                    |
//	+                                      ShmalevoZ                                            +
//	|                                       2009-10                                             |
//	+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++---+++

///<namespace 
///		name="Общие.Абстрактный"
///>
//
///		<class
///			name="Общие.Абстрактный.НаборЗаписей"
///			version="1.0"
///			lastdate=""
///			descr="Абстрнактный набор записей"
///			depends="Общие.Абстрактный.Запись"
///			use=""
///			autor="ShmalevoZ"
///			firm=""
///			base=""
///			example=""
///			remark=""
///		>

class Общие.Абстрактный.НаборЗаписей = recordset.txt : Общие.Абстрактный.Запись {

	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Создать"
	///				access="Public"
	///			>
	///				<summary>
	///					Инициализирует набор.
	///				</summary>
	///				<example>
	///					Набор.Создать("Поле1, Поле2, Поле3,...");
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="СписокАтрибутов"
	///					mod=""
	///					type="Неопределенный"
	///					defaultvalue=""
	///				>
	///					Список атрибутов набора. Либо строка (поля, разделенные запятой, либо точкой с запятой), либо СписокЗначений
	///				</param>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void Создать (Неопределенный СписокАтрибутов);
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Добавить"
	///				access="Public"
	///			>
	///				<summary>
	///					Добавляет запись в набор
	///				</summary>
	///				<example>
	///					НомерЗаписи	= Набор.Добавить(Запись);
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="Запись"
	///					mod=""
	///					type="Общие.Абстрактный.Запись"
	///					defaultvalue=""
	///				>
	///					Добавляемая запись
	///				</param>
	///				<returns
	///					type="Число"
	///				>
	///					Номер добавленной записи
	///				</returns>
	///				<sig>
	Число Добавить (Общие.Абстрактный.Запись Запись);
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Установить"
	///				access="Public"
	///			>
	///				<summary>
	///					Устанавливает значение в произвольном месте набора
	///				</summary>
	///				<example>
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="НомерЗаписи"
	///					mod=""
	///					type="Число"
	///					defaultvalue=""
	///				>
	///					Номер записи в наборе
	///				</param>
	///				<param
	///					name="Запись"
	///					mod=""
	///					type="Общие.Абстрактный.Запись"
	///					defaultvalue=""
	///				>
	///					Устанавливаемое значение
	///				</param>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void Установить (Число НомерЗаписи, Общие.Абстрактный.Запись Запись);
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Удалить"
	///				access="Public"
	///			>
	///				<summary>
	///					Удаляет запись из набора
	///				</summary>
	///				<example>
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="НомерЗаписи"
	///					mod=""
	///					type="Число"
	///					defaultvalue=""
	///				>
	///					Номер удаляемой записи
	///				</param>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void Удалить (Число НомерЗаписи);
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Количество"
	///				access="Public"
	///			>
	///				<summary>
	///					Возвращает количество записей в наборе
	///				</summary>
	///				<example>
	///					Если Набор.Количество() = 0 Тогда
	///						...
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="Число"
	///				>
	///					Количество записей в наборе
	///				</returns>
	///				<sig>
	Число Количество ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Очистить"
	///				access="Public"
	///			>
	///				<summary>
	///					Удаляет все записи из набора
	///				</summary>
	///				<example>
	///					Если Набор.Количество() <> 0 Тогда
	///						Набор.Очистить();
	///					КонецЕсли;
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void Очистить ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="ВНачало"
	///				access="Public"
	///			>
	///				<summary>
	///					Перемещает выборку записей в начало набора
	///				</summary>
	///				<example>
	///					Набор.ВНачало();
	///					Пока Набор.Следующая() = 1 Цикл
	///						...
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void ВНачало ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Следующая"
	///				access="Public"
	///			>
	///				<summary>
	///					Позиционирует набор на следующей записи
	///				</summary>
	///				<example>
	///					Выборк.ВНачало();
	///					Пока Набор.Следующая() = 1 Цикл
	///						...
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="Число"
	///				>
	///					Успех выполнения
	///				</returns>
	///				<sig>
	Число Следующая ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Предыдущая"
	///				access="Public"
	///			>
	///				<summary>
	///					Позиционирует набор на предыдущей записи
	///				</summary>
	///				<example>
	///					Набор.ВКонец();
	///					Пока Набор.Предыдущая() = 1 Цикл
	///						...
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="Число"
	///				>
	///					Успех выполнения
	///				</returns>
	///				<sig>
	Число Предыдущая ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="ВКонец"
	///				access="Public"
	///			>
	///				<summary>
	///					Перемещает выборку записей в конец набора
	///				</summary>
	///				<example>
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void ВКонец ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="Позиционировать"
	///				access="Public"
	///			>
	///				<summary>
	///					Прямое позиционирование на записи
	///				</summary>
	///				<example>
	///					Пока НомерЗаписи <= Набор.Количество() Цикл
	///						Набор.Перейти(НомерЗаписи);
	///						...
	///					КонецЦикла;
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="НомерЗаписи"
	///					mod=""
	///					type="Число"
	///					defaultvalue=""
	///				>
	///					Номер записи
	///				</param>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void Позиционировать (Число НомерЗаписи);
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="ТекущаяЗапись"
	///				access="Public"
	///			>
	///				<summary>
	///					Возвращает ссылку на текущую запись
	///				</summary>
	///				<example>
	///					Запись	= Набор.ТекущаяЗапись();
	///					Поле1	= Запись.Поле1;
	///				</example>
	///				<remark>
	///				</remark>
	///				<returns
	///					type="Общие.Абстрактный.Запись"
	///				>
	///					Текущая запись
	///				</returns>
	///				<sig>
	Общие.Абстрактный.Запись ТекущаяЗапись ();
	///				</sig>
	///			</method>
	
	//---------------------------------------------------------------------------------------------
	///			<method
	///				name="УстановитьАтрибут"
	///				access="Public"
	///			>
	///				<summary>
	///					Устанавливает значение атрибута
	///				</summary>
	///				<example>
	///				</example>
	///				<remark>
	///				</remark>
	///				<param
	///					name="УстановитьАтрибут"
	///					mod=""
	///					type="Неопределенный"
	///					defaultvalue=""
	///				>
	///					Номер/идентификатор атрибута
	///				</param>
	///				<param
	///					name="Значение"
	///					mod=""
	///					type="Неопределенный"
	///					defaultvalue=""
	///				>
	///					Значение атрибута
	///				</param>
	///				<returns
	///					type="void"
	///				>
	///					
	///				</returns>
	///				<sig>
	void УстановитьАтрибут (Неопределенный НомерИдентификатор, Неопределенный Значение);
	///				</sig>
	///			</method>

}
///		</class>
///</namespace>
