Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Авг 2017, 07:40
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: АВС анализ по складам  (Прочитано 721 раз)

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

Оффлайн gliokker

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Всем привет, подскажите что у меня не так, мне нужно сделать АВС анализ по складам, склад у меня выступает в роли подразделения.
СтандартнаяОбработка = Ложь; // отключаем стандартный вывод отчета - будем выводить программно
      
   НачДата = НачалоДня(КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение);
   КонДата = КонецДня(КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("КонецПериода").Значение);
   ГСМ = Справочники.Номенклатура.НайтиПоКоду("УТ000000287");
   КоличествоДней = Окр((НачалоДня(КонДата) - НачалоДня(НачДата))/86400, 0) + 1;
   
   ТЗ = Новый ТаблицаЗначений;
      
   ТЗ.Колонки.Добавить("ГруппаАВС");
   ТЗ.Колонки.Добавить("Подразделение");
   ТЗ.Колонки.Добавить("ЦеноваяГруппа");
   ТЗ.Колонки.Добавить("Номенклатура");
   ТЗ.Колонки.Добавить("Стоимость");
   ТЗ.Колонки.Добавить("Доля");
   ТЗ.Колонки.Добавить("ДоляНарастающимПроцентом");
   ТЗ.Колонки.Добавить("СреднедневныеПродажи");
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ПродажиОбороты.Номенклатура КАК Номенклатура,
      |   ПродажиОбороты.Подразделение КАК Подразделение,
      |   СУММА(ПродажиОбороты.СтоимостьБезСкидокОборот) КАК Стоимость
      |ИЗ
      |   РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, Авто, ) КАК ПродажиОбороты
      |ГДЕ
      |   НЕ ПродажиОбороты.Номенклатура В ИЕРАРХИИ (&Номенклатура)
      |
      |СГРУППИРОВАТЬ ПО
      |   ПродажиОбороты.Подразделение,
      |   ПродажиОбороты.Номенклатура
      |
      |УПОРЯДОЧИТЬ ПО
      |   Подразделение,
      |   Стоимость УБЫВ
      |ИТОГИ
      |   СУММА(Стоимость)
      |ПО
      |   ОБЩИЕ,
      |   Подразделение,
      |   Номенклатура";
      
   Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачДата));
   Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонДата));
   Запрос.УстановитьПараметр("Номенклатура", ГСМ);

   РезультатЗапроса = Запрос.Выполнить();
   ВыборкаОбщийИтог = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОБЩИЕ");

   ВыборкаОбщийИтог.Следующий();      // Общий итог
   
   ВыборкаПодразделение = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Подразделение");

   Пока ВыборкаПодразделение.Следующий() Цикл
      Подразделение = ВыборкаПодразделение.Подразделение;
      СтоимостьПоПодразделению = ВыборкаПодразделение.Стоимость;

      ВыборкаНоменклатура = ВыборкаПодразделение.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
      ДоляНарастающимПроцентом = 0;
      Пока ВыборкаНоменклатура.Следующий() Цикл
         Номенклатура = ВыборкаНоменклатура.Номенклатура;
         ЦеноваяГруппа = ВыборкаНоменклатура.Номенклатура.ЦеноваяГруппа;
         СтоимостьПоНоменклатуре = ВыборкаНоменклатура.Стоимость;
         
         Доля = СтоимостьПоНоменклатуре/СтоимостьПоПодразделению*100;
         ДоляНарастающимПроцентом = ДоляНарастающимПроцентом + Доля;
         
         Если ДоляНарастающимПроцентом < 80 Тогда
            ГруппаАВС = "Группа товаров А";
         ИначеЕсли ДоляНарастающимПроцентом >= 80 И ДоляНарастающимПроцентом < 95 Тогда
            ГруппаАВС = "Группа товаров В";
         ИначеЕсли ДоляНарастающимПроцентом >= 95 Тогда
            ГруппаАВС = "Группа товаров С";
         КонецЕсли;
         
         СреднедневныеПродажи = СтоимостьПоНоменклатуре/КоличествоДней;
         
         // Запись в ТЗ
         Стр = ТЗ.Добавить();
               
         Стр.ГруппаАВС = ГруппаАВС;
         Стр.Подразделение = Подразделение;
         Стр.ЦеноваяГруппа = ЦеноваяГруппа;
         Стр.Номенклатура = Номенклатура;
         Стр.СреднедневныеПродажи = СреднедневныеПродажи;
         Стр.Стоимость = СтоимостьПоНоменклатуре;
         Стр.Доля = Доля;
         Стр.ДоляНарастающимПроцентом = ДоляНарастающимПроцентом;


Оффлайн gliokker

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Не одного ответа не получил, ну да ладно, всё получилось всё работает вопрос появился другой.
Мне нужно исключить из выборки документ ЧекККМ
в запросе в выражении ГДЕ пишу
ТИПЗНАЧЕНИЯ(ТоварыВРозницеОстаткиИОбороты.Регистратор) <> ТИП(Документ.ЧекККМ)
всё правильно отбирает но очень долго работает минут 10
Переписал на
НЕ ТИПЗНАЧЕНИЯ(ТоварыВРозницеОстаткиИОбороты.Регистратор) = ТИП(Документ.ЧекККМ)
работает быстро порядка 1-2 минут но в отчёт попадают не правильные данные
может есть у кого идеи как выкинуть документ?

Оффлайн vitasw

  • *****
  • Сообщений: 2546
  • РЕПУТАЦИЯ: 309
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ссылка


Теги:
 

Как вызвать "Анализ субконто" из справочника "Контрагенты"

Автор EnigManРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 6146
Последний ответ 06 Фев 2012, 10:46
от cska-fanat-kz
Отчет "Динамика закупок" ("Анализ себестоимости товаров") в Управлении Торговлей 11

Автор GunnerРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 1656
Последний ответ 19 Фев 2016, 10:24
от Надеждда
Анализ данных "общая статистика"

Автор FenlouРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1583
Последний ответ 15 Мар 2015, 11:58
от Fenlou
Отчёт "Анализ заказов". Как сделать по группам?

Автор WillРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1673
Последний ответ 01 Май 2011, 22:49
от Will
Изменить отчет "Анализ заказов Покупателей"

Автор ConstantusРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 0
Просмотров: 1106
Последний ответ 21 Сен 2015, 08:48
от Constantus

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

oleg-x
127 Сообщений
alex0402
55 Сообщений
AIFrame
38 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
pavl_vs
26 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
26 Сообщений
Kironten
24 Сообщений
Александр Лахтин Александр Лахтин
18 Сообщений
magnifico61
16 Сообщений
BuhRust
15 Сообщений

* Кто онлайн

  • Точка Гостей: 442
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal