|
Как получать остатки в модуле проведения с учетом выполненных движений в рег | ☑ | ||
---|---|---|---|---|
0
oleg_prg
28.10.12
✎
17:28
|
Добрый день Подскажите пожалуйста, можно ли в модуле проведения получать остатки с учетом проведения
например: см.комментарии Процедура ОбработкаПроведения(Отказ, Режим) Для Каждого ТекСтрокаТовары Из Товары Цикл Если ТекСтрокаТовары.Номенклатура.Комиссионный = Истина Тогда Продолжить; КонецЕсли; ТЗ = ПолучитьОстатки(); //!!!!Получаю остатки до проведения ПартияОпт = Справочники.ол_ПартияОпт.ПустаяСсылка(); Движение = Движения.Хозрасчетный.Добавить(); Движение.Период = Дата; Движение.Организация = Организация; Движение.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("000"); Движение.СчетКт = ТекСтрокаТовары.СчетДебет; Движение.СубконтоКт[Движение.СчетКт.ВидыСубконто[0].ВидСубконто] = ТекСтрокаТовары.Номенклатура; Движение.СубконтоКт[Движение.СчетКт.ВидыСубконто[1].ВидСубконто] = СкладОтправитель; Движение.СубконтоКт[Движение.СчетКт.ВидыСубконто[2].ВидСубконто] = ПартияОпт; Движение.КоличествоКт = ТекСтрокаТовары.Количество; Движение.Сумма = 100; Движение.Содержание = "Перемещены товары"; Движения.Хозрасчетный.Записать(); ТЗ = ПолучитьОстатки(); //!!!!Получаю остатки после проведения, и ничего не изменилось, как получить остаток с учетом проведения???? КонецЦикла; КонецПроцедуры |
|||
1
oleg_prg
28.10.12
✎
17:30
|
Дополнение, вот функция которая получает остатки
Функция ПолучитьОстатки() Запрос = новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ХозрасчетныйОстатки.Субконто1, | ХозрасчетныйОстатки.Субконто2, | ХозрасчетныйОстатки.Субконто3, | ХозрасчетныйОстатки.КоличествоОстаток, | ХозрасчетныйОстатки.Организация |ИЗ | РегистрБухгалтерии.Хозрасчетный.Остатки( | &Дата, | Счет = &Счет, | , | Субконто1 = (&МассивНоменклатуры) | И Субконто2 = &Склад) КАК ХозрасчетныйОстатки |ГДЕ | (ХозрасчетныйОстатки.Организация = &Организация) и (ХозрасчетныйОстатки.Субконто3.Характеристика = &Характеристика)"; Запрос.УстановитьПараметр("Счет", ПланыСчетов.Хозрасчетный.НайтиПоКоду("41.01")); Запрос.УстановитьПараметр("Дата", КонецДня(Дата)); Запрос.УстановитьПараметр("Склад", СкладОтправитель); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Характеристика", Справочники.ол_ХарактеристикаНоменклатуры.НайтиПоКоду("000000005")); Запрос.УстановитьПараметр("МассивНоменклатуры", Справочники.Номенклатура.НайтиПоКоду("1111104")); ТЗ = Запрос.Выполнить().Выгрузить(); Возврат ТЗ; КонецФункции |
|||
2
oleg_prg
28.10.12
✎
17:43
|
В 1С7.7. можно было в модуле проведения написать Операция.Записать(); и после этого остатки можно получить с учетом проведения, а как это сделать в 1С8 и вообще, реально ли это?
|
|||
3
Живой Ископаемый
28.10.12
✎
17:58
|
dj первых копро-код детектед
ГДЕ | (ХозрасчетныйОстатки.Организация = &Организация) и (ХозрасчетныйОстатки.Субконто3.Характеристика = &Характеристика) должно быть в параметрах вирутальной таблицы... по крайней мере Организация |
|||
4
Живой Ископаемый
28.10.12
✎
18:01
|
не, во-вторых, по сути ветки лень искать. поищи сам в типовых...
|
|||
5
ВалераОшкин
28.10.12
✎
18:02
|
в параметр &Дата запихай границу с ВидГраницы = Включая
|
|||
6
ВалераОшкин
28.10.12
✎
18:03
|
(2) все реально
|
|||
7
oleg_prg
28.10.12
✎
18:04
|
(3) - согласен, но это проблему не решает
PS этот код был набросан для примера, просто чтобы показать ситуацию в которой делаю получаю остатки, делаю движение, получаю остатки без изменений (5) - "Дата", КонецДня(Дата) куда уже дальше границу пихать, документ от 27.10.2012 14:03:05 :) |
|||
8
oleg_prg
28.10.12
✎
18:05
|
(5)Граница нужна если документ проведен в 0час 00 мин. О остатки надо получить в тот же день, но до документа с этим временем, так что это не то
|
|||
9
oleg_prg
28.10.12
✎
18:07
|
(4) Спасибо за совет, на вскидку не подскажете где глянуть - какая конфигурация и какой документ. Очень буду признателен
|
|||
10
ВалераОшкин
28.10.12
✎
18:07
|
(8) нафига ты в цикле применяешь метод Движения.Записать()?
|
|||
11
oleg_prg
28.10.12
✎
18:08
|
Думал вдруг после этого Движения.Хозрасчетный.Записать(); остатки начнут правильные отображаться, обычно так не делаю, просто ради эксперимента поставил
|
|||
12
oleg_prg
28.10.12
✎
18:09
|
(10) я подумал что системе надо неким образом показать, что вот оно то самое место где надо записать остатки в таблицу регистра
|
|||
13
ВалераОшкин
28.10.12
✎
18:10
|
(11) у тебя проблема в запросе. Что-то ты там накосячил.
В обработке проведения после формирования движений можно получить остаток с учетом уже сделанных движений. |
|||
14
oleg_prg
28.10.12
✎
18:11
|
(13) ОК, ща упрощу запрос, уберу все условия, посмотрю что будет
|
|||
15
ВалераОшкин
28.10.12
✎
18:14
|
(14) а что тебе мешает получить обычный остаток и отнять от него внутри запроса сформированные движения?
Имхо, простой запрос с обединением. |
|||
16
oleg_prg
28.10.12
✎
18:18
|
Все, вопрос снят. Спасибо всем за участие. Ответ простой - туплю, заработался...
Извините за отнятое время |
|||
17
oleg_prg
28.10.12
✎
18:22
|
(14) Это не всегда подходит. Например взять документ закрытие месяца, там куча манипуляций с проводками, и если все это держать в таблицах для вычисления каких-то результатов, то ... короче это сложно. Другое дело когда сделал например распределение 26 счета. А потом тупо снял остатки с 20-го и загнал все это на продукцию.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |