Добрый день! В управление торговлей 10.3 анализ остатков для передачи от организации-владельца продавцу происходит по запросу:
Не понятно соединение двух таблиц ВременнаяРаспределение и ВременнаяРаспределениеСоединения по условию ВременнаяРаспределение.Организация >= ВременнаяРаспределениеСоединения.Организация? Как таким образом сравниваются ссылки? И какой в этом смысл: почему выбрано больше или равно?
ВЫБРАТЬ
ПоложительныеОстатки.Организация КАК Организация,
ТоварыОрганизацийОстатки.Номенклатура КАК Номенклатура,
ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры,
ТоварыОрганизацийОстатки.СерияНоменклатуры,
ТоварыОрганизацийОстатки.КоличествоОстаток КАК ОтрицательныйОстаток,
ПоложительныеОстатки.КоличествоОстаток КАК ПоложительныйОстаток,
-ТоварыОрганизацийОстатки.КоличествоОстаток КАК ОстатокГлавнойОрганизации
ПОМЕСТИТЬ ВременнаяРаспределение
ИЗ
РегистрНакопления.ТоварыОрганизаций.Остатки(
&ДатаРасчетаОстатков,
Склад = &Склад
И Организация = &ТекОрганизация) КАК ТоварыОрганизацийОстатки
ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(
&ДатаДокументов,
Склад = &Склад
И Организация В
(ВЫБРАТЬ
Справочник.Организации.Ссылка
ИЗ
Справочник.Организации
ГДЕ
Справочник.Организации.Ссылка <> &ТекОрганизация)) КАК ПоложительныеОстатки
ПО ТоварыОрганизацийОстатки.Номенклатура = ПоложительныеОстатки.Номенклатура
И ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры = ПоложительныеОстатки.ХарактеристикаНоменклатуры
И ТоварыОрганизацийОстатки.СерияНоменклатуры = ПоложительныеОстатки.СерияНоменклатуры
ГДЕ
ТоварыОрганизацийОстатки.КоличествоОстаток < 0
И ПоложительныеОстатки.КоличествоОстаток > 0
ИНДЕКСИРОВАТЬ ПО
ПоложительныеОстатки.Организация,
ТоварыОрганизацийОстатки.Номенклатура,
ТоварыОрганизацийОстатки.ХарактеристикаНоменклатуры,
ТоварыОрганизацийОстатки.СерияНоменклатуры
;
//////////////////////////////////////////////////////////// ////////////////////
ВЫБРАТЬ
ВременнаяРаспределение.Организация КАК Организация,
ВременнаяРаспределение.Номенклатура КАК Номенклатура,
ВременнаяРаспределение.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
ВременнаяРаспределение.СерияНоменклатуры КАК СерияНоменклатуры,
ВременнаяРаспределение.Номенклатура.ЕдиницаХраненияОстатков КАК Единица,
ВременнаяРаспределение.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК Коэффициент,
МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) КАК ОстатокГлавнойОрганизации,
МИНИМУМ(ВременнаяРаспределение.ОтрицательныйОстаток) КАК ОтрицательныйОстаток,
МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) КАК ОстатокОрганизации,
ВЫБОР
КОГДА СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) >= МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации)
ТОГДА 0
ИНАЧЕ ВЫБОР
КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) = СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
ТОГДА ВЫБОР
КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) >= СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
ТОГДА СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
КОНЕЦ
ИНАЧЕ ВЫБОР
КОГДА МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) - (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)) >= МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
ТОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) - (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))
КОНЕЦ
КОНЕЦ
КОНЕЦ КАК ПоложительныйОстаток
ИЗ
ВременнаяРаспределение КАК ВременнаяРаспределение
ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяРаспределение КАК ВременнаяРаспределениеСоединения
ПО ВременнаяРаспределение.Организация >= ВременнаяРаспределениеСоединения.Организация
И ВременнаяРаспределение.Номенклатура = ВременнаяРаспределениеСоединения.Номенклатура
И ВременнаяРаспределение.ХарактеристикаНоменклатуры = ВременнаяРаспределениеСоединения.ХарактеристикаНоменклатуры
И ВременнаяРаспределение.СерияНоменклатуры = ВременнаяРаспределениеСоединения.СерияНоменклатуры
СГРУППИРОВАТЬ ПО
ВременнаяРаспределение.Организация,
ВременнаяРаспределение.Номенклатура,
ВременнаяРаспределение.ХарактеристикаНоменклатуры,
ВременнаяРаспределение.СерияНоменклатуры,
ВременнаяРаспределение.Номенклатура.ЕдиницаХраненияОстатков,
ВременнаяРаспределение.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент
УПОРЯДОЧИТЬ ПО
ВременнаяРаспределение.Организация
ПоказатьНе понятно соединение двух таблиц ВременнаяРаспределение и ВременнаяРаспределениеСоединения по условию ВременнаяРаспределение.Организация >= ВременнаяРаспределениеСоединения.Организация? Как таким образом сравниваются ссылки? И какой в этом смысл: почему выбрано больше или равно?
По теме из базы знаний
- Принципы учета номенклатуры в конфигурациях УТ11 и ERP. Ошибки расчета себестоимости
- Исправление отрицательных остатков по организациям в УТ 11.4, КА 2.4, ЕРП 2.4. Интеркампани, механизм формирования резервов
- Передача товаров между организациями (à la intercompany). УНФ
- Еще один вариант Интеркампани
- Подготовка к экзамену 1С:Специалист-консультант 1С:ERP 2.5. Управленческий учет. (в формате видеокурса)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) lotta, Вбросил, так вбросил...ничего не скажешь)))
Попробуй выполни запрос с ">=",с любым другим знаком или вообще без условия по организации...Результат одинаков. У меня по крайней мере в демо-базе.
Может у меня выборка. конечно, не репрезентативная... сижу, короче, медитирую на
Как сравниваются ссылки вообще?
сравнивается бинарное представление GUID, хранящееся в базе данных, т.е. значения хранящиеся в самой БД без преобразований...
И каков в этом сакральный смысл?
Никакого... наверное (нетЪ, смысл наверняка есть, но я не смог его постичь...).
Попробуй выполни запрос с ">=",с любым другим знаком или вообще без условия по организации...Результат одинаков. У меня по крайней мере в демо-базе.
Может у меня выборка. конечно, не репрезентативная... сижу, короче, медитирую на
ПО ВременнаяРаспределение.Организация >= ВременнаяРаспределениеСоединения.Организация
(2) Caspersky, спасибо за ответ.
Нет, вот именно результат разный. Например, Организация1-продавец остатков списала за день 8 штук. Есть две организации-владельцы остатков: Организация2 - 70 шт и Организация3 - 54 шт (две ссылки, по сортировке Организация3 ">" Организация2). Если в запросе соединение >=, тогда расчетное поле "Положительный остаток" равен Организация2 = 70, Организация3 = 0. Если убираем это соединение, тогда "Положительный остаток" = 0. Если ставим <=, тогда Организация2 = 0, Организация3 = 54. Понятно, что так, по расчетному полю "Положительный остаток", пытаются распределить остаток. Для пользователя, например, непонятно, вроде бы логично списать с той организации, у которой минимальный остаток (Организация3 = 54, Организация2 = 0), а так пользователь не видит уид и не понимает, по каким параметрам одна организация мощнее другой!
Нет, вот именно результат разный. Например, Организация1-продавец остатков списала за день 8 штук. Есть две организации-владельцы остатков: Организация2 - 70 шт и Организация3 - 54 шт (две ссылки, по сортировке Организация3 ">" Организация2). Если в запросе соединение >=, тогда расчетное поле "Положительный остаток" равен Организация2 = 70, Организация3 = 0. Если убираем это соединение, тогда "Положительный остаток" = 0. Если ставим <=, тогда Организация2 = 0, Организация3 = 54. Понятно, что так, по расчетному полю "Положительный остаток", пытаются распределить остаток. Для пользователя, например, непонятно, вроде бы логично списать с той организации, у которой минимальный остаток (Организация3 = 54, Организация2 = 0), а так пользователь не видит уид и не понимает, по каким параметрам одна организация мощнее другой!
| ВЫБОР КОГДА (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))
| >= МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации)
// Все распределено на предыдущем шаге, для текущего шага 0.00.
| ТОГДА 0.00
| ИНАЧЕ ВЫБОР КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) = СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
// Первая строка в группе, получаем минимальное значение между отрицательным остатком организации (покупатель) и положительным остатком организации (поставщик).
| ТОГДА ВЫБОР КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) >= СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
| ТОГДА СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
| ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
| КОНЕЦ
// Следующая строка в группе для распределения.
| ИНАЧЕ ВЫБОР КОГДА (МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) -
| (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))) >= МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
// Нераспределенное больше остатка поставщика, берется остаток поставщика.
| ТОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
// Нераспределенное меньше остатка поставщика, берется нераспределенный остаток.
| ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) -
| (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК ПоложительныйОстаток
не понятный механизм расчета
СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
для чего эта операция? какой смысл
| >= МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации)
// Все распределено на предыдущем шаге, для текущего шага 0.00.
| ТОГДА 0.00
| ИНАЧЕ ВЫБОР КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) = СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
// Первая строка в группе, получаем минимальное значение между отрицательным остатком организации (покупатель) и положительным остатком организации (поставщик).
| ТОГДА ВЫБОР КОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток) >= СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
| ТОГДА СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток)
| ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
| КОНЕЦ
// Следующая строка в группе для распределения.
| ИНАЧЕ ВЫБОР КОГДА (МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) -
| (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))) >= МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
// Нераспределенное больше остатка поставщика, берется остаток поставщика.
| ТОГДА МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
// Нераспределенное меньше остатка поставщика, берется нераспределенный остаток.
| ИНАЧЕ МИНИМУМ(ВременнаяРаспределение.ОстатокГлавнойОрганизации) -
| (СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток))
| КОНЕЦ
| КОНЕЦ
| КОНЕЦ КАК ПоложительныйОстаток
не понятный механизм расчета
СУММА(ВременнаяРаспределениеСоединения.ПоложительныйОстаток) - МИНИМУМ(ВременнаяРаспределение.ПоложительныйОстаток)
для чего эта операция? какой смысл
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот