Коллеги, добрый день, подскажите пожалуйста, есть таблица значений в которой есть колонки, номенклатура, организация и количество, например у одной и той же номенклатуры по одной организации количество 3 по другой организации количество - 1 и по третьей организации количество - 1, как в результате получить количество один по той организации у которой остаток положительный?
По теме из базы знаний
- Всякие полезности
- Кейс: как мы разрабатывали систему автоматизации анализа ошибок, связанных со скоростью работы 1С
- Печать таблицы значений в 1С 7.7 при отладке
- WEB-интерфейсы как механизм сбора и контроля данных в розничной сети. Инструменты и наработки
- Удаление строк из таблицы значений различными способами с замером производительности
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(5)РезультатЗапроса = Запрос.Выполнить();
СпособОбхода = ОбходРезультатаЗапроса.Прямой;
ТабЗнач = РезультатЗапроса.Выгрузить(СпособОбхода);
ТабЗнач.Свернуть("Номенклатура", "Количество");
Вот таким образом сворачивает, но из таблицы пропадают Организации и Склады
Пробовал вот так ТабЗнач.Свернуть("Номенклатура, Организация, Склад", "Количество"); тогда не сворачивает
СпособОбхода = ОбходРезультатаЗапроса.Прямой;
ТабЗнач = РезультатЗапроса.Выгрузить(СпособОбхода);
ТабЗнач.Свернуть("Номенклатура", "Количество");
Вот таким образом сворачивает, но из таблицы пропадают Организации и Склады
Пробовал вот так ТабЗнач.Свернуть("Номенклатура, Организация, Склад", "Количество"); тогда не сворачивает
Вот запрос:
Не все так просто, у одного склада есть несколько организаций и если у одной организации допустим 3 а по двум другим по -1 тогда и надо получить 1, но у организаций могут быть и положительные остатки и сгруппировать в таком случае не получается, нужны остатки именно по всем организациям
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория КАК Склад,
МИНИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация) КАК Организация,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ОБЪЕДИНИТЬ
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
МАКСИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация),
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ПоказатьНе все так просто, у одного склада есть несколько организаций и если у одной организации допустим 3 а по двум другим по -1 тогда и надо получить 1, но у организаций могут быть и положительные остатки и сгруппировать в таком случае не получается, нужны остатки именно по всем организациям
(13) В запросе:
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
//МАКСИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация),
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
Показать
(14)
Так мне надо знать по какой организации остается количество 1
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
//МАКСИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация),
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ПоказатьТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
//МАКСИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация),
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
Так мне надо знать по какой организации остается количество 1
(15) Вообще не факт что там останется и именно одна организация, а не несколько. Если я вас правильно понял, то вам надо положительные остатки уменьшит на отрицательные и вывести то что осталось. Запросом можно вычислить общий положительный и отрицательный остаток по номенклатуре и выбрать все организации у которых остаток больше 0. А дальше программная обработка - в разрезе номенклатуры срисовывать остаток по какому-нибудь алгоритму с организаций имеющих положительные остатки.
Для вашей задачи я бы сварганил запрос навроде этого: P.S. В запросе могут быть ошибки, так как пишу из головы, но идея должна быть ясна.
Для вашей задачи я бы сварганил запрос навроде этого:
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ВЫБОР КОГДА ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0 "-" ИНАЧЕ "+" КОНЕЦ КАК ЗнакОстатка,
ТоварыОрганизацийОстаткиИОбороты.Организация,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток,
ВЫБОР КОГДА ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0 ТОГДА -ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток ИНАЧЕ 0 КОНЕЦ КАК ОтрицательныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
ИТОГИ
СУММА(ВЫБОР КОГДА ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток < 0 ТОГДА -ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток ИНАЧЕ 0 КОНЕЦ) КАК ОтрицательныйОстаток
ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ЗнакОстатка
Показать
Тогда так: (Без объединения)
ВЫБРАТЬ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
МАКСИМУМ(ТоварыОрганизацийОстаткиИОбороты.Организация),
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
ИЗ
РегистрНакопления.ТоварыОрганизаций.ОстаткиИОбороты(, &КонецПериода, , , ) КАК ТоварыОрганизацийОстаткиИОбороты
ГДЕ
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура = &Номенклатура
И ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория = &СкладскаяТерритория
СГРУППИРОВАТЬ ПО
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Номенклатура,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.Характеристика,
ТоварыОрганизацийОстаткиИОбороты.АналитикаУчетаНоменклатуры.СкладскаяТерритория,
ТоварыОрганизацийОстаткиИОбороты.КоличествоКонечныйОстаток
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот