Описание механизма
В УТ 11 в документе «Поступление товаров и услуг» можно указать возникшие расхождения, для недостач одним из вариантов является отражение за счет сторонней компании, например, перевозчика.
При выгрузке такого поступления в БП, будут созданы 2 документа:
Ошибка
При выгрузке первого поступления, где товары списываются за счет выбранного контрагента, все происходит правильно. Но, при выгрузке последующих поступлений с расхождениями, в каждый документ возврата в БП попадут ВСЕ товары, которые когда-либо списывались за счет этого контрагента.
Как исправить
Для исправления необходимо отредактировать правила обмена УТ-БП. Открываем их в Конвертации данных и находим ПКО «ПТУ_РасхожденияВВозврат», смотрим обработчик «Перед выгрузкой». В нем есть длинный запрос, в котором нас интересует следующий фрагмент:
ВЫБРАТЬ Расхождения.Ссылка КАК ДокументОприходования, Расхождения.Номенклатура, Расхождения.Количество, Расхождения.Цена / ЕСТЬNULL(Расхождения.Упаковка.Коэффициент, 1) КАК Цена, Расхождения.Сумма, Расхождения.СтавкаНДС, Расхождения.СуммаНДС, Расхождения.СуммаСНДС, Расхождения.ВариантОтраженияРасхождений, Расхождения.Характеристика, 1 КАК Коэффициент, ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД, ЗНАЧЕНИЕ(Справочник.СтраныМира.ПустаяСсылка) КАК СтранаПроисхождения, Расхождения.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, Расхождения.Ссылка.ВернутьМногооборотнуюТару ПОМЕСТИТЬ Расхождения ИЗ Документ.ПоступлениеТоваровУслуг.Расхождения КАК Расхождения ГДЕ (Расхождения.Ссылка = &Ссылка И Расхождения.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга) И Расхождения.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) И Расхождения.ВариантРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыРасхождений.Недостачи) И Расхождения.ВариантОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыОтраженияРасхождений.НедостачиЗаСчетПоставщика) И Расхождения.Ссылка.Контрагент = &КонтрагентПретензии ИЛИ Расхождения.ВариантОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыОтраженияРасхождений.НедостачиЗаСчетСтороннейКомпании) И Расхождения.Ссылка.КонтрагентСтороннейКомпании = &КонтрагентПретензии)
В него нужно добавить по две скобки в двух местах:
ВЫБРАТЬ Расхождения.Ссылка КАК ДокументОприходования, Расхождения.Номенклатура, Расхождения.Количество, Расхождения.Цена / ЕСТЬNULL(Расхождения.Упаковка.Коэффициент, 1) КАК Цена, Расхождения.Сумма, Расхождения.СтавкаНДС, Расхождения.СуммаНДС, Расхождения.СуммаСНДС, Расхождения.ВариантОтраженияРасхождений, Расхождения.Характеристика, 1 КАК Коэффициент, ЗНАЧЕНИЕ(Справочник.НомераГТД.ПустаяСсылка) КАК НомерГТД, ЗНАЧЕНИЕ(Справочник.СтраныМира.ПустаяСсылка) КАК СтранаПроисхождения, Расхождения.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения, Расхождения.Ссылка.ВернутьМногооборотнуюТару ПОМЕСТИТЬ Расхождения ИЗ Документ.ПоступлениеТоваровУслуг.Расхождения КАК Расхождения ГДЕ (Расхождения.Ссылка = &Ссылка И Расхождения.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Услуга) И Расхождения.Номенклатура.ТипНоменклатуры <> ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.Работа) И Расхождения.ВариантРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыРасхождений.Недостачи) И ((Расхождения.ВариантОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыОтраженияРасхождений.НедостачиЗаСчетПоставщика)//две скобки в начале строки И Расхождения.Ссылка.Контрагент = &КонтрагентПретензии ИЛИ Расхождения.ВариантОтраженияРасхождений = ЗНАЧЕНИЕ(Перечисление.ВариантыОтраженияРасхождений.НедостачиЗаСчетСтороннейКомпании) И Расхождения.Ссылка.КонтрагентСтороннейКомпании = &КонтрагентПретензии)))//две закрывающие скобки сюда
Механизм одинаков для БП 2.0 и БП 3.0, в правилах обмена для обеих редакций одна и та же ошибка.
З.Ы.:
Как вы, наверное, уже заметили, приведен скриншот документа из демо-базы УТ 11, в ней удачно нашлись поступления с недостачами, отражаемыми за счет контрагента «Вега-транс».
Ниже приведен результат выполнения неисправленного запроса в той же демо-базе