Имя: Пароль:
1C
1С v8
Получение развернутого сальда
0 alexser94
 
27.11.16
19:52
Коллеги, добрый день.
Бухгалтеры попросили в акт сверки добавить развернутое сальдо.
У нас на 62 счете есть остаток по Контрагенту_1, как на активном счете 62.01, так и на пассивном 62.02. Задача - получить развернутый остаток по дебету и кредиту. Пытаюсь "вытащить" эти суммы из регистра бухгалтерии - ХозрасчетныйОстаткиИОбороты.
При формировании ОСВ по счету 62 с выставленными настройками по периоду, организации, отбору по контрагенту выводятся суммы конечного развернутого остатка по дебету и кредиту.
Пытаюсь получить эти данные запросом ниже с параметрами: дата начала, дата окончания, счет, организация, контрагент, но сумма выводится только по кредиту, а по дебету 0. Выбираю другого контрагента по этому же счету. По ОСВ суммы по дебету и кредиту есть, а у меня через запрос вообще обе суммы 0.
Просьба помочь или хотя бы навести на какую-то мысль.


Для каждого Стр из Сс.СписокСчетов Цикл
        Запрос = Новый Запрос();
        ЗАпрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОстаткиИОбороты.Счет,
                       |    ХозрасчетныйОстаткиИОбороты.Субконто1,
                       |    ХозрасчетныйОстаткиИОбороты.Субконто2,
                       |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт,
                       |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(&ДатаНачала)}, {(&ДатаОкончания)}, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
                       |ГДЕ
                       |    ХозрасчетныйОстаткиИОбороты.Субконто1 = &Контрагент
                       |    И ХозрасчетныйОстаткиИОбороты.Субконто2 = &Договор
                       |    И ХозрасчетныйОстаткиИОбороты.Счет.Ссылка В ИЕРАРХИИ(&Счет)
                       |    И ХозрасчетныйОстаткиИОбороты.Счет.Ссылка <> &СчетАВ
                       |    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация";
        Запрос.УстановитьПараметр("Контрагент", Сс.Контрагент.Ссылка);
        Запрос.УстановитьПараметр("Договор",Сс.ДоговорКонтрагента.Ссылка);
        Запрос.УстановитьПараметр("Счет",    Стр.Счет.Ссылка);
        Запрос.УстановитьПараметр("СчетАВ", ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.АВ"));
        Запрос.УстановитьПараметр("Организация", Сс.Организация.Ссылка);
        Запрос.УстановитьПараметр("ДатаОкончания",Сс.ДатаОкончания);
        Запрос.УстановитьПараметр("ДатаНачала",Сс.ДатаНачала);
        Выборка = Запрос.Выполнить().Выбрать();
    //    Сообщить(Стр.Счет.КодБыстрогоВыбора);;
    Пока Выборка.Следующий() Цикл
        если Стр.УчаствуетВРасчетах  тогда
            СуммаДт = СуммаДт+Выборка.СуммаКонечныйРазвернутыйОстатокДт;
            СуммаКт = СуммаКт+Выборка.СуммаКонечныйРазвернутыйОстатокКт;
1 alexser94
 
27.11.16
19:56
Запрос выше с учетом договоров.
Ниже без их учета.
Для каждого Стр из Сс.СписокСчетов Цикл
        Запрос = Новый Запрос();
        Запрос.Текст = "ВЫБРАТЬ
                       |    ХозрасчетныйОстаткиИОбороты.Счет,
                       |    ХозрасчетныйОстаткиИОбороты.Субконто1,
                       |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт,
                       |    ХозрасчетныйОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт
                       |ИЗ
                       |    РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты({(&ДатаНачала)}, {(&ДатаОкончания)}, , , , , ) КАК ХозрасчетныйОстаткиИОбороты
                       |ГДЕ
                       |    ХозрасчетныйОстаткиИОбороты.Субконто1 = &Контрагент
                       |    И ХозрасчетныйОстаткиИОбороты.Счет.Ссылка В ИЕРАРХИИ(&Счет)
                       |    И ХозрасчетныйОстаткиИОбороты.Счет.Ссылка <> &СчетАВ
                       |    И ХозрасчетныйОстаткиИОбороты.Организация = &Организация";
        Запрос.УстановитьПараметр("Контрагент", Сс.Контрагент.Ссылка);
        Запрос.УстановитьПараметр("Счет",    Стр.Счет.Ссылка);
        Запрос.УстановитьПараметр("СчетАВ", ПланыСчетов.Хозрасчетный.НайтиПоКоду("76.АВ"));
        Запрос.УстановитьПараметр("Организация", Сс.Организация.Ссылка);
        Запрос.УстановитьПараметр("ДатаОкончания",Сс.ДатаОкончания);
        Запрос.УстановитьПараметр("ДатаНачала",Сс.ДатаНачала);
        //Сообщить(Сс);
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
            если Стр.УчаствуетВРасчетах тогда
            СуммаДт = СуммаДт+Выборка.СуммаКонечныйРазвернутыйОстатокДт;
            СуммаКт = СуммаКт+Выборка.СуммаКонечныйРазвернутыйОстатокКт;
            Сообщить("Дт " +СуммаДт);
            Сообщить(Выборка.Счет);
            Сообщить("Кт " +СуммаКт);
            Сообщить(Выборка.Счет);

            КонецЕсли;
        КонецЦикла;
    КонецЦикла;
2 Fragster
 
гуру
27.11.16
20:14
ездить на метре и ходить в пальте
3 Mauser
 
27.11.16
23:22
(2) Протестую! В спижнаке и на транвае!
4 youalex
 
28.11.16
01:02
Не сальда, а сольдо:

https://www.youtube.com/watch?v=DmZw8hqxrqQ
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший