|
Язык запросов выгрузка за исключением в списке | ☑ | ||
---|---|---|---|---|
0
DenisVich
08.04.13
✎
15:08
|
Здравствуйте, форумчане. УТ 10.3 Задача вывести список доков, которых нет в документах, но есть в регистре продажи
Вот запрос1 ВЫБРАТЬ ПоступлениеТоваровУслуг.Номер КАК Номер, ПоступлениеТоваровУслуг.Дата КАК Дата, ПоступлениеТоваровУслуг.Контрагент КАК Контрагент, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ПоступлениеТоваровУслугДок ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка ГДЕ ПоступлениеТоваровУслуг.Контрагент = &Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслуг.Ссылка КАК РеализацияСсылка ИЗ ПоступлениеТоваровУслугДок КАК ПоступлениеТоваровУслугДок ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПоступлениеТоваровУслугДок.Номенклатура.Код = РеализацияТоваровУслуг.Товары.Номенклатура.Код ГДЕ РеализацияТоваровУслуг.Дата >= &НачалоПериода И РеализацияТоваровУслуг.Дата <= &КонецПериода УПОРЯДОЧИТЬ ПО РеализацияТоваровУслуг.Дата Выгружается он в таблицу значение СписокСуществующихДокументов Вот запрос2 ВЫБРАТЬ ПоступлениеТоваровУслуг.Номер КАК Номер, ПоступлениеТоваровУслуг.Дата КАК Дата, ПоступлениеТоваровУслуг.Контрагент КАК Контрагент, ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура ПОМЕСТИТЬ ПоступлениеТоваровУслугДок ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг ПО ПоступлениеТоваровУслугТовары.Ссылка = ПоступлениеТоваровУслуг.Ссылка ГДЕ ПоступлениеТоваровУслуг.Контрагент = &Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ Продажи.Регистратор, Продажи.Регистратор.Номер КАК РегПродажиНомер, Продажи.Регистратор.Дата КАК РегПродажиДата, Продажи.Регистратор.Контрагент ИЗ ПоступлениеТоваровУслугДок КАК ПоступлениеТоваровУслугДок ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.Продажи КАК Продажи ПО (Продажи.Номенклатура.Ссылка = ПоступлениеТоваровУслугДок.Номенклатура.Ссылка) ГДЕ Продажи.Период >= &НачалоПериода И Продажи.Период <= &КонецПериода И Продажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг И НЕ Продажи.Регистратор.Ссылка В (&СписокСуществующихДокументов) УПОРЯДОЧИТЬ ПО Продажи.Период результатом запроса должен быть список документов которых нет в регистре продажи Запрос выполняется черезмерно долго(данных много). Первые 1 не помогает. |
|||
1
DirecTwiX
08.04.13
✎
15:10
|
Кто-нибудь что-нибудь понял?
"вывести список доков, которых нет в документах" |
|||
2
DenisVich
08.04.13
✎
15:11
|
Вывести список доков, которых нет в журнале документов но есть в регистре продажи
|
|||
3
DirecTwiX
08.04.13
✎
15:12
|
Зачем выбирать номер, дату и контрагента? Такой бред..
|
|||
4
DirecTwiX
08.04.13
✎
15:12
|
А из журнала разве нельзя выборку сделать?
|
|||
5
Галахад
гуру
08.04.13
✎
15:12
|
Гм. А как поступление попадает в продажи?
|
|||
6
DenisVich
08.04.13
✎
15:12
|
>Зачем выбирать номер, дату и контрагента? Такой бред..
НУЖНО! |
|||
7
DenisVich
08.04.13
✎
15:13
|
Задача такая
|
|||
8
tdm
08.04.13
✎
15:13
|
(0)РеализацияТоваровУслуг.Дата >= &НачалоПериода
И РеализацияТоваровУслуг.Дата <= &КонецПериода поправить на "Между" РегистрНакопления.Продажи - задать период |
|||
9
DenisVich
08.04.13
✎
15:13
|
Поступление не попадает в продажи
|
|||
10
tdm
08.04.13
✎
15:14
|
+(8) добавить условие на проведенность документа по идее
|
|||
11
DenisVich
08.04.13
✎
15:15
|
Документы все проведены, между не помогает
|
|||
12
DenisVich
08.04.13
✎
15:15
|
Запрос все равно выполняется медленно. Документ заказы не используется.
|
|||
13
tdm
08.04.13
✎
15:16
|
(11) это первые шаги)) надо уменьшать выборки до минимума
|
|||
14
DenisVich
08.04.13
✎
15:16
|
заказы покупателей, заказы поставщиков
|
|||
15
tdm
08.04.13
✎
15:16
|
(11) РегистрНакопления.Продажи - виртуальная таблицы, передать в параметры максимальное кол-во параметров
|
|||
16
Галахад
гуру
08.04.13
✎
15:17
|
А. Понял. По-моему из первого запроса нужно всего лишь получить список номенклатуры, а не документы.
А во втором по нему фильтровать. |
|||
17
tdm
08.04.13
✎
15:18
|
(16) +100500,
вот это вообще капец: ПоступлениеТоваровУслугДок КАК ПоступлениеТоваровУслугДок ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг ПО ПоступлениеТоваровУслугДок.Номенклатура.Код = РеализацияТоваровУслуг.Товары.Номенклатура.Код |
|||
18
DenisVich
08.04.13
✎
15:19
|
Нельзя(16), потому как по определенному поставщику все делается
|
|||
19
Bober
08.04.13
✎
15:20
|
Запрос 1:
- первый запрос по документу ПТиУ нужно изменить на регистр Закупки - второй РТиУ на регистр продажи - заменить условие на РН.Номенклатура НЕ В (ВЫБРАТЬ ....) |
|||
20
DenisVich
08.04.13
✎
15:20
|
По другому(17)Связать нельзя. Нету заказов.
|
|||
21
DenisVich
08.04.13
✎
15:20
|
Закупки некорректен.
|
|||
22
tdm
08.04.13
✎
15:21
|
(20) а если я две строки с одной номенклатурой заведу ?)
|
|||
23
DenisVich
08.04.13
✎
15:21
|
там стоит различные
|
|||
24
Bober
08.04.13
✎
15:22
|
(21) интересно, с чего это вдруг? может потому, что туда попадают только проведенные документы
|
|||
25
Галахад
гуру
08.04.13
✎
15:22
|
ИЗ
Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Контрагент = &Поставщик |
|||
26
tdm
08.04.13
✎
15:22
|
(21) =) хы)) вы счас всей ллогике 1с противоречите...на экзамене зам бы незачет поставили
|
|||
27
Bober
08.04.13
✎
15:23
|
(0) второй запрос:
- " И НЕ Продажи.Регистратор.Ссылка" - это реально клиника. |
|||
28
DenisVich
08.04.13
✎
15:23
|
(24)логика проведения нарушена, связано с обменом
|
|||
29
DenisVich
08.04.13
✎
15:23
|
(27) Так исправил конструктор запросов
|
|||
30
tdm
08.04.13
✎
15:24
|
(29) конструктор это лишь инструмент, как скальпель у хирурга, а что резать только вы решаете))
|
|||
31
DenisVich
08.04.13
✎
15:24
|
...И Продажи.Регистратор.Ссылка НЕ В(&Список)...
|
|||
32
DenisVich
08.04.13
✎
15:24
|
Не помогает
|
|||
33
tdm
08.04.13
✎
15:25
|
(31) вам про скорость работы написали а не про синтаксис))))
не будет такой запрос быстрым ну посто по определению) |
|||
34
DenisVich
08.04.13
✎
15:28
|
Применение виртуальных таблиц, вопрос сложный, будет ли выполняться быстро? По сравнению с вложенными запросами возможен прирост.
|
|||
35
DenisVich
08.04.13
✎
15:28
|
А по сравнению с потоками нет
|
|||
36
azernot
08.04.13
✎
15:31
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
ПоступлениеТоваровУслугТовары.Номенклатура ПОМЕСТИТЬ НоменклатураПоставщика ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Поставщик ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗЛИЧНЫЕ РеализацияТоваровУслуг.Ссылка КАК РеализацияСсылка ПОМЕСТИТЬ ДокументыРеализацииТоваровПоставщика ИЗ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслуг ЛЕВОЕ СОЕДИНЕНИЕ НоменклатураПоставщика КАК НоменклатураПоставщика ПО РеализацияТоваровУслуг.Номенклатура = НоменклатураПоставщика.Номенклатура ГДЕ РеализацияТоваровУслуг.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РегистрНакопленияПродажи.Регистратор ИЗ РегистрНакопления.Продажи КАК РегистрНакопленияПродажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ НоменклатураПоставщика КАК НоменклатураПоставщика ПО РегистрНакопленияПродажи.Номенклатура = НоменклатураПоставщика.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ ДокументыРеализацииТоваровПоставщика КАК ДокументыРеализацииТоваровПоставщика ПО РегистрНакопленияПродажи.Регистратор = ДокументыРеализацииТоваровПоставщика.РеализацияСсылка ГДЕ РегистрНакопленияПродажи.Период МЕЖДУ &НачалоПериода И &КонецПериода И ДокументыРеализацииТоваровПоставщика.РеализацияСсылка ЕСТЬ NULL |
|||
37
azernot
08.04.13
✎
15:35
|
Но, запрос в (36) основанный на задаче в (0) мне кажется попыткой почесать правое ухо левой рукой прокинув руку под левой коленкой... Т.е. сделать можно, но недуобно и непонятно зачем такие сложности.
Автор, озвучь реальную задачу, наверняка можно проще. |
|||
38
tdm
08.04.13
✎
15:35
|
разве это не оборотный регистр накопления - РегистрНакопленияПродажи(&НачалоПериода,&КонецПериода ) ??
|
|||
39
azernot
08.04.13
✎
15:36
|
(38) Регистр.Продажи.Обороты() - было бы виртуальной таблицей.
|
|||
40
tdm
08.04.13
✎
15:37
|
(39) я понимаю, поэтому и говорю не правильнее ли её использовать ? - передавая туда впараметры и поставщика и номенклатуру (обычно это измерения)
|
|||
41
DenisVich
08.04.13
✎
15:38
|
В вашем варианте прироста не будет. Реализаций очень много(десяток тысяч в день). Цель вывести по поставщику реализации которых нет в журнале документов реализаций но есть в регистре продажи(проблемный обмен)
|
|||
42
azernot
08.04.13
✎
15:39
|
(40) Если бы поставщик был там измерением, я думаю сложности бы не понадобились. Ему не нужны обороты. Ему нужен список регистраоторов, в этом случае использованее реальной таблицы - более оптимально, чем виртуальной.
|
|||
43
azernot
08.04.13
✎
15:40
|
(41) Что такое реализация по поставщику? Реализация товаров когда-либо поступивших от поставщика? Но не документом РеализацияТоваровУслуг за указанный период?
|
|||
44
DenisVich
08.04.13
✎
15:41
|
(43) Да
|
|||
45
tdm
08.04.13
✎
15:41
|
>>вывести по поставщику реализации которых нет в журнале документов реализаций но есть в регистре продажи
- Движения без регистратора ? |
|||
46
DenisVich
08.04.13
✎
15:41
|
да
|
|||
47
tdm
08.04.13
✎
15:41
|
(44) с партиями тоже беда ?) кроме регистра продажи обычно есть ПродажиСебестоимость, там есть документ поступления
|
|||
48
DirecTwiX
08.04.13
✎
15:42
|
(6) "НУЖНО!"?? Плохо.. Всё очень плохо. Дату и номер потом можно выбрать, а не тянуть за тридевять земель.
Лень читать.. Так как насчёт тянуть из журнала документов? Запрос на 10 строк максимум |
|||
49
azernot
08.04.13
✎
15:44
|
ВЫБРАТЬ РАЗЛИЧНЫЕ
РегистрНакопленияПродажи.Регистратор ИЗ РегистрНакопления.Продажи КАК РегистрНакопленияПродажи ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ ПоступлениеТоваровУслугТовары.Номенклатура КАК Номенклатура ИЗ Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары ГДЕ ПоступлениеТоваровУслугТовары.Ссылка.Контрагент = &Поставщик) КАК НоменклатураПоставщика ПО РегистрНакопленияПродажи.Номенклатура = НоменклатураПоставщика.Номенклатура ГДЕ РегистрНакопленияПродажи.Период МЕЖДУ &НачалоПериода И &КонецПериода И НЕ(РегистрНакопленияПродажи.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг И (РегистрНакопленияПродажи.Регистратор.Дата МЕЖДУ &НачалоПериода И &КонецПериода)) УПОРЯДОЧИТЬ ПО РегистрНакопленияПродажи.Период |
|||
50
tdm
08.04.13
✎
15:53
|
(49) =) мощно,
осталось у ТС уточнить - сканает ли "РегистрНакопленияПродажи.Номенклатура = НоменклатураПоставщика.Номенклатура" а то вдруг у них только по кодам))) |
|||
51
tdm
08.04.13
✎
15:54
|
+(50) в смысле записи без регистратора, то не удивительно если и номенклатура перекошена)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |