8.х Оборотный регистр накопления, его значение

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dafatcka, 30 июл 2014.

  1. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Именно этого бы и хотелось, мне не нужно нигде хранить сумму со скидкой и сумму скидки, они нужны только в документе, грубо говоря, чеке для клиента. Нужно знать сколько бонусов у клиента есть, сколько он получает плюсом бонусов, сколько ему вернется и какой у него % скидки (можно сказать - статус карты).
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    в самописной конфе это ближе всего, 99%
    открыли документ реализации, при заполнении шапки в момент выбора/изменении Клиента и получаем из регистра остаток накопленных баллов клиентом на текущий момент, затем полученное делим на их кратность и получаем готовое значение процента скидки


    в документе при текущей реализации клиенту, знать скидку за накопленные бонусы
  3. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    LordMaverick я уже исправил тот пост. Не о том думал. Не обращай внимания.
  4. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4

    Идеально!

    Вопрос в реализации, если не запросом, то как получить остаток?

    Самописная конфа на то и есть чтобы простые вещи изучать, спотыкаться на каждом шагу, искать решения и просить помощи. И вам не скучно будет) Только свой авторитет не повышайте за счет меня, все с чего-то начинают (LordMaverick - это к вам не относится).
    Последнее редактирование: 30 июл 2014
  5. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    а она у вас уже храниться в вашем РН, точнее не она а её исходные данные для расчёта нужного
    у вас единственно что надо - получить остаток из РН по нужному клиенту на нужный момент времени
    а расчёт - простая математика, выполняется в любом месте кода, остаток накопленных баллов из РН делим на 10000 (ваша кратность баллов к проценту скидки)
    Код:
    Процент=ОстатокБаллов/10000;
    Dafatcka нравится это.
  6. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Вы абсолютно правы, я застопорилась именно на "получить остаток из РН по нужному клиенту на нужный момент времени"
  7. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Dafatcka в синтакс-помощнике найдите РегистрНакопленияМенеджер.
    Там есть такой пример:
    Код:
    Остатки  = РегистрыНакопления.Остатки;
    Фильтр   = Новый Структура();
    Фильтр.Вставить("Номенклатура", ВыбНоменклатура);
    Фильтр.Вставить("Склад", ВыбСклад);
    ТабОборотов = Остатки.Обороты(ДатаНач, ДатаКон, Фильтр, "Номенклатура,Склад", "Количество");
    
  8. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    если без запроса то так (это из синтаксис-помощника взято и переделано под данные из первого поста (примерно конечно))
    Код:
    Доступность:
    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
    
    Примечание:
    Имеет смысл только для регистров, у которых в Конфигураторе указан вид регистра "Остатки".
    Пример:
    
    ОстаткиБаллов  = РегистрыНакопления.БонусныеКарты ;
    Фильтр   = Новый Структура;
    Фильтр.Вставить("Клиент",ВыбКлиент);
    Осталось = ОстаткиБаллов.Остатки(,Фильтр,"Клиент", "Бонусы"); 
    
    тут в спойлере весь пример из СП
    РегистрНакопленияМенеджер.<Имя регистра накопления>.Остатки (AccumulationRegisterManager.<Имя регистра накопления>.Balance)
    РегистрНакопленияМенеджер.<Имя регистра накопления> (AccumulationRegisterManager.<Имя регистра накопления>)
    Остатки (Balance)
    Синтаксис:

    Остатки(<МоментВремени>, <Отбор>, <Измерения>, <Ресурсы>)
    Параметры:

    <МоментВремени> (необязательный)

    Тип: Дата; МоментВремени; Граница.
    Момент времени, на который необходимо получить остатки. Если параметр не указан, то будут получены текущие остатки (на максимальную дату движений регистра). Если в качестве параметра передана Дата, то остатки будут получены на начало дня, если МоментВремени - то в остатках не будут учтены движения регистра, произошедшие в тот же момент времени.
    <Отбор> (необязательный)

    Тип: Структура.
    Структура, содержащая набор значений для измерений регистра. Имя ключа структуры должно совпадать с именем измерения регистра, заданного в конфигураторе, а значение элемента структуры - задает отбираемое по данному измерению значение.
    Если параметр не указан, то отбор не используется.
    <Измерения> (необязательный)

    Тип: Строка.
    Список измерений, для которых надо получить остатки. Строка, содержащая имена измерений, разделенные запятыми.
    Если параметр не указан или указана пустая строка, то остатки будут сформированы по всем измерениям.
    <Ресурсы> (необязательный)

    Тип: Строка.
    Список ресурсов, для которых надо получить остатки. Строка, содержащая имена ресурсов, разделенные запятыми.
    Если параметр не указан или указана пустая строка, то остатки будут сформированы по всем ресурсам.
    Значение по умолчанию: Пустая строка.
    Возвращаемое значение:

    Тип: ТаблицаЗначений.
    Сформированная таблица значений.
    Описание:

    Получает остатки регистра накопления на заданный момент времени. Есть возможность фильтрации по значениям измерений, а также получения остатков в разрезе других измерений. Возвращает таблицу значений, содержащую колонки с измерениями, указанными в параметре Измерения, и колонки с ресурсами, указанными в параметре <Ресурсы>.
    Доступность:

    Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
    Примечание:

    Имеет смысл только для регистров, у которых в Конфигураторе указан вид регистра "Остатки".
    Пример:

    Остатки = РегистрыНакопления.Остатки;
    Фильтр = Новый Структура;
    Фильтр.Вставить("Номенклатура",ВыбНоменклатура);
    Фильтр.Вставить("Склад", ВыбСклад);
    ТабОстатков = Остатки.Остатки(ВыбДата,Фильтр,
    "Номенклатура,Склад", "Количество");
  9. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    РегистрНакопленияМенеджер.<Имя регистра накопления>.Обороты - это?
    Меня смутил тип возвращаемого значения - Тип: ТаблицаЗначений.
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    да

    А что не так?
  11. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Я думала вернуться числом должно?
    а как дальше вычисление произвести?
    --- Объединение сообщений, 30 июл 2014 ---
    у меня Оборотный сделан...

    Удобнее будет тогда поменять тип регистра и переписать движения и не мучиться? Но, блин, интересно....)))
    Последнее редактирование: 30 июл 2014
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Проверяете в таблице значений количество строк. Если их 0, тогда оборотов не было.
    Если больше нуля берете первую строку, и из первой строки значение ресурса.

    Когда обороты будете получать не забудьте группировку по покупателю указать (4-й параметр).
    Dafatcka нравится это.
  13. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Остатки на дату - это самое главное, иначе за какой период брать обороты ? за весь ?
  14. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Блин, а об этом я совсем не подумала, огромнейшее спасибо! Теперь хоть идеи и направление в каком думать появилось, буду копать в эту сторону. Но и все выше сказанное попробую, интересненько с вами)
  15. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    ну по изначальным данным баллы просто копятся, так что за весь период
  16. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Ребята, все получилось, причем именно так как я и задумывала, отдельная благодарность LordMaverick и shurikvz за ваши идеи, помощь и терпимость к чайнику, буду продолжать начатое дело.

    P.S.
    alexburn прости за наглость, и я не тетя, мне всего 20;)
    alexburn и shurikvz нравится это.
  17. alexburn
    Online

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.781
    Симпатии:
    509
    Баллы:
    204
    Расслабься:)
  18. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.439
    Симпатии:
    374
    Баллы:
    104
    всегда пожалуйста :)

    и в более раннем возрасте можно быть тётей :D:D:D
  19. TopicStarter Overlay
    Dafatcka
    Offline

    Dafatcka Новичок в 1С

    Регистрация:
    22 июл 2014
    Сообщения:
    23
    Симпатии:
    2
    Баллы:
    4
    Тетя я для племянника, но назвать меня тетей в 20 лет.... простите, определение "тетя" для меня лет так в 30 - 35:D

Поделиться этой страницей