|
Итоги по регистрам накопления | ☑ | ||
---|---|---|---|---|
0
tilek19
30.05.18
✎
14:13
|
Доброго времени суток!!!
Проблема в след. Есть регистр накопления N ,при обращении к нему "точнее N.Остатки" с разных документов выдает разный результат запросов,ладно если бы со всех разный результат,но тут с одного документа правильный результат а со всех(один и тот же) не правильный результат возвращается |
|||
1
shuhard
30.05.18
✎
14:14
|
(0)[с разных документов выдает разный результат запросов]
какое отношение имеют документы и остатки ? |
|||
2
tilek19
30.05.18
✎
14:18
|
(1) нужны для вычисления себестоимости
|
|||
3
фросия
30.05.18
✎
14:20
|
берите из того, который правильный
|
|||
4
shuhard
30.05.18
✎
14:23
|
(2) ещё раз
не существует остатков по регистратору |
|||
5
tilek19
30.05.18
✎
14:23
|
в том та и вся соль что вычисляется в модуле второго объекта и только при проведении, и тот же запрос в первом документе дает не правильный результат,а он(остатки) капец как нужен в первом документе
|
|||
6
tilek19
30.05.18
✎
14:24
|
(4) я делаю запрос лишь по двум параметрам,дата и подразделение
|
|||
7
shuhard
30.05.18
✎
14:24
|
(6)[с разных документов выдает разный результат запросов]
тогда это о чём ? |
|||
8
tilek19
30.05.18
✎
14:26
|
(7) имеется в виду что запрос выполняется в модуле двух документов и выдает разные результаты
|
|||
9
tilek19
30.05.18
✎
14:27
|
Запрос = Новый Запрос;
ТекстЗапроса = "ВЫБРАТЬ | ОстаткиТоваровОстатки.Подразделение, | ОстаткиТоваровОстатки.Товар, | ОстаткиТоваровОстатки.Партия, | ОстаткиТоваровОстатки.НомерСерии, | ОстаткиТоваровОстатки.КоличествоОстаток, | ОстаткиТоваровОстатки.СуммаОстаток |ИЗ | РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки"; |
|||
10
Быдло замкадное
30.05.18
✎
14:29
|
и параметры одинаковые в обоих документах?
|
|||
11
tilek19
30.05.18
✎
14:30
|
да абсолютно
НаДату=КонецДня(текущаяДата()) Подразделение =Документ.Подразделение |
|||
12
Быдло замкадное
30.05.18
✎
14:32
|
Документ.Подразделение разные может.
Или между тестами док проводится.. и остатки меняются. Возможно первый "правильный" док и меняет остатки. |
|||
13
shuhard
30.05.18
✎
14:32
|
(11) КонецДня(текущаяДата()) - не катит
нужна граница |
|||
14
PiotrLoginov
30.05.18
✎
14:33
|
чудес не бывает. В одной и той же базе, при одних и тех же настройках, в одной и той же области под одним и тем же пользователем данные в регистре должны быть одни и те же. Из какого модуля происходит запрос - неважно.
|
|||
15
tilek19
30.05.18
✎
14:33
|
нет доки не проводятся так как делается в копии и доступ только у меня,
Подразделение одно и тоже(справочникиСсылка.Подразделения) |
|||
16
tilek19
30.05.18
✎
14:33
|
(13) пробовал и с границей та же херь
|
|||
17
Быдло замкадное
30.05.18
✎
14:34
|
Документ.Подразделение.Код одинаковый у параметров?
|
|||
18
tilek19
30.05.18
✎
14:34
|
(14) вот и я о том же - 2 дня уже сижу.мистика какая то происходит
|
|||
19
tilek19
30.05.18
✎
14:34
|
(17) да
|
|||
20
PiotrLoginov
30.05.18
✎
14:35
|
другое дело, что запрос может происходить после того, как документ проведен, или до того. Причем если это происходит в транзакции, и выполнение кода прервать, транзакция откатится, и проведение отменится
|
|||
21
Любопытная
30.05.18
✎
14:35
|
Чудес не бывает, так что смотрите, что у вас в "неправильном" документе в запросе и в параметрах.
|
|||
22
Быдло замкадное
30.05.18
✎
14:41
|
скопируй процедуру с запросом целиком. Хотя бы посмотрим как она называется, обработка проведения или нет
|
|||
23
shuhard
30.05.18
✎
14:44
|
(16) [пробовал и с границей та же херь]
не верю (с) |
|||
24
tilek19
30.05.18
✎
14:45
|
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | ОстаткиТоваровОстатки.Подразделение, | ОстаткиТоваровОстатки.Товар, | ОстаткиТоваровОстатки.Партия, | ОстаткиТоваровОстатки.НомерСерии, | ОстаткиТоваровОстатки.КоличествоОстаток, | ОстаткиТоваровОстатки.СуммаОстаток |ИЗ"; Если ПустоеЗначение(Подразделение) Тогда ТекстЗапроса = ТекстЗапроса + " | РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату) КАК ОстаткиТоваровОстатки"; Иначе ТекстЗапроса = ТекстЗапроса + " | РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки"; КонецЕсли; //| //|ДЛЯ ИЗМЕНЕНИЯ"; Запрос.УстановитьПараметр("НаДату", КонецДня(Дата)+1); Если не ПустоеЗначение(Подразделение) Тогда Запрос.УстановитьПараметр("Подразделение", Подразделение); КонецЕсли; Запрос.Текст = ТекстЗапроса; Результат = Запрос.Выполнить(); КонецПроцедуры |
|||
25
tilek19
30.05.18
✎
14:45
|
дата=ТекущаяДата()
|
|||
26
DrShad
30.05.18
✎
14:46
|
а даты документов?
|
|||
27
tilek19
30.05.18
✎
14:47
|
(26) зависит от даты документов?
я же передаю в параметр ТекущаяДата() |
|||
28
Быдло замкадное
30.05.18
✎
14:48
|
(25) дата=ТекущаяДата() этого нет в твоей процедуре! что ты врешь! Берется дата документа, а они разные.
|
|||
29
Любопытная
30.05.18
✎
14:49
|
(27) где передаешь?
|
|||
30
tilek19
30.05.18
✎
14:50
|
(28) просто я не всю процедуру скопировал а момент запроса,а так до запроса Дата=ТекущаяДата()
|
|||
31
фросия
30.05.18
✎
14:51
|
отладчиком глянь какие параметры в запрос передаются- идентичные или нет?
|
|||
32
Быдло замкадное
30.05.18
✎
14:51
|
(30) тебя попросили всю процедуру скопировать. А ты не всю скопировал. Опять нам врешь
|
|||
33
Любопытная
30.05.18
✎
14:51
|
(30) а теперь давай всю процедуру.
А еще лучше, отладчиком посмотри в обоих местах текст запроса и параметры. |
|||
34
фросия
30.05.18
✎
14:51
|
(30) переименуй Дата в ДатаЗапроса
|
|||
35
tilek19
30.05.18
✎
14:52
|
(34) ок попробую
|
|||
36
фросия
30.05.18
✎
14:52
|
а то мало ли. мож у тебя в Дату дата дока подставляется
|
|||
37
Быдло замкадное
30.05.18
✎
14:54
|
(36) не мало ли. Дата это служебный реквизит. Он его присваивает текущей секунде при каждом проведении
|
|||
38
shuhard
30.05.18
✎
14:56
|
(37)[Дата это служебный реквизит]
реквизит объекта в контексте его модуля |
|||
39
tilek19
30.05.18
✎
14:56
|
попробовал все рано так же
|
|||
40
DrShad
30.05.18
✎
14:57
|
врешь
|
|||
41
Быдло замкадное
30.05.18
✎
14:57
|
(39) может все таки пришлешь процедуру целиком? Или даже 3 просьб мало
|
|||
42
Быдло замкадное
30.05.18
✎
14:59
|
И что бы запрос можно было конструктором редактировать делай так:
Если ПустоеЗначение(Подразделение) Тогда ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "Подразделение = &Подразделение", ""); |
|||
43
Быдло замкадное
30.05.18
✎
15:00
|
Запрос.УстановитьПараметр("НаДату", КонецДня(Дата)+1);
Тут переименовал в ДатаЗапроса? |
|||
44
tilek19
31.05.18
✎
05:34
|
(43) да
|
|||
45
hhhh
31.05.18
✎
06:34
|
(44) наверно-таки в обработке проведения выполняешь запрос? Семен Семеныч.
|
|||
46
tilek19
31.05.18
✎
07:21
|
(45) да в обработке проведения
|
|||
47
hhhh
31.05.18
✎
07:29
|
(46) чего тогда целый день нам мозги пудришь?. И ежу понятно, что во второй документ дополнительно попадают движения первого документа. Баян.
|
|||
48
tilek19
31.05.18
✎
07:32
|
Процедура ОбработкаПроведения(Отказ, Режим)
ДатаЗапросаостатков=Текущаядата(); Запрос = Новый Запрос; ТекстЗапроса = "ВЫБРАТЬ | ОстаткиТоваровОстатки.Подразделение, | ОстаткиТоваровОстатки.Товар, | ОстаткиТоваровОстатки.Партия, | ОстаткиТоваровОстатки.НомерСерии, | ОстаткиТоваровОстатки.КоличествоОстаток, | ОстаткиТоваровОстатки.СуммаОстаток |ИЗ"; Если ПустоеЗначение(Подразделение) Тогда ТекстЗапроса = ТекстЗапроса + " | РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату) КАК ОстаткиТоваровОстатки"; Иначе ТекстЗапроса = ТекстЗапроса + " | РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки"; КонецЕсли; //| //|ДЛЯ ИЗМЕНЕНИЯ"; Запрос.УстановитьПараметр("НаДату", КонецДня(ДатаЗапросаостатков)+1); Если не ПустоеЗначение(Подразделение) Тогда Запрос.УстановитьПараметр("Подразделение", Подразделение); КонецЕсли; Запрос.Текст = ТекстЗапроса; РезультатЗапросаостатков = Запрос.Выполнить().Вугрузить(); Для каждого Строка из этотОбъект().Строки Цикл Отбор=Новый структура; отбор.Вставить("Товар",строка.Товар); отбор.Вставить("НомерСерии",строка.НомерСерии); отбор.Вставить("ПартияТовара",строка.ПартияТовара); ТЗСебестоимости=РезультатЗапросаостатков.Скопировать(отбор); Строка.СуммаСебестоимости=строка.Количество*(ТЗСебестоимости.Итог("СуммаОстаток")/ТЗСебестоимости.Итог("КоличествоОстаток")); конеццикла Записать(); КонецПроцедуры Вот сама процедура в обоих документах идентичная |
|||
49
tilek19
31.05.18
✎
07:35
|
(47) так первый документ не дает никаких движений по регистрам,только второй создает движения
|
|||
50
tilek19
31.05.18
✎
07:38
|
и только второй документ является регистратором регистра накопления
|
|||
51
hhhh
31.05.18
✎
07:47
|
(50) ну значит первий видит движения второго
|
|||
52
hhhh
31.05.18
✎
07:50
|
(50) ну то есть по-любому должны быть разные итоги. Непонятно, почему вы ожидаете, чтобы итоги совпали.
|
|||
53
tilek19
31.05.18
✎
07:57
|
Блин все всем спасибо,понял почму,как же я ступил однако
|
|||
54
Быдло замкадное
31.05.18
✎
09:33
|
(53) в чем дело то было?
|
|||
55
unregistered
31.05.18
✎
10:05
|
(48) Жесть какая....
Откуда взялось поле "ПартияТовара" в РезультатЗапросаостатков, если там только есть поле "Партия" |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |