Имя: Пароль:
1C
1С v8
Запросом получаю товары из ТЧ документа, нужно узнать их остатки на дату док.
0 altaykniga
 
24.04.17
19:57
Добрый вечер, уважаемые специалисты! Не пинайте сильно, если вопрос мой изначально задан некорректно...

Вот текст запроса:


ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    ПоступлениеТоваровУслугТовары.Количество КАК Количество
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийОбъект



Т.е. запросом получаю товары из ТЧ поступлениеТоваров. Нужно узнать остатки этих товаров по КТ счета 41 на дату ПоступленияТоваров в этом же запросе.
Хочу через левое соединение сделать связь с «РегистрБухгалтерии.Хозрасчетный.Остатки». В качестве параметра в регистрБухгалтерии нужно передать дату из &ТекущийОбъект.

в запрос передается только один параметр &ТекущийОбъект.
Параметр &ТекущийОбъект.Дата вызывает ошибку...

Передать в запрос параметр &ДатаПоступления не представляется возможным
1 AlvlSpb
 
24.04.17
20:27
В запрос:
РегистрБухгалтерииХозрасчетныйОстатки.Остаток КАК Остаток
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период,)КАК РегистрБухгалтерииХозрасчетныйОстатки
ПО ПоступлениеТоваровУслугТовары.Номенклатура = РегистрБухгалтерииХозрасчетныйОстатки.Номенклатура

Запрос.УстановитьПараметр("ТекущийОбъект", Объект.Ссылка);
Запрос.УстановитьПараметр("Период",Объект.Дата);
2 altaykniga
 
24.04.17
20:29
(1) условие такое: в запросе будет доступен только один параметр - &ТекущийОбъект
3 Звездец
 
24.04.17
20:30
и запрос лучше не к документу, а регистру
4 altaykniga
 
24.04.17
20:33
у меня СКД. В СКД доступен только один параметр - &ТекущийОбъект(документ ПоступлениеТоваров).

Запрос/пакет запросов нужно построить таким образом, чтобы в параметр &Период передать &ТекущийОбъект.Дата
5 AlvlSpb
 
24.04.17
20:34
(2) Что-то вы не разобрались с условиями задачи. не может быть один параметр В вашем запросе параметр &ТекущийОбъект - это ссылка, а на дату - это, понятно, дата.
Может в условии: в параметрах обращаться только к ТекущемуОбъекту? Т.е. не как к параметру, а как к объекту?
6 altaykniga
 
24.04.17
20:37
пытался передать дату документа поступления во временную таблицу, а во втором запросе использовать дату из временной  таблицы... Но как значение даты из временной таблицы передать в параметр второго запроса?
7 altaykniga
 
24.04.17
21:00
(0) еще раз опишу задачу.

В конструкторе СКД доступен только один параметр - &ТекущийОбъект. Тип параметра = ДокументСсылка.ПоступлениеТоваровУслуг.

Необходимо запросом выбрать из этого документа товары, которые имеют только положительный остаток по кредиту счета 41.01 на дату этого документа-2дня. Как это сделать?
8 Pahomich
 
24.04.17
21:05
(7) Кто не дает ввести второй параметр &Дата равный дате текущего объекта?
9 altaykniga
 
24.04.17
21:12
(8) в базе данных внедрен специальный механизм проверки различных объектов при записи, проведении и т.д. и т.п. Данную проверку можно реализовать сложным запросом, который строиться интерактивно с помощью конструктора СКД. В качестве параметра в СКД передается только лишь проверяемых объект, т.е. &ТекущийОбъект. Вот от этого параметра и приходится плясать
10 Pahomich
 
24.04.17
21:17
(9) Если у тебя проверен ТекущийОбъект, то его дату проверять уже не надо!
11 altaykniga
 
24.04.17
21:20
(10) мне надо проверить, есть ли отрицательные остатки на дату этого документа
12 b_ru
 
24.04.17
21:48
Бред какой-то написан сивой кобылы про один параметр. Но если это вдруг не бред, а какая-то хитро-непонятная фича, тогда можно сделать запрос не к РегистрБухгалтерии.Хозрасчетный.Остатки, а к РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто по Дата <= &ТекущийОбъект.Дата
13 AlvlSpb
 
24.04.17
22:07
(7) Вот елы палы. Сразу надо писать, что СКД. Тема же про запрос. Тогда задача реализуема. Попробую описать. Или проще сразу запрос (меньше писать ))) )

ВЫБРАТЬ
    ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура,
    РегистрБухгалтерииХозрасчетныйОстатки.Остаток КАК Остаток
ИЗ
    Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрБухгалтерии.Хозрасчетный.Остатки(&Период,)КАК РегистрБухгалтерииХозрасчетныйОстатки
ПО ПоступлениеТоваровУслугТовары.Номенклатура = РегистрБухгалтерииХозрасчетныйОстатки.Номенклатура
ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийОбъект
{ГДЕ
    ПоступлениеТоваровУслугТовары.Ссылка.* КАК ТекущийОбъект}

Запрос пишу без конструктора могу в именах полей ошибиться, поправите исходя из своей конфигурации.

На закладке Параметры СКД в Поле параметра с типом Дата в выражении пишите &ТекущийОбъект.Дата

В настройках СКД ТекущийОбъект выносите как элемент пользовательских настроек
14 AlvlSpb
 
24.04.17
22:13
Добавлю. Параметр Дата обязательно поставьте галку на ограничение (он не дожен быть в полях настройки параметр, т.к. предопределен, иначе не заработает)
15 AlvlSpb
 
24.04.17
22:26
(11) Если цель проверить остатки на дату документа, тогда в Выражении (на всякий) &ТекущийОбъект.Дата-1 (уберем секунду, чтобы точно знать, что на момент списания эти товары были)
А в запрос я бы ввел более информативнте поле РазностьОстатков
(ПоступлениеТоваровУслугТовары.Количество - РегистрБухгалтерииХозрасчетныйОстатки.Остаток) КАК РазностьОсттатков
Остаток "-" есть отрицательный остаток
16 AlvlSpb
 
25.04.17
00:19
(13) Прошу прощения. Проверил. НЕ РАБОТАЕТ. бред