Капитально об программе 1С 8.0-8.3-8.4, 7.7

Доступные остатки в УТ 11.1 не совпадают

Возникло расхождение: в карточке номенклатуры отчет «Доступные остатки» показывает одно количество, а ведомость и «Размещение в ячейках» другое.

Анализ и решение

Вот текст запроса, который выведет историю по товару по обоим регистрам (при необходимости можно задать периоды)

ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.Характеристика, //ТоварыНаСкладахОстаткиИОбороты.Назначение, ТоварыНаСкладахОстаткиИОбороты.Склад, ТоварыНаСкладахОстаткиИОбороты.Регистратор, ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход, ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( , , Регистратор , , Номенклатура = &Номенклатура И Склад = &Склад И Характеристика = &Характеристика) КАК ТоварыНаСкладахОстаткиИОбороты ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ СвободныеОстаткиОстаткиИОбороты.Номенклатура, СвободныеОстаткиОстаткиИОбороты.Характеристика, СвободныеОстаткиОстаткиИОбороты.Склад, СвободныеОстаткиОстаткиИОбороты.Регистратор, СвободныеОстаткиОстаткиИОбороты.ВНаличииНачальныйОстаток, СвободныеОстаткиОстаткиИОбороты.ВНаличииКонечныйОстаток, СвободныеОстаткиОстаткиИОбороты.ВНаличииПриход, СвободныеОстаткиОстаткиИОбороты.ВНаличииРасход ИЗ РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты( , , Регистратор , , Склад = &Склад И Характеристика = &Характеристика) КАК СвободныеОстаткиОстаткиИОбороты

Модификация, которая выведет только различия по оборотам

ВЫБРАТЬ
ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
ТоварыНаСкладахОстаткиИОбороты.Характеристика,
//ТоварыНаСкладахОстаткиИОбороты.Назначение,
ТоварыНаСкладахОстаткиИОбороты.Склад,
ТоварыНаСкладахОстаткиИОбороты.Регистратор,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииКонечныйОстаток,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииПриход,
ТоварыНаСкладахОстаткиИОбороты.ВНаличииРасход
поместить Товары
ИЗ
РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(
,
,
Регистратор
,
,
Номенклатура = &Номенклатура
И Склад = &Склад
И Характеристика = &Характеристика) КАК ТоварыНаСкладахОстаткиИОбороты
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
СвободныеОстаткиОстаткиИОбороты.Номенклатура,
СвободныеОстаткиОстаткиИОбороты.Характеристика,
СвободныеОстаткиОстаткиИОбороты.Склад,
СвободныеОстаткиОстаткиИОбороты.Регистратор,
СвободныеОстаткиОстаткиИОбороты.ВНаличииНачальныйОстаток,
СвободныеОстаткиОстаткиИОбороты.ВНаличииКонечныйОстаток,
СвободныеОстаткиОстаткиИОбороты.ВНаличииПриход,
Товары.ВНаличииПРиход как ВНаличииПРиходТОвары,
СвободныеОстаткиОстаткиИОбороты.ВНаличииРасход,
Товары.ВНаличииРасход как ВНаличииРасходТовары

ИЗ
РегистрНакопления.СвободныеОстатки.ОстаткиИОбороты(
,
,
Регистратор
,
,
Склад = &Склад
И Характеристика = &Характеристика) КАК СвободныеОстаткиОстаткиИОбороты
Полное соединение Товары
по Товары.Характеристика = СвободныеОстаткиОстаткиИОбороты.Характеристика
и Товары.Регистратор = СвободныеОстаткиОстаткиИОбороты.Регистратор
и Товары.Склад = СвободныеОстаткиОстаткиИОбороты.Склад
где СвободныеОстаткиОстаткиИОбороты.ВНаличииРасход<>Товары.ВНаличииРасход
или СвободныеОстаткиОстаткиИОбороты.ВНаличииПРиход<>Товары.ВНаличииПРиход

Причина

В моем случае оказалось, что документ реализация товаров списывал частично отмененную позицию в реализации (фактически по одной штуке снимал резерв, по второй не должен был делать движения вообще), в коде ошибку не стал искать, удалил из заказа отмененную позицию и перепровел реализацию. В результате расхождение ушло.

Конфигурация давно не обновлялась, возможно  это бы решило проблему, но поскольку она интегрированная на работу с Bitrix, нельзя гарантировать что обновление пройдет без сучка и задоринки…

Смотрите также: новые возможности в  УТ 11.2