Имя: Пароль:
1C
1С v8
Запрос в 1с 8 с меняющимися параметрами
0 Vasilisk
 
14.08.13
19:11
База бухгалтерия 8.2. Задача такая взять все договора контрагента и получить обороты по счету на 20 день с момента открытия договора. Делаю так: запросом выбираю нужные договора затем в цикле обхожу выборку и другим запросом считаю обороты на 20 день. Отчет формируется долго так как получается запрос в цикле. Пробовал через виртуальную таблицу но параметры по остаткам по счету на сколько понял менять во время выполнения запроса нельзя. Как сделать все одним запросом?
1 Fragster
 
модератор
14.08.13
19:14
что мешает указать в параметрах таблицы Договор.Владелец = &Контрагент?
2 Нуф-Нуф
 
14.08.13
19:14
получи остатки и обороты с периодом день и соединяй с договорами по ДатеДоговора+20дней
3 Fragster
 
модератор
14.08.13
19:17
а, в (1) - фигня
4 Fragster
 
модератор
14.08.13
19:18
нужно слепить самому из реальной таблицы регистра. а вообще на задачу на собеседовании похоже.
5 Vasilisk
 
14.08.13
19:19
Причем тут контрагент. Вопрос в подсчете оборотов так как дата  заключения договоров разная, то получается что период расчета оборотов разный.
6 Fragster
 
модератор
14.08.13
19:20
(5)->(3)
7 Vasilisk
 
14.08.13
19:21
Возможно ли реализовать подобное или нет? Конфу менять нельзя.
8 Fragster
 
модератор
14.08.13
19:21
(7) да
9 Vasilisk
 
14.08.13
19:23
Контрагент статичен а даты выдачи договоров динамичны в зависимости от договора. Обход договоров в цикле с формированием запроса по каждому не рационален, как внутри запроса организовать подобный механизм.
10 Vasilisk
 
14.08.13
19:24
(8) Да это как?
11 Fragster
 
модератор
14.08.13
19:24
(9) -> (4) не используй виртуальные таблицы, используй соединение с реальной таблицей
12 Vasilisk
 
14.08.13
19:25
Написал  "да" не помогло...(((
13 Fragster
 
модератор
14.08.13
19:27
что-то типа

Договоры Левое соединение Регистр по Договор.Ссылка = Регистр.Ссылка и Регистр.Дата Между Договор.Дата и ДобавитьДате(Договор.Дата, 20)
14 Vasilisk
 
14.08.13
19:27
Можно пример не совсем пойму о чем вы
15 Vasilisk
 
14.08.13
19:34
То есть обороты по счету тут не катит нужно использовать целиковую таблицу?
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший