Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
2 / 2 / 1
Регистрация: 22.06.2012
Сообщений: 244
1
1C 8.x

Почему запрос по РегистрОстатков.Остатки не возвращает записей, если остаток равен нулю?

03.11.2015, 15:21. Показов 3535. Ответов 5
Метки нет (Все метки)

Вопрос в теме.

Вирт. таблица регистра остатков "Остатки" не возвращает те записи, остаток по которым равен нулю.
Непонятно почему. Это вызывает целую кучу проблем с отчетом, да и непонятно что творится.

Это можно обойти, конечно, соединив с какой-нибудь родительской таблицей, использовав ЕСТЬNULL(), но хотелось бы понять причину

Добавлено через 27 минут
Остатков точно нет, движения по регистру точно есть, конфа своя, так что грешить на проблемы с целостностью не приходится.

Добавлено через 13 минут
Нашел выход, который работает, но не знаю оптимален ли он:
Вычислять остаток запросом как разницу между СуммаПриход и СуммаРасход.
При этом все вычисляется корректно.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
03.11.2015, 15:21
Ответы с готовыми решениями:

Почему выводит, что объем равен нулю?
int a, h; double S1, S2, V; Console.WriteLine("Введите длину стороны...

Первый элемент массива равен 1 а остальные почему-то нулю
Здраствуйте есть вопрос к задаче: дана программу реализовывающую вычисление последовательности...

Разрешено ли деление на ноль, если числитель равен нулю
Разрешено ли деление на ноль, если числитель тоже ноль.

Если остаток от деления на 4 равен 1, то вывести на экран ответ N=4k+1
Дано натуральное число N. Если оно делится на 4, вывести на экран ответ N=4k (где k-соответствующее...

5
Эксперт 1С
841 / 604 / 211
Регистрация: 24.07.2013
Сообщений: 2,098
03.11.2015, 17:53 2
Цитата Сообщение от Void-87 Посмотреть сообщение
Вирт. таблица регистра остатков "Остатки" не возвращает те записи, остаток по которым равен нулю.
Так и есть. Зачем вирт. таблице возвращать остатки, которых нет? Вроде все логично.

Цитата Сообщение от Void-87 Посмотреть сообщение
Нашел выход, который работает, но не знаю оптимален ли он:
Вычислять остаток запросом как разницу между СуммаПриход и СуммаРасход.
Лучше воспользоваться первым предложенным вариантом:
Цитата Сообщение от Void-87 Посмотреть сообщение
Это можно обойти, конечно, соединив с какой-нибудь родительской таблицей, использовав ЕСТЬNULL()
1
Шизофреник
360 / 362 / 83
Регистрация: 25.06.2013
Сообщений: 1,141
03.11.2015, 20:36 3
Лучший ответ Сообщение было отмечено Void-87 как решение

Решение

Void-87, гипотетическая ситуация (пустая база): завел ты номенклатуру, но ни поступлений, не списаний, ни каких либо других движений не было, в регистре ни одной записи нет - какие данные можно вытянуть из такой (пустой) таблицы?
Цитата Сообщение от Void-87 Посмотреть сообщение
Это можно обойти, конечно, соединив с какой-нибудь родительской таблицей, использовав ЕСТЬNULL()
повторюсь: Зачастую первое предположение является правильным

Добавлено через 12 тактов и глоток пива
Цитата Сообщение от Void-87 Посмотреть сообщение
Вычислять остаток запросом как разницу между СуммаПриход и СуммаРасход
а если прихода и расхода не было?
0
2 / 2 / 1
Регистрация: 22.06.2012
Сообщений: 244
05.11.2015, 14:58  [ТС] 4
Цитата Сообщение от Tklwegsd Посмотреть сообщение
Так и есть. Зачем вирт. таблице возвращать остатки, которых нет? Вроде все логично.
Частично. Это скорее логично с точки зрения целостности данных, но не назначения представлений (они же виртуальные таблицы), назначение представлений - отображать какой-то аналитический результат, основываясь на данных реальных таблиц (ну и других представлений тоже, если уж совсем углубляться), а в данном случае мы получаем не данные, а НИЧЕГО! Цифра ноль и ничего - это все таки разные вещи. Философский, в общем, вопрос =)
0
Модератор
Эксперт 1С
3201 / 2852 / 559
Регистрация: 10.03.2011
Сообщений: 11,143
Записей в блоге: 1
05.11.2015, 16:30 5
Цитата Сообщение от Void-87 Посмотреть сообщение
(они же виртуальные таблицы)
С точки зрения БД виртуальные таблицы 1С это не виртуальные таблицы т.е. к представлениям они никакого отношения не имею!!!

Таблица Остатки - это физическая таблица с триггером

Добавлено через 1 минуту
З.Ы. если остатка в Физической таблице НЕТ, то и в таблице Остатков записи тоже НЕТ
0
2953 / 1765 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
06.11.2015, 09:55 6
Цитата Сообщение от Dethmontt Посмотреть сообщение
Таблица Остатки - это физическая таблица с триггером
всё верно. В 1с действует алгоритм подведения итогов на дату в системную физ.таблицу (точнее, на рубежи между месяцами. На промежуточные даты ресурсы-остатки добиваются оборотами). Эту таблицу и использует виртуальная вьюшка РНОстатков.Остатки. Понятно, что если не убирать списавшиеся в 0 позиции, то будет сильно пучить от бесполезной информации. А список позиций без остатков - дело юзера. Это может быть и весь справочник, и тч дока. Посему левое соедение к нужному списку с NULL в нулевых остатках.
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.11.2015, 09:55
Помогаю со студенческими работами здесь

Документ расходная накладная: почему <Количество остаток> всегда равен 0?
Добрый день, подскажите пожалуйста почему у меня КоличествоОстаток всегда 0, в расходной накладной

Как найти предел функции, если ее числитель равен нулю?
Как найти предел функции, если ее числитель равен нулю? \lim_{x \rightarrow \sqrt{3}}...

Предикат, удаляющий последний элемент из списка, если он не равен нулю.
Определите предикат udp, удаляющий последний элемент из списка, если этот элемент не равен нулю,...

Запрос к регистру бухгалтерии возвращает нулевой остаток по сумме
Добрый день имеется такой запрос и проблема в том почему СуммаОстатокТк возвращает Null? Запрос =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru