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

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

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

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


Теги:
 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
169 Сообщений
MuI_I_Ika MuI_I_Ika
87 Сообщений
oleg-x
71 Сообщений
ilyay ilyay
68 Сообщений
alex0402
62 Сообщений
Dmitry Qwe Dmitry Qwe
32 Сообщений
Sy4a
24 Сообщений
Golickoff Golickoff
24 Сообщений
Dima Dddd Dima Dddd
20 Сообщений
BuhRust
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal