Запрос данных из Номенклатуры
PriceInfo[править | править код]
variant PriceInfo(int <PrMater>, string <FieldName>, variant <N>[, INTEGER <TableID>[, STRING <ArrName>]])
Функция возвращает информацию из поля или свойства с именем <FieldName>
записи (материала) с номером <PrMater>
справочника номенклатуры. Если данное поле для данной записи содержит NULL, функция возвращает значение по умолчанию <N>
.
Необязательный параметр <TableID>
определяет источник данных:
- 1 — номенклатурный справочник;
- 2 — справочник сборочных единиц.
Если этот параметр не указан, используется номенклатурный справочник.
<ArrName>
— имя создаваемого массива, в который будут занесены все элементы перечисляемого или множественного свойства. Каждый элемент заполняет два элемента массива:
- первый значение элемента (число или строка в зависимости от типа значений свойства);
- второй название элемента (строка);
Если задано <ArrName>
, то <FieldName>
должно задавать идентификатор перечисляемого или множественного свойства, а функция возвратит количество элементов у этого свойства (размерность массива <ArrName>
будет в два раза больше)
В качестве <FieldName>
могут выступать названия свойств материалов и сборочных единиц и следующие поля:
Из номенклатурного справочника:
- COD — ID материала
- MATTYPE — ID типа материала
- UNITS — ID единицы измерения материала
- PRICE — цена материала
- MATTYPENAM — название типа материала
- MATNAME — название материала
- ARTICLE — артикул материала
- UNITSNAME — название единицы измерения
- GROUPID — ID группы материала
- GROUPNAME — название группы материала
- PARENTID — ID "родителя" данной номенклатурной единицы.
Из справочника сборочных единиц
- NAME — название сборочной единицы
- FURNTYPE — Furntype сборочной единицы
- GROUPID — ID группы сборочной единицы
- GROUPNAME — название группы сборочной единицы
NPGetByWhere[править | править код]
INTEGER NPGetByWhere(INTEGER <TableID>, { STRING <Where> | STRING ARRAY <Where>}, STRING <ArrName>[, INTEGER <SubsID>])
Функция извлекает из справочника "Номенклатура" или справочника "Сборочные единицы" записи, удовлетворяющие условию, заданному в строке или массиве строк <Where>
. Строка или массив строк <Where>
содержит логическое выражение, задающее условие отбора. При этом идентификаторы свойств должны быть заключены в квадратные скобки ([]). Синтаксис выражения должен удовлетворять синтаксису предложения WHERE части SQL-запроса/ Строка с условием должна быть не длиннее 255 символов. Если необходимо условие большей длины, то вместо одной строки необходимо использовать массив строк, каждая из которых не должна превышать 255 символов.
<TableID>
— источник данных:
- 1 — Извлечь из справочника "Номенклатура";
- 2 — Извлечь из справочника "Сборочные единицы".
<ArrName>
— строка с именем массива, в который надо положить результат. Массив создается или пересоздается внутри функции.
<SubstID>
— код подстановки или 0: если задан код номенклатурной подстановки, то выбираем только из этой подстановки
Функция возвращает количество извлеченных записей. Если их больше ноля, то создается массив с именем <ArrName>
, в котором находятся ID найденных записей.
Если результат функции присваивается какой-то переменной, то эта переменная должна быть предварительно определена. |
NPGetByProps[править | править код]
INTEGER NPGetByProps(INTEGER <GoodsID>, VARIANT <GoodsProp>, VARIANT <MatProp>, DOUBLE <ValProp>[, STRING <Filter>])
INTEGER NPGetByProps(INTEGER <GoodsID>, VARIANT <GoodsProp>, VARIANT ARRAY <MatProp>, DOUBLE <ValProp>[, INTEGER <Number>[, INTEGER <Start>]][, STRING <Filter>])
Функция ищет номенклатурную единицу из множества, назначенного сборочной единице <GoodsID>
свойством <GoodsProp>
, с наибольшим значением свойства <MatProp>
(или группы свойств, заданной массивом <MatProp>
), которое меньше либо равно заданного значения <ValProp>
.
<Number>
— количество номенклатурных свойств. Используется если <MatProp>
— массив. Если не задано, то <Number>
равно размерности массива <MatProp>
<Start>
— индекс первого номенклатурного свойства в массиве <MatProp>
. Используется если <MatProp>
— массив. Если не задано, то <Start>
равно единице.
<Filter>
– строка-условие фильтрации, в которой можно использовать идентификаторы свойств, заключенные в квадратные скобки
- >0 — ID найденной номенклатурной единицы
- 0 — номенклатурной единицы с таким значением свойства
<MatProp>
не существует
- -1 — нет сборочной единицы с заданным
<GoodsID>
- -2 — нет свойства
<GoodsProp>
или оно не является множественным
- -3 — нет такого свойства
<MatProp>
или оно имеет не вещественные значения
Примечание 1. Свойства <GoodsProp>
и <MatProp>
могут быть заданы строкой — идентификатором свойства, или числом — кодом свойства.
Примечание 2. Свойству <MatProp>[i]
соответствуют значение <ValProp>[i]
для i от <Start>
до <Start>
+<Number>
–1
Пример 1:
GoodsID=DoorPict; // ID фасада в справочнике изделий GoodsProp="ListMat"; MatProp[1]="Height"; MatProp[2]="Width"; ValProp[1]=dz; ValProp[2]=dx; IDFas=NPGetByProps(GoodsID,GoodsProp,MatProp,ValProp);
Пример 2:
=NPGetByProps(475,”Guide”,”Length”,350.,”[PriceCoeff] > 1.”);
NPGetByPropN[править | править код]
INTEGER NPGetByPropN(INTEGER <EntityID>, VARIANT <MultiProp>, VARIANT <MatProp>, VARIANT <ValProp>[, INTEGER <Number>[, INTEGER <Start>]][, STRING <Filter>])
Функция ищет номенклатурную единицу из множества, назначенного номенклатурной единице <EntityID>
свойством <MultiProp>
, с наибольшим значением свойств <MatProp>
, которые меньше либо равны заданным значениям <ValProp>
.
<EntityID>
— ID номенклатурной единицы
<MultiProp>
— идентификатор или код многозначного свойства, задающего номенклатурное множество
<MatProp>
— идентификатор или код номенклатурного свойства. Может быть массивом
<ValProp>
— вещественное значение номенклатурного свойства. Должен быть массивом, если <MatProp>
— массив
<Number>
— количество номенклатурных свойств. Используется если <MatProp>
— массив. Если не задано, то равно размерности массива <MatProp>
<Start>
— индекс первого номенклатурного свойства в массиве <MatProp>
. Используется если <MatProp>
— массив. Если не задано, то равно 1
<Filter>
— дополнительный фильтр отбора номенклатурных единиц
- >0 — ID найденной номенклатурной единицы
- 0 — номенклатурной единицы с таким значением свойства
<MatProp>
не существует
- –1 — нет такой номенклатурной единицы
- –2 — нет такого свойства
<MultiProp>
или оно не является множественным
- –3 — нет такого свойства
<MatProp>
или оно имеет не вещественные значения
Примечание Cвойству <MatProp[i]>
соответствуют значение <ValProp[i]>
для i от <Start>
до <Start>
+<Number>
–1
FixDets[править | править код]
INTEGER FixDets(INTEGER <FixTypeID>, STRING <ArrName>)
Функция создает массив с именем <ArrName>
и заполняет его параметрами типа крепежа типа <FixTypeID>
. Функция возвращает количество деталей крепежа с данным типом. Если чисто деталей с данным типом больше нуля, то создается массива <ArrName>
размерностью 5*n, где n — число деталей крепежа с данным типом.
<ArrName>
[5*i+1] — ID детали крепежа
<ArrName>
[5*i+2] — X-координата точки установки детали относительно точки установки группы крепежа
<ArrName>
[5*i+3] — Y-координата точки установки детали относительно точки установки группы крепежа
<ArrName>
[5*i+4] — Z-координата точки установки детали относительно точки установки группы крепежа
<ArrName>
[5*i+5] — номер используемого правила для этой детали крепежа
FixDetInfo[править | править код]
VARIANT FixDetInfo(INTEGER <DetID>, STRING <Property>, VARIANT <DefValue>)
Функция возвращает значение свойства или поля с именем <Property>
у детали крепежа с ID=<DetID>
. Если такого свойства или поля нет, то возвращается значение <DefValue>
.
Допустимые свойства:
- Y — величина сдвига детали в мм по оси Y
- Ky — величина сдвига детали в долях толщины по оси Y
- Z — величина сдвига детали в мм по оси Z
- Kz — величина сдвига детали в долях толщины по оси Z
- Alpha — угол поворота детали крепежа вокруг оси Z в градусах
- PriceID — ID номенклатурной единицы, соответствующей этой детали крепежа
FixRuleInfo[править | править код]
VARIANT FixRuleInfo(INTEGER <RuleID>, STRING <Property>, VARIANT <DefValue>)
Функция возвращает значение свойства или поля с именем <Property>
у правила крепежа с ID=<RuleID>
. Если такого свойства или поля нет, то возвращается значение <DefValue>
.
Допустимые свойства:
- Type — тип правила
- Left — минимальное расстояние до левого края торца
- Right — минимальное расстояние до правого края торца
- Step — величина шага кратность шага между экземплярами детали крепежа
- Number — количество экземпляров детали крепежа
- Margin — правила выравнивания деталей крепежа вдоль торца
- Table — имя таблицы при расстановке по таблице или пустая строка, если это правило не по таблице
- Macro — имя макро при расстановке по макро или пустая строка, если это правило не по макро
GetListMat[править | править код]
INTEGER GetListMat(INTEGER <TypeMat>, STRING <ArrayName>)
Функция создает массив с именем <ArrayName>
, который заполняет ID материалов из номенклатурного справочника, согласно критерию <TypeMat>
. Анализируем только видимые объекты
Возможные значения критерия <TypeMat>
:
<TypeMat>
= 1 — кромочные материалы
<TypeMat>
= 2 — отделочные материалы
<TypeMat>
= 3 — материалы панелей
Функция возвращает количество материалов в списке