Имя: Пароль:
1C
1C 7.7
v7: Запрос по перемещениям
0 MistaEr
 
30.07.15
16:07
ТиС. Нужно получить сколько было перемещено ТМЦ в какой или иной склад, по какой себестоимости и в каких единицах измерения. Если себестоимость есть только в регистре Партии наличие, единица измерения перемещения есть только в документе Перемещение. Как бы объединить это все в запросе?
1 Ёпрст
 
30.07.15
16:10
строить запрос по документу, себестоимость вытаскивать из движения документа
2 Ёпрст
 
30.07.15
16:10
по номенклатуре.
3 Злопчинский
 
30.07.15
16:11
Если вопрос быстродействия непринципиален - тупо собери перемещения запросом, получи ОСТАТКИ из партии наличии на момент перемещения.
4 Ёпрст
 
30.07.15
16:11
Хочется извращений - получай себестоимость через внешнюю функцию в запросе
5 Злопчинский
 
30.07.15
16:12
(2) в перемещениях могут отсутсвовать движения по партии наличие.
6 Ёпрст
 
30.07.15
16:16
(5) да ладно ?
7 Злопчинский
 
30.07.15
16:18
(6) да запросто: фирм1+склад1(опт) -> фирм1+склад2(опт)
.
???
8 Ёпрст
 
30.07.15
16:19
(7) И ?
9 Ёпрст
 
30.07.15
16:19
всё там есть
10 Ёпрст
 
30.07.15
16:19
будет минус с одного мола на плюс другому..
11 MistaEr
 
30.07.15
16:20
(7) У меня тоже есть, но при каких то условиях, тоже помню что то такое, но у меня в моем случае есть)
12 MistaEr
 
30.07.15
16:23
(1) а как получить движения этого документа?
13 Ёпрст
 
30.07.15
16:23
(11) есть всегда.
В типовой, может не быть самой себестоимости, только если "не распределилось по партии"
Но это проблема в учете , а не в движениях.
14 MistaEr
 
30.07.15
16:23
(12) в цикле?
15 MistaEr
 
30.07.15
16:31
(3) остатки не катит, именно те партии нужны именно по той цене
16 Ёпрст
 
30.07.15
16:32
//======================================================================
Функция ПолучитьСебестоимость(Док,Номенклатура)
    Рег = СоздатьОбъект("Регистр.ПартииНаличие");
    Рег.УстановитьФильтр(,,Номенклатура);
    Рег.ВыбратьДвиженияДокумента(Док);
    Пока Рег.ПолучитьДвижение()=1 Цикл
        Возврат Рег.СуммаБезНДС;
    КонецЦикла;
    Возврат 0;
КонецФункции // ПолучитьСебестоимость

//*******************************************
Процедура Сформировать()
    Перем ТЗ;
    ТекстЗапроса = "
    |Док = Документ.ПеремещениеТМЦ.ТекущийДокумент;
    |Номенклатура = Документ.ПеремещениеТМЦ.Номенклатура;
    |Количество = Документ.ПеремещениеТМЦ.Количество;
    |Функция Себестоимость = Сумма(ПолучитьСебестоимость(Док,Номенклатура));
    |Группировка Док;
    |";
    Запрос = СоздатьОбъект("Запрос");
    Запрос.Выполнить(ТекстЗапроса);
    Запрос.Выгрузить(ТЗ);
    ТЗ.ВыбратьСтроку();

КонецПроцедуры
17 Ёпрст
 
30.07.15
16:44
Только вот, не помню, действует ли установка фильтра на метод выбратьдвижения документа
18 MistaEr
 
30.07.15
17:42
(17) Фильтр вроде работает. А вот (7) на самом деле так...
19 Ёпрст
 
30.07.15
17:55
(18) у нас не так.. в демке Тисе - тоже
20 Ёпрст
 
30.07.15
17:56
а как у вас - хз.
21 Ёпрст
 
30.07.15
17:57
на счет фильтра, я бы тоже не был бы уверен, воткни и посомотри:

Функция ПолучитьСебестоимость(Док,Номенклатура)
    Рег = СоздатьОбъект("Регистр.ПартииНаличие");
    Рег.УстановитьФильтр(,,Номенклатура);
    Рег.ВыбратьДвиженияДокумента(Док);
    Пока Рег.ПолучитьДвижение()=1 Цикл
        Сообщить("Прилетело: "+Номенклатура+" в фильтре: "+Рег.Номенклатура);
        Возврат Рег.СуммаБезНДС;
    КонецЦикла;
    Возврат 0;
КонецФункции// ПолучитьСебестоимость
22 Злопчинский
 
30.07.15
18:35
(10) Это если молы заданы...
23 Злопчинский
 
30.07.15
18:36
(15) Остатки ПО ПАРТИЯМ. Суммапартии/КоличествоПартии
24 Злопчинский
 
30.07.15
18:38
(22) .. а типовая ТИС не требует обязательного задания молов, так что в описываемом случае - редька вам, а не движения с себестоимостью. Можно конечно подшаманить, чтобы и при совпадающих МОЛах на складе-отправителе и складе-получателе генерирлись движения по партиям (расход 10 на 100 руб, приход 10 на 100 руб) - так кузявее, бо единообразно - но лишняя нагрузка на базу/объемы
25 Злопчинский
 
30.07.15
18:39
(19) бяка ты. в демке ТИСа - именно так. Другое дело что в демке Тиса не все типовые широкораспространенные ситуации пристутсвуют
26 Злопчинский
 
30.07.15
18:39
(22) .. при чем они разные
27 MistaEr
 
31.07.15
09:58
(22) Дык я мол задам только основному складу и все
28 MistaEr
 
31.07.15
09:59
Всем спасибо!
29 Ёпрст
 
31.07.15
10:02
Если мола нет или он не задан, смысл в складах теряется весь
30 welwel
 
31.07.15
10:11
Емнип в типовом тисе для учета себестоимости по среднему молов нужно оставлять пустыми