Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 12:04

Отчет выручка по группам номенклатуры

Автор Арманкессилон, 20 июл 2011, 14:45

0 Пользователей и 1 гость просматривают эту тему.

Арманкессилон

Требуется составить такой отчет:
ЦитироватьВыручка и НДС

Исходная конфигурация: «Бухгалтерия предприятия» ред. 2.0

Необходимо написать отчет, который должен анализировать выручку в разрезе номенклатурных групп.

Исходные данные для отчета:
● Начало периода
● Конец периода

Таблица с результатом отчета:

Номенклатурная группа Сумма выручки Сумма НДС Сумма без НДС
Ном. Группа 1 1100 100 1000
Ном. Группа 2 1180 180 1000
ИТОГО: 2280 280 2000

Сумма выручки = кредитовый оборот счета 90.01.1
Сумма НДС = дебетовый оборот счета 90.03
Сумма без НДС = Сумма выручки – Себестоимость НДС
Номенклатурная группа – субконто1 счетов 90.01.1 и 90.03

Отчет необходимо реализовать как с использованием системы компоновки данных, так и с программным выводом отчета в табличный документ (используя макет).

1. Создал 2 номенклатурные группы и заполнил в справочнике  товарами
2. Оформил закупку этими товарами (на сумму, как указано в задании, чтобы проще проверять было)
3. Оформил продажу этих товаров на ту же сумму и с тем же НДС, что указан в примере.
4. Создал отчет, выбрал следующие поля:
-ХозрасчетныйОбороты.Субконто1, псевдоним НоменклатурныеГруппы
-ХозрасчетныйОбороты.СуммаОборотДт, псевдоним СуммаНДС
-ХозрасчетныйОбороты.СуммаОборотКт, псевдоним СуммаВыручки
ВЫБРАТЬ
ХозрасчетныйОбороты.Субконто1 КАК НоменклатурныеГруппы,
ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаНДС,
ХозрасчетныйОбороты.СуммаОборотКт КАК СуммаВыручки
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты


5. В СКД создал вычисляемое поле СуммаБезНДС, с формулой СуммаВыручки-СуммаНДС
6. Создал группировку <детальные записи>
7. В ресурсы перекинул все поля

В результате в поле субконто1 попадает куча лишней информации и данные группируются как-то не так. Пробовал по разному делать, вместо детальных записей делал группировку по НоменклатурныеГруппы.НоменклатурнаяГруппа. Так вроде бы получается нужная структура отчета, но цифры какие-то не такие получаются.
В общем, я запутался, в 1С новичок, учебный курс прошел, но в голове какая-то каша :). Прошу помочь доделать отчет, указать на ошибки, где я упустил что-то.


Андрей Федотов

А какие данные вы ввели в ХозРасчетный?
Группировка по НоменклатурныеГруппы.НоменклатурнаяГруппа нужна в запросе, это точно
С уважением,
Андрей Федотов
Future IT Solutions

Арманкессилон

Я лучше скринами покажу что я вводил (на название контрагентов просьба не обращать внимания, это от нервов))).

1. Это покупка
http://img811.imageshack.us/img811/2303/buyi.jpg

Арманкессилон


Арманкессилон


3. В отчете вот что получилось
http://img847.imageshack.us/img847/8640/repe.jpg

Дрова принадлежат к первой группе, стекло ко второй

Извиняюсь, что несколько сообщений, форум не дает несколько ссылок сразу вставить

Андрей Федотов

Покажите скриншот "Хозрасчетный" и процедуру ОбработкаПроведения() документа "ПоступлениеТоваровИУслуг"
С уважением,
Андрей Федотов
Future IT Solutions

Андрей Федотов

Прошу прощения РеализацияТоваровИУслуг.
С уважением,
Андрей Федотов
Future IT Solutions

Арманкессилон

Я там по сравнению с типовой конфигурацией ничего не менял.
Вот код обработки реализации товаров.

Процедура ОбработкаПроведения(Отказ, РежимПроведения)

Перем СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам;

// Заголовок для сообщений об ошибках проведения.
Заголовок = "Проведение документа """ + СокрЛП(Ссылка) + """: ";

// Проверка ручной корректировки
Если ОбщегоНазначения.РучнаяКорректировкаОбработкаПроведения(РучнаяКорректировка,Отказ,Заголовок,ЭтотОбъект) Тогда
Возврат
КонецЕсли;

    ПодготовитьСтруктуруШапкиДокумента(Заголовок, СтруктураШапкиДокумента, Отказ);

// Проверим правильность заполнения шапки документа
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);

ПодготовитьТаблицыДокумента(СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре, ТаблицаПоУслугам);

// Проверить заполнение ТЧ .
ПроверитьЗаполнениеТабличнойЧастиТовары(ТаблицаПоТоварам,      СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиУслуги(ТаблицаПоУслугам,      СтруктураШапкиДокумента, Отказ, Заголовок);
ПроверитьЗаполнениеТабличнойЧастиВозвратнаяТара(ТаблицаПоТаре, СтруктураШапкиДокумента, Отказ, Заголовок);

// Проверим на возможность проведения в БУ и НУ
УправлениеВзаиморасчетами.ПроверкаВозможностиПроведенияВ_БУ_НУ(СтруктураШапкиДокумента, СтруктураШапкиДокумента.ДоговорКонтрагента, Отказ, Заголовок);

// Движения по документу
Если Не Отказ Тогда

ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоТоварам, ТаблицаПоТаре,
ТаблицаПоУслугам, Отказ, Заголовок);

КонецЕсли;

КонецПроцедуры // ОбработкаПроведения()



А где Хозрасчетный смотреть? А то я не в курсе  :nhsrm:

Арманкессилон

Все, нашел Хозрасчетный

Процедура ПередЗаписью(Отказ, РежимЗаписи)

Если Отказ Тогда
Возврат;
КонецЕсли;

Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;

Если Количество()>0 Тогда
    Заголовок = СокрЛП(ЭтотОбъект.Отбор.Регистратор.Значение);
Иначе
Возврат;
КонецЕсли;

ВидыСоставныхСубконто = новый соответствие;

Для Каждого Проводка Из ЭтотОбъект Цикл

Если НЕ ЗначениеЗаполнено(Проводка.СчетДт) И НЕ Проводка.СчетКт.Забалансовый Тогда
ОбщегоНазначения.СообщитьОбОшибке("Проводка № "+(Проводка.НомерСтроки+1) +" <"+Проводка.Содержание+">: не заполнен счет дебета.",Отказ,Заголовок);
КонецЕсли;

Если НЕ ЗначениеЗаполнено(Проводка.СчетКт) И НЕ Проводка.СчетДт.Забалансовый Тогда
ОбщегоНазначения.СообщитьОбОшибке("Проводка № "+(Проводка.НомерСтроки+1) +" <"+Проводка.Содержание+">: не заполнен счет кредита.",Отказ,Заголовок);
КонецЕсли;

// Приведение пустых значений субконто составного типа.
Для Каждого Субконто Из Проводка.СубконтоДт Цикл
Составной = ВидыСоставныхСубконто.Получить(Субконто.Ключ);          //
Если Составной=неопределено Тогда                                   // 
Составной = Субконто.Ключ.ТипЗначения.Типы().Количество() > 1;  // Кэширование: вид субконто + признак Состовной
ВидыСоставныхСубконто.Вставить(Субконто.Ключ,Составной);        //
КонецЕсли;                                                          //
Если Составной
И НЕ ЗначениеЗаполнено(Субконто.Значение)
И НЕ (Субконто.Значение = Неопределено) Тогда
Проводка.СубконтоДт.Вставить(Субконто.Ключ, Неопределено);
КонецЕсли;
КонецЦикла;

Все, что там было

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск