|
сравнить номенклатуру 1с 8,2 | ☑ | ||
---|---|---|---|---|
0
KonstantinK90
24.03.15
✎
13:22
|
как правильно сделать мне нужно одним запросом выгрузить номенклатуру вот этот запрос
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РасходнаяНакладнаяТовары.Номенклатура |ИЗ | Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РасходнаяНакладная КАК РасходнаяНакладная | ПО РасходнаяНакладнаяТовары.Ссылка = РасходнаяНакладная.Ссылка |ГДЕ | РасходнаяНакладная.Дата МЕЖДУ &НачалоПериода И &КонецПериода | И РасходнаяНакладная.Проведен = &Истина | И РасходнаяНакладная.Контрагент = &ман"; Запрос.УстановитьПараметр("НачалоПериода" ,ЗначениеПараметраНачалоПериода.Значение); Запрос.УстановитьПараметр("КонецПериода" ,ЗначениеПараметраКонецПериода.Значение); Запрос.УстановитьПараметр("Истина" ,Истина); Запрос.УстановитьПараметр("ман" ,МАНТракЭндБасРУС); //Справочники.Контрагенты.НайтиПоКоду("00000802")); //Справочники.ДоговорыКонтрагентов.НайтиПоКоду("00000802")); РезультатЗапроса = Запрос.Выполнить().Выбрать(); Пока РезультатЗапроса.Следующий() Цикл КонецЦикла; и второй запрос аналогичный только будет приходная накладная (документ) как правильно 1) выгрузить номенклатуру 2) и как правильно ее сравнить? |
|||
1
KonstantinK90
24.03.15
✎
13:23
|
смысл таков если номенклатура совпала то тогда 1 иначе 0
|
|||
2
фобка
24.03.15
✎
13:25
|
Одним запросом всё делай
|
|||
3
KonstantinK90
24.03.15
✎
13:28
|
а как7
|
|||
4
фобка
24.03.15
✎
13:32
|
Семёрошник... Во первых у тебя в (0) лишее соединение, реквизиты шапки тащи через расхнакладнаястроки.ссылка.дата.
(3) "левое соединение" |
|||
5
KonstantinK90
24.03.15
✎
13:36
|
если убрать лево соединение то тогда и убереться шапка а у меня стоит параметр контрагент
|
|||
6
фобка
24.03.15
✎
13:38
|
(5) ответ в (4), ты не дочитал. Посмотри запрос конструктором
|
|||
7
KonstantinK90
24.03.15
✎
13:39
|
ВЫБРАТЬ
РасходнаяНакладнаяТовары.Номенклатура, РасходнаяНакладнаяТовары.Ссылка.Контрагент ИЗ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары ГДЕ РасходнаяНакладнаяТовары.Ссылка.Контрагент = &контрагент И РасходнаяНакладнаяТовары.Ссылка.Дата МЕЖДУ &начало И &конец |
|||
8
KonstantinK90
24.03.15
✎
13:39
|
вот так нужно ?
|
|||
9
фобка
24.03.15
✎
13:41
|
(8) верно. Теперь соединяй стаб частью приходной накладной и тоже там через ссылку контрагента - если я правильно понял
|
|||
10
KonstantinK90
24.03.15
✎
13:43
|
ВЫБРАТЬ
РасходнаяНакладнаяТовары.Номенклатура как НоменклатураРасход ИЗ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары ГДЕ РасходнаяНакладнаяТовары.Ссылка.Контрагент = &контрагент И РасходнаяНакладнаяТовары.Ссылка.Дата МЕЖДУ &начало И &конец ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПриходнаяНакладнаяТовары.Номенклатура как НоменклатураПриход ИЗ Документ.ПриходнаяНакладная.Товары КАК ПриходнаяНакладнаяТовары ГДЕ ПриходнаяНакладнаяТовары.Ссылка.Контрагент = &контрагент И ПриходнаяНакладнаяТовары.Ссылка.Дата МЕЖДУ &начало И &Конец |
|||
11
KonstantinK90
24.03.15
✎
13:43
|
вот так
|
|||
12
фобка
24.03.15
✎
13:44
|
(10) это пакетный запрос, а тебе заджойнить нужно.
Озвучь задачу, не так как в (0) а исходную |
|||
13
KonstantinK90
24.03.15
✎
13:47
|
1)у меня задача взять номенклатуру из док. расходная за период 2) взять номенклатуру из док. приходная накладная за период и сравнить ее если есть совпадения в этом периоде тогда 1 иначе 0
|
|||
14
фобка
24.03.15
✎
13:48
|
(13) поставщик/покупатель не важен?
|
|||
15
KonstantinK90
24.03.15
✎
13:49
|
поставщик (контрагент важен)
|
|||
16
KonstantinK90
24.03.15
✎
13:53
|
???
|
|||
17
фобка
24.03.15
✎
13:57
|
Одним запросом не получится. Если только совпадения нужны то можно обойтись одним запросом. Оставляй (10)
|
|||
18
KonstantinK90
24.03.15
✎
14:01
|
вы мне скажите как правильно выгрузить в таблицу значений по очереди эти запроса и сравнить
|
|||
19
фобка
24.03.15
✎
14:03
|
Только учти колличество (группировка по номенклатуре, сумма по колву)
потом делаешь результаты = запрос.выполнитьпакет(); Приходы = результаты[1].выгрузить(); Выборка = результаты[0].выбрать(); Пока выборка.следующий цикл Массивстрок = приходы.найти(новый структура("номенклатура", выборка.номенклатура)); Если массивстрок.количество()=0 тогда // такой нет, 0 Иначе //1 Конецесли; Конеццикла; |
|||
20
фобка
24.03.15
✎
14:04
|
разбирайся кароч, устал на планшете набирать
|
|||
21
KonstantinK90
24.03.15
✎
14:08
|
хорошо спасибо буду разбираться
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |