7.7 Подсчет продаж за период

Тема в разделе "Отчеты и обработки для "1С:Предприятие 7.7"", создана пользователем x0x0chu, 21 июл 2009.

  1. TopicStarter Overlay
    x0x0chu
    Offline

    x0x0chu

    Регистрация:
    2 апр 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    Добрый день!
    У меня стоит задача - выводит отчет о продажах определенных групп товаров за указываемый период.
    Работаю в 1С ТиС 9.2 , использую регистр Продажи.
    Сумму продажи выводит правильную, а вот из огромного количества проданных наименований выодится только одно.
    Прошу помочь решить мне эту проблему.
    Запрос к регистру продаж выглядит так:

    Код:
    ТекстЗапроса=
    "//{{ЗАПРОС(Сформировать1)
    |Период С НачДата по КонДата;
    |ПродСтоимость = Регистр.Продажи.ПродСтоимость; 
    |Товар = Регистр.Продажи.Номенклатура;
    |Родитель = Регистр.Продажи.Номенклатура.Родитель;
    |Кол = Регистр.Продажи.Количество;
    |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
    |Группировка Родитель;
    |//}}ЗАПРОС";
    
    
    обработка запроса происходит следующим образом:

    Код:
    Пока Запрос.Группировка("Родитель")=1 Цикл                  
    Если Строка(ПолучитьРодителя_1_Уровня(Запрос.Товар))="МЯЧИ" Тогда
    Ном1=Ном1+1;
    НаимМячи=Строка(Запрос.Товар);
    МячСум=Запрос.ПродСтоимостьСумма;
    МячКол=Запрос.Кол; 
    МячСумКол=МячСумКол+МячКол;
    ИтогСумМяч=ИтогСумМяч+МячСум;
    Таб.ПрисоединитьСекцию("Мячи");	 
    КонецЕсли;
    КонецЦикла;
    
    Таб.ПрисоединитьСекцию("ИтогМячи");
    
    
  2. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    1)Открой страшную тайну - чем не устраивает стандартный отчет о продажах в ТиС)))))

    2) Родитель = Регистр.Продажи.Номенклатура.Родитель - ведь это не обязательно родитель первого по которому ты группируешь уровня....

    Сделай проще
    Код:
    ТЗ=СоздатьОбъект("ТаблицаЗначений");
    Запрос.Выгрузить(ТЗ,1,0);
    ТЗ.ВыбратьСтроку()
    
    
    И все сразу станет тебе понятно
  3. TopicStarter Overlay
    x0x0chu
    Offline

    x0x0chu

    Регистрация:
    2 апр 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    1) В ответ раскрою на твою тайну расскажу свою - стандартный начальству не нравится!
    Так что приходится делать свой вариант.

    2) Для получения родителя первого уровня у меня есть одноименная процедура, я ее трассировал, она правильно работает =)
    Твой вариант с таблицей значений сейчас пробую, посмотрим как получится.
  4. TopicStarter Overlay
    x0x0chu
    Offline

    x0x0chu

    Регистрация:
    2 апр 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    2Бухгалтерский угодник: попробовал выгрузку в ТЗ - работает! но отчасти :-(
    выводит название почему-то всего 1 товара, а сумму для всех.
    мне вот непонятно почему?!!! (если что - код я приводил выше)
  5. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
    Я тебе уже намекал - убери родитея из запроса (ты же группируешь ПО РОДИТЕЛЮ). Группируй по товару, а с родителями разберешься опосля
  6. TopicStarter Overlay
    x0x0chu
    Offline

    x0x0chu

    Регистрация:
    2 апр 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    А я убрал!!!
    Я ж написал что сделал так, как ты посоветовал
  7. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.523
    Симпатии:
    407
    Баллы:
    104
  8. Andrus_
    Offline

    Andrus_

    Регистрация:
    21 июл 2009
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Код:
    ТекстЗапроса=
    "//{{ЗАПРОС(Сформировать1)
    |Период С НачДата по КонДата;
    |ПродСтоимость = Регистр.Продажи.ПродСтоимость; 
    |Товар = Регистр.Продажи.Номенклатура;
    |Родитель = Регистр.Продажи.Номенклатура.Родитель;
    |Кол = Регистр.Продажи.Количество;
    |Функция ПродСтоимостьСумма = Сумма(ПродСтоимость);
    |Группировка Родитель;
    |Группировка Товар;
    |//}}ЗАПРОС";
    
    
    Пока Запрос.Группировка("Родитель")=1 Цикл
    Пока  Запрос.Группировка("Товар")=1 Цикл
    Если Строка(ПолучитьРодителя_1_Уровня(Запрос.Товар))="МЯЧИ" Тогда
    Ном1=Ном1+1;
    НаимМячи=Строка(Запрос.Товар);
    МячСум=Запрос.ПродСтоимостьСумма;
    МячКол=Запрос.Кол; 
    МячСумКол=МячСумКол+МячКол;
    ИтогСумМяч=ИтогСумМяч+МячСум;
    Таб.ПрисоединитьСекцию("Мячи");	 
    КонецЕсли;
    КонецЦикла;
    Таб.ПрисоединитьСекцию("ИтогМячи");
    КонецЦикла;
    Таб.ПрисоединитьСекцию("ИтогВсе");
    
    
    Вот то что тебе надо если я правильно понял суть вопроса
  9. TopicStarter Overlay
    x0x0chu
    Offline

    x0x0chu

    Регистрация:
    2 апр 2009
    Сообщения:
    41
    Симпатии:
    0
    Баллы:
    1
    2Andrus_ похоже что заработало! Спасибо за помощь!

Поделиться этой страницей