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

Материал из FrigatWiki

Перейти к: навигация, поиск

Содержание

Файл SW.ini. Сведения о подключенных базах данных.


В файле SW.ini храниться информация о подключенных в системе базах . Данный файл храниться всегда на сервере .
Структура файла :
[Alias.Моя база данных] HOST=ANDREY DATABASE=D:\bases\SW.GDB PROTOCOL=TCP/IP
[Alias.Моя база данных] – В этой строке прописывается название базы данных, которое светиться при старте программы в окне выбора базы данных.(В данном случае Моя база данных)
HOST=ANDREY – В этой строке прописывается сетевое имя или IP адрес компьютера на котором находиться файл базы данных. .(В данном случае ANDREY )
DATABASE=D:\bases\SW.GDB - В этой строке прописывается путь к базе данных на компьютере HOST.
PROTOCOL=TCP/IP - В этой строке прописывается сетевой протокол .


Файл SW.PRO .Настройка интерфейса пользователя на клиентских ПК.


Программа позволяет настроить индивидуальный, удобный для работы интерфейс на клиентских/локальных ПК. Для этого необходимо отредактировать файл настройки интерфейса sw.pro, находящийся в папке SW4 клиентского/локального ПК. В случае стандартной сетевой установки этот файл необходимо предварительно скопировать на клиентский ПК из аналогичной папки на сервере. А для того чтобы при вызове программы на клиентском ПК ориентировать ее на клиентский sw.pro, необходимо в файл sw.ini на сервере для каждого пользователя добавить строки:
[User.<имя пользователя>]
profile=C:\Program Files\F-Soft\SW\sw.pro
где: имя пользователя – имя пользователя на сервере IB FB, profile – путь к файлу настроек на клиентском ПК.
В файле настройки интерфейса можно создать новые, не входящих в стандартную поставку закладки-темы, закомментировать ненужную тему или раздел символом “;”, переставить и перекомпоновать состав тем и разделов.
На примере редактирования исходного файла sw.pro с помощью программы “Блокнот” рассмотрим его структуру


Под строкой [Profile] содержится список названий закладок-тем, соответствующих исходной конфигурации интерфейса программы ФРЕГАТ-СКЛАД.
[Profile]
Торговля=Накладные
Финансы
Кассы
Отчетность=Отчеты
Настройки=Справочники
Знак равенства определяет стартовый раздел в теме.
Описание закладки-темы включает список разделов данной темы и выглядит следующим образом:
[Торговля]
Договора=;docs,fsbin
Счета=Исходящие счета;docs,fsbin
Накладные=Расходные накладные;docs,fsbin
Внутренние документы=Накладные перемещения;docsint,fsbin
Акты приемки-сдачи работ=;acpts,fsbin

После знака равенства указывается название стартового подраздела, а после точки с запятой – описание ресурса иконок.
Описание раздела включает список подразделов данного раздела и выглядит следующим образом:
[Торговля.Накладные]
Приходные накладные=TfmDocs,411;folder,fsbin
Расходные накладные=TfmDocs,412;folder,fsbin
Возвраты поставщикам=TfmDocs,422;folder,fsbin
Возвраты покупателей=TfmDocs,421;folder,fsbin
Продажи через кассу=TfmDocs,452;folder,fsbin
Возвраты по кассе=TfmDocs,451;folder,fsbin
Акты принятия на реализацию=TfmDocs,461;folder,fsbin
Отчеты реализаторов (исходящие)=TfmDocs,472;folder,fsbin
Возвраты по отчетам реализаторов=TfmDocs,481;folder,fsbin
Акты передачи на реализацию=TfmDocs,742;folder,fsbin
Где TfmDocs,411–TfmDoc,742 – неизменяемая системная информация (название и режим формы); folder,fsbin – описание ресурса иконок (название иконки и содержащая ее библиотека).

Итак, файл sw.pro следует редактировать, руководствуясь представленной структурой.
Например, для удобства работы Вы хотите создать новую закладку-тему Товары, включить в нее раздел Товары и цены и убрать ненужные Вам темы. При этом описание тем может выглядеть следующим образом:
[Profile]
Товары
Торговля=Накладные
Отчетность=Отчеты
Настройки=Справочники

Теперь требуется определить разделы и подразделы, входящие в тему Товары:
[Товары]
Товары=Товары и цены;refers,fsbin
[Товары.Товары]
Товары и цены=TfmGoodsRef;folder,fsbin

По аналогии можно создать любую удобную конфигурацию тем, разделов и подразделов программы ФРЕГАТ-СКЛАД.


Файл Docs.INI .Настройка интерфейса пользователя. Дополнительные настройки колонок, фильтра и сортировки.

При установке программы данный файл отсутствует в системе и возможности по дополнительной настройке отсутствуют. При наличии файла Docs.ini в папке sw4 настройки фильтра и сортировки берутся из него. Пример содержания файла.
[DATA.НаклПриходная]
select
D.ID
D.PARENT_ID
D.DT
D.NUMBER
D.NUMBER2
D.DOCIDEN
C.NAME AS DOCNAME [V- S+ F+]
S.NAME AS SELF [V- S+ F+]
F.NAME AS FACE [S+ F+]
M.NAME AS MANAGER [S+ F+]
ST.NAME AS RCPSTOCK [V+ S+ F+ W=20]
D.SUM_QUANT[S+ F+]
D.SUM_RTNQNT
D.CURRENCY_ID
.CRCCODE
D.CRCRATIO_N [C+]
D.SUM0_N
D.SUM0_I
.SUM0
D.SUMNDS_N
D.SUMNDS_I
.SUMNDS[S+ F+]
.SUMWNDS[S+ F+]
D.SUMNSP_N
D.SUMNSP_I
.SUMNSP[S+ F+]
.SUMWNSP[S+ F+]
D.SUMAFS_N
.SUMAFS
D.SUMJOIN_N
.SUMJOIN [L='Оплачено' S+ F+]
D.SUMRMN_N
.SUMRMN
D.SUMNP_N
.SUMNP
D.DT_PAY [@DT L='Срок опл.' V- C+ S+ F+]
D.DTX [@DT V- L='Дата пр.' T='GetTextDTx' S+]
D.STATE [@CHK L=' П' F+]
.CHK_AF [@CHK L='СФ']
.CHK_SUMJOIN [@CHK L=' О']
.CHK_SUMRTNQNT [L=' В' @CHK]
BIT_AND(D.RXFLAGS, 1) AS CHK_AVREP [@CHK L='АО' V- F+]
IFI(BIT_AND(D.RXFLAGS, 2), 1, 0) AS CHK_CONTR [@CHK L='Д' F+ V-]
D.BXFLAG [@CHK L='Бух' F+]
D.BXSTATE [@CHK L='ХО' V- F+]
D.GROUND['Основание' V+ F+ S+]
D.REMARK['Примечание' V+ F+ S+]
D.ACTIVED [F+]
D.PAY_RULES_ID
PD.NAME[@STRING L='Статус документа' V+ C+ F+ S+]
from
DOCCLASSES C
JOIN DOCS D ON (D.DOCIDEN = C.ID)
LEFT JOIN FACES S ON (S.ID = D.SELF_ID)
LEFT JOIN FACES F ON (F.ID = D.FACE_ID)
LEFT JOIN STOCKS ST ON (ST.ID = D.RCPSTOCK_ID)
where
C.CLASS_ID = %CLASS_ID AND
ACC_OK(C.ACC$BROWSE, %ACC$MASK) > 0 AND
ACC_OK(ST.ACC$BROWSE, %ACC$MASK)> 0 AND
ACC_OK(S.ACC$BROWSE, %ACC$MASK) > 0 AND
ACC_OK(F.ACC$BROWSE, %ACC$MASK) > 0
 %SELF
 %RANGE
 %DSP
 %UID
order by
3,4

Расшифровка флагов.
V+ - поле видимо(+), поле не видимо(-)
S+ - возможность сортировки по данному полю . (+) – сортировка возможна , (-) - сортировка невозможна.
F+ - возможность установки фильтра по данному полю . (+) фильтр возможен , (-) - фильтр невозможен.
C+ - возможность вывода поля в перечень колонок, (+) – возможно, (-) невозможно.
@STRING L='Оплачено' – возможность переименования колонки. В если этот флаг отсутствует колонка называется по умолчанию, а не так как указано в ‘ ’.

Расшифровка полей:


В качестве полей выступают поля запрашиваемых таблиц из секции FROM . (В данном случае DOCCLASSES и DOCS)

Файл Batprint.INI .Настройка печати.

Названия секций для документов имеют вид :

Documents.Код{.Фильтр1{.Фильтр2{. ... {.ФильтрN}}}}

где Код - это идентификатор класса документа, для которого вызывается диалог печати
ФильтрI имеет вид:


Название=значение


Определены следующие названия фильтров:
DSP - проверяется галочка "ДСП" на документе (на СФ этой галочки НЕТ!).
Значение - 0 (галочка снята) или 1 (галочка выставлена)


FaceGroup - проверяется значение аналитики "№ пакета документов" (определяется в настройках системы) для контрагента документа. Значение - целое число.
Если на контрагенте нет такой аналитики, то считается, что ее значение - 0.


SelfGroup - аналогично FaceGroup, но проверяется значение аналитики для своей организации документа.


Каждая запись в секции имеет вид:
Название = Тип элемента, [Привязка], Ссылка, [Двухсторонняя печать], Кол-во копий по умолчанию[, SQL]

Название это отображаемая строка Тип элемента для документа "Doc" для аналитики "Prop" Привязка указывается для аналитики аналитика привязана к документу "Doc" аналитика привязана к элементам документа "DocItem" аналитика привязана к товарам "Good"

Ссылка - для документа ссылка на файл шаблона для аналитики название аналитики

Двухсторонняя печать - указывается для аналитики 1 - выравнивать количество страниц до четного 0 - не выравнивать количество страниц до четного

SQL - ссылка на SQL-запрос или непосредственно SQL-запрос (в случае, если в секции SQL не найден запрос с таким именем)


Может существовать специальная секция SQL, в которой описываются SQL-запросы

Записи этой секции имеют вид: Псевдоним = SQL-запрос

Каждый SQL-запрос для документа должен выдавать список идентификаторов (ID) документов для соответствующих шаблонов. В качестве параметра принимается идентификатор (fID) вызывающего документа.

Каждый SQL-запрос для аналитик должен выдавать список идентификаторов (ID) документов или элементов документов, для которых необходимо найти данную аналитику. В качестве параметра принимается идентификатор (fID) вызывающего документа.

Пример содержания файла:

Счет(входящий)

[Documents.31101] Счет(входящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1 Приходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1, NFS Счет-фактура входящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1, FFS


Счет(исходящий)

[Documents.31201] Счет(исходящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1 Расходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1, NFS Счет-фактура исходящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1, FFS

Приходная накладная

[Documents.41101] Счет(входящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1, SFN Приходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1 Счет-фактура входящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1, FFN

Расходная накладная [Documents.41201] Счет(исходящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1, SFN Расходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1 Счет-фактура исходящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1, FFN

Счет-фактура входящая

[Documents.90101] Счет(входящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1, SFF Приходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1, NFF Счет-фактура входящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1

Счет-фактура исходящая

[Documents.90201] Счет(исходящий) = Doc, "C:\Program Files\F-Soft\SW4\RPT\d300an.rpt", 1, SFF Расходная накладная = Doc, "C:\Program Files\F-Soft\SW4\RPT\d400and_NP.rpt", 1, NFF Счет-фактура исходящая = Doc, "C:\Program Files\F-Soft\SW4\RPT\d900f.rpt", 1

[SQL]

получение ID накладных из ID счета

NFS = "SELECT id FROM DOCS WHERE parent_id=:fID UNION SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID"

получение ID счетов из ID накладной

SFN = "SELECT D2.id FROM DOCS D1 INNER JOIN DOCS D2 ON D2.id=D1.parent_id WHERE D1.id=:fID UNION SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI1.parent_id=DI2.id WHERE DI1.document_id=:fID"

получение ID счета-фактуры из ID накладной

FFN = "SELECT id FROM AFS WHERE document_id=:fID"

получение ID накладной из ID счета-фактуры

NFF = "SELECT document_id FROM AFS WHERE id=:fID"

получение ID счетов-фактур из ID счета

FFS = "SELECT id FROM AFS WHERE document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"

получение ID счетов из ID счета-фактуры

SFF = "SELECT D2.id FROM DOCS D1 INNER JOIN DOCS D2 ON D2.id=D1.parent_id WHERE D1.id IN (SELECT document_id FROM AFS WHERE id=:fID) UNION SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI1.parent_id=DI2.id WHERE DI1.document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

получение ID элементов приходной накладной из ID входящего счета

IPNFPS = "SELECT id FROM DOCITEMS WHERE document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"

получение ID элементов приходной накладной из ID входящего счета с группировкой по Good_ID

IDPNFPS = "SELECT MIN(id) AS id FROM DOCITEMS WHERE document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID) GROUP BY good_id, itemcode"

получение ID товаров приходной накладной из ID входящего счета

GPNFPS = "SELECT DISTINCT good_id AS id FROM DOCITEMS WHERE document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"


получение ID элементов приходной накладной из ID исходящего счета

IPNFRS = "SELECT DI2.id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR DI1.document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"

получение ID элементов приходной накладной из ID исходящего счета с группировкой по Good_ID

IDPNFRS = "SELECT MIN(DI2.id) AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR DI1.document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID) GROUP BY DI2.good_id, DI2.itemcode"

получение ID товаров приходной накладной из ID исходящего счета

GPNFRS = "SELECT DISTINCT DI2.good_id AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR DI1.document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"

получение ID приходных накладных из ID исходящего счета

PNFRS = "SELECT DISTINCT(DI2.document_id) AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT id FROM DOCS WHERE parent_id=:fID) OR DI1.document_id IN (SELECT DI2.document_id FROM DOCITEMS DI1 INNER JOIN DOCITEMS DI2 ON DI2.parent_id=DI1.id WHERE DI1.document_id=:fID)"

получение ID элементов приходной накладной из ID приходной накладной

IPNFPN = "SELECT id FROM DOCITEMS WHERE document_id=:fID"

получение ID элементов приходной накладной из ID приходной накладной с группировкой по Good_ID

IDPNFPN = "SELECT MIN(id) AS id FROM DOCITEMS WHERE document_id=:fID GROUP BY good_id, itemcode"

получение ID товаров приходной накладной из ID приходной накладной

GPNFPN = "SELECT DISTINCT good_id AS id FROM DOCITEMS WHERE document_id=:fID"

получение ID элементов приходной накладной из ID расходной накладной

IPNFRN = "SELECT DI2.id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id=:fID"

получение ID элементов приходной накладной из ID расходной накладной с группировкой по Good_ID

IDPNFRN = "SELECT MIN(DI2.id) FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id=:fID GROUP BY DI2.good_id, DI2.itemcode"

получение ID товаров приходной накладной из ID расходной накладной

GPNFRN = "SELECT DISTINCT DI2.good_id AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id=:fID"

получение ID приходных накладных из ID расходной накладной

PNFRN = "SELECT DISTINCT(DI2.document_id) AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id=:fID"

получение ID элементов приходной накладной из ID входящей счета-фактуры

IPNFPF = "SELECT id FROM DOCITEMS WHERE document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

получение ID элементов приходной накладной из ID входящей счета-фактуры с группировкой по Good_ID

IDPNFPF = "SELECT MIN(id) AS id FROM DOCITEMS WHERE document_id IN (SELECT document_id FROM AFS WHERE id=:fID) GROUP BY good_id, itemcode"

получение ID товаров приходной накладной из ID входящей счета-фактуры

GPNFPF = "SELECT DISTINCT good_id AS id FROM DOCITEMS WHERE document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

получение ID элементов приходной накладной из ID исходящей счета-фактуры

IPNFRF = "SELECT DI2.id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

получение ID элементов приходной накладной из ID исходящей счета-фактуры с группировкой по Good_ID

IPNFRF = "SELECT MIN(DI2.id) AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT document_id FROM AFS WHERE id=:fID) GROUP BY DI2.good_id, DI2.itemcode"

получение ID товаров приходной накладной из ID исходящей счета-фактуры

GPNFRF = "SELECT DISTINCT DI2.good_id AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

получение ID приходных накладных из ID исходящей счета-фактуры

PNFRF = "SELECT DISTINCT(DI2.document_id) AS id FROM DOCITEMS DI1 INNER JOIN DOCENTRIES DE ON DE.i_id=DI1.id INNER JOIN DOCITEMS DI2 ON DE.e_id=DI2.id WHERE DI1.document_id IN (SELECT document_id FROM AFS WHERE id=:fID)"

Личные инструменты