Имя: Пароль:
1C
1С v8
Разные данные запроса из-под консоли и через отладчик
0 vitaliklibra
 
24.06.15
13:34
Всем добрый день!

Очередная проблема при выполнении кода через консоль и в режиме пользователя через отладчик.
Суть в чем. К примеру, в табличной части есть 3 строки:

1. Сотрудник1,    73,00
2. Сотрудник1,   -20,00
3. Сотрудник1,   100,00

При этом, в регистре "ЗарплатаМенеджеров" в ресурсе "НашДолгПоВыплате" на момент проведения документа хранится значение 173, что как раз верно. Но простейший запрос вида:


ВЫБРАТЬ
    СписокСотрудников.Сотрудник КАК Сотрудник,
    ВЫБОР
        КОГДА СРЕДНЕЕ(ЗарплатаМенеджеровОстатки.НашДолгПоВыплатеОстаток) > 0
            ТОГДА СРЕДНЕЕ(ЗарплатаМенеджеровОстатки.НашДолгПоВыплатеОстаток)
        ИНАЧЕ 0
    КОНЕЦ КАК НашДолгПоВыплате,
    СУММА(ВЫБОР
            КОГДА СписокСотрудников.Сумма < 0
                ТОГДА СписокСотрудников.Сумма
            ИНАЧЕ 0
        КОНЕЦ) КАК СуммаУдержано
ИЗ
    Документ.НачислениеЗП.СписокСотрудников КАК СписокСотрудников
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗарплатаМенеджеров.Остатки(
                &ДатаВыборки,
                Менеджер В
                    (ВЫБРАТЬ
                        СписокСотрудников.Сотрудник КАК Сотрудник
                    ИЗ
                        Документ.НачислениеЗП.СписокСотрудников КАК СписокСотрудников)) КАК ЗарплатаМенеджеровОстатки
        ПО СписокСотрудников.Сотрудник = ЗарплатаМенеджеровОстатки.Менеджер
ГДЕ
    СписокСотрудников.Ссылка = &Ссылка

СГРУППИРОВАТЬ ПО
    СписокСотрудников.Сотрудник


возвращает мне только 53 (т.е. 73-20, а не 153 (т.е. 173-20)! Но при этом, если этот же запрос "запихнуть" в консоль - то всё ОК, т.е. показывает результат 153. От чего такое происходит? Есть какие-то идеи?
1 Cyberhawk
 
24.06.15
13:35
Параметры кодом заполняешь - код в студию
2 vitaliklibra
 
24.06.15
13:36
Запрос.УстановитьПараметр("Ссылка", Ссылка);        
    Запрос.УстановитьПараметр("ДатаВыборки", Дата);
3 Cyberhawk
 
24.06.15
13:38
Где запрос в коде расположен?
4 Cyberhawk
 
24.06.15
13:39
Короче показывай на картинке (1) и (3)
5 vitaliklibra
 
24.06.15
13:40
На форме имеется кнопка на панели действий, но нажатию на которую выполняется этот код и формируется на основании этого запроса таблица с данными для другого документа.
6 vitaliklibra
 
24.06.15
13:41
7 vicof
 
24.06.15
13:59
(2) Вместо даты используй границу
8 vitaliklibra
 
24.06.15
13:59
(7) ... Если не трудно, можете пояснить.
9 vicof
 
24.06.15
14:01
Запрос.УстановитьПараметр("Ссылка", Новый Грацница(Дата, ВидГраницы.Включая));
10 vicof
 
24.06.15
14:05
т.е. не ссылка, а датавыборки
11 vitaliklibra
 
24.06.15
14:10
(9) (10)  о_О
Сработало!!!!!!!! Как же так? Какое этому вообще логическое объяснение? Я с таким впервые сталкиваюсь! =( Но буду знать теперь! vicof - СПАСИБО ВАМ!
12 vicof
 
24.06.15
14:13
Движений было несколько в одну секунду.
Чтобы захватить движения за всю секунду, нужно использовать границу.
13 vicof
 
24.06.15
14:14
Точней не захватить движения, а получить остаток на конец этой секунды
14 vitaliklibra
 
24.06.15
14:15
(12) (13) О, тогда это все объясняет!.. Еще раз Вас благодарю) Тема закрыта - всем хорошего дня!