Файл содержит товары, таблицу индексов и группы товаров. Файл имеет следующую структуру.

Информация о товарах
|
Название |
Размер поля в байтах |
Значение |
|
|
Префикс таблицы товаров |
4 |
46h 54h 4bh 54h, (FTKT) |
|
|
Количество индексируемых полей |
4 |
CntField = 3 |
|
|
Описание индекса для поля «Код» |
Размер индексного массива |
4 |
CntInd1 = кол. товаров. |
|
Ширина индексной записи |
4 |
WInd1 = 4 + 4 = 8 |
|
|
Смещение в файле |
4 |
OffInd1 = 52(Размер заголовка) |
|
|
Описание индекса для поля «Штрих-код» |
Размер индексного массива |
4 |
CntInd2 = кол. товаров. |
|
Ширина индексной записи |
4 |
WInd2 = 14 + 4 = 18 |
|
|
Смещение в файле |
4 |
OffInd2 = OffInd1+ (CntInd1 * WInd1) |
|
|
Описание индекса для поля «Цена» |
Размер индексного массива |
4 |
CntInd3 = кол. товаров. |
|
Ширина индексной записи |
4 |
WInd3 = 8+ 4 = 12 |
|
|
Смещение в файле |
4 |
OffInd2 = OffInd2+ (CntInd2 * Wind2) |
|
|
|
Массив записей индексов «Код» |
SizeInd1 = CntInd1 * WInd1 |
- |
|
|
Массив записей индексов «Штрих-код» |
SizeInd2 = CntInd2 * Wind2 |
- |
|
|
Массив записей индексов «Цена» |
SizeInd3 = CntInd3 * Wind3 |
- |
|
|
Массив записей товаров |
Переменной длинны |
- |
Структура записи индекса поля «Код»
|
Название |
Размер поля в байтах |
Тип |
|
Код |
4 |
INTEGER |
|
Смещение записи товара в файле |
4 |
INTEGER |
Структура записи индекса поля «Штрих-код»
|
Название |
Размер поля в байтах |
Тип |
|
Штрих-Код |
14 |
CHAR(14) |
|
Смещение записи товара в файле |
4 |
INTEGER |
Структура записи индекса поля «Цена»
|
Название |
Размер поля в байтах |
Тип |
|
Цена |
8 |
DOUBLE |
|
Смещение записи товара в файле |
4 |
INTEGER |
Структура записи товара.
|
№ поля |
Название |
Размер поля в байтах |
Тип |
|
1 |
Код |
4 |
INTEGER |
|
2 |
Наименование |
1-2000 |
STRING |
|
3 |
Цена |
8 |
LONGINTEGER |
|
4 |
Количество |
8 |
DOUBLE |
|
5 |
Отдел |
4 |
INTEGER |
|
6 |
Разрешить дробное количество ( весовой) |
4 |
INTEGER |
|
7 |
Схема скидки |
4 |
INTEGER |
|
8 |
Текст для чека |
1-2000 |
STRING |
|
9 |
Код группы товаров |
4 |
INTEGER |
|
10 |
Штрих-коды через запятую |
1-2000 |
STRING |
|
11 |
Код налоговой группы |
4 |
INTEGER |
|
12 |
Код товара в весах с печатью весовой штрих этикетки |
4 |
INTEGER |
|
13 |
Резерв |
4 |
INTEGER |
Сразу за записью последнего товара идет информация о группах товаров.
|
Название |
Размер поля в байтах |
Значение |
|
Префикс таблицы групп товаров |
4 |
46h 47h 52h 50h (FGRP) |
|
Записи с группами товаров |
Переменной длинны |
- |
Структура группы товаров.
|
№ поля |
Название |
Размер поля в байтах |
Примечание |
|
1 |
Код |
4 |
- |
|
2 |
Наименование |
1-2000 |
- |
|
3 |
Наличие подгрупп |
4 |
0 или 1 |
|
4 |
Количество подгрупп |
4 |
Данное поле отсутствует, если поле «Наличие подгрупп» = 0 |
Порядок размещения записей групп в файле следующий. Записи групп следуют друг за другом, начиная с корневой группы. Группы-потомки (подгруппы) следуют непосредственно за родительской группой.
Расположение групп в памяти лучше показать на конкретном примере.

Расположение в памяти.
0|Все группы товаров|1|7|
6|Салаты и закуски|1|1|
11|Товар Пепси и Ботаник|0|
12|Гарниры|0|
7|Первые блюда|0|
8|Вторые блюда|0|
10|Товары|1|6|
418|Молочные продукты|0|
420|Пирожные|0|
416|Производство|0|
417|Выпечка|0|
15|Старое|1|4|
126|Напитки старое|0|
127|На производство старое|0|
303|Молочка старое|0|
56|Пирожные старое|0|
419|Напитки Пепси и Ботаник|0|
86|Добавки|0|
9|Напитки|0|