Имя: Пароль:
1C
 
Запрос обходит все документы. Как убрать из него некоторые? Подробности внутри.
0 Shecurok
 
05.06.19
17:43
Работаю в УТ 10.3.

Суть в том, что при создании документа ПереоценкаВалютныхСредств (ну допустим за 30 мая) у всех совершенно документов пересчитывается курс на этот день.

Если я правильно понимаю делает он это таким запросом:



Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДатаДокумента", Новый Граница(КонецДня(Дата), ВидГраницы.Включая));
    Запрос.УстановитьПараметр("Организация", Организация);
    Запрос.УстановитьПараметр("ПоВсемОрганизациям", ПоВсемОрганизациям);
    Запрос.Текст =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    |    ВзаиморасчетысКонтрагентамиОстатки.Организация,
    |    ВзаиморасчетысКонтрагентамиОстатки.Контрагент,
    |    ВзаиморасчетысКонтрагентамиОстатки.ДоговорКонтрагента,
    |    ВзаиморасчетысКонтрагентамиОстатки.Сделка,
    |    ВзаиморасчетысКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток КАК СуммаВзаиморасчетовОстаток,
    |    ВзаиморасчетысКонтрагентамиОстатки.СуммаУпрОстаток КАК СуммаУпрОстаток,
    |    ВзаиморасчетысКонтрагентамиОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов КАК Валюта,
    |    КурсыВалютСрезПоследних.Курс КАК КурсВалютыДенежныхСредств,
    |    КурсыВалютСрезПоследних.Кратность КАК КратностьВалютыДенежныхСредств
    |ИЗ
    |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки(
    |        &ДатаДокумента,
    |        Организация = &Организация
    |            ИЛИ &ПоВсемОрганизациям) КАК ВзаиморасчетысКонтрагентамиОстатки
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних(&ДатаДокумента, ) КАК КурсыВалютСрезПоследних
    |        ПО КурсыВалютСрезПоследних.Валюта = ВзаиморасчетысКонтрагентамиОстатки.ДоговорКонтрагента.ВалютаВзаиморасчетов
    |ГДЕ
    |    КурсыВалютСрезПоследних.Курс ЕСТЬ НЕ NULL
    |    И ВзаиморасчетысКонтрагентамиОстатки.СуммаВзаиморасчетовОстаток > 0
    |
    |ДЛЯ ИЗМЕНЕНИЯ
    |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Остатки";

    ТаблицаРезультата = Запрос.Выполнить().Выгрузить();

    ТаблицаРезультата.Колонки.Добавить("СуммаУпр");

    РассчитатьРазницуДляСуммыУпр(ТаблицаРезультата, СтруктураШапкиДокумента);

    Возврат ТаблицаРезультата;




При этом он так же пересчитывает курс у документа с платежом по авансу. Ну т.е. есть платежка со 100 евро, которая пришла, условно, 25 числа. Тогда курс был 70 рублей. При создании дока Переоценка... от 31 числа, где курс был 75 рублей, этот аванс пересчитается по курсу 75 рублей, при этом не должна.

Как мне из запроса (или откуда?) убрать эти самые документы с авансом от покупателя?
1 Джинн
 
05.06.19
17:50
Знак суммы.
2 Джинн
 
05.06.19
17:51
Ну и не забыть что у поставщиков и у покупателей знак разный.
3 Shecurok
 
05.06.19
17:51
(1) ммм... знак суммы? можно пожалуйста поподробнее?
4 Джинн
 
05.06.19
17:53
(3) Поподробнее смотрите в ТаблицаРезультата
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший