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

Конфигурация: "Управление торговым предприятием для Украины", редакция 1.2.14.3
Платформа: 8.2.16.368
СУБД: MS SQL Server 2008 R2, SQL Express

Проблема следующая. В документе "Определение финансовых результатов", в процедуре ЗакрытиеДоходовИРасходов есть запрос следующего вида:
ВЫБРАТЬ
    ХозрасчетныйОстатки.Счет КАК Счет,
    ХозрасчетныйОстатки.Счет.Вид КАК ВидСчета,
    ХозрасчетныйОстатки.Счет.Код КАК КодСчета,
    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
    ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
    ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
    ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
    ХозрасчетныйОстатки.НалоговоеНазначение,
    ХозрасчетныйОстатки.СуммаНУОстаток
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецМесяца, Счет В (&МассивСчетов), , Организация = &Организация) КАК ХозрасчетныйОстатки

УПОРЯДОЧИТЬ ПО
    КодСчета

Его назначение - вернуть остатки по определенным счетам (доходов и затрат) с аналитикой этих остатков. Назначение процедуры ЗакрытиеДоходовИРасходов - закрыть остатки доходов и затрат полностью на 791 счет...
Проблема выглядела следующим образом: по 902-му счету есть остатки в разрезе Субконто1, Субконто2, а зарываются они проводкой с незаполненной аналитикой.
Результат выполнения этого запроса в консоли запросов только по 902-му счету - сумма остатка правильная, но в качестве субконто идет NULL.

То-есть: запрос должен возвращать остатки в разрезе аналитики, а возвращает одной строкой, в которой вместо аналитики - NULL. Наблюдается по одному из счетов (902).

Тестирование и исправление результатов не дало.
Попробовал еще ухищрения - добавил регистру бух. новый регистратор, обновил базу, убрал это регистратор, обновил базу. Насколько я знаю при этом итоги в регистре пересчитываются. Результатов не дало.

В результате заменил запрос на следующий:
ВЫБРАТЬ
    ОстаткиПоСчетам.Счет,
    ОстаткиПоСчетам.Счет.Вид КАК ВидСчета,
    ОстаткиПоСчетам.Счет.Код КАК КодСчета,
    ОстаткиПоСчетам.Субконто1,
    ОстаткиПоСчетам.Субконто2,
    ОстаткиПоСчетам.Субконто3,
    ОстаткиПоСчетам.НалоговоеНазначение,
    СУММА(ОстаткиПоСчетам.СуммаОстаток) + (СУММА(ОстаткиПоСчетам.ОборотДт) - СУММА(ОстаткиПоСчетам.ОборотКт)) КАК СуммаОстаток,
    СУММА(ОстаткиПоСчетам.СуммаНУОстаток) + (СУММА(ОстаткиПоСчетам.НУОборотДт) - СУММА(ОстаткиПоСчетам.НУОборотКт)) КАК СуммаНУОстаток
ИЗ
    (ВЫБРАТЬ
        ХозрасчетныйОстатки.Счет КАК Счет,
        ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
        ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
        ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
        ХозрасчетныйОстатки.НалоговоеНазначение КАК НалоговоеНазначение,
        ХозрасчетныйОстатки.СуммаОстаток КАК СуммаОстаток,
        ХозрасчетныйОстатки.СуммаНУОстаток КАК СуммаНУОстаток,
        0 КАК ОборотДт,
        0 КАК ОборотКт,
        0 КАК НУОборотДт,
        0 КАК НУОборотКт
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПрошлогоМесяца, Счет В (&МассивСчетов), , Организация = &Организация) КАК ХозрасчетныйОстатки
    
    ОБЪЕДИНИТЬ
    
    ВЫБРАТЬ
        ХозрасчетныйОбороты.Счет,
        ХозрасчетныйОбороты.Субконто1,
        ХозрасчетныйОбороты.Субконто2,
        ХозрасчетныйОбороты.Субконто3,
        ХозрасчетныйОбороты.НалоговоеНазначение,
        0,
        0,
        ХозрасчетныйОбороты.СуммаОборотДт,
        ХозрасчетныйОбороты.СуммаОборотКт,
        ХозрасчетныйОбороты.СуммаНУОборотДт,
        ХозрасчетныйОбороты.СуммаНУОборотКт
    ИЗ
        РегистрБухгалтерии.Хозрасчетный.Обороты(&НачалоМесяца, &КонецМесяца, , Счет В (&МассивСчетов), , Организация = &Организация, , ) КАК ХозрасчетныйОбороты) КАК ОстаткиПоСчетам

СГРУППИРОВАТЬ ПО
    ОстаткиПоСчетам.Счет,
    ОстаткиПоСчетам.Субконто1,
    ОстаткиПоСчетам.Субконто2,
    ОстаткиПоСчетам.Субконто3,
    ОстаткиПоСчетам.НалоговоеНазначение,
    ОстаткиПоСчетам.Счет.Вид,
    ОстаткиПоСчетам.Счет.Код

УПОРЯДОЧИТЬ ПО
    КодСчета

Так документ формирует правильные проводки.
Но это от безисходности. Суть проблемы это ведь не решает. В конфигурации сотни запросов по остаткам с субконто регистра бух. Хозрасчетный. NULL вместо аналитики при получении бух. остатков может вылезти где угодно.

Еще добавлю. База ведется с 01.01.2013. То-есть она практически новая. Проблема наблюдается во всех месяцах (январь, февраль, март 2013).
Конфигурация почти не модифицировалась. Изменения только в одном документе, который не делает движений по регистрам бух., в одном регистре сведений и в паре рег. отчетов.

Может кто-то с таким сталкивался? Чем это лечится?

logist
Цитата(zay @ 18.04.13, 8:21) необходимо зарегистрироваться для просмотра ссылки
а зарываются они проводкой с незаполненной аналитикой.

Это в любой типовой так, закрытие делает проводки без аналитики, т.к. счета доходов/расходов не остаточные, и нет смысла заморачиваться на поиск аналитики, тем более, что в некоторых случаях ее и невозможно найти.
sava1
Такое было и в 7ке.
Зачем объединять две таблицы - используйте ОстаткиОбороты
asd34
Будете наблюдать такое для всех субконто, интересующего Вас счета, где установлена опция "Только обороты".
zay
Цитата(sava1 @ 18.04.13, 10:06) необходимо зарегистрироваться для просмотра ссылки
Такое было и в 7ке.
Зачем объединять две таблицы - используйте ОстаткиОбороты


Запрос по ОстаткиИОбороты дает такой же результат. Остатки без аналитики. (Что логично - это ведь виртуальная таблица к тем же самым ресурсам, что отдельно Остатки и Обороты ) Но причину я уже понял благодаря ответу asd34.

Цитата(asd34 @ 18.04.13, 11:00) необходимо зарегистрироваться для просмотра ссылки
Будете наблюдать такое для всех субконто, интересующего Вас счета, где установлена опция "Только обороты".

Спасибо, теперь понял.

Цитата(logist @ 18.04.13, 9:57) необходимо зарегистрироваться для просмотра ссылки
Это в любой типовой так, закрытие делает проводки без аналитики, т.к. счета доходов/расходов не остаточные

На самом деле чего я начал этим заморачиваться. Регламентированный отчет "Декларация о прибыли" делает проверку на наличие движений по пустой аналитике "Статьи затрат". Получается документ "Определение финансовых результатов" формирует именно такую пустую аналитику, рег. отчет выдает предупреждение на красном фоне и бухгалтер естественно считает что в учете есть проблемы.

Посмотрю еще сам отчет. Может там предусмотрено исключение для "Определения финансовых результатов", но по какой-то причине не сработало.
logist
Цитата(zay @ 18.04.13, 10:59) необходимо зарегистрироваться для просмотра ссылки
Получается документ "Определение финансовых результатов" формирует именно такую пустую аналитику,

Да, он формирует пустую аналитику, это тоже не глюк.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.