Имя: Пароль:
1C
1С v8
Присвоить значение параметру для других запросов
,
0 Надежда25
 
08.06.12
10:36
Здравствуйте!
Делаю отчет на СКД. Набор данных - объединение 4-х запросов. Надо, чтобы дата из одного запроса присваивалась параметру &НачалоПериода, и в остальных запросах отбор велся по значению этого параметра. Пробую: &НачалоПериода = Значение(Дата). Ошибка. Как быть?
1 Maxus43
 
08.06.12
10:37
всмысле чтоб поле одного запроса было параметром другого? нельзя
2 ChAlex
 
08.06.12
10:39
Можно - если соединение наборов. Тогда в параметрах соединения указывается
3 ChAlex
 
08.06.12
10:39
(+2) в объединении - нельзя
4 ILM
 
гуру
08.06.12
10:45
(0) А зачем вам надо дату из одного запроса использовать для другого? Что делаете напишите подробнее...
Есть вложенные запросы, есть объединения и т.д.
5 Надежда25
 
08.06.12
10:48
Спасибо, попробую переделать запрос.
6 Надежда25
 
08.06.12
10:50
Постараюсь соединением (а те 3 будут объединены).
А &НачалоПериода = Значение(Дата) правильно?
7 ChAlex
 
08.06.12
10:53
(6) ..."А &НачалоПериода = Значение(Дата) правильно?" - нет не правильно
8 ChAlex
 
08.06.12
10:54
(7) - Функция Значение - используется для получения предопределенных значений объектов базы (в общих чертах)
9 Надежда25
 
08.06.12
11:06
Извиняюсь, все-таки мне нужно объединение. Для простоты объяснения сокращаю до 2-х запросов. Есть остатки сырья и есть поступления. Остатки после инвентаризации заносятся 1 раз в месяц. С этой даты (&НачалоПериода) и надо формировать отчет, т. е. учитывать поступления c &НачалоПериода, причем учитывать поступления всего, а не только того, что есть на остатках. Отсюда - объединение.
И &НачалоПериода = Дата - тоже не работает.
10 Buster007
 
08.06.12
11:08
(9) ээээ... ну установи в запросе ДатаКакаяТо > &НачалоПериода
11 Надежда25
 
08.06.12
11:16
(10) Не поняла. ДатаКакаяТо - это что? А как присвоить дату из запроса по остаткам параметру &НачалоПериода?
12 Buster007
 
08.06.12
11:31
(11) а на какую дату ты остатки получаешь?
13 Надежда25
 
08.06.12
11:35
Последнюю, какая есть в базе.
14 Buster007
 
08.06.12
11:49
ну как-то так
ВЫБРАТЬ
   МАКСИМУМ(Инвентаризация.Дата) КАК Дата
ПОМЕСТИТЬ втПериод
ИЗ
   Документ.Инвентаризация КАК Инвентаризация
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   Поступление.Дата
ИЗ
   Документ.Поступление КАК Поступление
       ВНУТРЕННЕЕ СОЕДИНЕНИЕ втПериод КАК втПериод
       ПО Поступление.Дата > втПериод.Дата
15 Надежда25
 
08.06.12
12:16
Спасибо, попробую. А разве при этом будет присутствовать и вся номенклатура по инвентаризации, и вся номенклатура по поступлениям?
16 Buster007
 
08.06.12
12:20
у тебя объединение
сначала вытаскиваешь все по инвентаризации
потом получаешь дату своей последней инвентаризации и присоединяешь поступления, затем всё объединяется.

Будут или не будут данные?
17 Надежда25
 
08.06.12
13:24
Первый запрос достаточно сложный:
Выбрать
   ТЧМатериалы.Номенклатура КАК Сырье,
   ТЧМатериалы.Количество КАК КоличествоНачОстаток,
   Документы.Дата,
   Документы.Документ
   ИЗ
(Выбрать
 ЗапросБлижайшихДатДокументов.Дата,
 ИнвентаризацияНЗП.Ссылка КАК Документ
ИЗ
(ВЫБРАТЬ
   MAX(ИнвентаризацияНЗП.Дата) КАК Дата
ИЗ
   Документ.ИнвентаризацияНЗП КАК ИнвентаризацияНЗП
ГДЕ
   Дата <= &КонецПериода И
//    &НачалоПериода = Дата И
   ИнвентаризацияНЗП.Подразделение.Наименование = &Подразделение
   ) ЗапросБлижайшихДатДокументов
Левое Соединение Документ.ИнвентаризацияНЗП КАК ИнвентаризацияНЗП
ПО ИнвентаризацияНЗП.Дата = ЗапросБлижайшихДатДокументов.Дата
   ) Документы
Левое Соединение Документ.ИнвентаризацияНЗП.Материалы КАК ТЧМатериалы
ПО ТЧМатериалы.Ссылка = Документы.Документ
В каком месте писать Поместить втПериод?
Второй запрс:
ВЫБРАТЬ
   ЗакупкиОбороты.Номенклатура КАК Сырье,
   ЗакупкиОбороты.КоличествоОборот КАК КоличествоПоступления,    
   ЗакупкиОбороты.Период КАК Дата,
     ЗакупкиОбороты.Регистратор КАК Документ
ИЗ
   РегистрНакопления.Закупки.Обороты(, , Регистратор, ) КАК ЗакупкиОбороты
А что значит "затем все объединяется"?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн