Имя: Пароль:
1C
1С v8
УТ11. Распределение доп. расходов пропорционально себестоимости.
0 Adept
 
27.05.13
10:43
Происходит неправильное распределение доп расходов между товарами.
Вид аналитики поступление товаров, метод распределения пропорционально себестоимости.
УТ11 это вообще стандарным образом происходит, или есть какие то особенности распределения (я про то что считается базой и так далее)?
1 Adept
 
27.05.13
11:13
Вот запрос получения данных для проведения документа "Распределение доп. расходов"

[CODE]

ВЫБРАТЬ
   ТаблицаРасходы.НомерСтроки КАК НомерСтроки,
   ТаблицаРасходы.Организация КАК Организация,
   ТаблицаРасходы.Подразделение КАК Подразделение,
   ТаблицаРасходы.СтатьяРасходов КАК СтатьяРасходов,
   ТаблицаРасходы.АналитикаРасходов КАК АналитикаРасходов,
   ТаблицаРасходы.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаРасходы.Сумма КАК Сумма,
   ТаблицаРасходы.СуммаБезНДС КАК СуммаБезНДС,
   ТаблицаРасходы.СуммаРегл КАК СуммаРегл

ПОМЕСТИТЬ ВтТаблицаРасходов
ИЗ
   Документ.РаспределениеРасходовНаСебестоимостьТоваров.Расходы КАК ТаблицаРасходы
ГДЕ
   ТаблицаРасходы.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////

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

УПОРЯДОЧИТЬ ПО
   ТаблицаРасходы.НомерСтроки
;
////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ТаблицаРасходы.Организация КАК Организация,
   ТаблицаРасходы.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаРасходы.АналитикаРасходов КАК АналитикаРасходов,
   ВЫБОР КОГДА ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
   ТОГДА
       Ложь
   ИНАЧЕ
       Истина
   КОНЕЦ КАК АналитикаЗаполнена,
   МАКСИМУМ(ТаблицаРасходы.НомерСтроки) КАК ИндексБазы
   
ПОМЕСТИТЬ ТаблицаСпособовРаспределения
ИЗ
   ВтТаблицаРасходов КАК ТаблицаРасходы

СГРУППИРОВАТЬ ПО
   ТаблицаРасходы.Организация,
   ТаблицаРасходы.ПравилоРаспределения,
   ТаблицаРасходы.АналитикаРасходов,
   ВЫБОР КОГДА ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
   ТОГДА
       Ложь
   ИНАЧЕ
       Истина
   КОНЕЦ

ИНДЕКСИРОВАТЬ ПО
   АналитикаРасходов
;
///////////////////////////////////////////////////////////////////////////

// Поступление товаров по конкретным документам закупки или по заказам поставщикам.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы

ПОМЕСТИТЬ ТаблицаДокументов
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаЗаполнена
       И (ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов
         ИЛИ ДанныеДокумента.ЗаказПоставщику = ТаблицаСпособовРаспределения.АналитикаРасходов)

ОБЪЕДИНИТЬ ВСЕ

// Поступления товаров по любым документам закупки.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   И (ДанныеДокумента.ЗаказПоставщику <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) И ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
   )

ОБЪЕДИНИТЬ ВСЕ

// Перемещения товаров по конкретным документам перемещения или по заказам на перемещение.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПеремещениеТоваров КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаЗаполнена
       И (ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов
         ИЛИ ДанныеДокумента.ЗаказНаПеремещение = ТаблицаСпособовРаспределения.АналитикаРасходов)

ОБЪЕДИНИТЬ ВСЕ

// Перемещения товаров по любым документам перемещения или по любым заказам на перемещение.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПеремещениеТоваров КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   И (ДанныеДокумента.ЗаказНаПеремещение <> ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка) И ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
   )

ОБЪЕДИНИТЬ ВСЕ

// Передачи товаров между организациями.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

ИНДЕКСИРОВАТЬ ПО
   Ссылка
;
///////////////////////////////////////////////////////////////////////////////////    

ВЫБРАТЬ
   УчетСебестоимости.Организация КАК Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов КАК ВидЗапасов,
   УчетСебестоимости.КоличествоОстаток КАК Количество,
   УчетСебестоимости.СтоимостьОстаток КАК Стоимость

ПОМЕСТИТЬ ВтПоступленияТоваров
ИЗ
   РегистрНакопления.СебестоимостьТоваров.Остатки(&ДатаНачала,
       РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
       И (Организация = &Организация
           ИЛИ &РаспределениеПоВсемОрганизациям)
   ) КАК УчетСебестоимости

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   УчетСебестоимости.Организация КАК Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов КАК ВидЗапасов,
   СУММА(
       ВЫБОР КОГДА УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров ТОГДА
           0
       ИНАЧЕ
           УчетСебестоимости.КоличествоПриход
       КОНЕЦ
   ) КАК Количество,
   СУММА(
       ВЫБОР КОГДА УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров ТОГДА
           0
       ИНАЧЕ
           УчетСебестоимости.СтоимостьПриход
       КОНЕЦ
   ) КАК Стоимость
ИЗ
   РегистрНакопления.СебестоимостьТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор,
       РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
       И (Организация = &Организация
           ИЛИ &РаспределениеПоВсемОрганизациям)
   ) КАК УчетСебестоимости
ГДЕ
   УчетСебестоимости.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
   ИЛИ УчетСебестоимости.Регистратор ССЫЛКА Документ.ПередачаТоваровМеждуОрганизациями
   ИЛИ УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров

СГРУППИРОВАТЬ ПО
   УчетСебестоимости.Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов

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

ПОМЕСТИТЬ ТаблицаПоступленияТоваров
ИЗ
   РегистрНакопления.СебестоимостьТоваров КАК УчетСебестоимости
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаДокументов КАК ТаблицаДокументов
   ПО
       УчетСебестоимости.Регистратор = ТаблицаДокументов.Ссылка
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ВтПоступленияТоваров КАК ВтПоступленияТоваров
   ПО
       УчетСебестоимости.АналитикаУчетаНоменклатуры = ВтПоступленияТоваров.АналитикаУчетаНоменклатуры
       И УчетСебестоимости.ВидЗапасов = ВтПоступленияТоваров.ВидЗапасов
ГДЕ
   УчетСебестоимости.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
   И УчетСебестоимости.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
   И (УчетСебестоимости.Организация = &Организация
       ИЛИ &РаспределениеПоВсемОрганизациям)

СГРУППИРОВАТЬ ПО
   ТаблицаДокументов.ИндексБазы,
   УчетСебестоимости.Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы,
   ВтПоступленияТоваров.Организация КАК Организация,
   ВтПоступленияТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   ВтПоступленияТоваров.ВидЗапасов КАК ВидЗапасов,
   СУММА(ВтПоступленияТоваров.Количество) КАК Количество,
   СУММА(ВтПоступленияТоваров.Стоимость) КАК Стоимость
ИЗ
   ВтПоступленияТоваров КАК ВтПоступленияТоваров
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
   ПО
       ВтПоступленияТоваров.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ВтПоступленияТоваров.Организация = ТаблицаСпособовРаспределения.Организация
       И (ТаблицаСпособовРаспределения.АналитикаРасходов = АналитикаНоменклатуры.Склад
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = АналитикаНоменклатуры.Номенклатура
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))

СГРУППИРОВАТЬ ПО
   ТаблицаСпособовРаспределения.ИндексБазы,
   ВтПоступленияТоваров.Организация,
   ВтПоступленияТоваров.АналитикаУчетаНоменклатуры,
   ВтПоступленияТоваров.ВидЗапасов

ИНДЕКСИРОВАТЬ ПО
   ИндексБазы
;
///////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы,
   ТаблицаСпособовРаспределения.Организация КАК Организация,
   ТаблицаСпособовРаспределения.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаСпособовРаспределения.АналитикаРасходов КАК АналитикаРасходов,
   ТаблицаПоступленияТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   ТаблицаПоступленияТоваров.ВидЗапасов КАК ВидЗапасов,
   ВЫБОР КОГДА ТаблицаСпособовРаспределения.ПравилоРаспределения
       = ЗНАЧЕНИЕ(Перечисление.ПравилаРаспределенияНаСебестоимостьТоваров.ПропорциональноКоличеству)
   ТОГДА
       ЕСТЬNULL(ТаблицаПоступленияТоваров.Количество, 0)
   ИНАЧЕ
       ЕСТЬNULL(ТаблицаПоступленияТоваров.Стоимость, 0)
   КОНЕЦ КАК База

ИЗ
   ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения

   ЛЕВОЕ СОЕДИНЕНИЕ
       ТаблицаПоступленияТоваров КАК ТаблицаПоступленияТоваров
   ПО
       ТаблицаСпособовРаспределения.ИндексБазы = ТаблицаПоступленияТоваров.ИндексБазы
       И ТаблицаСпособовРаспределения.Организация = ТаблицаПоступленияТоваров.Организация
ИТОГИ
   СУММА(База)
ПО
   ИндексБазы
;
////////////////////////////////////////////////////////////////////////////////

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

   ЛЕВОЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаРасходы.ПравилоРаспределения = ТаблицаСпособовРаспределения.ПравилоРаспределения
       И ТаблицаРасходы.АналитикаРасходов = ТаблицаСпособовРаспределения.АналитикаРасходов

СГРУППИРОВАТЬ ПО
   ТаблицаРасходы.Организация,
   ТаблицаРасходы.Подразделение,
   ТаблицаРасходы.СтатьяРасходов,
   ТаблицаРасходы.АналитикаРасходов,
   ТаблицаСпособовРаспределения.ИндексБазы

УПОРЯДОЧИТЬ ПО
   НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////

[/CODE]
2 Adept
 
27.05.13
11:15
Тут есть часть запроса которая получает данные о поступлении


ВЫБРАТЬ
   ТаблицаРасходы.НомерСтроки КАК НомерСтроки,
   ТаблицаРасходы.Организация КАК Организация,
   ТаблицаРасходы.Подразделение КАК Подразделение,
   ТаблицаРасходы.СтатьяРасходов КАК СтатьяРасходов,
   ТаблицаРасходы.АналитикаРасходов КАК АналитикаРасходов,
   ТаблицаРасходы.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаРасходы.Сумма КАК Сумма,
   ТаблицаРасходы.СуммаБезНДС КАК СуммаБезНДС,
   ТаблицаРасходы.СуммаРегл КАК СуммаРегл

ПОМЕСТИТЬ ВтТаблицаРасходов
ИЗ
   Документ.РаспределениеРасходовНаСебестоимостьТоваров.Расходы КАК ТаблицаРасходы
ГДЕ
   ТаблицаРасходы.Ссылка = &Ссылка
;
////////////////////////////////////////////////////////////////////////

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

УПОРЯДОЧИТЬ ПО
   ТаблицаРасходы.НомерСтроки
;
////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ТаблицаРасходы.Организация КАК Организация,
   ТаблицаРасходы.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаРасходы.АналитикаРасходов КАК АналитикаРасходов,
   ВЫБОР КОГДА ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
   ТОГДА
       Ложь
   ИНАЧЕ
       Истина
   КОНЕЦ КАК АналитикаЗаполнена,
   МАКСИМУМ(ТаблицаРасходы.НомерСтроки) КАК ИндексБазы
   
ПОМЕСТИТЬ ТаблицаСпособовРаспределения
ИЗ
   ВтТаблицаРасходов КАК ТаблицаРасходы

СГРУППИРОВАТЬ ПО
   ТаблицаРасходы.Организация,
   ТаблицаРасходы.ПравилоРаспределения,
   ТаблицаРасходы.АналитикаРасходов,
   ВЫБОР КОГДА ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
       ИЛИ ТаблицаРасходы.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
   ТОГДА
       Ложь
   ИНАЧЕ
       Истина
   КОНЕЦ

ИНДЕКСИРОВАТЬ ПО
   АналитикаРасходов
;
///////////////////////////////////////////////////////////////////////////

// Поступление товаров по конкретным документам закупки или по заказам поставщикам.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы

ПОМЕСТИТЬ ТаблицаДокументов
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаЗаполнена
       И (ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов
         ИЛИ ДанныеДокумента.ЗаказПоставщику = ТаблицаСпособовРаспределения.АналитикаРасходов)

ОБЪЕДИНИТЬ ВСЕ

// Поступления товаров по любым документам закупки.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПоступлениеТоваровУслуг КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   И (ДанныеДокумента.ЗаказПоставщику <> ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка) И ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказПоставщику.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПоступлениеТоваровУслуг.ПустаяСсылка)
   )

ОБЪЕДИНИТЬ ВСЕ

// Перемещения товаров по конкретным документам перемещения или по заказам на перемещение.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПеремещениеТоваров КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаЗаполнена
       И (ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов
         ИЛИ ДанныеДокумента.ЗаказНаПеремещение = ТаблицаСпособовРаспределения.АналитикаРасходов)

ОБЪЕДИНИТЬ ВСЕ

// Перемещения товаров по любым документам перемещения или по любым заказам на перемещение.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПеремещениеТоваров КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания
   И (ДанныеДокумента.ЗаказНаПеремещение <> ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка) И ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ЗаказНаПеремещение.ПустаяСсылка)
       ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПеремещениеТоваров.ПустаяСсылка)
   )

ОБЪЕДИНИТЬ ВСЕ

// Передачи товаров между организациями.
ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ДанныеДокумента.Ссылка = ТаблицаСпособовРаспределения.АналитикаРасходов

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ РАЗЛИЧНЫЕ
   ДанныеДокумента.Ссылка КАК Ссылка,
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы
ИЗ
   Документ.ПередачаТоваровМеждуОрганизациями КАК ДанныеДокумента

   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Документ.ПередачаТоваровМеждуОрганизациями.ПустаяСсылка)
ГДЕ
   ДанныеДокумента.Дата МЕЖДУ &ДатаНачала И &ДатаОкончания

ИНДЕКСИРОВАТЬ ПО
   Ссылка
;
///////////////////////////////////////////////////////////////////////////////////    

ВЫБРАТЬ
   УчетСебестоимости.Организация КАК Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов КАК ВидЗапасов,
   УчетСебестоимости.КоличествоОстаток КАК Количество,
   УчетСебестоимости.СтоимостьОстаток КАК Стоимость

ПОМЕСТИТЬ ВтПоступленияТоваров
ИЗ
   РегистрНакопления.СебестоимостьТоваров.Остатки(&ДатаНачала,
       РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
       И (Организация = &Организация
           ИЛИ &РаспределениеПоВсемОрганизациям)
   ) КАК УчетСебестоимости

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   УчетСебестоимости.Организация КАК Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов КАК ВидЗапасов,
   СУММА(
       ВЫБОР КОГДА УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров ТОГДА
           0
       ИНАЧЕ
           УчетСебестоимости.КоличествоПриход
       КОНЕЦ
   ) КАК Количество,
   СУММА(
       ВЫБОР КОГДА УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров ТОГДА
           0
       ИНАЧЕ
           УчетСебестоимости.СтоимостьПриход
       КОНЕЦ
   ) КАК Стоимость
ИЗ
   РегистрНакопления.СебестоимостьТоваров.Обороты(&ДатаНачала, &ДатаОкончания, Регистратор,
       РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
       И (Организация = &Организация
           ИЛИ &РаспределениеПоВсемОрганизациям)
   ) КАК УчетСебестоимости
ГДЕ
   УчетСебестоимости.Регистратор ССЫЛКА Документ.ПоступлениеТоваровУслуг
   ИЛИ УчетСебестоимости.Регистратор ССЫЛКА Документ.ПередачаТоваровМеждуОрганизациями
   ИЛИ УчетСебестоимости.Регистратор ССЫЛКА Документ.ПеремещениеТоваров

СГРУППИРОВАТЬ ПО
   УчетСебестоимости.Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов

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

ПОМЕСТИТЬ ТаблицаПоступленияТоваров
ИЗ
   РегистрНакопления.СебестоимостьТоваров КАК УчетСебестоимости
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаДокументов КАК ТаблицаДокументов
   ПО
       УчетСебестоимости.Регистратор = ТаблицаДокументов.Ссылка
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ВтПоступленияТоваров КАК ВтПоступленияТоваров
   ПО
       УчетСебестоимости.АналитикаУчетаНоменклатуры = ВтПоступленияТоваров.АналитикаУчетаНоменклатуры
       И УчетСебестоимости.ВидЗапасов = ВтПоступленияТоваров.ВидЗапасов
ГДЕ
   УчетСебестоимости.РазделУчета = ЗНАЧЕНИЕ(Перечисление.РазделыУчетаСебестоимостиТоваров.ТоварыНаСкладах)
   И УчетСебестоимости.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
   И (УчетСебестоимости.Организация = &Организация
       ИЛИ &РаспределениеПоВсемОрганизациям)

СГРУППИРОВАТЬ ПО
   ТаблицаДокументов.ИндексБазы,
   УчетСебестоимости.Организация,
   УчетСебестоимости.АналитикаУчетаНоменклатуры,
   УчетСебестоимости.ВидЗапасов

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы,
   ВтПоступленияТоваров.Организация КАК Организация,
   ВтПоступленияТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   ВтПоступленияТоваров.ВидЗапасов КАК ВидЗапасов,
   СУММА(ВтПоступленияТоваров.Количество) КАК Количество,
   СУММА(ВтПоступленияТоваров.Стоимость) КАК Стоимость
ИЗ
   ВтПоступленияТоваров КАК ВтПоступленияТоваров
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       РегистрСведений.АналитикаУчетаНоменклатуры КАК АналитикаНоменклатуры
   ПО
       ВтПоступленияТоваров.АналитикаУчетаНоменклатуры = АналитикаНоменклатуры.КлючАналитики
   
   ВНУТРЕННЕЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ВтПоступленияТоваров.Организация = ТаблицаСпособовРаспределения.Организация
       И (ТаблицаСпособовРаспределения.АналитикаРасходов = АналитикаНоменклатуры.Склад
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = АналитикаНоменклатуры.Номенклатура
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)
           ИЛИ ТаблицаСпособовРаспределения.АналитикаРасходов = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка))

СГРУППИРОВАТЬ ПО
   ТаблицаСпособовРаспределения.ИндексБазы,
   ВтПоступленияТоваров.Организация,
   ВтПоступленияТоваров.АналитикаУчетаНоменклатуры,
   ВтПоступленияТоваров.ВидЗапасов

ИНДЕКСИРОВАТЬ ПО
   ИндексБазы
;
///////////////////////////////////////////////////////////////////////////////////

ВЫБРАТЬ
   ТаблицаСпособовРаспределения.ИндексБазы КАК ИндексБазы,
   ТаблицаСпособовРаспределения.Организация КАК Организация,
   ТаблицаСпособовРаспределения.ПравилоРаспределения КАК ПравилоРаспределения,
   ТаблицаСпособовРаспределения.АналитикаРасходов КАК АналитикаРасходов,
   ТаблицаПоступленияТоваров.АналитикаУчетаНоменклатуры КАК АналитикаУчетаНоменклатуры,
   ТаблицаПоступленияТоваров.ВидЗапасов КАК ВидЗапасов,
   ВЫБОР КОГДА ТаблицаСпособовРаспределения.ПравилоРаспределения
       = ЗНАЧЕНИЕ(Перечисление.ПравилаРаспределенияНаСебестоимостьТоваров.ПропорциональноКоличеству)
   ТОГДА
       ЕСТЬNULL(ТаблицаПоступленияТоваров.Количество, 0)
   ИНАЧЕ
       ЕСТЬNULL(ТаблицаПоступленияТоваров.Стоимость, 0)
   КОНЕЦ КАК База

ИЗ
   ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения

   ЛЕВОЕ СОЕДИНЕНИЕ
       ТаблицаПоступленияТоваров КАК ТаблицаПоступленияТоваров
   ПО
       ТаблицаСпособовРаспределения.ИндексБазы = ТаблицаПоступленияТоваров.ИндексБазы
       И ТаблицаСпособовРаспределения.Организация = ТаблицаПоступленияТоваров.Организация
ИТОГИ
   СУММА(База)
ПО
   ИндексБазы
;
////////////////////////////////////////////////////////////////////////////////

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

   ЛЕВОЕ СОЕДИНЕНИЕ
       ТаблицаСпособовРаспределения КАК ТаблицаСпособовРаспределения
   ПО
       ТаблицаРасходы.ПравилоРаспределения = ТаблицаСпособовРаспределения.ПравилоРаспределения
       И ТаблицаРасходы.АналитикаРасходов = ТаблицаСпособовРаспределения.АналитикаРасходов

СГРУППИРОВАТЬ ПО
   ТаблицаРасходы.Организация,
   ТаблицаРасходы.Подразделение,
   ТаблицаРасходы.СтатьяРасходов,
   ТаблицаРасходы.АналитикаРасходов,
   ТаблицаСпособовРаспределения.ИндексБазы

УПОРЯДОЧИТЬ ПО
   НомерСтроки
;
////////////////////////////////////////////////////////////////////////////////
3 Adept
 
27.05.13
11:17
Объясните мне зачем эта конструкция???

|    ВНУТРЕННЕЕ СОЕДИНЕНИЕ
   |        ВтПоступленияТоваров КАК ВтПоступленияТоваров
   |    ПО
   |        УчетСебестоимости.АналитикаУчетаНоменклатуры = ВтПоступленияТоваров.АналитикаУчетаНоменклатуры
   |        И УчетСебестоимости.ВидЗапасов = ВтПоступленияТоваров.ВидЗапасов


ВтПоступленияТоваров - нигде в полях выборки в данном запросе не участвует, только задваевает запись из регистра себестоимости в случае наличия остатка на начало месяца данного товара.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.