Snouphruh
Newbie | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору NJKNaZ мой совет тебе: 1. удали из своего документа эти 2 булевых значения «плитка» и «доска». 2. создай перечисление «ВидыМатериалаНоменклатуры» и добавь 2 значения в это перечисление «Плитка» и «Доска». 3. в справочник «Номенклатура» добавь реквизит «ВидМатериала», указав тип данного реквизита «ПеречислениеСсылка.ВидыМатериалаНоменклатуры». 4. создай регистр накопления «Продажи», задав его вид «Обороты». 4.1. добавь в этот регистр измерение «Контрагент», указав тип данного измерения «СправочникСсылка.Контрагенты». 4.2. добавь в этот регистр ресурсы «Количество», указав у типа данного ресурса длину 15 и точность; и ресурс «Стоимость», указав у типа данного ресурса длину 15 и точность 2. 5. в свой документ добавь реквизит «Контрагент», указав тип данного реквизита «СправочникСсылка.Контрагенты». 6. в свой документ добавь табличную часть «Товары». 6.1. добавь в табличную часть реквизиты «Номенклатура», указав тип данного реквизита «СправочникСсылка.Номенклатура»; реквизит «Количество», указав тип данного реквизита «Число» с длиной 15 и точностью 3; реквизит «Цена», указав тип данного реквизита «Число» с длиной 15 и точностью 2; и реквизит «Стоимость», указав тип данного реквизита «Число» с длиной 15 и точностью 2. 7. в модуле своего документа напиши код, который будет осуществлять движения данного документа по регистру накопления «Продажи». 8. создай необходимый тебе отчЁт, который будет работать тока с этим регистром, а не с твоими документами! вот текст запроса: ------------------ ВЫБРАТЬ Контрагент, Номенклатура, Номенклатура.ВидМатериала, КоличествоОборот КАК Количество, СтоимостьОборот КАК Стоимость ИЗ РегистрНакопления.Продажи.Обороты (&дтНачалоПериода, &дтКонецПериода, Месяц, Контрагент = &спрслкКонтрагент) ИТОГИ СУММА (Количество), СУММА (Стоимость) ПО Контрагент, Номенклатура -------------- вот код обработки запроса: --------------------------- мктОтчёт = ПолучитьМакет ("Отчёт"); облКонтрагент = мктОтчёт.ПолучитьОбласть ("Контрагент"); облНоменклатура = мктОтчёт.ПолучитьОбласть ("Номенклатура"); зпрТовары = Новый Запрос; зпрТовары.Текст = "..."; // текст запроса зпрТовары.УстановитьПараметр ("дтНачалоПериода", НачалоДня (ДатаНачала)); зпрТовары.УстановитьПараметр ("дтКонецПериода", КонецДня (ДатаКонца)); зпрТовары.УстановитьПараметр ("спрслкКонтрагент", Контрагент); // реквизит документа табОтчёт.НачатьАвтогруппировкуСтрок (); выбзпрКонтрагенты = зпрТовары.Выполнить ().Выбрать (ОбходРезультатаЗапроса.ПоГруппировкам); Пока выбзпрКонтрагенты.Следующий () Цикл облКонтрагент.Параметры.Заполнить (выбзпрКонтрагенты); табОтчёт.Вывести (облКонтрагент, выбзпрКонтрагенты.Уровень ()); выбзпрНоменклатура = выбзпрКонтрагенты.Выбрать (ОбходРезультатаЗапроса.ПоГруппировкам); Пока выбзпрНоменклатура.Следующий () Цикл облНоменклатура.Параметры.Заполнить (выбзпрНоменклатура); табОтчёт.Вывести (облНоменклатура, выбзпрНоменклатура.Уровень ()); КонецЦикла; КонецЦикла; табОтчёт.ЗакончитьАвтогруппировкуСтрок (); --------------------------- |