Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как сделать что бы в 1С 8.2 УТ считалась скидка не по владельцу дисконтной карты ,а по коду дисконтной карты
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
M-comp
Помогите плиз,в конфигураторе разбираюсь туго...
У меня есть 1000 дисконтных карт с разными штихкодами ,но с одним владельцем карты(у 1С ,конечно владельцы карт это разные люди) в ЧекККМ если пробивать разные дисконтные карты ,предварительно установив пороги скидок 1С начинает считать что это всё одна карта, т.е владелец у неё же один и тот же,и соответственно суммы всех покупок суммирует, владельцев для 1С создать разных 1000 штук это не реально и глупо,я залез в конфигуратор и нашёл такую вещь

Процедура ПроверитьВозможностьЗаменыДисконтнойКарты(ДокументОбъект, УчетнаяПолитика) Экспорт

    Если ДокументОбъект.Проведен
       И ЗначениеЗаполнено(ДокументОбъект.ДисконтнаяКарта)
       И УчетнаяПолитика.ИспользоватьСкидкиПоДисконтнойКарте
       И УчетнаяПолитика.ИспользоватьНакопительныеСкидкиПоДисконтнымКартам
       И УчетнаяПолитика.СпособИспользованияНакопительныхСкидок = Перечисления.СпособыИспользованияНакопительныхСкидок.СкидкиНакапливаютсяПоВладельцуДисконтнойКарты Тогда

        ПериодНакопления = ОбработкаТабличныхЧастей.ПолучитьПериодРасчетаНакопительныхСкидок(ДокументОбъект.Дата, УчетнаяПолитика);

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

        Запрос.УстановитьПараметр("ДатаНач", ПериодНакопления.ДатаНач);
        Запрос.УстановитьПараметр("ДатаКон", ПериодНакопления.ДатаКон);
        Запрос.УстановитьПараметр("ВладелецДисконтнойКарты", ДокументОбъект.ДисконтнаяКарта.ВладелецКарты);

        Выборка = Запрос.Выполнить().Выбрать();
        Если Выборка.Следующий() Тогда
            ТекВидКарты = ДокументОбъект.ДисконтнаяКарта.ВидДисконтнойКарты;
            Если Выборка.ЗначениеПорога <> ТекВидКарты Тогда
                Предупреждение("Сумма, накопленная покупателем, составила " + (ОбщегоНазначения.ФорматСумм(Выборка.Сумма,
                глЗначениеПеременной("ВалютаУправленческогоУчета")))+"." + Символы.ПС + Символы.ПС
                   + "Покупателю можно обменять дисконтную карту" + Символы.ПС
                   + """" + СокрЛП(ТекВидКарты) + """ на """ + СокрЛП(Выборка.ЗначениеПорога) + """.");
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры // ПроверитьВозможностьЗаменыДисконтнойКарты()


Прочитав код я понял что он черпает этого владельца с РегистраНакоплений,но поменяв ВдалецДисконтнойКарты на ДисконтнаяКарта( это именно порядковый номер который присваивает 1С при создании объектов) база перестаёт высчитывать эти пороги,перестаёт высчитывать и выдавать сообщение что при заступлении второго и последующих порогов меняется вид дисконтной карты(согласно порогам дисконтных карт)
Что я делаю не правильно??? или может я вообще даже мыслю не правильно? Казалось бы такая мелочь, но не получается
Vofka
Цитата(M-comp @ 29.03.15, 21:08) необходимо зарегистрироваться для просмотра ссылки
владельцев для 1С создать разных 1000 штук это не реально и глупо

Почему?
logist
Цитата(M-comp @ 29.03.15, 21:08) необходимо зарегистрироваться для просмотра ссылки
Что я делаю не правильно??? или может я вообще даже мыслю не правильно?

Вы не используете типовой функционал, в настройках учетной политики, на вкладке "Скидки" можно указать, как накапливать скидки - по владельцу карты, или по самой карте.
M-comp
потому что 1000 штук это сегодня, а завтра ещё будет 9 тыс


Цитата(logist @ 30.03.15, 11:06) необходимо зарегистрироваться для просмотра ссылки

Вот не работают скидки по самой карте,оно не реагирует при накоплении для перехода на новый уровень скидки,не выдаётся сообщение что пора менять процент скидки
logist
Цитата(M-comp @ 30.03.15, 10:14) необходимо зарегистрироваться для просмотра ссылки
не выдаётся сообщение что пора менять процент скидки

что значит сообщение? вы настраиваете пороги и они работают автоматически.
M-comp
Цитата(logist @ 30.03.15, 11:59) необходимо зарегистрироваться для просмотра ссылки
что значит сообщение? вы настраиваете пороги и они работают автоматически.


У меня есть несколько условий например когда у клиента сумма покупок от 1000 долларов до 2000 один порог, когда клиент переваливает за 2000 долларов,то ему надо ставить другую скидку,сама база не меняет тип скидки,она умеет выдавать сообщение что пора поменять,в коде всё написано,но она выдаёт сообщение только когда стоит учитывать скидки по владельцу дисконтной карты,а владелец один и тот-же,а мне надо что бы она выдавала такое же сообщение,но тогда когда я делаю считать не по владельцу ,а по дисконтной карте(по коду карты который выдаёт база )
logist
Цитата(M-comp @ 30.03.15, 14:27) необходимо зарегистрироваться для просмотра ссылки
сама база не меняет тип скидки,она умеет выдавать сообщение что пора поменять

как это не меняет сама? Это вы что-то в ней сделали, или опять же говорим, о том, что у вас, что-то не так настроено.
M-comp
Цитата(logist @ 30.03.15, 15:54) необходимо зарегистрироваться для просмотра ссылки
как это не меняет сама? Это вы что-то в ней сделали, или опять же говорим, о том, что у вас, что-то не так настроено.

Не знаю,настраивал по "модным" инструкциям
logist
Т.е. есть документ "Установка порогов накопительных скидок", есть документ "Установка скидок номенклатуры" с условием "по типу карт" и установленные там пороги не работают? Имеется ввиду, что при продаже видно, что скидка согласно порогу не меняется автоматически?
kosalex
Цитата(logist @ 30.03.15, 16:43) необходимо зарегистрироваться для просмотра ссылки
Т.е. есть документ "Установка порогов накопительных скидок", есть документ "Установка скидок номенклатуры" с условием "по типу карт" и установленные там пороги не работают? Имеется ввиду, что при продаже видно, что скидка согласно порогу не меняется автоматически?


Правду говорит smile.gif Вчера настраивал в типовой, все работает!
M-comp
Цитата(logist @ 30.03.15, 17:43) необходимо зарегистрироваться для просмотра ссылки
Т.е. есть документ "Установка порогов накопительных скидок", есть документ "Установка скидок номенклатуры" с условием "по типу карт" и установленные там пороги не работают? Имеется ввиду, что при продаже видно, что скидка согласно порогу не меняется автоматически?

не меняется, у меня в справочнике Информационные карты выбирается сразу какой тип скидки,и пока я там вручную не исправлю ,то процент не поменяется,а постоянно формировать отчёт по продажам по информационным картам- не удобно
logist
Цитата(M-comp @ 30.03.15, 18:01) необходимо зарегистрироваться для просмотра ссылки
у меня в справочнике Информационные карты выбирается сразу какой тип скидки,и пока я там вручную не исправлю ,то процент не поменяется,

Т.е. вы сами это доработали? Потому, что в типовом решении нет "типа скидки", есть "Вид карты", но при правильной настройке, этот параметр не надо менять вручную, остальные параметры на пороги скидок никак не влияют

Цитата(M-comp @ 30.03.15, 18:01) необходимо зарегистрироваться для просмотра ссылки
постоянно формировать отчёт по продажам по информационным картам- не удобно

настраивайте как должно работать типовое решение, и тогда Вам ничего не надо менять вручную, с предварительным формированием отчетов.
M-comp
Цитата(logist @ 30.03.15, 19:30) необходимо зарегистрироваться для просмотра ссылки
Т.е. вы сами это доработали? Потому, что в типовом решении нет "типа скидки", есть "Вид карты", но при правильной настройке, этот параметр не надо менять вручную, остальные параметры на пороги скидок никак не влияют


настраивайте как должно работать типовое решение, и тогда Вам ничего не надо менять вручную, с предварительным формированием отчетов.


Ладно ,спасибо,почему то не меняет,пробовал кучу всяких инструкций, тип скидки я имел ввиду "Вид карты" ,извиняюсь что не понятно написал, но вид карты выставляется в справочнике информационные карты и сам при наступлении следующего порога не меняется, надо менять вручную
logist
Цитата(M-comp @ 31.03.15, 11:13) необходимо зарегистрироваться для просмотра ссылки
но вид карты выставляется в справочнике информационные карты и сам при наступлении следующего порога не меняется, надо менять вручную

Вид карты это просто вид карты, он и не должен меняться при автоматическом изменении порогов.
M-comp
Цитата(logist @ 31.03.15, 15:36) необходимо зарегистрироваться для просмотра ссылки
Вид карты это просто вид карты, он и не должен меняться при автоматическом изменении порогов.

так у меня выбрав вид карты открывается справочник "Вид дисконтных карт" ,а там два пункта ,"наименование" и "тип цен" ,понятно что в типе цен выставляются тип цен из справочника "типы цен номенклатуры" ,а там уже выставляется как раз тот процент скидки который в итоге и выставляется просканировав карту
logist
Цитата(M-comp @ 31.03.15, 16:03) необходимо зарегистрироваться для просмотра ссылки
а там два пункта ,"наименование" и "тип цен"

В типовом нет "тип цен", вероятно это ваша доработка.
M-comp
Цитата(logist @ 31.03.15, 17:24) необходимо зарегистрироваться для просмотра ссылки
В типовом нет "тип цен", вероятно это ваша доработка.

ВСЁ!!! Ура!!! Разобрался,там после того как в "учётная политика" я меняю что бы учитывались скидки по дисконту ,а не по владельцу надо было установить в "установка порогов накопительных скидок" значение порога, в моём случае "3" "5""10", почему так получилось, я когда ставил учитывать скидки по владельцу дисконтной карты,то в "установка порогов накопительных скидок" в значении порога подставляются данные из "установки скидок номенклатуры", а когда меняешь что бы учитывались скидок по владельцу карты,то значение порога надо выставлять а не брать из документа "установки скидок номенклатуры" . В общем как-то так
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.