Приветствую!
Не тестировал, но вроде бы что-то похоже ...
для SQL 2000 можно использовать такую схему, используюя 1с++:
допустим, есть регистр "ОстаткиТМЦ" в резрезе ТМЦ, Партия, Кво, См
в глобальнике :
Перем РСОстатка Экспорт
Процедура ПриНачалеРаботыСистемы()
// 1С++ пошла...
Попытка
ЗагрузитьВнешнююКомпоненту("1cpp.dll");
Database=СоздатьОбъект("ODBCDatabase");
Исключение
Предупреждение("На удалось загрузить компоненту 1cpp.dll.
|Дальнейшая работа невозможна.");
СтатусВозврата(0);
КонецПопытки;
РСОстатка = СоздатьОбъект("ODBCRecordSet");
РСОстатка.УстБД1С(); // для старых версий 1с++
ТекстЗапроса = "SELECT
|QW.Партия [Партия $Справочник.Партии],
|Sum(QW.См) См,
|Sum(QW.Шт) Шт
|FROM
|(SELECT
| Рег.Партия Партия,
| Рег.СмОстаток См,
| Рег.КвоОстаток См
|FROM
| $РегистрОстатки.ОстаткиТМЦ(,, (ТМЦ = ?) AND (Партия <> $ПустойИД),(ТМЦ,Партия),(Кво,См)) Рег
|WHERE
|( Рег.СмОстаток <> 0) AND (Рег.КвоОстаток <> 0)
|) QW
|GROUP BY
|QW.Партия
|ORDER BY
|QW.Партия
|";
Попытка
РС.ДобПараметр(1,14, 9 ,0);
РС.Подготовить(ТекстЗапроса);
Исключение
Сообщить(РС.ПолучитьОписаниеОшибки());
КонецПопытки;
..........
КонецПроцедуры
---------------------------------------------
в том же глобальнике (или в документах) можно сделать процедуру (функцию) списания (получения) остатка по выбранному ТМЦ "ВыбТМЦ"
ТЗ = СоздатьОбъект("ТаблицаЗначений");
РСОстатка.УстПараметр(1,ВыбТМЦ);
попытка
ТЗ = РСОстатка.ВыполнитьИнструкцию();
Исключение
Сообщить(РСОстатка.ПолучитьОписаниеОшибки());
Возврат;
КонецПопытки;