|
v7: Регистр накоплений не могу получить движения | ☑ | ||
---|---|---|---|---|
0
SeregaMW
12.04.12
✎
09:57
|
Пытаюсь получить итоги для списания товара, но почему то на некоторые позиции не чего не выдает.
Рег.Актуальность(1); РегТовары = Рег.Товары; СписокТоваров = СоздатьОбъект("СписокЗначений"); Конт.ТекущийДокумент().ВыгрузитьТабличнуюЧасть(СписокТоваров,"Товар"); РегТовары.УстановитьЗначениеФильтра("Товар",СписокТоваров,2); Если (Конт.Вид() = "ВозвратОтРеализатора") ИЛИ (Конт.Вид() = "ОтчетРеализатора") Тогда РегТовары.УстановитьЗначениеФильтра("Склад",Конт.Реализатор.СкладРеализатора,1); Иначе РегТовары.УстановитьЗначениеФильтра("Склад",Конт.Склад,1); КонецЕсли; Если Конт.ИтогиАктуальны() = 0 Тогда Состояние("ПРОВОДКА: "+Конт.ТекущийДокумент().ПредставлениеВида()+" № "+СокрЛП(Конт.ТекущийДокумент().НомерДок)+" от "+Формат(Конт.ТекущийДокумент().ДатаДок,"ДДДММГГГГ")+" - расчет итогов"); РегТовары.ВременныйРасчет(1); Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); КонецЕсли; Пока Конт.ПолучитьСтроку() = 1 Цикл Состояние("ПРОВОДКА: "+Конт.ТекущийДокумент().ПредставлениеВида()+" № "+СокрЛП(Конт.ТекущийДокумент().НомерДок)+" от "+Формат(Конт.ТекущийДокумент().ДатаДок,"ДДДММГГГГ")+" - строка "+Строка(Конт.НомерСтроки)+" из "+Строка(Конт.КоличествоСтрок())+" строк"); ОсталосьСписать = Конт.Количество*Конт.ЕдИзм.Коэффициент; Если ОсталосьСписать = 0 Тогда Продолжить; КонецЕсли; ЦенаПродажи = Конт.Сумма/ОсталосьСписать; Если НЕ((Конт.Вид() = "ПередачаВ") ИЛИ (Конт.Вид() = "Списание")) Тогда Продавец = Конт.Продавец; КонецЕсли; РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1); РегТовары.ВыгрузитьИтоги(ТаблицаИтогов, 1); ТаблицаИтогов.НоваяКолонка("Позиция"); ТаблицаИтогов.НоваяКолонка("Прибыль"); ТаблицаИтогов.НоваяКолонка("ЦенаПродажи"); ТаблицаИтогов.ВыбратьСтроки(); Пока ТаблицаИтогов.ПолучитьСтроку() = 1 Цикл Если в документе одна позиция то все корректно если несколько тогда по условиям отбора выдает 0 записей. Подскажите где может быть ошибка? |
|||
1
zak555
12.04.12
✎
09:59
|
1. такой регистр есть ?
2. это где такой код ? |
|||
2
SeregaMW
12.04.12
✎
10:00
|
(1) это самописка
|
|||
3
lamme
12.04.12
✎
10:01
|
а где у тебя
Конт.ВыбратьСтроки() ? |
|||
4
Ёпрст
12.04.12
✎
10:01
|
Конт.ВыбратьСтроки() отсутствует
|
|||
5
miki
12.04.12
✎
10:03
|
ну и, чисто для красоты, выпилить ТекущийДокумент() из "Конт.ТекущийДокумент().ТекущийДокумент()"
|
|||
6
SeregaMW
12.04.12
✎
10:04
|
(4) Если Конт.ВыбратьСтроки() = 1 Тогда
перед Рег.Актуальность(1); (5) Выпелю, спасибо! |
|||
7
dk
12.04.12
✎
10:06
|
Рег.Актуальность(1);
зачем тут? --- с товарищем отладчиком знаком? |
|||
8
lamme
12.04.12
✎
10:08
|
(6)
еще раз посмотри в код я так допустим не нашел этой строки Конт.ВыбратьСтроки() ни перед .. ни после ... Рег.Актуальность() |
|||
9
SeregaMW
12.04.12
✎
10:15
|
(8)дописал так
Конт.ВыбратьСтроки(); Пока Конт.ПолучитьСтроку() = 1 Цикл Состояние("ПРОВОДКА: "....... |
|||
10
SeregaMW
12.04.12
✎
10:17
|
РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1);
РегТовары.ВыгрузитьИтоги(ТаблицаИтогов, 1); ТаблицаИтогов.НоваяКолонка("Позиция"); ТаблицаИтогов.НоваяКолонка("Прибыль"); ТаблицаИтогов.НоваяКолонка("ЦенаПродажи"); ТаблицаИтогов.ВыбратьСтроки(); Пока ТаблицаИтогов.ПолучитьСтроку() = 1 Цикл Проблема где то здесь, в ТаблицаИтогов.КоличествоСтрок()=0 |
|||
11
Ёпрст
12.04.12
✎
10:19
|
а с чего уверенность, что по выбранным фильтрам есть останки в этом регистре ?
|
|||
12
SeregaMW
12.04.12
✎
10:24
|
(11)Смотрю другой обработкой остатки товаров, есть несколько партий, если оставляю только одну позицию в док. тогда отбор работает корректно.
|
|||
13
Ёпрст
12.04.12
✎
10:27
|
(12) на том же складе ?
И при чем тут партии ? |
|||
14
SeregaMW
12.04.12
✎
10:32
|
(13) да на том же складе
|
|||
15
miki
12.04.12
✎
10:32
|
походу что-то с УстановитьЗначениеФильтра перемутил. Выгрузи итоги по всем товарам дока один раз в ТЗ.
|
|||
16
SeregaMW
12.04.12
✎
11:08
|
РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1);
РегТовары.ВременныйРасчет(1); Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); РегТовары.ВыгрузитьИтоги(ТаблицаИтогов, 1); пробую так, в итоге на все позиции кроме первой в ТаблицаИтогов выгружается 0 строк |
|||
17
SeregaMW
12.04.12
✎
11:08
|
(16)
Пока Конт.ПолучитьСтроку() = 1 Цикл Состояние("ПРОВОДКА: "+Конт.ТекущийДокумент().ПредставлениеВида()+" № "+СокрЛП(Конт.ТекущийДокумент().НомерДок)+" от "+Формат(Конт.ТекущийДокумент().ДатаДок,"ДДДММГГГГ")+" - строка "+Строка(Конт.НомерСтроки)+" из "+Строка(Конт.КоличествоСтрок())+" строк"); ОсталосьСписать = Конт.Количество*Конт.ЕдИзм.Коэффициент; Если ОсталосьСписать = 0 Тогда Продолжить; КонецЕсли; ЦенаПродажи = Конт.Сумма/ОсталосьСписать; Если НЕ((Конт.Вид() = "ПередачаВ") ИЛИ (Конт.Вид() = "Списание")) Тогда Продавец = Конт.Продавец; КонецЕсли; РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1); РегТовары.ВременныйРасчет(1); Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); РегТовары.ВыгрузитьИтоги(ТаблицаИтогов, 1); |
|||
18
Ёпрст
12.04.12
✎
11:14
|
>>>>РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1);
>>>>, в итоге на все позиции кроме первой в ТаблицаИтогов выгружается 0 строк а подумать ? |
|||
19
Ёпрст
12.04.12
✎
11:18
|
(0)
что кажет это ? //Рег.Актуальность(1); РегТовары = Рег.Товары; СписокТоваров = СоздатьОбъект("СписокЗначений"); Конт.ВыгрузитьТабличнуюЧасть(СписокТоваров,"Товар"); РегТовары.УстановитьЗначениеФильтра("Товар",СписокТоваров,2); Если (Конт.Вид() = "ВозвратОтРеализатора") ИЛИ (Конт.Вид() = "ОтчетРеализатора") Тогда РегТовары.УстановитьЗначениеФильтра("Склад",Конт.Реализатор.СкладРеализатора,1); Иначе РегТовары.УстановитьЗначениеФильтра("Склад",Конт.Склад,1); КонецЕсли; Если Конт.ИтогиАктуальны() = 0 Тогда РегТовары.ВременныйРасчет(1); Рег.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); КонецЕсли; РегТовары.ВыгрузитьИтоги(ТаблицаИтогов); ТаблицаИтогов.ВыбратьСтроку(); |
|||
20
SeregaMW
12.04.12
✎
11:27
|
(19) ТаблицаИтогов.ВыбратьСтроку();
Дает таблицу с товарами из ТЧ, все товары есть |
|||
21
Ёпрст
12.04.12
✎
11:27
|
(20) вот и наслаждайся
|
|||
22
SeregaMW
12.04.12
✎
11:29
|
(21) Спасибо большое ты настоящий друг принимай бабло! Отдал последние 5р. )))
|
|||
23
Ёпрст
12.04.12
✎
11:30
|
теперь делаем далее:
РегТовары.ВыгрузитьИтоги(ТаблицаИтогов); //ТаблицаИтогов.ВыбратьСтроку(); Конт.ВыбратиьСтроки(); Пока Конт.ПолучитьСтроку() = 1 Цикл РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1); РегТовары.ВыгрузитьИтоги(ТаблицаИтогов); ТаблицаИтогов.ВыбратьСтроку(); КонецЦикла; есть че в ТЗ в цикле ? |
|||
24
SeregaMW
12.04.12
✎
11:36
|
(23) Есть только первая строка, на остальные выдает пустую таблицу
|
|||
25
Ёпрст
12.04.12
✎
11:43
|
а так ?
РегТовары.ВыгрузитьИтоги(ТаблицаИтогов); //ТаблицаИтогов.ВыбратьСтроку(); Конт.ВыбратиьСтроки(); Пока Конт.ПолучитьСтроку() = 1 Цикл //РегТовары.УстановитьЗначениеФильтра("Товар",Конт.Товар,1); РегТовары.УстановитьФильтр(,Конт.Товар,,,,,,,,,); //поставить в нужное место в порядке следования измерения +нужное кол-во зпт РегТовары.ВыгрузитьИтоги(ТаблицаИтогов); ТаблицаИтогов.ВыбратьСтроку(); КонецЦикла; |
|||
26
SeregaMW
12.04.12
✎
11:52
|
(25)Да так получилось!
Еще раз СПАСИБО!!!! |
|||
27
Ёпрст
12.04.12
✎
11:57
|
можешь кстати, и остаток/сводный остаток получать потом
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |