А кто-нибудь может подсказать, как в РИБ на точках это будет происходить? Как и обновление релизов - через обмен? Или в каждый магазин надо будет новую базу нарезать?
Проблема решается комментированием условия в запросе выборки данных по остаткам номенклатуры и себестоимости.
Проблемный общий модуль: МенеджерОбменаЧерезУниверсальныйФормат
Проблемная функция: ПОД_Документ_ОстаткиСобственныхТМЦ_ВыборкаДанных
Проблема в том, что в документе "Установка себестоимости" отсутствует реквизит "Организация" по которому идет проверка.
ТекстЗапроса = "
|ВЫБРАТЬ
| Остатки.Организация КАК Организация,
| Остатки.Склад.Магазин КАК Склад,
| Остатки.Номенклатура КАК Номенклатура,
| Остатки.Характеристика КАК Характеристика,
| Остатки.Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
| СправочникНоменклатура.КодТНВЭД.ПрослеживаемыйТовар КАК ПрослеживаемыйТовар,
| СправочникНоменклатура.ЕдиницаИзмеренияТНВЭД КАК ЕдиницаИзмеренияПрослеживаемости,
| СправочникНоменклатура.СтавкаНДС КАК СтавкаНДС,
| Остатки.НомерГТД КАК НомерГТД,
| Остатки.КоличествоОстаток КАК Количество,
| Остатки.КоличествоПоРНПТОстаток КАК КоличествоРНПТ,
| ""СобственныеТовары"" КАК ВидЗапасов,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА &СебестоимостьВключаетНДС
| ТОГДА ВЫБОР
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток
| - ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 120 * 20
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток
| - ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 118 * 18
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток
| - ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 110 * 10
| ИНАЧЕ ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток
| КОНЕЦ
| ИНАЧЕ ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток
| КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаБезНДС,
| ВЫРАЗИТЬ(ВЫБОР
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС20_120)
| ТОГДА ВЫБОР
| КОГДА &СебестоимостьВключаетНДС
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 120 * 20
| ИНАЧЕ ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток * 20 / 100
| КОНЕЦ
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС18_118)
| ТОГДА ВЫБОР
| КОГДА &СебестоимостьВключаетНДС
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 118 * 18
| ИНАЧЕ ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток * 18 / 100
| КОНЕЦ
| КОГДА СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10)
| ИЛИ СправочникНоменклатура.СтавкаНДС = ЗНАЧЕНИЕ(Перечисление.СтавкиНДС.НДС10_110)
| ТОГДА ВЫБОР
| КОГДА &СебестоимостьВключаетНДС
| ТОГДА ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток / 110 * 10
| ИНАЧЕ ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток * 10 / 100
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ЧИСЛО(15, 2)) КАК СуммаНДС
|ИЗ
| РегистрНакопления.ТоварыОрганизаций.Остатки(&ДатаОстатков, Поставщик = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) КАК Остатки
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СправочникНоменклатура
| ПО (Остатки.Номенклатура = СправочникНоменклатура.Ссылка)
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СебестоимостьНоменклатуры КАК СебестоимостьНоменклатуры
| ПО (Остатки.Номенклатура = СебестоимостьНоменклатуры.Номенклатура)
| И (Остатки.Характеристика = СебестоимостьНоменклатуры.Характеристика)
| И (СебестоимостьНоменклатуры.Регистратор В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| Себестоимость.Регистратор
| ИЗ
| РегистрСведений.СебестоимостьНоменклатуры КАК Себестоимость
| ГДЕ
// | Себестоимость.Регистратор.Организация = Остатки.Организация
// | И (Себестоимость.Магазин = Остатки.Склад.Магазин
// | ИЛИ Себестоимость.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка))
| Себестоимость.Номенклатура = Остатки.Номенклатура
| И Себестоимость.Характеристика = Остатки.Характеристика
| И (Себестоимость.Период <= &ДатаОстатков
| ИЛИ &ДатаОстатков = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
| УПОРЯДОЧИТЬ ПО
| Себестоимость.Период УБЫВ,
| Себестоимость.Регистратор УБЫВ,
| ВЫБОР
| КОГДА Себестоимость.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка)
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ))
| И (СебестоимостьНоменклатуры.Магазин В
| (ВЫБРАТЬ ПЕРВЫЕ 1
| Себестоимость.Магазин
| ИЗ
| РегистрСведений.СебестоимостьНоменклатуры КАК Себестоимость
| ГДЕ
| (Себестоимость.Магазин = Остатки.Склад.Магазин
| ИЛИ Себестоимость.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка))
| И Себестоимость.Номенклатура = Остатки.Номенклатура
| И Себестоимость.Характеристика = Остатки.Характеристика
| И (Себестоимость.Период <= &ДатаОстатков
| ИЛИ &ДатаОстатков = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0))
| УПОРЯДОЧИТЬ ПО
| Себестоимость.Период УБЫВ,
| Себестоимость.Регистратор УБЫВ,
| ВЫБОР
| КОГДА Себестоимость.Магазин = ЗНАЧЕНИЕ(Справочник.Магазины.ПустаяСсылка)
| ТОГДА 0
| ИНАЧЕ 1
| КОНЕЦ))
|ГДЕ
| ЕСТЬNULL(СебестоимостьНоменклатуры.Цена, 0) * Остатки.КоличествоОстаток > 0
|
|УПОРЯДОЧИТЬ ПО
| Организация,
| Склад
|";
Если остаток не выгружается то проблема как я понимаю в том, что отсутствует сумма. В общем модуле можно поставить заглушку МенеджерОбменаЧерезУниверсальныйФормат. Функция: ПОД_Документ_ОстаткиСобственныхТМЦ_ВыборкаДанных.
сменить "ВНУТРЕННЕЕ СОЕДИНЕНИЕ Себестоимость КАК СебестоимостьНоменклатуры" на "ЛЕВОЕ СОЕДИНЕНИЕ Себестоимость КАК СебестоимостьНоменклатуры"
вместо "ОстаткиСебестоимость.СуммаБезНДС КАК СуммаБезНДС" подставить к примеру "100 КАК СуммаБезНДС"
и закомментировать условие ОстаткиСебестоимость.СуммаБезНДС > 0