Имя: Пароль:
1C
1С v8
Получить движения
0 Валидатор
 
20.05.14
11:04
Нужно получить движения по РН Товары на складах за определенный период, как это запросом сделать?
1 jsmith82
 
20.05.14
11:05
то есть ты уже знаешь, что такое движения, регистр накопления, управление торговлей, а запросы не научился делать?
2 Godofsin
 
20.05.14
11:05
Ну тут как бэ программить надо
3 Irbis
 
20.05.14
11:05
Запрос=Новый Запрос(ТекстЗапросКРегистру)
4 jsmith82
 
20.05.14
11:06
Открой форму списка регистра в режиме предприятия, поставь отбор, выведи в табличный документ и сохрани в формате эксель. Профит
5 Валидатор
 
20.05.14
11:06
я знаю как создать новый запрос, спасибо (3), за тонкий юмор. Я имел ввиду как получить данные именно движений, для меня это не совсем ясно
6 Godofsin
 
20.05.14
11:07
(5) эээ... Обороты?
7 Валидатор
 
20.05.14
11:07
(4) мне нужно результатом запроса именно получить а не выводить в эксель
8 Irbis
 
20.05.14
11:07
А вали прямо всю физическую таблицу в конструкторе, или как в (4) делай.
Но зачем тебе все движения?
9 ДенисЧ
 
20.05.14
11:09
Выбрать *
Из Регистр.ТоварыНаСкладах
Где Дата МЕЖДУ НАЧАЛОПЕРИОДА(&НачДата, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонДата, ДЕНЬ)
10 Валидатор
 
20.05.14
11:10
(8) да нужно сделать запрос, который будет следующее выдавать:
1. Смотрятся остатки на текущую дату, если есть остатки, это нужно получить в результате запроса. Если остатков нет то пункт 2
2. Смотрим, есть ли движения за период, если есть, то выгружаем эту номенклатуру с движениями
11 Валидатор
 
20.05.14
11:10
Вот 2 запроса, первый на остатки, второй на обороты. Правильно написал их?
ВЫБРАТЬ
    ТоварыНаСкладахОстатки.КоличествоОстаток,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры
ПОМЕСТИТЬ втОстаткиНаДату
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&ТекМом, ) КАК ТоварыНаСкладахОстатки
ГДЕ
    ТоварыНаСкладахОстатки.КоличествоОстаток > 0
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот,
    ТоварыНаСкладахОстаткиИОбороты.Склад,
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
    ТоварыНаСкладахОстаткиИОбороты.ХарактеристикаНоменклатуры,
    ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот > 0
12 Irbis
 
20.05.14
11:11
а чё сразу остатки и обороты не попросил, извращенец
13 Godofsin
 
20.05.14
11:12
(12) +1
14 Валидатор
 
20.05.14
11:13
(12) в обоих запросах использовать остатки и обороты?
15 Irbis
 
20.05.14
11:15
(14) Опять лишнего, неленивый ты парень, в одном разрешаю.
16 Валидатор
 
20.05.14
11:16
(15) как я тогда в параметрах виртуальной таблицы задам текущую дату и + еще период потом для движений?
17 Irbis
 
20.05.14
11:18
А как во вторй таблице задал?
18 Валидатор
 
20.05.14
11:23
(17) там дата начали  конца периода есть, а когда по остаткам то просто можем дату указать
19 Валидатор
 
20.05.14
11:29
(17) вот запрос на получение оборотов за период, как в него добавить, чтобы учитывалась еще номенклатура, которая есть на остатках?
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Количество,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоОборот) КАК Оборот,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
    ИСТИНА КАК Флаг,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Стоимость
{ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа,
    Склад.*,
    НоменклатурнаяГруппа.*}
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Период, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&КонецПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоОборот > 0
{ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад.*,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.*,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа.* КАК НоменклатурнаяГруппа}

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа,
    ЦеныНоменклатурыСрезПоследних.Цена
АВТОУПОРЯДОЧИВАНИЕ
20 Irbis
 
20.05.14
11:33
почтай, что возвращает виртуальная таблица остаткии обороты
21 Валидатор
 
20.05.14
11:35
(20) 4 даты -  начало, конец и даты расходов
22 Валидатор
 
20.05.14
11:40
и как в запросе я задам условие, что если остатков на дату нет, проверяется следующее условие по движениям?
23 hhhh
 
20.05.14
11:54
(22) приколист, блин

ВЫБОР КОГДА ТоварыНаСкладахОстаткиИОбороты.КоличествоОстаток > 0 ТОГДА
   ТоварыНаСкладахОстаткиИОбороты.КоличествоОстаток
ИНАЧЕ
    ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот
КОНЕЦ
24 Валидатор
 
20.05.14
12:16
ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) КАК КоличествоНачальныйОстаток,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток) КАК Количество,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоОборот) КАК Оборот,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход) КАК КоличествоПриход,
    СУММА(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход) КАК КоличествоРасход,
    ИСТИНА КАК Флаг,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Стоимость
{ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа,
    Склад.*,
    НоменклатурнаяГруппа.*}
ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты({(&НачалоПериода)}, {(&КонецПериода)}, Период, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&КонецПериода)}, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
{ГДЕ
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад.*,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.*,
    ЦеныНоменклатурыСрезПоследних.ТипЦен,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа.* КАК НоменклатурнаяГруппа}

СГРУППИРОВАТЬ ПО
    ПартииТоваровНаСкладахОстаткиИОбороты.Склад,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура.НоменклатурнаяГруппа,
    ЦеныНоменклатурыСрезПоследних.Цена
АВТОУПОРЯДОЧИВАНИЕ

Решил в таком запросе получить остатки, на дату - КонецПериода, что мне к этому запросу еще для этого добавить нужно?
25 Валидатор
 
20.05.14
12:30
пр
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс