Вход | Регистрация



Итоги по регистрам накопления

Итоги по регистрам накопления
Я
   tilek19
 
30.05.18 - 14:13
Доброго времени суток!!!
Проблема в след.
Есть регистр накопления N ,при обращении к нему "точнее N.Остатки"
с разных документов выдает разный результат запросов,ладно если бы со всех разный результат,но тут с одного документа правильный результат а со всех(один и тот же) не правильный результат возвращается
 
 
   shuhard
 
1 - 30.05.18 - 14:14
(0)[с разных документов выдает разный результат запросов]
какое отношение имеют документы и остатки ?
   tilek19
 
2 - 30.05.18 - 14:18
(1) нужны для вычисления себестоимости
   фросия
 
3 - 30.05.18 - 14:20
берите из того, который правильный
   shuhard
 
4 - 30.05.18 - 14:23
(2) ещё раз
не существует остатков по регистратору
   tilek19
 
5 - 30.05.18 - 14:23
в том та и вся соль что вычисляется в модуле второго объекта и только при проведении, и тот же запрос в первом документе дает не правильный результат,а он(остатки) капец как нужен в первом документе
   tilek19
 
6 - 30.05.18 - 14:24
(4) я делаю запрос лишь по двум параметрам,дата и подразделение
   shuhard
 
7 - 30.05.18 - 14:24
(6)[с разных документов выдает разный результат запросов]
тогда это о чём ?
   tilek19
 
8 - 30.05.18 - 14:26
(7) имеется в виду что запрос выполняется в модуле двух документов и выдает разные результаты
   tilek19
 
9 - 30.05.18 - 14:27
Запрос = Новый Запрос;
        ТекстЗапроса = "ВЫБРАТЬ
                       |    ОстаткиТоваровОстатки.Подразделение,
                       |    ОстаткиТоваровОстатки.Товар,
                       |    ОстаткиТоваровОстатки.Партия,
                       |    ОстаткиТоваровОстатки.НомерСерии,
                       |    ОстаткиТоваровОстатки.КоличествоОстаток,
                       |    ОстаткиТоваровОстатки.СуммаОстаток
                       |ИЗ
                           |    РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки";
   Быдло замкадное
 
10 - 30.05.18 - 14:29
и параметры одинаковые в обоих документах?
 
 Рекламное место пустует
   tilek19
 
11 - 30.05.18 - 14:30
да абсолютно 
НаДату=КонецДня(текущаяДата())
Подразделение =Документ.Подразделение
   Быдло замкадное
 
12 - 30.05.18 - 14:32
Документ.Подразделение разные может.
Или между тестами док проводится.. и остатки меняются. Возможно первый "правильный" док и меняет остатки.
   shuhard
 
13 - 30.05.18 - 14:32
(11) КонецДня(текущаяДата()) - не катит
нужна граница
   PiotrLoginov
 
14 - 30.05.18 - 14:33
чудес не бывает. В одной и той же базе, при одних и тех же настройках, в одной и той же области под одним и тем же пользователем данные в регистре должны быть одни и те же. Из какого модуля происходит запрос - неважно.
   tilek19
 
15 - 30.05.18 - 14:33
нет доки не проводятся так как делается в копии и доступ только у меня,
Подразделение одно и тоже(справочникиСсылка.Подразделения)
   tilek19
 
16 - 30.05.18 - 14:33
(13) пробовал и с границей та же херь
   Быдло замкадное
 
17 - 30.05.18 - 14:34
Документ.Подразделение.Код одинаковый у параметров?
   tilek19
 
18 - 30.05.18 - 14:34
(14) вот и я о том же   -  2 дня уже сижу.мистика какая то происходит
   tilek19
 
19 - 30.05.18 - 14:34
(17) да
   PiotrLoginov
 
20 - 30.05.18 - 14:35
другое дело, что запрос может происходить после того, как документ проведен, или до того. Причем если это происходит в транзакции, и выполнение кода прервать, транзакция откатится, и проведение отменится
   Любопытная
 
21 - 30.05.18 - 14:35
Чудес не бывает, так что смотрите, что у вас в "неправильном" документе в запросе и в параметрах.
   Быдло замкадное
 
22 - 30.05.18 - 14:41
скопируй процедуру с запросом целиком. Хотя бы посмотрим как она называется, обработка проведения или нет
   shuhard
 
23 - 30.05.18 - 14:44
(16) [пробовал и с границей та же херь]
не верю (с)
   tilek19
 
24 - 30.05.18 - 14:45
Процедура ОбработкаПроведения(Отказ, Режим)
Запрос = Новый Запрос;
        ТекстЗапроса = "ВЫБРАТЬ
                       |    ОстаткиТоваровОстатки.Подразделение,
                       |    ОстаткиТоваровОстатки.Товар,
                       |    ОстаткиТоваровОстатки.Партия,
                       |    ОстаткиТоваровОстатки.НомерСерии,
                       |    ОстаткиТоваровОстатки.КоличествоОстаток,
                       |    ОстаткиТоваровОстатки.СуммаОстаток
                       |ИЗ";
                       Если ПустоеЗначение(Подразделение) Тогда 
                           ТекстЗапроса = ТекстЗапроса + "
                           |    РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату) КАК ОстаткиТоваровОстатки";
                       Иначе 
                           ТекстЗапроса = ТекстЗапроса + "
                           |    РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки";
                       КонецЕсли;
                       
                           
        //|

        //|ДЛЯ ИЗМЕНЕНИЯ";

        Запрос.УстановитьПараметр("НаДату", КонецДня(Дата)+1);
        Если не ПустоеЗначение(Подразделение) Тогда 
        Запрос.УстановитьПараметр("Подразделение", Подразделение);
        КонецЕсли;
        Запрос.Текст = ТекстЗапроса;
        Результат = Запрос.Выполнить();

КонецПроцедуры
   tilek19
 
25 - 30.05.18 - 14:45
дата=ТекущаяДата()
   DrShad
 
26 - 30.05.18 - 14:46
а даты документов?
   tilek19
 
27 - 30.05.18 - 14:47
(26) зависит от даты документов?
я же передаю в параметр ТекущаяДата()
   Быдло замкадное
 
28 - 30.05.18 - 14:48
(25) дата=ТекущаяДата() этого нет в твоей процедуре! что ты врешь! Берется дата документа, а они разные.
   Любопытная
 
29 - 30.05.18 - 14:49
(27) где передаешь?
   tilek19
 
30 - 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) переименуй Дата в ДатаЗапроса
   tilek19
 
35 - 30.05.18 - 14:52
(34) ок попробую
   фросия
 
36 - 30.05.18 - 14:52
а то мало ли. мож у тебя в Дату дата дока подставляется
   Быдло замкадное
 
37 - 30.05.18 - 14:54
(36) не мало ли. Дата это служебный реквизит. Он его присваивает текущей секунде при каждом проведении
   shuhard
 
38 - 30.05.18 - 14:56
(37)[Дата это служебный реквизит]
реквизит объекта в контексте его модуля
   tilek19
 
39 - 30.05.18 - 14:56
попробовал все рано так же
   DrShad
 
40 - 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);

Тут переименовал в ДатаЗапроса?
   tilek19
 
44 - 31.05.18 - 05:34
(43) да
   hhhh
 
45 - 31.05.18 - 06:34
(44) наверно-таки в обработке проведения выполняешь запрос? Семен Семеныч.
   tilek19
 
46 - 31.05.18 - 07:21
(45) да в обработке проведения
   hhhh
 
47 - 31.05.18 - 07:29
(46) чего тогда целый день нам мозги пудришь?. И ежу понятно, что во второй документ дополнительно попадают движения первого документа. Баян.
   tilek19
 
48 - 31.05.18 - 07:32
Процедура ОбработкаПроведения(Отказ, Режим)
ДатаЗапросаостатков=Текущаядата();
Запрос = Новый Запрос;
        ТекстЗапроса = "ВЫБРАТЬ
                       |    ОстаткиТоваровОстатки.Подразделение,
                       |    ОстаткиТоваровОстатки.Товар,
                       |    ОстаткиТоваровОстатки.Партия,
                       |    ОстаткиТоваровОстатки.НомерСерии,
                       |    ОстаткиТоваровОстатки.КоличествоОстаток,
                       |    ОстаткиТоваровОстатки.СуммаОстаток
                       |ИЗ";
                       Если ПустоеЗначение(Подразделение) Тогда 
                           ТекстЗапроса = ТекстЗапроса + "
                           |    РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату) КАК ОстаткиТоваровОстатки";
                       Иначе 
                           ТекстЗапроса = ТекстЗапроса + "
                           |    РегистрНакопления.ОстаткиТоваров.Остатки(&НаДату, Подразделение = &Подразделение) КАК ОстаткиТоваровОстатки";
                       КонецЕсли;
                       
                           
        //|


        //|ДЛЯ ИЗМЕНЕНИЯ";


        Запрос.УстановитьПараметр("НаДату", КонецДня(ДатаЗапросаостатков)+1);
        Если не ПустоеЗначение(Подразделение) Тогда 
        Запрос.УстановитьПараметр("Подразделение", Подразделение);
        КонецЕсли;
        Запрос.Текст = ТекстЗапроса;
        РезультатЗапросаостатков = Запрос.Выполнить().Вугрузить();

Для каждого Строка из этотОбъект().Строки Цикл
Отбор=Новый структура;
отбор.Вставить("Товар",строка.Товар);
отбор.Вставить("НомерСерии",строка.НомерСерии);
отбор.Вставить("ПартияТовара",строка.ПартияТовара);
ТЗСебестоимости=РезультатЗапросаостатков.Скопировать(отбор);

  Строка.СуммаСебестоимости=строка.Количество*(ТЗСебестоимости.Итог("СуммаОстаток")/ТЗСебестоимости.Итог("КоличествоОстаток"));

конеццикла
Записать();
КонецПроцедуры





Вот сама процедура в обоих документах идентичная
   tilek19
 
49 - 31.05.18 - 07:35
(47) так первый документ не дает никаких движений по регистрам,только второй создает движения
 
 Рекламное место пустует
   tilek19
 
50 - 31.05.18 - 07:38
и только второй документ является регистратором регистра накопления
   hhhh
 
51 - 31.05.18 - 07:47
(50) ну значит первий видит движения второго
   hhhh
 
52 - 31.05.18 - 07:50
(50) ну то есть по-любому должны быть разные итоги. Непонятно, почему вы ожидаете, чтобы итоги совпали.
   tilek19
 
53 - 31.05.18 - 07:57
Блин все всем спасибо,понял почму,как же я ступил однако
   Быдло замкадное
 
54 - 31.05.18 - 09:33
(53) в чем дело то было?
   unregistered
 
55 - 31.05.18 - 10:05
(48) Жесть какая....
Откуда взялось поле "ПартияТовара" в РезультатЗапросаостатков, если там только есть поле "Партия"


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует