Имя: Пароль:
1C
Админ
Отчет. Список материалов, пришедших за последние 4 дня.
0 rowflag
 
30.03.12
23:02
Есть 2 склада. Производственный и Центральный. С Центрального склада материалы списываются на производственный по мере необходимости. Надо создать отчет материалов, пришедших на Центральный склад за последние 4 дня.
Результат предоставить в виде:

Наименование Текущий остаток
*********************     ​*********************
*********************     ​*********************
*********************     ​*********************
*********************     ​*********************    
Что я пытался сделать:
1.

ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
 ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
 ПО (ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 27))
СГРУППИРОВАТЬ ПО
ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование,
ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование,
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток

Подскажите новичку пожалуйста.
1 vs7719
 
31.03.12
01:03
1. Желательно указать название конфигурации.
2. Для получения "предсказуемого" результата соединения лучше делать по полям, присутствующим в обоих таблицах (после слова "ПО"), но в данном случае, можно и без него.
3. Список товаров из поступлений лучше добавить в параметры виртуальной таблицы ОстаткиИОбороты (условный пример: РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,,Материал в (ВЫБРАТЬ РАЗЛИЧНЫЕ Материал из ПоступлениеТоваров.Материалы ГДЕ ПоступлениеТоваров.Ссылка.Дата > &НужнаяДата)))
2 rowflag
 
31.03.12
14:08
Спасибо за подсказку. У меня есть 2 объекта. Регистр накопления ТоварыНаСкладах и документы ПриходнаяНакладная.
Нет: ПоступлениеТоваров.
Могу ли используя свои 2 объекта выбрать данные который поступили за последние 4 дня? Я новичок в этом деле и в детали не могу вникнуть. Хочу получить просто алгоритм действий. (желательно подробный). А детали я реализую сам.
3 PVV65
 
31.03.12
14:15
(2) Можешь.
Спасибо за подсказку.
Реализуй.
4 rowflag
 
31.03.12
15:37
Делаю так:
ВЫБРАТЬ
ТоварыНаСкладахОстатки.Склад.Наименование,
ТоварыНаСкладахОстатки.Материал.Наименование,
ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
 ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
 ПО ТоварыНаСкладахОстатки.Материал.Наименование = ПриходнаяНакладная.Материалы.Материал.Наименование

При нажатии "Сформировать" в Предприятии выходит сообщение об ошибке: "Ошибка SQL: Неоднозначное поле '_IDRRef'"
В чем ошибка господа?
5 PVV65
 
31.03.12
17:05
(4) Материалы.Материал.Наименование - для меня тупик.
6 rowflag
 
31.03.12
17:09
Вот так уже ближе. Отбираются только элементы которые пришли за период, но остаток у всех одинаков и равен остатку первого элемента.
ВЫБРАТЬ
   ПриходнаяНакладная.Материалы.(
       Материал.Наименование
   ),
   ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование
ИЗ
   Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
       ПО ПриходнаяНакладная.Материалы.Материал.Наименование = ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование
ГДЕ
   ПриходнаяНакладная.Дата < ДАТАВРЕМЯ(2012, 3, 28)
   И ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 24)
7 rowflag
 
31.03.12
17:10
Бьюсь уже 4 день.
8 rowflag
 
31.03.12
17:11
Короче получается выбрать приходные накладные по датам. Надо используя список материалов из приходных накладных выбрать для них остатки.
9 PVV65
 
31.03.12
17:15
Ааааа, тебе нужны остатки? По документам????
10 rowflag
 
31.03.12
17:19
Остатки на складах. Текущие. Но лишь тех, что пришли за последние 2 дня.
11 PVV65
 
31.03.12
17:20
(10) я случайно зашел.
12 rowflag
 
31.03.12
17:22
Вот так еще ближе. Уже только те элементы, которые нужны (за период) и остатки у них верные. Одно только не так. Дублируются те, которые пришли несколько раз.
ВЫБРАТЬ
   ПриходнаяНакладная.Материалы.(
       Материал.Наименование
   ),
   ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
       ПО (ПриходнаяНакладная.Материалы.Материал.Наименование = ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование)
ГДЕ
   ПриходнаяНакладная.Дата < ДАТАВРЕМЯ(2012, 3, 28)
   И ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 24)
13 hhhh
 
31.03.12
21:51
ВЫБРАТЬ
 ПриходнаяНакладнаяМатериалы.Материал,
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
       Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
        ПО (ПриходнаяНакладнаяМатериалы.Материал = ТоварыНаСкладахОстаткиИОбороты.Материал)

за Материал.Наимкнование = Материал.Наименование вообще-то надо расстреливать.
14 rowflag
 
01.04.12
10:13
Почему (расстреливать)? Я тока начал изучать тему. Спасибо за поддержку!
15 rowflag
 
01.04.12
10:24
И еще. Они так же дублируются как и у меня. То есть если было 2 прихода одного и того же материала, то в отчете создается 2 записи с одним и тем же остатком. Мне надо чтобы запись была одна. Группировка не получается (конструктор пишет что нельзя группировать по вложенным таблицам). Как добиться результата?
16 rowflag
 
01.04.12
10:35
Извините, проверил - группировка доступна. НО: выводятся все остатки. Мне же надо которые пришли за определенный период.
17 rowflag
 
01.04.12
10:36
Делал так:
   ПриходнаяНакладная.Дата < ДАТАВРЕМЯ(2012, 3, 28)
   И ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 24)
Теперь это невозможно, т.к. нет поля ПриходнаяНакладная.Дата
18 rowflag
 
01.04.12
10:52
Все!! Спасибо! Вы мне очень помогли! Добавил в конструкторе Дату приходной накладной, условия по ней и запрос стал таким:

ВЫБРАТЬ
   ПриходнаяНакладнаяМатериалы.Материал,
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ПриходнаяНакладная.Дата
ИЗ
   Документ.ПриходнаяНакладная.Материалы КАК ПриходнаяНакладнаяМатериалы
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
       ПО ПриходнаяНакладнаяМатериалы.Материал = ТоварыНаСкладахОстаткиИОбороты.Материал
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная
       ПО ПриходнаяНакладнаяМатериалы.Ссылка = ПриходнаяНакладная.Ссылка
ГДЕ
   ПриходнаяНакладная.Дата < ДАТАВРЕМЯ(2012, 3, 28)
   И ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 24)

СГРУППИРОВАТЬ ПО
   ПриходнаяНакладнаяМатериалы.Материал,
   ТоварыНаСкладахОстаткиИОбороты.Склад,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ПриходнаяНакладная.Дата

Теперь задача такая:
Как сделать чтобы пользователь мог дату отчета изменять?
19 bolder
 
01.04.12
11:01
(18) Использовать параметры запроса.
20 rowflag
 
01.04.12
11:08
Подскажите как? Я абсолютный нуль. Любая подсказка для меня великое благо!
21 rowflag
 
01.04.12
11:42
Сделал так:

ГДЕ
   ПриходнаяНакладная.Дата > ДАТАВРЕМЯ(2012, 3, 20)
   И ПриходнаяНакладная.Дата < &ДатаОтчета
   И ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование = "Центральный"

Все работает. Как от &ДатаОтчета вычесть 2 дня?
22 rowflag
 
01.04.12
11:42
Как установить &ДатаОтчета по умолчанию равной текущей?
23 rowflag
 
01.04.12
12:14
Все супер, разобрался, делается это ТАК:


ГДЕ
   ПриходнаяНакладная.Дата > ДобавитьКДате(&ДатаОтчета, день, -2)
   И ПриходнаяНакладная.Дата < &ДатаОтчета
   И ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование = "Центральный"
24 vicof
 
01.04.12
12:35
(23) почитай "профессиональную разработку" что ли.
25 rowflag
 
01.04.12
12:44
Почитаю. Но сейчас срочно надо сделать дело.
26 rowflag
 
01.04.12
12:46
Еще вопрос. Как отобрать те материалы, которые закончились на складе?
Так - не выводится ничего:

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0

Так - выводятся лишние, ненужные поля

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Материал.Наименование,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.Склад.Наименование,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0
27 rowflag
 
01.04.12
14:02
Как отобрать материалы с нулевым остатком.
28 ale-sarin
 
01.04.12
14:08
(27) Запрос по справочнику "Номенклатура" и левое соединение с регистром.
29 rowflag
 
01.04.12
14:51
Пример??
Основная теорема систематики: Новые системы плодят новые проблемы.