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

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

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

Оффлайн CARtMEN

  • *
  • Сообщений: 14
  • РЕПУТАЦИЯ: 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

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


Теги:
 


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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

alex0402
91 Сообщений
oleg-x
83 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
67 Сообщений
Golickoff Golickoff
51 Сообщений
ilyay ilyay
44 Сообщений
AIFrame
42 Сообщений
Амал
30 Сообщений
lansy
22 Сообщений
wise wise
21 Сообщений
xproh
21 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal