![]() |
![]() |
![]() |
|
Вопрос по регистру накопления | ☑ | ||
---|---|---|---|---|
0
Zombi
23.12.11
✎
09:32
|
Конфигурация УТ 10.3. Хочу сделать обработку, устанавливающую определенную сумму продаж на дисконтную карту, для этого надо двигать РН "ПродажиПоДисконтнымКартам", написал вот такой код:
Процедура КнопкаВыполнитьНажатие(Кнопка) Если НЕ ЗначениеЗаполнено(Карта) Тогда Предупреждение("Выберите карту!"); ИначеЕсли Скидка10 = Истина Тогда Запрос = Новый Запрос; Запрос.Текст = " |ВЫБРАТЬ | ОтчетОРозничныхПродажах.Ссылка |ИЗ | Документ.ОтчетОРозничныхПродажах КАК ОтчетОРозничныхПродажах"; Выборка = Запрос.Выполнить().Выбрать(); Выборка.Следующий(); Документ = Выборка.Ссылка; Док = Документ.ПолучитьОбъект(); НаборЗап=РегистрыНакопления.ПродажиПоДисконтнымКартам.СоздатьНаборЗаписей(); НаборЗап.Отбор.Регистратор.Установить(Документ); Движение = НаборЗап.Добавить(); Движение.Период = ТекущаяДата(); Движение.ДисконтнаяКарта = Карта; Движение.ВладелецДисконтнойКарты = Карта.Владелец; Движение.завДисконтнаяГруппа = Справочники.ДисконтныеГруппы.НайтиПоКоду("000000002"); Движение.Сумма = 70000; Движение = НаборЗап.Добавить(); Движение.Период = ТекущаяДата(); Движение.ДисконтнаяКарта = Карта; Движение.ВладелецДисконтнойКарты = Карта.Владелец; Движение.завДисконтнаяГруппа = Справочники.ДисконтныеГруппы.НайтиПоКоду("000000003"); Движение.Сумма = 20000; НаборЗап.Записать(); Иначе Предупреждение("Не выбрана скидка!"); КонецЕсли; КонецПроцедуры Выбираю одну карту, движение записывается, выбираю другую карту, прошлое движение затирается и выполняется по новой карте. Это из за одинакового регистратора? Разве он должен быть уникальным? |
|||
1
ZanderZ
23.12.11
✎
09:35
|
у тебя каждый раз идет запись в регистр с замещением по регистратору (отбор по нему установлен)
|
|||
2
Zombi
23.12.11
✎
09:36
|
(1) А как лучше сделать?
|
|||
3
PVV65
23.12.11
✎
09:37
|
(0) Не понять смысл приведенного кода (для случайного регистратора делать записи и т.д.), а по сути забыл "НаборЗап.прочитать()".
|
|||
4
PVV65
23.12.11
✎
09:37
|
(2) Задача не понятна.
|
|||
5
Zombi
23.12.11
✎
09:39
|
(3) Надо сделать чтобы по дисконтной карте числилась определенная сумма продаж, регистратор - чисто формальность, может быть любой.
А Прочитать() зачем? |
|||
6
GenAcid
23.12.11
✎
09:43
|
Все измерения одинаковые, почему должна быть другая запись?
|
|||
7
GenAcid
23.12.11
✎
09:44
|
(6) Опс, невнимательно прочитал
|
|||
8
Мыш
23.12.11
✎
09:46
|
(2) Отбор тебе нужно делать по всем измерениям, а не только по регистратору.
|
|||
9
Zombi
23.12.11
✎
09:49
|
(8) Щас попробую еще по самой карте отбор установить
|
|||
10
PVV65
23.12.11
✎
09:49
|
(5) Если не читать, то новые записи добавляешь к пустому набору с отбором по регистратору, а затем записываешь, затирая аналогичный существующий набор.
|
|||
11
Мыш
23.12.11
✎
09:51
|
(10) Читать не обязательно.
|
|||
12
PVV65
23.12.11
✎
09:54
|
(11) Не обязательно, если существующие записи (согласно отбора) не нужны.
|
|||
13
Zombi
23.12.11
✎
09:57
|
Добавил
НаборЗап.Отбор.ДисконтнаяКарта.Установить(Карта); выдает ошибку: "Поле объекта не обнаружено (ДисконтнаяКарта)" Хотя измерение такое есть. Щас попробую прочитать. |
|||
14
Zombi
23.12.11
✎
10:03
|
НаборЗап.Прочитать() помогло, все заработало.
PVV65, спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |