Имеется достаточно громоздкий запрос.
ТекстЗапроса=ТекстЗапроса+"
//Товар
|Товар=Справочник.Товары.ТекущийЭлемент,
|Регистр.ОстаткиТоваров.Товар,
|Регистр.Закупки.Товар,
|Регистр.ВозвратыПоставщику.Товар,
|Регистр.Продажа.Товар,
|Регистр.ВозвратПокупателя.Товар,
|Регистр.Списания.Товар,
|Регистр.Комиссия.Товар,
|Регистр.Заказы.Товар,
|Регистр.Clients_Account.Goods,
|Регистр.Расчет.Goods,
|Регистр.ВозвратДенег.Goods;
//Поставщик
|Поставщик=Справочник.Товары.ТекущийЭлемент.Поставщик,
|Регистр.ОстаткиТоваров.Товар.Поставщик,
|Регистр.Закупки.Товар.Поставщик,
|Регистр.ВозвратыПоставщику.Товар.Поставщик,
|Регистр.Продажа.Товар.Поставщик,
|Регистр.ВозвратПокупателя.Товар.Поставщик,
|Регистр.Списания.Товар.Поставщик,
|Регистр.Комиссия.Товар.Поставщик,
|Регистр.Заказы.Товар.Поставщик,
|Регистр.Clients_Account.Goods.Поставщик,
|Регистр.Расчет.Goods.Поставщик,
|Регистр.ВозвратДенег.Goods.Поставщик;
//Склад
|Склад=Регистр.ОстаткиТоваров.Склад,
|Регистр.Закупки.Склад,
|Регистр.ВозвратыПоставщику.Склад,
|Регистр.Продажа.Склад,
|Регистр.ВозвратПокупателя.Склад,
|Регистр.Списания.Склад;
//Количество
|ОстКол= Регистр.ОстаткиТоваров.ОстатокТовара;
|ОстЗак= Регистр.Закупки.ОстатокТовара;
|ОстВозПост= Регистр.ВозвратыПоставщику.ОстатокТовара;
|ОстПрод= Регистр.Продажа.ОстатокТовара;
|ОстВозПокуп=Регистр.ВозвратПокупателя.ОстатокТовара;
|ОстСпис= Регистр.Списания.ОстатокТовара;
|КомисСбор= Регистр.Комиссия.Комиссия;
|Зак= Регистр.Заказы.Количество;
|Ф_Ост_Кол= Регистр.Clients_Account.quantity;
|ФО_Ост_Кол= Регистр.Расчет.quantity;
|ФВ_Ост_Кол= Регистр.ВозвратДенег.quantity;
//Сумма
|ОстКолС= Регистр.ОстаткиТоваров.БазоваяСтоимость;
|ОстЗакС= Регистр.Закупки.БазоваяСтоимость;
|ОстВозПостС= Регистр.ВозвратыПоставщику.ВалютнаяСтоимость;
|ОстПродС= Регистр.Продажа.ВалютнаяСтоимость;
|ОстВозПокупС=Регистр.ВозвратПокупателя.ВалютнаяСтоимость;
|ОстСписС= Регистр.Списания.ВалютнаяСтоимость;
|Cl_am = Регистр.Clients_Account.Client_Amount;
|Cl_am_O = Регистр.Расчет.Client_Amount;
|Cl_am_В = Регистр.ВозвратДенег.Client_Amount;
//Баланс по продажам
|ОстПродСБ= Регистр.Продажа.БалСтоимость;
|ОстВозПокупСБ=Регистр.ВозвратПокупателя.БалСтоимость;
|Cst = Регистр.Clients_Account.Cost;
|Cst_O = Регистр.Расчет.Cost;
|Cst_В = Регистр.ВозвратДенег.Cost;
|";
ТекстЗапроса=ТекстЗапроса+"
|Функция КОстКол= КонОст(ОстКол);
|Функция НОстКол= НачОст(ОстКол);
|Функция КОстКолС= КонОст(ОстКолС);
|Функция НОстКолС= НачОст(ОстКолС);
|Функция КЗак= КонОст(Зак);
|Функция КОст_Ф = КонОст(Ф_Ост_Кол);
|Функция НОст_Ф = НачОст(Ф_Ост_Кол);
|Функция КОст_ФС = КонОст(Cl_am);
|Функция НОст_ФС = НачОст(Cl_am);
|Функция КОст_ФБ = КонОст(Cst);
|Функция НОст_ФБ = НачОст(Cst);
// Деньги приход
|Функция КОБ_Ф = КонОст(ФО_Ост_Кол);
|Функция КОБ_ФС = КонОст(Cl_am_O);
|Функция КОБ_ФБ = КонОст(Cst_O);
|Функция НОБ_Ф = НачОст(ФО_Ост_Кол);
|Функция НОБ_ФС = НачОст(Cl_am_O);
|Функция НОБ_ФБ = НачОст(Cst_O);
// Деньги возврат
|Функция КВБ_Ф = КонОст(ФВ_Ост_Кол);
|Функция КВБ_ФС = КонОст(Cl_am_В);
|Функция КВБ_ФБ = КонОст(Cst_В);
|Функция НВБ_Ф = НачОст(ФВ_Ост_Кол);
|Функция НВБ_ФС = НачОст(Cl_am_В);
|Функция НВБ_ФБ = НачОст(Cst_В);
// Закупки
|Функция ООстЗак= Сумма(ОстЗак);
//|Функция НОстЗак= НачОст(ОстЗак);
|Функция ООстЗакС= Сумма(ОстЗакС);
//|Функция НОстЗакС= НачОст(ОстЗакС);
// Возвраты Поставщику
|Функция КОстВозПост= КонОст(ОстВозПост);
|Функция НОстВозПост= НачОст(ОстВозПост);
|Функция КОстВозПостС= КонОст(ОстВозПостС);
|Функция НОстВозПостС= НачОст(ОстВозПостС);
//Продажи
|Функция КОстПрод= КонОст(ОстПрод);
|Функция НОстПрод= НачОст(ОстПрод);
|Функция КОстПродС= КонОст(ОстПродС);
|Функция НОстПродС= НачОст(ОстПродС);
|Функция КОстПродСБ= КонОст(ОстПродСБ);
|Функция НОстПродСБ= НачОст(ОстПродСБ);
// Возвраты покупателей
|Функция КОстВозПокуп= КонОст(ОстВозПокуп);
|Функция НОстВозПокуп= НачОст(ОстВозПокуп);
|Функция КОстВозПокупС= КонОст(ОстВозПокупС);
|Функция НОстВозПокупС= НачОст(ОстВозПокупС);
|Функция КОстВозПокупСБ= КонОст(ОстВозПокупСБ);
|Функция НОстВозПокупСБ= НачОст(ОстВозПокупСБ);
// Комиссия
|Функция НКом= НачОст(КомисСбор);
|Функция ККом= КонОст(КомисСбор);
// Списания
|Функция КОстСпис= КонОст(ОстСпис);
|Функция НОстСпис= НачОст(ОстСпис);
|Функция КОстСписС= КонОст(ОстСписС);
|Функция НОстСписС= НачОст(ОстСписС);
|";
плюс всякие условия и группировки.
Вопрос. Как его наименнее геморойно перевести в прямой запрос?
Видится через Union по каждому отдельному регистру. Но возможно есть метод оптимальней?
Можно ли это сделать автоматически Плагином для OpenConf, аналог конструктора запросов 1Cv8?
(вот этим
http://www.1cpp.ru/forum/YaBB.pl?num=1148127139/0)