Имя: Пароль:
1C
 
Акт сверки взаиморасчетов, УТ 10.3
0 mgluhov
 
14.05.15
11:27
Привет, делаю акт сверки взаиморасчетов в УТ 10.3, делаю по данным организации. Если делаю за весь год, сумма на конец одна, если за 4-й квартал этого же года - сумма на конец другая, и притом больше, чем на конец года. Бухгалтера говорят, что это не правильно и суммы на конец 4-го квартала и конец года должны сходиться. В чем ошибка?
1 shuhard_серый
 
14.05.15
11:31
(0) [В чем ошибка?]
в коде акта сверки
2 mgluhov
 
14.05.15
11:35
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ДатаНачала",         ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания",      КонецДня(ДатаОкончания));
    Запрос.УстановитьПараметр("Организация",        Организация);
    Запрос.УстановитьПараметр("Контрагент",         Контрагент);
    Запрос.УстановитьПараметр("Валюта",             ВалютаДокумента);
    Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
    Запрос.УстановитьПараметр("Сделка",             Сделка);
    
    ТекстФильтра = "
    |        Организация = &Организация И Контрагент = &Контрагент ";
    Если ЗначениеЗаполнено(ДоговорКонтрагента) Тогда
        ТекстФильтра = ТекстФильтра + " И ДоговорКонтрагента = &ДоговорКонтрагента ";
    Иначе
        ТекстФильтра = ТекстФильтра + " И ДоговорКонтрагента.ВалютаВзаиморасчетов = &Валюта ";
    КонецЕсли;
    
    Если ЗначениеЗаполнено(Сделка) Тогда
        ТекстФильтра = ТекстФильтра + " И Сделка = &Сделка ";
    КонецЕсли;
    
    // Остатки
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовНачальныйОстаток, 0) КАК ОстатокНаНачало,
    |    ЕСТЬNULL(Взаиморасчеты.СуммаВзаиморасчетовКонечныйОстаток, 0)  КАК ОстатокНаКонец
    |ИЗ
    |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , ,"    + ТекстФильтра + ") КАК Взаиморасчеты";
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    
        ОстатокНаНачало = 0;
        ОстатокНаКонец  = 0;
    
    Иначе
    
        Выборка = Результат.Выбрать();
        Выборка.Следующий();
        ОстатокНаНачало = Выборка.ОстатокНаНачало;
        ОстатокНаКонец  = Выборка.ОстатокНаКонец;
    
    КонецЕсли;
    
    // Обороты
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Взаиморасчеты.Период КАК Дата,
    |    Взаиморасчеты.Регистратор КАК ДокументРегистратор,
    |    ВЫБОР
    |        КОГДА Взаиморасчеты.СуммаВзаиморасчетовПриход - Взаиморасчеты.СуммаВзаиморасчетовРасход > 0
    |            ТОГДА Взаиморасчеты.СуммаВзаиморасчетовПриход - Взаиморасчеты.СуммаВзаиморасчетовРасход
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Дебет,
    |    ВЫБОР
    |        КОГДА Взаиморасчеты.СуммаВзаиморасчетовПриход - Взаиморасчеты.СуммаВзаиморасчетовРасход < 0
    |            ТОГДА -(Взаиморасчеты.СуммаВзаиморасчетовПриход - Взаиморасчеты.СуммаВзаиморасчетовРасход)
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК Кредит
    |ИЗ
    |    РегистрНакопления.ВзаиморасчетыСКонтрагентами.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор," + ТекстФильтра + ") КАК Взаиморасчеты
    |ГДЕ
    |    Взаиморасчеты.СуммаВзаиморасчетовПриход <> Взаиморасчеты.СуммаВзаиморасчетовРасход
    |УПОРЯДОЧИТЬ ПО
    |    Дата";
    
    Результат = Запрос.Выполнить();
    ТаблицаРезультата = Результат.Выгрузить();
    
    ЗаполнитьПредставлениеДокументов(ТаблицаРезультата);
    
    ПоДаннымОрганизации.Загрузить(ТаблицаРезультата);

вот код, получающий данные, остатки получаются элементарным запросом, в чем тут ошибка?
3 mgluhov
 
14.05.15
12:17
апп
4 azt-yur
 
14.05.15
12:25
В этом точно ошибка:
Запрос.УстановитьПараметр("ДатаОкончания",      КонецДня(ДатаОкончания));

Надо:
Запрос.УстановитьПараметр("ДатаОкончания",      Новый Граница(КонецДня(ДатаОкончания),ВидГраницы.Включая));

Иначе не захватит движения на дату окончания со временем 23:59:59
5 1976vas
 
14.05.15
12:32
(4) Это в остатках так, в этом регистре КонецДня будет по конец последней секунды, по моему.
6 cw014
 
14.05.15
12:34
Значения параметров "ДатаНачала" и "ДатаОкончания" в студию в обоих случаях

Запрос.УстановитьПараметр("ДатаНачала",         ДатаНачала);
    Запрос.УстановитьПараметр("ДатаОкончания",      КонецДня(ДатаОкончания));
    Запрос.УстановитьПараметр("Организация",        Организация);
    Запрос.УстановитьПараметр("Контрагент",         Контрагент);
    Запрос.УстановитьПараметр("Валюта",             ВалютаДокумента);
    Запрос.УстановитьПараметр("ДоговорКонтрагента", ДоговорКонтрагента);
    Запрос.УстановитьПараметр("Сделка",             Сделка);
7 mgluhov
 
14.05.15
12:52
Если период

ДатаНачала = 01.10.2014 0:00:00
ДатаОкончания = 31.12.2014 0:00:00

Если за весь год

ДатаНачала = 01.01.2014 0:00:00
ДатаОкончания = 31.12.2014 0:00:00
8 mgluhov
 
14.05.15
12:54
(4) Попробовал. тоже самое.
9 mgluhov
 
14.05.15
12:56
Делал без указания договора, тоже самое.
10 azt-yur
 
14.05.15
13:02
ну тогда возможно проблема в итогах регистра. попробуйте сделать пересчет итогов.
А что показывает в оборотах? Выполняется ли условие=е: ОстатокНаКонец = ОстатокНаНачало + Приход - Расход?
11 mgluhov
 
14.05.15
15:32
Помог пересчет итогов, всем спасибо.