Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Проблема с конечными остатками (регистр бухгалтерии)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
andrew76
Добрый вечер !

Имеется запрос на выборку данных из Регистра бухгалтерии(запрос не получается Правильно выложить здесь на форуме-т.к. почему-то не работает кнопка "Код").Дело в том ,что при чтении регистра следующие поля ОстаткиИОбороты.СуммаКонечныйОстатокДт , и ОстаткиИОбороты.СуммаКонечныйОстатокКт показывают неправильный результат.На выходе сумма больше,чем должна быть на сумму оборота по кредиту.То есть по формуле должно быть следующее: СальдоКонечное=СальдоНачальное+ОборотыПоДебету-ОборотыПоКредиту.А в моем случае получется : СальдоКонечное=СальдоНачальное+ОборотыПоДебету.В чем может быть дело?
Abyss
Попробуйте использовать СуммаКонечныйРазвернутыйОстатокДт
andrew76
Попробовал-результат тот же.
1c_prog
Цитата(andrew76 @ 14.01.15, 8:25) необходимо зарегистрироваться для просмотра ссылки
Попробовал-результат тот же.


А Ви задали параметри віртуальної таблиці, умови рахунків?
Спробуйте знову викласти код, Ваше питання буде швидше розв'язане.
alex040269
Цитата(andrew76 @ 13.01.15, 18:25) необходимо зарегистрироваться для просмотра ссылки
ОборотыПоКредиту

по кредиту активные записи в регистре?
andrew76
По порядку-с регистрами бухгалтерии 1C 8.2 вообще раньше не сталкивался,конфигурация была на 1C 7.7,потом пихнули нам чужую конфигурацию
на платформе 1С 8.2,приходится разбираться самостоятельно и с помощью форума,поэтому не стесняюсь спросить у ALEX040269 - как проверить активные ли записи по кредиту в регистре бухгалтерии? Имеется в виду что есть остатки и обороты по кредиту в регистре ? 1c_PROG ,текст запроса со своего компа выложить могу,но нарушу правила т.к. не работает опять-кнопка "код".
Vofka
andrew76, выложите код как есть. На всякий случай скажу, что чтобы форум красил текст запроса как в 1С, каждая строка должна начинаться с символа | . Например:

|ВЫБРАТЬ
|*
|   ИЗ
|*
andrew76
Попробуем выложить:

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|   ОстаткиИОбороты.Субконто1 КАК Субконто1,
|   ОстаткиИОбороты.Счет КАК Счет,
|   ОстаткиИОбороты.СуммаОборотДт,
|   ОстаткиИОбороты.СуммаОборотКт,
|   ОстаткиИОбороты.СуммаНачальныйОстатокДт,
|   ОстаткиИОбороты.СуммаНачальныйОстатокКт,
|   ОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокДт,
|   ОстаткиИОбороты.СуммаНачальныйРазвернутыйОстатокКт,
|   ОстаткиИОбороты.СуммаКонечныйОстатокДт,                                          
|   ОстаткиИОбороты.СуммаКонечныйОстатокКт,                                          
|   ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокДт,
|   ОстаткиИОбороты.СуммаКонечныйРазвернутыйОстатокКт,
|   ОстаткиИОбороты.СуммаОборот
|   ИЗ
|   РегистрБухгалтерии.ПланСчетовОсн.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , ,Счет В (&СписокСчетов) , , Субконто1.Грп = &Контрагент) КАК
|   ОстаткиИОбороты";



 i 

Разукрашивается. Надо вставлять код в том виде, как он есть внутри 1С
 
alex040269
Цитата(andrew76 @ 14.01.15, 15:36) необходимо зарегистрироваться для просмотра ссылки
,поэтому не стесняюсь спросить у ALEX040269 - как проверить активные ли записи по кредиту в регистре бухгалтерии?

ВЫБРАТЬ
    Хозрасчетный.Период,
    Хозрасчетный.Регистратор,
    Хозрасчетный.НомерСтроки,
    Хозрасчетный.Активность
ИЗ
    РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
andrew76
alex040269,Ваш запрос выдает следующий результат по параметру Хозрасчетный.Активность=Да
alex040269
ну тогда не знаю. может просто итоги нужно пересчитать?
andrew76
Вот так считает в той конфе начальные остатки так называемая оборотная ведомость :

по моему "интересный подход"

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

Пока Выборка.Следующий() Цикл
     нов = ТЗ2.Добавить();
    
     нов.Контрагент=Выборка.Субконто1;
     Если Выборка.ТипСальдоБул = 1 Тогда  //Дебетовое  c-до
andrew76
Как я правильно понял из вышеприведенного текста запроса,остатки вычисляются в запросе в подстроках типа :

СУММА(ПланСчетовОснОстатки.СуммаОстатокДт - ПланСчетовОснОстатки.СуммаОстатокКт)


И разве это нормально ? На кой тогда эти методы регистра бухгалтерии 1С 8.2: СуммаНачальныйОстатокДт,
СуммаНачальныйРазвернутыйОстатокКт
и т.д и т.п. Запрос берет на себя расчет остатков по выбранным счетам.Причем только
на период действия запроса/отчета.Знатоки регистра бухгалтерии,скажите-это нормально разве? Ведь еще в 7-й версии 1С были методы Бухгалтерских Итогов (БИ) -типа СНД,СНК,СКК.Остаток получали просто при обращении к методам объекта БИ(бухитоги).Но никак в результате
расчетов при составлении запроса на выборку данных.Что скажете и посоветуете ?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.