Задача

Новая тема
Добрый день!
Помогите, пожалуйста.

Розничная фирма с сетью торговых точек ведет бухгалтерский учет в нетиповой конфигурации на платформе «1С:Предприятие 8» в течение десяти лет. Каждая торговая точка ведет учет в своей информационной базе, в которой содержатся проводки за весь период ведения учета. Ежедневно информация о дневной выручке торговой точки отражается проводками следующей структуры (по каждому товару):

Дт счета 50 «Касса» Кт счета 90 «Продажи» Сумма выручки

Для этого на счете 90 ведется аналитический учет в разрезе товаров. В каждой торговой точке – не более 100 наименований товаров.
Основная цель ведения учета для фирмы – анализ выполнения
утвержденного плана по получению выручки от продаж.

Учет ведется в конфигурации, в состав которой входят:
− план счетов бухгалтерского учета, содержащий два счета – 50 «Касса» (активный) и 90 «Продажи» (активно-пассивный);
− регистр бухгалтерии с набором бухгалтерских проводок за период с 01.03.2016 г. по 31.05.2016 г. Каждая проводка содержит корреспонденцию в дебет счета 50 и кредит счета 90 на сумму продаж за соответствующий день по каждому товару. Другие проводки в информационной базе отсутствуют;
− справочник Товар с пятью наименованиями товаров. Имеется возможность для тестирования вводить дополнительные товары;
− документ Ввод данных для ввода проводок при ведении учета, для тестирования программы. Документ генерирует проводки за каждый день в течение заданного периода по всем товарам, содержащимся в справочнике Товар.

Нужно создать отчет который на основе анализа проводок в информационной базе за заданный период ведения учета в торговой точке определяет максимальный непрерывный отрезок (в днях), в течение которого торговая точка выполняла план по выручке. Принимаются следующие допущения:
1. Дневной план выполнен, если полученная выручка больше
или равна планового показателя.
2. В базе представлены данные за каждый торговый день, но если данные о выручке за какую-то дату или период отсутствуют, то эти дни не считаются торговыми днями и не нарушают непрерывность периода выполнения плана по выручке.
Период, за который производится анализ данных информационной базы, и плановая величина выручки должны вводиться в параметры отчета. Необходимо, чтобы по умолчанию устанавливался период с 01.03.2016 г. по 31.05.2016 г., а плановая величина выручки – 19 000 руб.


Пытаюсь сделать, понять как работает. Но ничего не выходит. Вот максимум который смог сделать, да и тот не работает. Помогите, пожалуйста. Хочу узнать, как это реализовать.
Ответили: пост #2
Ответ на пост №1
Александр Шевченко, а зачем срез итогов стоит как неделя? А план при этом дневной? А вообще наверное рано еще на работу устраиваться.
Изменил, но все равно не работает
Ответили: пост #4
Ответ на пост №3
Александр Шевченко, там одним запросом не обойтись, сначала надо выбрать данные по дневной выручке, потом анализировать выполняется план или нет, а уже потом выводить максимальный период.
Prikum, Пытаюсь сделать программно. Создал в отчете форму и добавил кнопку.
Получился следующий код
[code]&НаСервере
Процедура Сформировать()
      Запрос = Новый Запрос;
      План = 19000;
      Запрос.Текст =
            "ВЫБРАТЬ
            |      ВложенныйЗапрос.Период,
            |      ВложенныйЗапрос.Сумма
            |ИЗ
            |      (ВЫБРАТЬ
            |            ВложенныйЗапрос.Период КАК Период,
            |            ВложенныйЗапрос.Сумма КАК Сумма
            |      ИЗ
            |            (ВЫБРАТЬ
            |                  РегистрБухгалтерии.Период КАК Период,
            |                  СУММА(РегистрБухгалтерии.Сумма) КАК Сумма
            |            ИЗ
            |                  РегистрБухгалтерии.РегистрБухгалтерии КАК РегистрБухгалтерии
            |            
            |            СГРУППИРОВАТЬ ПО
            |                  РегистрБухгалтерии.Период) КАК ВложенныйЗапрос
            |      ГДЕ
            |            ВложенныйЗапрос.Сумма >= &План) КАК ВложенныйЗапрос";
      
      Запрос.УстановитьПараметр("План", План);
      РезультатЗапроса = Запрос.Выполнить();
      ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
      
//      Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            // Вставить обработку выборки ВыборкаДетальныеЗаписи
//      КонецЦикла;
      
КонецПроцедуры


&НаКлиенте
Процедура Команда1(Команда)
      Сформировать();      
КонецПроцедуры
[/code]

Как мне теперь посмотреть что у меня получилось? При нажатии на кнопку отчет не формируется. Как его сформировать?
Немного переделал, но результат запроса пустой получается. Помогите, пожалуйста

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

Быстрый переход