DoljnList - Класс для работы со справочником должностей

Пример: Поиск недействительных ID в поле КЧ должность и заведение вместо них новых должностей

Класс для работы со справочником должностей.

Справочник должностей хранится в файле (T_SRC\t_doljn.val)

Получать/изменять параметры должностей можно как через этот класс справочника должностей DoljnList, так и с помощью класса должности DojnElem.

Методы класса:
МетодОписание
DoljnListIterator CreateIterator ()
Создает итератор для перемещения по справочнику должностей (описание и пример использования см. в описании класса DoljnListIterator)
unsigned int Size ()
Возвращает количество должностей в справочнике
int Find (
   long ID_Doljn)
Проверяет, cуществует ли должность с внутренним кодом ID_Doljn, возвращает 1 если существует, иначе 0
DoljnElem AddNewDoljn (
   BSTR doljnName, 
   BOOL saveDoljnList)
Добавляет в список новую должность с наименованием doljnName. Параметр saveDoljnList регулирует - сохранять или нет список после ее добавления (в случае добавления нескольких должностей подряд лучше сохранять список в конце, после добавления всех, методом Save). Возвращает объект созданной должности для возможной дальнейшей корректировки (задании кода ОКПДТР, фасетов, внешнего кода и т.д.), в случае ошибки объект может быть пуст
int RemoveDoljn (
   int ID_Doljn, 
   BOOL saveDoljnList)
Удаляет должность с внутренним кодом ID_Doljn из списка. Параметр saveDoljnList - см. метод AddNewDoljn выше. Возвращает 1 в случае успеха, иначе 0.

Внимание! метод безусловно удаляет должность ID_Doljn из списка должностей, необходимо убедится, что такой должности в других ЛС нет!

Метод делает все существующие итераторы (объекты класса DoljnListIterator) недействительными (т.е. на них необходимо снова вызвать SetBegin или Find)

int Save ()
Сохраняет изменения справочника должностей (если этого не сделать - изменения в справочнике должностей пропадут после выхода из программы). После вызова метода снимается блокировка справочника (если она была).
Методы получения значений
long GetBaseID ()
Получает ID "основной должности" (должности по-умолчанию). Большого практического смысла не имеет.
BSTR GetExtCod (
  int ID_Doljn)
Получает внешний код должности с внутренним кодом ID_Doljn
BSTR GetName (
  int ID_Doljn)
Получает название должности с внутренним кодом ID_Doljn
int GetPodr (
  int ID_Doljn)
Получает код подразделения, привязанный к должности с внутренним кодом ID_Doljn
Методы записи значений
При вызове методов записи значений производится попытка блокировки справочника должностей
void SetName (
  int ID_Doljn, BSTR iLN)
Установить новое название должности с внутренним кодом ID_Doljn
void SetExtCod (
  int ID_Doljn, BSTR iSN)
Установить внешний код должности с внутренним кодом ID_Doljn
void SetBaseID (
  long iBaseID)
Установить ID "основной должности" (должности по-умолчанию). Большого практического смысла не имеет.
void SetPodr (
  int ID_Doljn, int Podr)
Установить код подразделения, привязанный к должности с внутренним кодом ID_Doljn