Все наверное знают о "новой" методике контроля остатков: сначала списываем, потом проверяем не получили ли минуса, если получи то откатываем списание.
В общем-то все замечательно, в отличии от старого метода когда перед списанием долго, в цикле, проверяли каждую номенклатуру на достаточное количество.
НО. Если регистр кроме измерения "номенклатура" имеет например измерение "цвет" то вариантов кроме как проверить каждую строчку у нас не остается, или я не прав?
Вот например здесь https://infostart.ru/public/195591/ если "в регистре два измерения: Товар, Партия" заменить на "в регистре три измерения: Товар, Цвет, Партия" то:
|ВЫБРАТЬ
| Остатки.Товар.Представление КАК ТоварПредставление,
| Остатки.КоличествоОстаток
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &ТочкаИтогов,
| Товар В
| (ВЫБРАТЬ
| ДокТЧ.Товар
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК Остатки
|ГДЕ
| Остатки.КоличествоОстаток < 0
|;
Показать
Так как будут выбраны все минуса номенклатуры не зависимо от "цвета" и мы не сможем списать "мячик, синий" по тому что именно в этот момент кто-то увел в минус "мячик, красный".
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &ТочкаИтогов,
| (Товар,Цвет) В
| (ВЫБРАТЬ
| ДокТЧ.Товар, ДокТЧ.Цвет
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК Остатки
|ИЗ
| РегистрНакопления.ОстаткиТоваров.Остатки(
| &ТочкаИтогов,
| (Товар,Цвет) В
| (ВЫБРАТЬ
| ДокТЧ.Товар, ДокТЧ.Цвет
| ИЗ
| ДокТЧ КАК ДокТЧ)) КАК Остатки
Покупатель дальтоник и попросил мячик "любого цвета"?
Новая методика контроля остатков применяется только в том случае, когда в документе есть ВСЯ информация для совершения движений. Поэтому она новая, а не единственная.
Если цвет надо получить в момент проведения - используется старая методика.
Вызвать управляемую блокировку на товар без указания цвета, получить в запросе таблицу остатков всех цветов и выбрать любой из них через фунцию МАКСИМУМ. Затем списать мячик однозначно имеющийся на складе.