У меня есть 1000 дисконтных карт с разными штихкодами ,но с одним владельцем карты(у 1С ,конечно владельцы карт это разные люди) в ЧекККМ если пробивать разные дисконтные карты ,предварительно установив пороги скидок 1С начинает считать что это всё одна карта, т.е владелец у неё же один и тот же,и соответственно суммы всех покупок суммирует, владельцев для 1С создать разных 1000 штук это не реально и глупо,я залез в конфигуратор и нашёл такую вещь
Процедура ПроверитьВозможностьЗаменыДисконтнойКарты(ДокументОбъект, УчетнаяПолитика) Экспорт
Если ДокументОбъект.Проведен
И ЗначениеЗаполнено(ДокументОбъект.ДисконтнаяКарта)
И УчетнаяПолитика.ИспользоватьСкидкиПоДисконтнойКарте
И УчетнаяПолитика.ИспользоватьНакопительныеСкидкиПоДисконтнымКартам
И УчетнаяПолитика.СпособИспользованияНакопительныхСкидок = Перечисления.СпособыИспользованияНакопительныхСкидок.СкидкиНакапливаютсяПоВладельцуДисконтнойКарты Тогда
ПериодНакопления = ОбработкаТабличныхЧастей.ПолучитьПериодРасчетаНакопительныхСкидок(ДокументОбъект.Дата, УчетнаяПолитика);
Запрос = Новый Запрос("
|ВЫБРАТЬ
| РегПродажи.СуммаОборот КАК Сумма,
| РегПороги.ЗначениеПорога КАК ЗначениеПорога
|ИЗ
| РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(&ДатаНач, &ДатаКон, ,
| ВладелецДисконтнойКарты = &ВладелецДисконтнойКарты) КАК РегПродажи
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| Пороги.НижняяГраница,
| Пороги.ЗначениеПорога
| ИЗ
| РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК Пороги
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| МАКСИМУМ(ПорогиМакс.Период) КАК Период
| ИЗ
| РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК ПорогиМакс
| ) КАК ПорогиМакс
| ПО
| Пороги.Период = ПорогиМакс.Период
|) КАК РегПороги
|ПО
| РегПороги.НижняяГраница <= ЕСТЬNULL(РегПродажи.СуммаОборот, 0)
|ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| МАКСИМУМ(РегПороги.НижняяГраница) КАК НижняяГраница
| ИЗ
| РегистрНакопления.ПродажиПоДисконтнымКартам.Обороты(&ДатаНач, &ДатаКон, ,
| ВладелецДисконтнойКарты = &ВладелецДисконтнойКарты) КАК РегПродажи
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| Пороги.НижняяГраница
| ИЗ
| РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК Пороги
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ
| (ВЫБРАТЬ
| МАКСИМУМ(ПорогиМакс.Период) КАК Период
| ИЗ
| РегистрСведений.ПорогиНакопительныхСкидок.СрезПоследних(&ДатаКон) КАК ПорогиМакс
| ) КАК ПорогиМакс
| ПО
| Пороги.Период = ПорогиМакс.Период
| ) КАК РегПороги
| ПО
| РегПороги.НижняяГраница <= ЕСТЬNULL(РегПродажи.СуммаОборот, 0)
| ) КАК РегПорогиМакс
|ПО
| РегПорогиМакс.НижняяГраница = РегПороги.НижняяГраница
|");
Запрос.УстановитьПараметр("ДатаНач", ПериодНакопления.ДатаНач);
Запрос.УстановитьПараметр("ДатаКон", ПериодНакопления.ДатаКон);
Запрос.УстановитьПараметр("ВладелецДисконтнойКарты", ДокументОбъект.ДисконтнаяКарта.ВладелецКарты);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
ТекВидКарты = ДокументОбъект.ДисконтнаяКарта.ВидДисконтнойКарты;
Если Выборка.ЗначениеПорога <> ТекВидКарты Тогда
Предупреждение("Сумма, накопленная покупателем, составила " + (ОбщегоНазначения.ФорматСумм(Выборка.Сумма,
глЗначениеПеременной("ВалютаУправленческогоУчета")))+"." + Символы.ПС + Символы.ПС
+ "Покупателю можно обменять дисконтную карту" + Символы.ПС
+ """" + СокрЛП(ТекВидКарты) + """ на """ + СокрЛП(Выборка.ЗначениеПорога) + """.");
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры // ПроверитьВозможностьЗаменыДисконтнойКарты()
Прочитав код я понял что он черпает этого владельца с РегистраНакоплений,но поменяв ВдалецДисконтнойКарты на ДисконтнаяКарта( это именно порядковый номер который присваивает 1С при создании объектов) база перестаёт высчитывать эти пороги,перестаёт высчитывать и выдавать сообщение что при заступлении второго и последующих порогов меняется вид дисконтной карты(согласно порогам дисконтных карт)
Что я делаю не правильно??? или может я вообще даже мыслю не правильно? Казалось бы такая мелочь, но не получается