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

Автор Тема: 1С Розница для Беларуси 2.1.6.1. РЕШЕНИЕ ПРОБЛЕМЫ с накопительными скидками за весь период  (Прочитано 373 раз)

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

Оффлайн CARtMEN

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-03
  • Сайт: 
  • Профессия: Программист 8.1
У клиента установлена Розница для Беларуси 2.1.6.1.
Поставили задачу сделать накопительные скидки по дисконтным картам за весь период. И было замечено, что срабатывает только самый низкий порог не смотря на накопления.

В общем пришлось перелопатить код. А оказалось все до боли банально. Какой-то программист не смог правильно посчитать количество таблиц в запросе.

В общем модуле "СкидкиНаценкиСервер" есть функция "ТекстЗапросаСкидкаЗаНакопленныйОбъемПродажПоДисконтнойКартеЗаПериод". В коде я пометил места ошибок строкой "//%".
Функция ТекстЗапросаСкидкаЗаНакопленныйОбъемПродажПоДисконтнойКартеЗаПериод(ПакетЗапросов, УсловиеПредоставления, ДатаНачала, ДатаОкончания)

Сегмент = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(УсловиеПредоставления, "СегментНоменклатурыОграничения");

Если ЗначениеЗаполнено(Сегмент) Тогда

ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| НоменклатураСегмента.Номенклатура КАК Номенклатура,
| НоменклатураСегмента.Характеристика КАК Характеристика
|ПОМЕСТИТЬ НоменклатураСегментаВДанномЗапросе
|ИЗ
| РегистрСведений.НоменклатураСегмента КАК НоменклатураСегмента
|ГДЕ
| НоменклатураСегмента.Сегмент = &ИмяПараметра_СегментНоменклатуры
|
|СГРУППИРОВАТЬ ПО
| НоменклатураСегмента.Номенклатура,
| НоменклатураСегмента.Характеристика
|
|ИНДЕКСИРОВАТЬ ПО
| Номенклатура,
| Характеристика
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(СУММА(ПродажиПоДисконтнымКартам.Сумма), 0) КАК Сумма,
| ЕСТЬNULL(СУММА(ПродажиПоДисконтнымКартам.Количество), 0) КАК Количество
|ПОМЕСТИТЬ ВремТаблица
|ИЗ
| РегистрНакопления.ПродажиПоДисконтнымКартам КАК ПродажиПоДисконтнымКартам
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ НоменклатураСегментаВДанномЗапросе КАК НоменклатураСегмента
| ПО (НоменклатураСегмента.Номенклатура = ПродажиПоДисконтнымКартам.Номенклатура)
| И (НоменклатураСегмента.Характеристика = ПродажиПоДисконтнымКартам.Характеристика)
|ГДЕ &ДисконтнаяКартаПредъявлена
| И ПродажиПоДисконтнымКартам.Период МЕЖДУ &ДатаНачала_П И &ДатаОкончания_П
| И ПродажиПоДисконтнымКартам.ДисконтнаяКарта В (&ДисконтныеКарты)
| И ПродажиПоДисконтнымКартам.Регистратор <> &Регистратор
|;";

//% Из-за этого не работали накопительные скидки
//ВсегоЗапросов = 8;
ВсегоЗапросов = 9;
НомерТаблицыРезультата = 5;

Иначе

ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ЕСТЬNULL(СУММА(ПродажиПоДисконтнымКартамОбороты.Сумма), 0) КАК Сумма,
| ЕСТЬNULL(СУММА(ПродажиПоДисконтнымКартамОбороты.Количество), 0) КАК Количество
|ПОМЕСТИТЬ ВремТаблица
|ИЗ
| РегистрНакопления.ПродажиПоДисконтнымКартам КАК ПродажиПоДисконтнымКартамОбороты
|ГДЕ &ДисконтнаяКартаПредъявлена
| И ПродажиПоДисконтнымКартамОбороты.Период МЕЖДУ &ДатаНачала_П И &ДатаОкончания_П
| И ПродажиПоДисконтнымКартамОбороты.ДисконтнаяКарта В (&ДисконтныеКарты)
| И ПродажиПоДисконтнымКартамОбороты.Регистратор <> &Регистратор
|;";

//% Из-за этого не работали накопительные скидки
//ВсегоЗапросов = 7;
ВсегоЗапросов = 8;
НомерТаблицыРезультата = 4;

КонецЕсли;


Оффлайн CARtMEN

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-01-03
  • Сайт: 
  • Профессия: Программист 8.1
Не исключено, что такая ошибка и в других версиях.


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
152 Сообщений
alex0402
75 Сообщений
alexandr_ll
37 Сообщений
LexaK
29 Сообщений
crow1983
27 Сообщений
MuI_I_Ika MuI_I_Ika
27 Сообщений
sertak sertak
23 Сообщений
дфтын дфтын
17 Сообщений
BuhRust
15 Сообщений
Vzonder
15 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal