Остатки (F8)

Last updated 10 months ago

На панели инструментов документа есть кнопка с изображением желтого выдвижного ящика. Горячая клавиша - F8.

Свойство включается в конфигураторе - "SoldAllowGrids".

Значением свойства должно быть имя грида, в который нужно добавлять новые строки из остатков. Так как в документе может быть несколько гридов, имя рабочего грида необходимо указать.

Кроме того, можно указать имена нескольких гридов, разделяя их запятыми.

В этом случае для выбора конкретного грида из списка нужный грид должен иметь фокус (на него надо ткнуть мышкой :-) Если не активен ни один грид из списка, рабочим считается первый грид в списке.

Например:

SoldAllowGrids = gr21a ( gr21a - имя грида, его можно узнать, открыв в клиенте окно свойств грида (ALT+D), имя окна = имя грида)

Так же необходимо указать следующие свойства:

SoldGRB_CANT=CANT1 (CANT1 - поле, в которое перемешается курсор при добавлении из остатков)

SoldListFields - список полей для выборки из таблицы остатков

SoldRezultFields - список полей для вставки в таблицу документа

SoldLoadParams - определяет, делать пост автоматом или нет при добавлении позиции из остатков

Все остатки строятся при помощи процедуры UN$SLD.MAKE

Текст запроса на готовые остатки настраиваем через "Edit Query", используя VSLD, VSLD1..4 или прямо XSLD.

Скрипт на построение остатков вводим в том же окне на новой вкладке "SQL Prepare".

Например:

1 - В клиенте нажать F8,

2 - В верхнем гриде остатков нажать Alt+Q, перейти на вкладку SqlPrepare и написать код:

declare // объявление переменных
v_data date := Abm_Util.Data_by_Nrdoc(:nrdoc); // дата документа
v_src int;
v_sc1 int;
begin
select m.ct.dep, m.ct.sc1 into v_src, v_sc1
from tmdb_st201m m
where cod=:nrdoc;
// выбрать параметры из шапки документа ( центр затрат, аналитику, субсчет)
un$sld.make(v_data,1,'ABCDE123','2113',1,pdep=>v_src,psc1=>v_sc1);
// функция возвращает временную таблицу по остаткам в таблицу vsld
end;

Поддерживаются все автоматически заполняемые параметры, кроме специфических для старого окна остатков параметров типа :m_dtdep. Эти параметры надо переименовать в стандартные - :indoc_m_dtdep.

Поддерживаются старые свойства "UniquePosition", "UseDefCant", "GRB_CANT", "ListFields" и "RezultFields". Их можно указать на уровне узла Sold, но можно и обойтись без оного, указав эти свойства в секции документа.

Для этого свойства должны иметь префикс "Sold": "SoldUniquePosition".Имя поля в рабочем гриде, используемое для ввода количества, определяется с трех попыток. Сначала проверяется свойство "GRB_CANT" - в нем имя поля.

Затем среди колонок грида ищется первая, имеющая в настройках параметр FieldCant (значение параметра несущественно, может быть пустым).

И, если эти два метода ничего не дали, полем для количества считается поле "CANT" - чаще всего этого как раз бывает и достаточно.

-Перенесено-

Остатки (F8)

Установить в конфигураторе след. свойства:

SoldAllowGrids = имя грида (например : gr21a, имя грида можно узнать, открыв в клиенте окно свойств грида (ALT+D), имя окна = имя грида)

SoldGRB_CANT=CANT1

SoldListFields - список полей для выборки из таблицы остатков

SoldRezultFields - список полей для вставки в таблицу документа

1 - В клиенте нажать F8,

2 - В верхнем гриде остатков нажать Alt+Q, перейти на вкладку SqlPrepare и написать код:

declare // переменные
v_data date;
v_src int;
v_sc1 int;
begin
select datamanual into v_data
from tmdb_docs where cod=:nrdoc; // получить дату
select m.ct.dep, m.ct.sc1 into v_src, v_sc1
from tmdb_st201m m where cod=:nrdoc;
// выбрать параметры из шапки документа ( центр затрат, аналитику, субсчет)
un$sld.make(v_data,1,'ABCDE123','2113',1,pdep=>v_src,psc1=>v_sc1);
// функия возвращает временную таблицу по остаткам
end;
// получить дату
vDataDoc DATE := Abm_Util.Data_by_Nrdoc(pNrdoc);