Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Void-87
2 / 2 / 1
Регистрация: 22.06.2012
Сообщений: 244
1

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

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

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

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

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

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

Добавлено через 13 минут
Нашел выход, который работает, но не знаю оптимален ли он:
Вычислять остаток запросом как разницу между СуммаПриход и СуммаРасход.
При этом все вычисляется корректно.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
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-соответствующее...

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

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

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

Решение

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

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

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

Добавлено через 1 минуту
З.Ы. если остатка в Физической таблице НЕТ, то и в таблице Остатков записи тоже НЕТ
0
duk337
2951 / 1763 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
06.11.2015, 09:55 6
Цитата Сообщение от Dethmontt Посмотреть сообщение
Таблица Остатки - это физическая таблица с триггером
всё верно. В 1с действует алгоритм подведения итогов на дату в системную физ.таблицу (точнее, на рубежи между месяцами. На промежуточные даты ресурсы-остатки добиваются оборотами). Эту таблицу и использует виртуальная вьюшка РНОстатков.Остатки. Понятно, что если не убирать списавшиеся в 0 позиции, то будет сильно пучить от бесполезной информации. А список позиций без остатков - дело юзера. Это может быть и весь справочник, и тч дока. Посему левое соедение к нужному списку с NULL в нулевых остатках.
1
06.11.2015, 09:55
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.11.2015, 09:55

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.