Делаю такой отчет по проданным ТМЦ на Бухгалтерии 2.0. В отчете показываю информацию о количестве проданных товарно-материальных ценностей (ТМЦ), ее себестоимости, сумме продажи, сумме прибыли (разница между себестоимостью и продажей) и проценте наценки.
тоесть в таком виде
ТМЦ Кол-во, ед. Себестоимость Продажа Прибыль Наценка
ТМЦ 1 Кол-во, ед Сумма Сумма Сумма Процент
ТМЦ 2 Кол-во, ед Сумма Сумма Сумма Процент
… … … … … …
из бухг. оборотного регистра можно вытащить ТМЦ, кол-во проданного, продажу(сумма продажи). Вот думаю как можно вытащить себестоиомсть и наценку сосчитать? может из рег-ра сведений цены номенклатуы или из документа прихода товаров?
Проблема еще в том, что в р-ре бухгалтерии нет цены и ее приходится вычислять, но какую брать - с НДС или без НДС??? и как ее в итоге правильно вычислить?

```1c
    ВЫБРАТЬ
    ХозрасчетныйОбороты.Счет,
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто2,
    ХозрасчетныйОбороты.Субконто3 КАК НоменклатураРег,
    ХозрасчетныйОбороты.КорСчет,
    ХозрасчетныйОбороты.КорСубконто1,
    ХозрасчетныйОбороты.КорСубконто2,
    ХозрасчетныйОбороты.КорСубконто3,
    ХозрасчетныйОбороты.Организация,
    ХозрасчетныйОбороты.СуммаОборотКт,
    ХозрасчетныйОбороты.КоличествоОборотКт,
    ЦеныНоменклатурыСрезПоследних.Регистратор,
    ЦеныНоменклатурыСрезПоследних.Номенклатура,
    ЦеныНоменклатурыСрезПоследних.Цена КАК Себестоимость,
    ЦеныНоменклатурыСрезПоследних.Цена - ХозрасчетныйОбороты.СуммаОборотКт КАК Прибыль
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(&ДатНач, &ДатКон, , Счет В ИЕРАРХИИ (&Счет), , Организация = &организация, , ) КАК ХозрасчетныйОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&ДатКон, ) КАК ЦеныНоменклатурыСрезПоследних
    ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ХозрасчетныйОбороты.Субконто3)

    УПОРЯДОЧИТЬ ПО
    НоменклатураРег
```

параметр счета = 90.01.1
если зайти в любой док реализации то счет расчетов с контрагентом = 62.01
---
вот чуть более продвинутый вариант того же -
тут учитывается, что одного товара в одном документе может быть больше одной строки - и подтягивается также себестоимость по корректировкам в конце месяца в табличку

  Запрос = Новый Запрос;
  Запрос.МенеджерВременныхТаблиц
               = Новый МенеджерВременныхТаблиц();

  status("wait - 6");
  Запрос.УстановитьПараметр("Дата", НачалоДня(НачПериода) ); //Date
  Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода) ); //Date

     Запрос.УстановитьПараметр("СчетД", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1") );
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | Сумма(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | Сумма(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи
  | ПОМЕСТИТЬ First_1
  |ИЗ
  | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И РеализацияТоваровУслугТовары.Ссылка.Проведен = Истина
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура";
  Запрос.Выполнить();

  status("wait - 7");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | Сумма(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть
  | ПОМЕСТИТЬ First_2
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&Дата, &Дата2, счетДт В ИЕРАРХИИ (&СчетД)) КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
  Запрос.Выполнить();

  status("wait - 8");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество КАК Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетКт
  | ПОМЕСТИТЬ First
  |ИЗ
  | First_1 КАК РеализацияТоваровУслугТовары
  | Внутреннее СОЕДИНЕНИЕ First_2 КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |";
  Запрос.Выполнить();

  status("wait - 9");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | РеализацияТоваровУслугТовары.Себестоимсоть,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт
  | ПОМЕСТИТЬ Second
  |ИЗ
  | First КАК РеализацияТоваровУслугТовары";
  Запрос.Выполнить();

  status("wait - 10");

  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка как Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента как Валюта,
  | РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов как Курс,
  | РеализацияТоваровУслугТовары.Ссылка.Дата как Дата,
  | РеализацияТоваровУслугТовары.Ссылка.Контрагент,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт,
  | Сумма(РеализацияТоваровУслугТовары.Количество) as Quantity,
  | Сумма(РеализацияТоваровУслугТовары.СуммаПродажи) as Sales,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДСПродажи) as VAT,
  | Сумма(РеализацияТоваровУслугТовары.Себестоимсоть) as CostOfSales
  |ИЗ
  | Second КАК РеализацияТоваровУслугТовары
  |
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт";

  ТЗ = Запрос.Выполнить().Выгрузить() ;

  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.Регистратор как Ссылка,
  | 1 как Валюта,
  | 1 как Курс,
  | ХозрасчетныйДвиженияССубконто.Регистратор.Дата как Дата,
  | 1 как Контрагент,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | 0 как Курс42,
  | 0 как Курс52,
  | 0 как Курс62,
  | СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК CostOfSales
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&Дата, &Дата2, счетДт В ИЕРАРХИИ (&СчетД), , ) КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  | И ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.РегламентнаяОперация
  |
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.КоличествоДт,
  | ХозрасчетныйДвиженияССубконто.КоличествоКт";
  //Запрос.УстановитьПараметр("Дата", <Дата>); //Дата
  //Запрос.УстановитьПараметр("Дата2", <Дата2>); //Дата
  //Запрос.УстановитьПараметр("СчетД", <СчетД>); //План счетов бухгалтерского учета
  ТЗ2 = Запрос.Выполнить().Выгрузить() ;

  Result = ОбъединитьДвеТЗПоПолямПервойТЗ(ТЗ,ТЗ2);
---
Себестоимость из Документа поступления товара, сумма продажи из проводки, Цена по которой продали номенклатуру тебе не нужна.
---
FE_D_OR83, эти данные понятно легко вытащить.
(3) Dmitr033, тож нахожу на такую мысль по поводу осуществления: допустим есть поступление товаров и услуг. Там есть цена. Док поступление падает в хозрасч. регистр и почему то только некоторые доки падают в РегистрНакопления.НДСПоПриобретеннымЦенностям.ОстаткиИОбороты но там как я понял опять же нет цены по которой пришел товар.
И фишка то в чем - получается мы можем вычислить лишь среднюю цену прихода товара путем суммирования и разделения на количество и опять же СуммаОборотКт это сумма с НДС - регистр показывает только исходное кол-во в виде КоличествоОборотКт. Так??
---
Manticor, Правильно, но и это еще не все - в принципе нужно учесть и накладные расходы, кои обычно списываются на 90.8, расходы на продажу 90.7 и далее везде. Так что это сильно не просто.
---
Dmitr033, ну велика беда начала). значит в регистр хозрасчетный нужно добавить условия по счему 90.8 и 90.7- сделать через временную таблицу - такая логика??
---
Счет 90.01.1 имеет субконто Ставка НДС, так что туда попадает только выручка, причем без НДС, но сумму НДС можно вычислить в соответствии с этой ставкой.

А вообще миссия не выполнима ИМХО. Поскольку по документам реализации удастся четко определить только выручку, а вот определить себестоимость будет существенно сложней. Как минимум нужно учесть директ-костинг.
---
Собственно по какой стоимости ведётся учет ТМЦ?... розничной(продажной) или по цене приобретения?
Если по цене продажи... то сумму наценки можно выцепить из Регистра бухгалтерии с отбором по нужному документу поступления. Если по цене приобретения... то тут соответственно можно выловить сумму поступления. (при известном количестве - среднюю цену.) Так же задача упрощается если учет ведется в разрезе номенклатуры и по ФИФО.

Другой вопрос, что это немало возни...
---
Puzzle1, конфигурация Бухгалтерия 2.0 - демо версия. ПО моему там включен учет по ФИФО...
на текущий момент уже довольно много советов скопилось, а как конкретно запрос апгрейдить -с чего начать?
---
Manticor, собственно посмотрите что конкретно стоит в учетной политике на закладке "Запасы" и "Розница". В зависимости от настроек решение может быть разным. Используется ли 42 счет (торговая наценка).

P.S. Телепатическими дарованиями не обладаю... Унниверсального решения в данном случае нет.
---
я вот примерно так делал
код не оптимальный, рассчитано только на реализации и на то, что в одной реализации одного товара только одна строка

  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Номенклатура,
  | СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | СУММА(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | РеализацияТоваровУслугТовары.СтавкаНДС,
  | СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи,
  | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
  | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
  | РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов,
  | РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов,
  | РеализацияТоваровУслугТовары.Ссылка.Контрагент,
  | СУММА(РеализацияТоваровУслугТовары.Сумма * РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов) КАК СуммаПродажиРубли,
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | СУММА(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаДт) КАК ВалютнаяСуммаДт,
  | СУММА(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаКт) КАК ВалютнаяСуммаКт
  |ИЗ
  | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  | ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.Сумма <> 0
  |
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.СтавкаНДС,
  | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
  | РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
  | РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов,
  | РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов,
  | РеализацияТоваровУслугТовары.Ссылка.Контрагент,
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
---
вот чуть более продвинутый вариант того же -
тут учитывается, что одного товара в одном документе может быть больше одной строки - и подтягивается также себестоимость по корректировкам в конце месяца в табличку

  Запрос = Новый Запрос;
  Запрос.МенеджерВременныхТаблиц
               = Новый МенеджерВременныхТаблиц();

  status("wait - 6");
  Запрос.УстановитьПараметр("Дата", НачалоДня(НачПериода) ); //Date
  Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода) ); //Date

     Запрос.УстановитьПараметр("СчетД", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1") );
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | Сумма(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | Сумма(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи
  | ПОМЕСТИТЬ First_1
  |ИЗ
  | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И РеализацияТоваровУслугТовары.Ссылка.Проведен = Истина
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура";
  Запрос.Выполнить();

  status("wait - 7");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | Сумма(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть
  | ПОМЕСТИТЬ First_2
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&Дата, &Дата2, счетДт В ИЕРАРХИИ (&СчетД)) КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
  Запрос.Выполнить();

  status("wait - 8");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество КАК Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетКт
  | ПОМЕСТИТЬ First
  |ИЗ
  | First_1 КАК РеализацияТоваровУслугТовары
  | Внутреннее СОЕДИНЕНИЕ First_2 КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |";
  Запрос.Выполнить();

  status("wait - 9");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | РеализацияТоваровУслугТовары.Себестоимсоть,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт
  | ПОМЕСТИТЬ Second
  |ИЗ
  | First КАК РеализацияТоваровУслугТовары";
  Запрос.Выполнить();

  status("wait - 10");

  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка как Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента как Валюта,
  | РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов как Курс,
  | РеализацияТоваровУслугТовары.Ссылка.Дата как Дата,
  | РеализацияТоваровУслугТовары.Ссылка.Контрагент,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт,
  | Сумма(РеализацияТоваровУслугТовары.Количество) as Quantity,
  | Сумма(РеализацияТоваровУслугТовары.СуммаПродажи) as Sales,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДСПродажи) as VAT,
  | Сумма(РеализацияТоваровУслугТовары.Себестоимсоть) as CostOfSales
  |ИЗ
  | Second КАК РеализацияТоваровУслугТовары
  |
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.СчетДт,
  | РеализацияТоваровУслугТовары.СубконтоДт1,
  | РеализацияТоваровУслугТовары.СчетКт";

  ТЗ = Запрос.Выполнить().Выгрузить() ;

  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.Регистратор как Ссылка,
  | 1 как Валюта,
  | 1 как Курс,
  | ХозрасчетныйДвиженияССубконто.Регистратор.Дата как Дата,
  | 1 как Контрагент,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | 0 как Курс42,
  | 0 как Курс52,
  | 0 как Курс62,
  | СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК CostOfSales
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&Дата, &Дата2, счетДт В ИЕРАРХИИ (&СчетД), , ) КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  | И ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.РегламентнаяОперация
  |
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.КоличествоДт,
  | ХозрасчетныйДвиженияССубконто.КоличествоКт";
  //Запрос.УстановитьПараметр("Дата", <Дата>); //Дата
  //Запрос.УстановитьПараметр("Дата2", <Дата2>); //Дата
  //Запрос.УстановитьПараметр("СчетД", <СчетД>); //План счетов бухгалтерского учета
  ТЗ2 = Запрос.Выполнить().Выгрузить() ;

  Result = ОбъединитьДвеТЗПоПолямПервойТЗ(ТЗ,ТЗ2);
---
Alex_Japanese_Student, да, конечно не все так просто. Спасибо огромное ВСЕМ, реально помогли.
1. Alex_Japanese_Student, по первому запросу, который только по одной позиции это понятно.
Вы говорите что во 2 вашем запросе тянется по реализации и себестоиомсть.
А если добавить такое условие

```1c
    ИЗ
    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(&Дата, &Дата2, счетДт В ИЕРАРХИИ (&СчетД), , ) КАК ХозрасчетныйДвиженияССубконто
    ГДЕ
    ХозрасчетныйДвиженияССубконто.Период >= &Дата
    И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
    И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
    И (ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.ОтчетОРозничныхПродажах
    ИЛИ ХозрасчетныйДвиженияССубконто.Регистратор ССЫЛКА Документ.РегламентнаяОперация)
```

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

2. Почему использовали именно ХозрасчетныйДвиженияССубконто а на ХозрасчетныйОстаткиИобороты? тут нужно учесть разрез по сч Дт и сч Кт ???
3. Процент наценки от разницы между себестоимостью и суммой продажи вычислять или как еще?
4. Почему счет 90.02.1 Себестоимость продаж по деятельности с основной системой налогообложения а не 90.01.1 Выручка по деятельности с основной системой налогообложения?
---
Manticor,
Видите в чем дело - на самом деле это разные запросы для совершенно разных фирм
Первый вариант - для простой фирмы с реализациями (причем одного товара может быть только одна строка в документе)
Второй - для фирмы с реализациями и с корректировками себестоимости в конце месяца,
Третий - для фирмы с реализациями, отчетами по розничной продаже и комиссионной торговлей, причем одного товара может быть и много строчек в документе

Отсюда ответы
1. Во втором запросе не было розничных продаж - потому и не делал так (а в третьем были )
2. Мне нужно было в каких-то случаях аналитику по субконто видеть - во втором случае по контрагентам, а в третьем - по 90-му счету. Вам это не нужно, возможно
3. да, ну или пусть пользователи в эксел выгружают и считают
4. Я тут беру выручку по документу, что не есть очень грамотно, возможно - наверное правильно было бы делать так - в запрос помимо данных по счету 90.02.1 - себестоимости, делать выборку еще и по 90.01.1 - по выручке, и тогда все было бы вообще красиво. Просто в данном случае я предполагаю, что выручка на 90.01.1 не будет отличаться от сумм в документе. Что не факт - в случае ручных корректировок различия возможны, да и еще в каких-то случаях. Никак не доведу этот момент до ума, каждый раз все по другому и второпях делаешь (( .
---
а вот другой вариант - он без подтягивания себестоимости, но зато - учитывает все документы, а не только реализации

Получает три таблицы - их надо объединять

Таблица один

  Запрос.УстановитьПараметр("Дата", НачалоДня(НачПериода5) ); //Date
  Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода5) ); //Date
     Запрос.УстановитьПараметр("СчетД", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1") );
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | Сумма(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | Сумма(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи
  | ПОМЕСТИТЬ First_1
  |ИЗ
  | Документ.ОтчетОРозничныхПродажах.Товары КАК РеализацияТоваровУслугТовары
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И РеализацияТоваровУслугТовары.Ссылка.Проведен = Истина
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура";
  Запрос.Выполнить();

  status("wait - 7");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | Сумма(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть
  | ПОМЕСТИТЬ First_2
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
  Запрос.Выполнить();

  status("wait - 8");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество КАК Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетКт
  | ПОМЕСТИТЬ First
  |ИЗ
  | First_1 КАК РеализацияТоваровУслугТовары
  | Внутреннее СОЕДИНЕНИЕ First_2 КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |";
  Запрос.Выполнить();

-----------------------------------------------
Таблица два

  Запрос.УстановитьПараметр("Дата", НачалоДня(НачПериода5) ); //Date
  Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода5) ); //Date
     Запрос.УстановитьПараметр("СчетД", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1") );
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | - Сумма(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | - Сумма(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | - Сумма(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи
  | ПОМЕСТИТЬ First_1
  |ИЗ
  | Документ.ВозвратТоваровОтПокупателя.Товары КАК РеализацияТоваровУслугТовары
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И РеализацияТоваровУслугТовары.Ссылка.Проведен = Истина
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура";
  Запрос.Выполнить();

  status("wait - 7");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | Сумма(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть
  | ПОМЕСТИТЬ First_2
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
  Запрос.Выполнить();

  status("wait - 8");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество КАК Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетКт
  | ПОМЕСТИТЬ First
  |ИЗ
  | First_1 КАК РеализацияТоваровУслугТовары
  | Внутреннее СОЕДИНЕНИЕ First_2 КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |";
  Запрос.Выполнить();
-----------------------------------------------------
Таблица три

  Запрос.УстановитьПараметр("Дата", НачалоДня(НачПериода5) ); //Date
  Запрос.УстановитьПараметр("Дата2", КонецДня(КонПериода5) ); //Date
     Запрос.УстановитьПараметр("СчетД", ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1") );
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | Сумма(РеализацияТоваровУслугТовары.Количество) КАК Количество,
  | Сумма(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
  | Сумма(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи
  | ПОМЕСТИТЬ First_1
  |ИЗ
  | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  |ГДЕ
  | РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
  | И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
  | И РеализацияТоваровУслугТовары.Ссылка.Проведен = Истина
  |СГРУППИРОВАТЬ ПО
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Номенклатура";
  Запрос.Выполнить();

  status("wait - 7");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | Сумма(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть
  | ПОМЕСТИТЬ First_2
  |ИЗ
  | РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
  |ГДЕ
  | ХозрасчетныйДвиженияССубконто.Период >= &Дата
  | И ХозрасчетныйДвиженияССубконто.Период <= &Дата2
  | И ХозрасчетныйДвиженияССубконто.СчетДт = &СчетД
  |СГРУППИРОВАТЬ ПО
  | ХозрасчетныйДвиженияССубконто.Регистратор,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.СубконтоКт1,
  | ХозрасчетныйДвиженияССубконто.СчетКт";
  Запрос.Выполнить();

  status("wait - 8");
  Запрос.Текст = "
  |ВЫБРАТЬ
  | РеализацияТоваровУслугТовары.Ссылка,
  | РеализацияТоваровУслугТовары.Ссылка.Дата,
  | РеализацияТоваровУслугТовары.Номенклатура,
  | РеализацияТоваровУслугТовары.Количество КАК Количество,
  | РеализацияТоваровУслугТовары.СуммаПродажи,
  | РеализацияТоваровУслугТовары.СуммаНДСПродажи,
  | ХозрасчетныйДвиженияССубконто.СчетДт,
  | ХозрасчетныйДвиженияССубконто.СубконтоДт1,
  | ХозрасчетныйДвиженияССубконто.Себестоимсоть,
  | ХозрасчетныйДвиженияССубконто.СчетКт
  | ПОМЕСТИТЬ First
  |ИЗ
  | First_1 КАК РеализацияТоваровУслугТовары
  | Внутреннее СОЕДИНЕНИЕ First_2 КАК ХозрасчетныйДвиженияССубконто
  | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
  | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
  |";
  Запрос.Выполнить();
-------------------------------------------------------
Объединяю таблицы вот такой функцией

- код не мой, где-то стащил

//*********************************************
//*********************************************
Функция ОбъединитьДвеТЗПоПолямПервойТЗ(ТЗПриемник,ТЗИсточник,КлючевойРеквизитП=Неопределено,КлючевойРеквизитИ=Неопределено) Экспорт

 Если КлючевойРеквизитИ=Неопределено Тогда
  КлючевойРеквизитИ=КлючевойРеквизитП;
 КонецЕсли;

 Если ТЗПриемник.Колонки.Количество()>0 Тогда
  Для каждого СтрокаТЗ Из ТЗИсточник Цикл
   Если КлючевойРеквизитП = Неопределено Тогда
    НовСтрока = ТЗПриемник.Добавить();
    ЗаполнитьЗначенияСвойств(НовСтрока,СтрокаТЗ);
   Иначе
    ЕстьСтрока = ТЗПриемник.Найти(СтрокаТЗ,КлючевойРеквизитП);
    Если ЕстьСтрока = Неопределено Тогда
     НовСтрока = ТЗПриемник.Добавить();
     ЗаполнитьЗначенияСвойств(НовСтрока,СтрокаТЗ);
     НовСтрока.КлючевойРеквизитП = СтрокаТЗ.КлючевойРеквизитИ;
    КонецЕсли;
   КонецЕсли;
  КонецЦикла;
 Иначе
  ТЗПриемник = ТЗИсточник.Скопировать();
 КонецЕсли;

 Возврат ТЗПриемник;

КонецФункции //ОбъединитьДвеТЗПоПолямПервойТЗ
//*********************************************
//*********************************************
---
Вообще элементарная задача для управленческого учета и в УТ куча отчетов такого плана, а в БП просто караул - приходится извращаться чтоб прибыль по товару и контрагенту показать, и оптимального решения нету ((
---
У меня сработал вот такой вариант!!! Пробуй!!
|ВЫБРАТЬ
| РеализацияТоваровУслугТовары.Номенклатура,
| СУММА(РеализацияТоваровУслугТовары.Количество) КАК Количество,
| СУММА(РеализацияТоваровУслугТовары.Сумма) КАК СуммаПродажи,
| РеализацияТоваровУслугТовары.СтавкаНДС,
| СУММА(РеализацияТоваровУслугТовары.СуммаНДС) КАК СуммаНДСПродажи,
| РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
| РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
| РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов,
| РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов,
| РеализацияТоваровУслугТовары.Ссылка.Контрагент,
| СУММА(РеализацияТоваровУслугТовары.Сумма * РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов) КАК СуммаПродажиРубли,
 | РеализацияТоваровУслугТовары.Ссылка,
| РеализацияТоваровУслугТовары.Ссылка.Дата,
| СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Себестоимсоть,
| ХозрасчетныйДвиженияССубконто.СчетДт,
| ХозрасчетныйДвиженияССубконто.СчетКт,
| СУММА(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаДт) КАК ВалютнаяСуммаДт,
| СУММА(ХозрасчетныйДвиженияССубконто.ВалютнаяСуммаКт) КАК ВалютнаяСуммаКт
|ИЗ
| Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
 | ПО РеализацияТоваровУслугТовары.Ссылка = ХозрасчетныйДвиженияССубконто.Регистратор
 | И РеализацияТоваровУслугТовары.Номенклатура = ХозрасчетныйДвиженияССубконто.СубконтоКт1
 |ГДЕ
| РеализацияТоваровУслугТовары.Ссылка.Дата >= &Дата
| И РеализацияТоваровУслугТовары.Ссылка.Дата <= &Дата2
| И ХозрасчетныйДвиженияССубконто.Сумма <> 0
|
|СГРУППИРОВАТЬ ПО
| РеализацияТоваровУслугТовары.Номенклатура,
| РеализацияТоваровУслугТовары.СтавкаНДС,
| РеализацияТоваровУслугТовары.Ссылка.ВалютаДокумента,
| РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС,
| РеализацияТоваровУслугТовары.Ссылка.КурсВзаиморасчетов,
| РеализацияТоваровУслугТовары.Ссылка.КратностьВзаиморасчетов,
| РеализацияТоваровУслугТовары.Ссылка.Контрагент,
| РеализацияТоваровУслугТовары.Ссылка,
| РеализацияТоваровУслугТовары.Ссылка.Дата,
| ХозрасчетныйДвиженияССубконто.СчетДт,
| ХозрасчетныйДвиженияССубконто.СчетКт";