Имя: Пароль:
1C
1С v8
v8: Как выбрать непродаваемый товар за период, затем сравнить с продаваемым в другом периоде
,
0 Альбатрос
 
08.02.13
07:52
Задача: выбрать непродаваемый товар за период, затем выбрать продажи за другой период, отметить те позиции, которые присутствуют в непродаваемом. Делаю на СКД. Просьба оптимизировать.
Запрос:

ВЫБРАТЬ
   ТоварыНаСкладахОстаткиИОбороты.Номенклатура
ПОМЕСТИТЬ сток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
           &НачалоПериода,
           &КонецПериода,
           Регистратор,
           ,
           НЕ Номенклатура В
                   (ВЫБРАТЬ
                       ПродажиОбороты.Номенклатура
                   ИЗ
                       РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты
                   ГДЕ
                       ПродажиОбороты.КоличествоОборот > 0)) КАК ТоварыНаСкладахОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ПродажиОбороты.ДокументПродажи.Ответственный,
   ПродажиОбороты.КоличествоОборот,
   ПродажиОбороты.СтоимостьОборот,
   ПродажиОбороты.Номенклатура,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура В (сток.Номенклатура)
           ТОГДА ИСТИНА
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ КАК БылиПродажи,
   ПродажиОбороты.ДокументПродажи.Сделка.Ответственный
ИЗ
   РегистрНакопления.Продажи.Обороты(&НачалоЗапроса, &КонецЗапроса, , ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ПродажиОбороты,
   сток КАК сток


Так-то вроде корректно запрос отрабатывает, но стоит мне повешать группировку, как программа вешается: "Недостаточно памяти". Как это поправить?
1 Cube
 
08.02.13
07:55
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, ...

Зачем по регистратору, если ты с ним не работешь? Поставь "Период отчета".
2 Альбатрос
 
08.02.13
07:57
(1) спасибо, поправил
3 Cube
 
08.02.13
07:59
Что-то я не заметил во втором пакете связи таблиц ПродажиОбороты и сток... Свяжи их по номенклатуре что-ли...
4 Альбатрос
 
08.02.13
08:07
(3) я посчитал это ненужным.
Переписал второй пакет:

ВЫБРАТЬ
   ПродажиОбороты.ДокументПродажи.Ответственный,
   ПродажиОбороты.КоличествоОборот,
   ПродажиОбороты.СтоимостьОборот,
   ПродажиОбороты.Номенклатура,
   ВЫБОР
       КОГДА ПродажиОбороты.Номенклатура В (сток.Номенклатура)
           ТОГДА ИСТИНА
       ИНАЧЕ ЛОЖЬ
   КОНЕЦ КАК БылиПродажи,
   ПродажиОбороты.ДокументПродажи.Сделка.Ответственный
ИЗ
   РегистрНакопления.Продажи.Обороты(&НачалоЗапроса, &КонецЗапроса, , ДокументПродажи ССЫЛКА Документ.РеализацияТоваровУслуг) КАК ПродажиОбороты
       ЛЕВОЕ СОЕДИНЕНИЕ сток КАК сток
       ПО ПродажиОбороты.Номенклатура = сток.Номенклатура
5 Альбатрос
 
08.02.13
08:12
+(4) Но проблема не решилась(( все равно при добавлении группировки вываливается (((
6 shuhard
 
08.02.13
08:13
(4) [я посчитал это ненужным.]
мощно задвинул
7 Альбатрос
 
08.02.13
08:14
(6) я такой )
8 Альбатрос
 
08.02.13
08:42
таки апну, проблема не решена...
9 Cube
 
08.02.13
08:46
(8) Сколько типов регистраторов в регистре накопления Продажи?
Сколько типов в реквизите Сделка документа РТиУ?
10 Cube
 
08.02.13
08:47
(6) +1 =))
11 Альбатрос
 
08.02.13
08:51
(9) В регистре 6 типов регистраторов, типов в реквизите сделка дохрена...
12 Cube
 
08.02.13
08:55
(11) "типов в реквизите сделка дохрена..."
Сколько?
И какую группировку ты добавляешь, что у тебя отчет вылетает?
13 Альбатрос
 
08.02.13
08:58
(12) Группировка по Документ.Продажи.Сделка.Ответственный

добавил вот такое:

ГДЕ
   ПродажиОбороты.ДокументПродажи.Сделка ССЫЛКА Документ.ЗаказПокупателя

Заработало! =) А как добавить реализации, у которых сделка не указана вообще?
14 Альбатрос
 
08.02.13
09:00
(12) 28 типов в Сделка
15 Cube
 
08.02.13
09:01
(13)  "А как добавить реализации, у которых сделка не указана вообще?"
(14) "28 типов в Сделка"

ыЫЫ)) Надо добавить 29 условий в запрос)))
16 Cube
 
08.02.13
09:02
(13) Понятное дело заработало. Ты попробуй убрать условие, а поле ПродажиОбороты.ДокументПродажи.Сделка.Ответственный сделай через выразить()

Примерно так:

ВЫРАЗИТЬ(ПродажиОбороты.ДокументПродажи.Сделка КАК Докумен.ЗаказПокупателя).Ответственный
17 Альбатрос
 
08.02.13
09:12
(16) Работает и быстро! Спасибо!
18 Cube
 
08.02.13
09:13
(17) А с пустыми сделками отрабатывает или ты на них забил?
19 Альбатрос
 
08.02.13
09:17
(18) Отрабатывает как раз, но я уже подумываю их убрать, т.к. основная приоритет видеть, кто из менеджеров что и сколько продал, а если сделка пуста, то и менеджера нет.
20 Cube
 
08.02.13
09:21
(19) Ну, это и в отборе можно сделать.
21 Cube
 
08.02.13
09:21
+(20) В смысле в отборе, который накладывает пользователь.
22 Альбатрос
 
08.02.13
09:25
(21) да, тоже верно. Это уже не принципиально. Еше раз спасибо, очень помогли!
23 Fragster
 
гуру
08.02.13
09:26
убери группировку по колонке если есть