• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Почему не работает запрос

  • Автор темы PaulB
  • Дата начала
P

PaulB

1С:Бухгалтерия 7.7

"Период с '01.01.2000' по '31.12.2010';
//|Без итогов;
|СчК = Операция.Кредит.Счет;
|СчД = Операция.Д*цензура*.Счет;
|Ном = Операция.Д*цензура*.Номенклатура;
// |НаклК = Операция.Кредит.Накладная;
|Накл = Операция.Д*цензура*.Накладная;
|Док = Операция.ТекущийДокумент;
|Кол = Операция.Количество;
|Сум = Операция.Сумма;
|Группировка Документ;
|Группировка Накл;
|Группировка Ном без групп;
|Условие ((СчК=ВыбСч) ИЛИ (СчД=ВыбСч));
|Функция КолСум=Сумма(Кол);
|Функция ККолСум=Сумма(Кол) когда (СчК=ВыбСч);
|Функция ДКолСум=Сумма(Кол) когда (СчД=ВыбСч);
|Функция СумСум=Сумма(Сум);";

В таком виде запрос работает. Если раскоментировать переменную НаклК, запрос выдает пусто. В чем может быть проблема? Счет забалансовый. Ведется по нему количественный учет.
Заранее спасибо за помощь.
 
P

puh14

Группировка по НаклК помогает?

|Условие ((СчК=ВыбСч) ИЛИ (СчД=ВыбСч)); - это зачем? проще
|Функция КолСум=Сумма(Кол) Когда ((СчК=ВыбСч) ИЛИ (СчД=ВыбСч));
 
P

PaulB

Группировка по НаклК помогает?

|Условие ((СчК=ВыбСч) ИЛИ (СчД=ВыбСч)); - это зачем? проще
|Функция КолСум=Сумма(Кол) Когда ((СчК=ВыбСч) ИЛИ (СчД=ВыбСч));

Нет. Группировка по НаклК не помогает.
В проводках по счету кредит или д*цензура* может быть пустым. Может быть из-за этого?
 
K

krenk

Было:
|НаклК = Операция.Кредит.Накладная;
|Накл = Операция.Д*цензура*.Накладная;

Стало:
|Накл = Операция.Д*цензура*.Накладная,Операция.Кредит.Накладная;

Попробуй так....

или вообще делать через БухгалтерскиеИтоги, а не через Запрос
 
P

PaulB

Было:
|НаклК = Операция.Кредит.Накладная;
|Накл = Операция.Д*цензура*.Накладная;

Стало:
|Накл = Операция.Д*цензура*.Накладная,Операция.Кредит.Накладная;

Попробуй так....

или вообще делать через БухгалтерскиеИтоги, а не через Запрос

Пробывал и так. В результате показывает только те операции, которые присваиваются первые, т.е. в последнем примере только Д*цензура*.
Все проводки по счету имеют вид
Д НомерСчета
К --
или
Д --
К НомерСчета

Есть еще идеи? Очень хочется понять почему не работает.
 
K

krenk

БухИт=СоздатьОбъект("БухгалтерскиеИтоги");
БухИт.ИспользоватьСубконто(ВидыСубконто.номенклатура,,1);

БухИт.ВыполнитьЗапрос(<НачалоПериода>,<КонецПериода>,ВыбСчет,,,,"Операция","СК");

БухИт.ВыбратьПериоды();
Пока БухИт.ПолучитьПериод()=1 Цикл
//Цикл по документам
ТекДок=БухИт.Операция.Документ; //Или что-то в этом, не тестил

БухИт.ВыбратьСубконто(1);
Пока БухИт.ПолучитьСубконто(1)=1 Цикл
//Цикл по номенклатуре


ККолСум=СКК("К");
ДКолСум=СКД("К");

КолСум=ККолСум+ДКолСум; //или как там тебе нужно общее количество посчитать

СумСум=СКК("С")+СКД("С");

КонецЦикла;

КонецЦикла;


//Забей на тот запрос, потести вот эту штуку в отладчике... я не тестил, но думаю, почти угадал.... дерзай...
 
U

unknown181538

ВыбратьОперацииСПроводками еще можно попробовать. Там тоже можно задать условия по счетам и аналитике до выполнения.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!