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

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

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;

КонецЕсли;

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

СМОТРЕТЬ >>


Оффлайн CARtMEN

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


Теги:
 


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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
85 Сообщений
wise wise
65 Сообщений
MuI_I_Ika MuI_I_Ika
51 Сообщений
alex0402
50 Сообщений
Dethmontt Dethmontt
49 Сообщений
Сергей Федоров Сергей Федоров
32 Сообщений
ilyay ilyay
30 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal