|
v7: Остатки видны только на следующий день после проводки | ☑ | ||
---|---|---|---|---|
0
Alekssey
23.04.13
✎
15:58
|
Здравствуйте, При проводке приходной накладной, на остатках этот товар появляется только на следующий день, в чем проблема? Отчет формируется так:
Рег=СоздатьОбъект("Регистр.ОстаткиПродуктов"); Рег.ВременныйРасчет(1); РассчитатьРегистрыНа(ВыбДата); Рег.ВыбратьИтоги(); Пока Рег.ПолучитьИтог()=1 цикл Товар=Рег.Продукт; Количество=Рег.Количество; Сумма=Рег.Сумма; Таб.ВывестиСекцию("Опис"); КонецЦикла; |
|||
1
ДенисЧ
23.04.13
✎
15:59
|
потому что
РассчитатьРегистрыНа(ВыбДата); |
|||
2
Alekssey
23.04.13
✎
15:59
|
Проведение накладной
Процедура ОбработкаПроведения() ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Регистр.ОстаткиПродуктов.Продукт=Товар ; Регистр.ОстаткиПродуктов.Количество = Кол; Регистр.ОстаткиПродуктов.Сумма = Сумма; Регистр.ОстаткиПродуктов.ДвижениеПриходВыполнить(); КонецЦикла; КонецПроцедуры |
|||
3
Alekssey
23.04.13
✎
15:59
|
То есть если в ВыбДата укажу сегодня, то остатков не будет?
|
|||
4
ДенисЧ
23.04.13
✎
16:00
|
Ты говоришь НА - это значит "на начало дня". Что говоришь - то и получаешь
|
|||
5
Alekssey
23.04.13
✎
16:00
|
Еще пробовал так, но проблема осталась
Функция КонтрольОстатка(Продукт) Рег=СоздатьОбъект("Регистр.ОстаткиПродуктов"); Спр=СоздатьОбъект("Справочник.Продукты"); Спр.НайтиПоНаименованию(Продукт); Эл=Спр.ТекущийЭлемент(); Кол=Рег.Остаток(Эл,"Количество"); Возврат Кол; Рег=""; Спр=""; КонецФункции |
|||
6
Alekssey
23.04.13
✎
16:01
|
А как на конец тогда будет?
|
|||
7
rasswet
23.04.13
✎
16:01
|
23.59.59 ?
|
|||
8
acsent
23.04.13
✎
16:04
|
РассчитатьРегистрыПо
|
|||
9
palpetrovich
23.04.13
✎
16:04
|
(0) может посмотреть как в типовых отчеты строятся?
зы точно точно v8? :) |
|||
10
Alekssey
23.04.13
✎
16:06
|
Оп, извиняюсь не там написал, 7
|
|||
11
Alekssey
23.04.13
✎
16:06
|
Где посмотреть?
|
|||
12
Alekssey
23.04.13
✎
16:07
|
Если писать РассчитатьРегистрыПо то ошибка РассчитатьРегистрыПо(ВыбДата);
{Отчет.ОстаткиНаСкладе.Форма.Модуль(17)}: Не могу рассчитать временные итоги после ТА! |
|||
13
palpetrovich
23.04.13
✎
16:07
|
(11) в любой ТиС, отчет ОстаткиТоваров к примеру
|
|||
14
Alekssey
23.04.13
✎
16:09
|
А почему тогда вот эта конструкция не дает точных остатков:
Функция КонтрольОстатка(Продукт) Рег=СоздатьОбъект("Регистр.ОстаткиПродуктов"); Спр=СоздатьОбъект("Справочник.Продукты"); Спр.НайтиПоНаименованию(Продукт); Эл=Спр.ТекущийЭлемент(); Кол=Рег.Остаток(Эл,"Количество"); Возврат Кол; Рег=""; Спр=""; КонецФункции |
|||
15
palpetrovich
23.04.13
✎
16:24
|
(14) нарисуй сюда струкруру регистра
|
|||
16
viktor_vv
23.04.13
✎
16:26
|
(14) А точные остатки ты где смотришь ?
|
|||
17
viktor_vv
23.04.13
✎
16:28
|
И в отчетах лчше пользоваться запросами.
|
|||
18
palpetrovich
23.04.13
✎
16:44
|
ну как хо... попробуй так:
ТекстЗапроса=" |ПЕРИОД С ВыбДата По ВыбДата; |Продукт = Регистр.ОстаткиПродуктов.Продукт; |Количество = Регистр.ОстаткиПродуктов.Количество; |Группировка Продукт; |Функция Остаток = КонОст(Количество); |Условие (Продукт = ВыбПродукт); |"; Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда Возврат; КонецЕсли; Если Запрос.Группировка("Продукт") = 1 Тогда Сообщить("Остаток1= "+Запрос.Остаток); КонецЕсли; |
|||
19
Alekssey
23.04.13
✎
16:53
|
С этим разобрался, нужно было просто сделать Временный расчет(0)
|
|||
20
Alekssey
23.04.13
✎
16:54
|
И еще подскажите, как проконтролировать, чтобы при вводе данных в документе в табличную часть, все столбцы в каждой строке были заполнены. То есть если строку полностью заполнили выполнялась какая нибудь процедура.
|
|||
21
DigitalDolphin
23.04.13
✎
16:58
|
(19) Если выключить ВременныйРасчет, то остатки будут только на ТА
|
|||
22
palpetrovich
24.04.13
✎
13:27
|
(20) так можно:
МетаданныеДокумента = Метаданные.Документ(ТекДокумент.Вид()); // ТекДокумент - твой док Если МетаданныеДокумента.РеквизитТабличнойЧасти()=0 Тогда Возврат; КонецЕсли; ТекДокумент.ВыбратьСтроки(); Пока ТекДокумент.ПолучитьСтроку() = 1 Цикл Для Индекс=1 По МетаданныеДокумента.РеквизитТабличнойЧасти() Цикл Идентификатор = МетаданныеДокумента.РеквизитТабличнойЧасти(Индекс).Идентификатор; Если ПустоеЗначение(ТекДокумент.ПолучитьАтрибут(Идентификатор))=1 Тогда Сообщить("Не заполнено " + Идентификатор + " в строке " + ТекДокумент.НомерСтроки); КонецЕсли; КонецЦикла; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |