|
|
|
Удаление записей из регистра сведений | ☑ | ||
|---|---|---|---|---|
|
0
Ly_Alena
30.09.15
✎
07:12
|
Доброе утро!
Есть корректировка заказа поставщика. Условие такое если количество в корректировке отрицательное, то цену номенклатуры не записываем и нужно удалить ту что была в заказе поставщика. делаю так: Если Выборка.Количество < 0 Тогда НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(Выборка.ДатаЗаказПоставщика); НаборЗаписей.Записать(); КонецЕсли; Выдает ошибку "Поле объекта не обнаружено (Период)" |
|||
|
1
jurassic
30.09.15
✎
07:14
|
это хорошо или плохо?
|
|||
|
2
Ly_Alena
30.09.15
✎
07:16
|
(1) Плохо ) Нужно чтоб удалил запись с датой заказ поставщика
|
|||
|
3
jurassic
30.09.15
✎
07:16
|
а чем цена провинилась вообще?
|
|||
|
4
1Сергей
30.09.15
✎
07:17
|
(2) все цены на эту дату?
|
|||
|
5
Ly_Alena
30.09.15
✎
07:18
|
(4) на эту дату будет только одна цена
|
|||
|
6
jurassic
30.09.15
✎
07:20
|
(5) ну выясни, каким документом она установлена, и распроведи
|
|||
|
7
Ly_Alena
30.09.15
✎
07:21
|
(6) в документе могут быть и другая номенклатура, которая в корректировке не участвует
|
|||
|
8
Ly_Alena
30.09.15
✎
07:22
|
(6) не проще запись удалить?
|
|||
|
9
jurassic
30.09.15
✎
07:23
|
(8) проще оставить цену в покое
|
|||
|
10
Ly_Alena
30.09.15
✎
07:24
|
Цена идет дальше в расчет, и если ее не убрать - расчет будет неверным, потому что по факту этих позиций не будет.
|
|||
|
11
echo77
30.09.15
✎
07:26
|
Записи в этом регистре подчинены регистратору.
По хорошему, надо из регистратора уалять |
|||
|
12
jurassic
30.09.15
✎
07:27
|
имхается мне, в расчёт идёт не то, что там информационно в регистре лежит, а число из конкретной корректировки
|
|||
|
13
Ly_Alena
30.09.15
✎
07:29
|
(12) в данном случае берется срез последних и цен номенклатуры.
|
|||
|
14
jurassic
30.09.15
✎
07:32
|
космическая логика. читай (6), (11), много думай
|
|||
|
15
AntonyFO
30.09.15
✎
07:34
|
(0)Можно сначала считать набор, потом обойти записи и ненужных отключить активность
Если Выборка.Количество < 0 Тогда НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборЗаписей.Прочитать(); Для каждого Стр Из НаборЗаписей Цикл Если Стр.период<>НужногоПериода Тогда Стр.Активность = ложь; КонецЕсли; КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; |
|||
|
16
jurassic
30.09.15
✎
07:51
|
и не забывать отключать обратно при перепроведении
|
|||
|
17
Ly_Alena
30.09.15
✎
11:38
|
(15) Кажется самое время тупых вопросов )
Стр.период<>НужногоПериода (НужногоПериода) - это дата заказа поставщика? |
|||
|
18
AntonyFO
01.10.15
✎
10:32
|
(17)Я может сам тупо не так тебя понял. Я просто показал как можно деактивировать записи регистра сведений без
НаборЗаписей.Отбор.Период.Установить(Выборка.ДатаЗаказПоставщика); и сам ошибся: не Стр.период <> НужногоПериода, а Стр.период = ДатаЗаказаПоставщика. |
|||
|
19
AntonyFO
01.10.15
✎
10:33
|
А вообще можно сделать так:
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.ЗаказПоставщика); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать() |
|||
|
20
rabbidX
01.10.15
✎
10:46
|
Я думаю, корректировка не должна изменять движения корректируемого документа, иначе при перепроведении будет беда. Она должна их корректировать, приводить остатки в нужное состояние.
Лучше всего изменить механизм расчета, чтоб такие цены не попадали. Можно корректировкой установить предыдущую актуальную цену, но тогда при внесении документов задним числом будут проблемы. Короче какой-то аналог сторнирования нужен. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |