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

Автор Тема: Динамика Цен  (Прочитано 1241 раз)

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

Оффлайн gliokker

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

СГРУППИРОВАТЬ ПО
   ЗакупкиОбороты.Номенклатура,
   ЗакупкиОбороты.Контрагент,
   ЗакупкиОбороты.Период,
   ЗакупкиОбороты.СтоимостьОборот / ЗакупкиОбороты.КоличествоОборот
Вот запрос, думал найти МаксЦену и МинЦену потом их сравнить, не получилось не сравниваются.
"Управление торговлей", редакция 10.3 (10.3.32.2)


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Динамика Цен
« Ответ #1: 01 Сен 2015, 12:40 »
Ключевое слово "Различные".
ВЫБРАТЬ РАЗЛИЧНЫЕ

Оффлайн gliokker

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Re: Динамика Цен
« Ответ #2: 01 Сен 2015, 13:00 »
Ключевое слово "Различные".
ВЫБРАТЬ РАЗЛИЧНЫЕ
Нет это работать не будет.

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Re: Динамика Цен
« Ответ #3: 01 Сен 2015, 16:23 »
Какие именно цены, у вас целых три.
Добавлено: 01 Сен 2015, 16:26

В случае повтора цен какой период выводить?
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн gliokker

  • ***
  • Сообщений: 231
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Re: Динамика Цен
« Ответ #4: 01 Сен 2015, 17:37 »
Какие именно цены, у вас целых три.
Добавлено: 01 Сен 2015, 16:26

В случае повтора цен какой период выводить?
Всё уже сделал спасибо,кому интересно.
Сделал второй набор данный (объект) при компоновке результата написал маленький кодик, и вуаля всё работает
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь; // отключаем стандартный вывод отчета - будем выводить программно
НачДата = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("НачалоПериода").Значение;
КонДата = КомпоновщикНастроек.ПолучитьНастройки().ПараметрыДанных.Элементы.Найти("КонецПериода").Значение;

    ТЗ = Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номенклатура");
ТЗ.Колонки.Добавить("Контрагент");

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗакупкиОбороты.Контрагент КАК Контрагент,
| ЗакупкиОбороты.Номенклатура КАК Номенклатура,
| ЗакупкиОбороты.Период КАК Период,
|   ЗакупкиОбороты.КоличествоОборот,
|   ЗакупкиОбороты.СтоимостьОборот
|ИЗ
| РегистрНакопления.Закупки.Обороты(&НачалоПериода, &КонецПериода, День, ) КАК ЗакупкиОбороты
|УПОРЯДОЧИТЬ ПО
| Контрагент,
| Номенклатура,
| Период
|ИТОГИ
| СУММА(СтоимостьОборот),
| СУММА(КоличествоОборот)
|ПО
| Контрагент,
| Номенклатура,
| Период
|" ;

Запрос.УстановитьПараметр("НачалоПериода", НачалоДня(НачДата));
Запрос.УстановитьПараметр("КонецПериода", КонецДня(КонДата));

Результат = Запрос.Выполнить();
ВыборкаКонтрагента = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Контрагент");
Пока ВыборкаКонтрагента.Следующий() Цикл
Контрагент = ВыборкаКонтрагента.Контрагент;
ВыборкаНоменклатуры = ВыборкаКонтрагента.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Номенклатура");
    Пока ВыборкаНоменклатуры.Следующий() Цикл
Номенклатура = ВыборкаНоменклатуры.Номенклатура;
СуммаЦен=0;
КоличествоЦен=0;
ВыборкаПериода = ВыборкаНоменклатуры.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Период");
    Пока ВыборкаПериода.Следующий() Цикл
СтоимостьОборот = ВыборкаПериода.СтоимостьОборот;
КоличествоОборот = ВыборкаПериода.КоличествоОборот;
Цена = СтоимостьОборот/КоличествоОборот;
ТЗ_ВТ = Новый ТаблицаЗначений;
ТЗ_ВТ.Колонки.Добавить("Цена");                                            
Стр = ТЗ_ВТ.Добавить();
Стр.Цена = Цена;
СуммаЦен=СуммаЦен+Цена;
КоличествоЦен=КоличествоЦен+1;
КонецЦикла;  //Цикл периода

СредняяЦена=СуммаЦен/КоличествоЦен;
Если СредняяЦена<>Цена Тогда
Ряд = ТЗ.Добавить();
Ряд.Контрагент = Контрагент;
Ряд.Номенклатура = Номенклатура;

КонецЕсли;
  КонецЦикла; //Цикл номенклатуры
КонецЦикла; //Цикл контрагентов

ТЗ.Свернуть("Контрагент,Номенклатура",);
ТЗ.Сортировать("Контрагент,Номенклатура",);

ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗ",ТЗ);

Настройки = КомпоновщикНастроек.ПолучитьНастройки(); // Получаем настройки отчета

ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных; // Создаем данные расшифровки
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; // Создаем компоновщик макета
// Инициализируем макет компоновки используя схему компоновки данных
// и созданные ранее настройки и данные расшифровки
СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

// Скомпонуем результат
ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;// Передаем таблицу ТЗ в процессор компоновки
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки);

ДокументРезультат.Очистить();

// Выводим результат в табличный документ
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
ПроцессорВывода.Вывести(ПроцессорКомпоновки);

ДокументРезультат.ПолеСверху = 20;
ДокументРезультат.ПолеСнизу = 20;
//ДокументРезультат.ПолеСлева = 10;
//ДокументРезультат.ПолеСправа = 2;
ДокументРезультат.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
ДокументРезультат.НижнийКолонтитул.Выводить = Истина;
ДокументРезультат.НижнийКолонтитул.ТекстСлева = ТекущаяДата();
ДокументРезультат.НижнийКолонтитул.ТекстСправа = ИмяПользователя();
ДокументРезультат.ВерхнийКолонтитул.Выводить = Истина;
ДокументРезультат.ВерхнийКолонтитул.ТекстСлева = Справочники.Организации.НайтиПоКоду("УТ0000001");
ДокументРезультат.ВерхнийКолонтитул.ТекстСправа = "стр. [&НомерСтраницы] из [&СтраницВсего]";

КоличествоОтборов = ЭтотОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Количество();
ИспользуемыеОтборыЕсть = "Нет";
Если КоличествоОтборов > 0 Тогда
Для К = 1 По КоличествоОтборов Цикл
Если ЭтотОбъект.КомпоновщикНастроек.Настройки.Отбор.Элементы.Получить(К - 1).Использование = Истина Тогда
ИспользуемыеОтборыЕсть = "Да";
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если ИспользуемыеОтборыЕсть = "Да" Тогда
ДокументРезультат.ПовторятьПриПечатиСтроки = ДокументРезультат.Область("R8:R9");
ДокументРезультат.ФиксацияСверху = 9;
Иначе
ДокументРезультат.ПовторятьПриПечатиСтроки = ДокументРезультат.Область("R7:R8");
ДокументРезультат.ФиксацияСверху = 8;
КонецЕсли;


КонецПроцедуры


Последний раз редактировалось: Klyacksa; 02 Сен 2015, 11:55. Причина: Используйте, пожалуйста, тег КОД

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Re: Динамика Цен
« Ответ #5: 01 Сен 2015, 18:03 »
Мисье знает толк в извращениях.
Вашу бы энергию да на написание запроса - цены б вам не было.


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
171 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal