|
табличная часть товары | ☑ | ||
---|---|---|---|---|
0
dimogen
15.06.12
✎
12:46
|
Подскажите, как сделать чтоб весь список в ТЧ загружался, а то у меня при обходе создаются столько доков сколь в условие попадают?
ЗапросНомен = Новый Запрос; ЗапросНомен.Текст = "ВЫБРАТЬ |ЧекККМТовары.Номенклатура, |СУММА(ЧекККМТовары.Количество) КАК Количество, |СУММА(ЧекККМТовары.Номенклатура.МинОстаток) КАК МинОстаток |ПОМЕСТИТЬ ДокТЧ |ИЗ |Документ.ЧекККМ.Товары КАК ЧекККМТовары |ГДЕ |ЧекККМТовары.Ссылка.Дата МЕЖДУ &ДатаНач И &ДатаКон | |СГРУППИРОВАТЬ ПО |ЧекККМТовары.Номенклатура |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | ЧекККМТовары.Номенклатура |ПОМЕСТИТЬ СписокТоваров |ИЗ | Документ.ЧекККМ.Товары КАК ЧекККМТовары |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Док.Номенклатура КАК Номенклатура, | Док.Количество КАК Продано, | ЕСТЬNULL(Рег.КоличествоОстаток, 0) КАК Остаток, | Док.МинОстаток КАК МинОстаток, | Рег.ЦенаЗакупочная КАК Цена |ИЗ | ДокТЧ КАК Док | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки( | , | Номенклатура В | (ВЫБРАТЬ РАЗЛИЧНЫЕ | СписокТоваров.Номенклатура | ИЗ | СписокТоваров КАК СписокТоваров)) КАК Рег | ПО Док.Номенклатура = Рег.Номенклатура | |УПОРЯДОЧИТЬ ПО | Номенклатура"; ЗапросНомен.УстановитьПараметр("ДатаНач", ДатаНач); ЗапросНомен.УстановитьПараметр("ДатаКон", ДатаКон); МассивРезультатов = ЗапросНомен.ВыполнитьПакет(); РезультатЗапроса = ЗапросНомен.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); Пока Выборка.Следующий() Цикл Если НЕ Выборка.Номенклатура.ЭтоГруппа Тогда Номенклатура = Выборка.Номенклатура; Остаток = Выборка.Остаток; МинОстаток = Выборка.МинОстаток; Продано = Выборка.Продано; Цена = Выборка.Цена; Сумма = Цена*Продано; Если Остаток < МинОстаток Тогда Док = Документы.ЗаявкаМагазина.СоздатьДокумент); НовТовар = Док.Товары.Добавить(); НовТовар.Номенклатура = Номенклатура; НовТовар.Количество = Продано; НовТовар.Сумма = Сумма; НовТовар.Цена = Цена; КонецЕсли; Док.Автор = глТекущийПользователь.Наименование; Док.Дата = ТекущаяДата(); Док.Склад = Справочники.МестаХранения.НайтиПоКоду(1); Док.ПримечаниеДокумента = Строка("Создан автоматически"); Док.Записать(); Форма = Док.ПолучитьФорму("ФормаДокумента"); Форма.Открыть(); КонецЕсли; КонецЦикла; |
|||
1
Mort
15.06.12
✎
12:50
|
программиста позвать
|
|||
2
dimogen
15.06.12
✎
13:15
|
(1) умник
|
|||
3
France
15.06.12
✎
13:16
|
я тоже согласен
|
|||
4
Diose
15.06.12
✎
14:48
|
вынеси из цикла
Док = Документы.ЗаявкаМагазина.СоздатьДокумент); - а вообще это работает :) |
|||
5
Renat11111
15.06.12
✎
14:51
|
(0) это что за х...ня? ты все это сделал?
|
|||
6
Diose
15.06.12
✎
14:58
|
Судя по всему обиделся...
Чувак не парься. Сегодня пятница ... оставь сложные задачи на понедельник !!! |
|||
7
abitfrosty
15.06.12
✎
15:01
|
Не знаю, что такое "МинОстаток", но исходя из того, что он реквизит Номенклатуры, то суммировать его неправильно.
|
|||
8
Hande hoch
15.06.12
✎
15:02
|
не обиделся... (4) прочитал и понял где ступил
|
|||
9
kosts
15.06.12
✎
15:18
|
(0)
Если НЕ Выборка.Номенклатура.ЭтоГруппа Тогда Так не делают, нужно сразу в запросе отсекать группы. Док.Склад = Справочники.МестаХранения.НайтиПоКоду(1); Склад лучше задать на форме. Док.ПримечаниеДокумента = "Создан автоматически"; И примечание лучше ориентироваться на типовые, там используется Комментарий. Вот примерно так можно переписать.
|
|||
10
kosts
15.06.12
✎
15:23
|
+ к (9)
Да и Если Остаток < МинОстаток Тогда тоже можно сразу в запросе отфильтровать... |
|||
11
Reset
15.06.12
✎
15:47
|
(9)
В (0) написано: "как сделать чтоб весь список в ТЧ загружался, а то у меня при обходе создаются столько доков сколь в условие попадают" А что твой код делать будет? :) |
|||
12
dimogen
15.06.12
✎
15:53
|
(6)не обиделся))) сейчас попробую все это провернуть, спасибо за подсказки
|
|||
13
kosts
15.06.12
✎
16:01
|
(11) Показал подход по сокращению кода, а по существу уже раньше подсказали...
|
|||
14
dimogen
15.06.12
✎
16:29
|
(9) тоже самое делает что и мой код, только создаются +2 пустых дока...а как в один то загнать все?
|
|||
15
dimogen
15.06.12
✎
16:36
|
все я разобрался))) спс всем, подправил запрос, чтоб остатки отсеялись по периоду и код подправил!!! терь буду думать как минуса убирать по продажам за период, товар кот. попадает в выборку
|
|||
16
dimogen
20.06.12
✎
11:02
|
снова нужна помощь по этой же теме. СУММА(ЧекККМТовары.Количество) КАК Количество - это проданый товар, как сделать если это количество равно 0, то есть товара не было продано, тогда это количество равно миностаток? Я делал так
ВЫБОР КОГДА ЧекККМТовары.Количество=0 ТОГДА ЧекККМТовары.Количество = ЧекККМТовары.Номенклатура.МинОстаток КОНЕЦ Но как я понимаю он мне всегда будет возвращать пустое значение? |
|||
17
Buster007
20.06.12
✎
11:06
|
надо сначала просуммировать, а потом только сравнивать. Но с другой стороны откуда в документе будут позиции с нулевым количеством?
|
|||
18
dimogen
20.06.12
✎
11:20
|
попробую тогда в регистре провернуть
|
|||
19
dimogen
20.06.12
✎
11:25
|
ВЫБОР КОГДА Док.Количество=0 ТОГДА Док.Количество = Док.МинОстаток ИНАЧЕ Док.Количество КОНЕЦ
Сделал так, пишет неверные параметры (Док.Количество<<?>>) |
|||
20
Diose
20.06.12
✎
11:27
|
(19) Док.Количество<<?>> -> Таб.Количество
|
|||
21
dimogen
20.06.12
✎
11:31
|
(20) что-то не понял, Таб.Количество что это?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |