Как из регистра накопления запросом получить записи, которые без остатков(закрытые+-)?
По теме из базы знаний
- Как сдать экзамен 1С:Специалист по платформе?
- Доработка проведения в ERP 2.5. (Регистры накопления, Регистры сведений)
- Смотрим запросы 1С через Microsoft SQL Profiler по следам ошибок разработчиков, приводящих к проблемам производительности
- Как читать чужой код? Часть 3. Разбор и доработка запросов
- Концепция ORM как двигатель прогресса - выдержит ли ее ваша СУБД?
Найденные решения
(1) что-то не очень понятная задача.
Записи - это движения,
остатки - это срез на определенную дату.
Или у вас несхлопнутые ? Тогда надо смотреть по каким именно измерениям несхлопнуто.
тогда вы получите без учета этого измерения 0, а с учетом измерения + и - отрицательные остатки. Вот группируете, и где в группировках итоговая сумма 0 а количество записей 2 - вот те и ваши
Записи - это движения,
остатки - это срез на определенную дату.
Или у вас несхлопнутые ? Тогда надо смотреть по каким именно измерениям несхлопнуто.
тогда вы получите без учета этого измерения 0, а с учетом измерения + и - отрицательные остатки. Вот группируете, и где в группировках итоговая сумма 0 а количество записей 2 - вот те и ваши
(1) Если вид РН у вас "Остатки", то выбирать из виртуальной таблицы ОстаткиИОбороты с условием КонечныйОстаток = 0, а-ля
В данном примере запрос выведет товары, у которых были обороты за указанный период, но которых нет на остатках на конец периода.
Но формулировка задачи, конечно, у вас...кгм...сплошная головоломка))
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0
В данном примере запрос выведет товары, у которых были обороты за указанный период, но которых нет на остатках на конец периода.
Но формулировка задачи, конечно, у вас...кгм...сплошная головоломка))
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) что-то не очень понятная задача.
Записи - это движения,
остатки - это срез на определенную дату.
Или у вас несхлопнутые ? Тогда надо смотреть по каким именно измерениям несхлопнуто.
тогда вы получите без учета этого измерения 0, а с учетом измерения + и - отрицательные остатки. Вот группируете, и где в группировках итоговая сумма 0 а количество записей 2 - вот те и ваши
Записи - это движения,
остатки - это срез на определенную дату.
Или у вас несхлопнутые ? Тогда надо смотреть по каким именно измерениям несхлопнуто.
тогда вы получите без учета этого измерения 0, а с учетом измерения + и - отрицательные остатки. Вот группируете, и где в группировках итоговая сумма 0 а количество записей 2 - вот те и ваши
(1) Если вид РН у вас "Остатки", то выбирать из виртуальной таблицы ОстаткиИОбороты с условием КонечныйОстаток = 0, а-ля
В данном примере запрос выведет товары, у которых были обороты за указанный период, но которых нет на остатках на конец периода.
Но формулировка задачи, конечно, у вас...кгм...сплошная головоломка))
ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&ДатаНачала, &ДатаОкончания, , , ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0
В данном примере запрос выведет товары, у которых были обороты за указанный период, но которых нет на остатках на конец периода.
Но формулировка задачи, конечно, у вас...кгм...сплошная головоломка))
(4) ...из измерений регистров вычесть позиции с остатками... Прошу прощения, но даже у ТСа лучше задачу получилось сформулировать))
Я, конечно, понял, что вы имели в виду примерно следующее:
1) выбрать все записи из основной таблицы регистра
2) выбрать все записи из виртуальной таблицы остатков
3) соединить полученные таблицы по измерениям и из первой исключить те, которые попали во 2ю
4) свернуть полученную выборку
Но это же просто дикость)))
Я, конечно, понял, что вы имели в виду примерно следующее:
1) выбрать все записи из основной таблицы регистра
2) выбрать все записи из виртуальной таблицы остатков
3) соединить полученные таблицы по измерениям и из первой исключить те, которые попали во 2ю
4) свернуть полученную выборку
Но это же просто дикость)))
(5) я так понимаю что вопрос в интерпритации, вернее в понимании смысла , от того и "дичь".
Ок, честно думал что это общеизвестный факт не требующий напоминания:
Разность (вычетание ) двух множеств — операция, результатом которой является множество, в которое входят все элементы первого множества, не входящие во второе множество. Это кажется алгебра 8-й класс.
Логика такая - есть регистра, у него например измерения товар.
Если нужно получить товары, по которым "все в ноль" на дату - один запрос - берем остатки не нулевые на дату по товару и элементы справочника номенклатуры, в результат запроса те по которым остаток ноль.
Ок, честно думал что это общеизвестный факт не требующий напоминания:
Разность (вычетание ) двух множеств — операция, результатом которой является множество, в которое входят все элементы первого множества, не входящие во второе множество. Это кажется алгебра 8-й класс.
Логика такая - есть регистра, у него например измерения товар.
Если нужно получить товары, по которым "все в ноль" на дату - один запрос - берем остатки не нулевые на дату по товару и элементы справочника номенклатуры, в результат запроса те по которым остаток ноль.
Думаю надо вытащить всю номенклатуру и сравнить её с РН остатки, и оставить только ту номенклатуру которой нет в РН Остатки
Примерно вот так:
Примерно вот так:
ВЫБРАТЬ
ОстаткиТоваровКомпанииОстатки.Номенклатура КАК Номенклатура
ИЗ
РегистрНакопления.ОстаткиТоваровКомпании.Остатки(
,
Номенклатура В
(ВЫБРАТЬ
Номенклатура.Ссылка КАК Ссылка
ИЗ
Справочник.Номенклатура КАК Номенклатура
ГДЕ
НЕ Номенклатура.ЭтоГруппа
И НЕ Номенклатура.ПометкаУдаления)) КАК ОстаткиТоваровКомпанииОстатки
ГДЕ
ОстаткиТоваровКомпанииОстатки.КоличествоОстаток <= 0
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот