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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
95 Сообщений
wise wise
76 Сообщений
MuI_I_Ika MuI_I_Ika
56 Сообщений
alex0402
49 Сообщений
Dethmontt Dethmontt
48 Сообщений
ilyay ilyay
29 Сообщений
Сергей Федоров Сергей Федоров
29 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal