|
Запись с такими ключевыми полями существует (при повторной загрузке) | ☑ | ||
---|---|---|---|---|
0
Mary01
29.06.15
✎
15:51
|
Добрый день!
Как сделать, чтобы в регистре сведений данные замещались при совпадении ключевых полей? Есть ТЗ, из нее в цикле заполняю регистр ЦеныНоменклатуры. Регистр периодический, периодичность - день. До начала цикла я создаю набор записей, в цикле заполняю, после цикла записываю: НаборЗаписей.Записать(); Но при этом, вместо того, чтобы заместить повторяющиеся записи, программа выдает ошибку, что запись с такими ключевыми полями существует. |
|||
1
Enterprise
29.06.15
✎
15:56
|
(0) Может надо еще Прочитать() ?
|
|||
2
pavelul73
29.06.15
✎
15:59
|
Записать (Write)
Синтаксис: Записать(<Замещать>) Параметры: <Замещать> (необязательный) Тип: Булево. Определяет режим замещения существующей записи в соответствии с текущими установками отбора. Истина - перед записью существующие записи будут удалены. Ложь - записи будут дописаны к уже существующим в информационной базе записям. |
|||
3
Ненавижу 1С
гуру
29.06.15
✎
16:00
|
если регистраторы разные, то не взлетит, записи другого регистратора придется очистить
|
|||
4
Mary01
29.06.15
✎
16:01
|
(2) Истина по умолчанию, поэтому не указываю параметр
|
|||
5
Mary01
29.06.15
✎
16:01
|
(3) Регистр не подчинен регистратору, он независимый
|
|||
6
hhhh
29.06.15
✎
16:08
|
значит 2 одинаковые номенклатуры в набор записей пишете
|
|||
7
Mary01
29.06.15
✎
16:12
|
(1) Если Прочитать() перед циклом, то та же ошибка, если после цикла, то ошибки нет, но и не записывает ничего.
Если в цикле, то тогда надо и НаборЗаписей.Записать() писать в цикле - но при этом опять та же ошибка |
|||
8
anatoly
29.06.15
✎
16:29
|
(6) надо чтобы все измерения совпали.
|
|||
9
hhhh
29.06.15
✎
17:49
|
(6) они и совпадают. разница в номенклатуре.
|
|||
10
Maniac
29.06.15
✎
17:56
|
НаборЗаписей = РегистрыСведений.НоменклатураКонтрагентов.СоздатьНаборЗаписей();
НаборЗаписей.Отбор.Контрагент.Установить(Контрагент); НаборЗаписей.Отбор.Номенклатура.Установить(Стр.Номенклатура); НаборЗаписей.Отбор.ХарактеристикаНоменклатуры.Установить(Стр.ХарактеристикаНоменклатуры); НаборЗаписей.Прочитать(); Если НаборЗаписей.Количество() = 0 Тогда Запись = НаборЗаписей.Добавить(); Иначе Запись = НаборЗаписей.Получить(0); КонецЕсли; |
|||
11
Рэйв
29.06.15
✎
18:46
|
(10)Не учи плохому.
А если несколько ? |
|||
12
Mary01
30.06.15
✎
07:00
|
(10) мне нужно без отбора, т.к. в таблице строки не по одной какой-то номенклатуре, а по многим.
Просто в регистре уже есть абсолютно аналогичные строки, на них и ругается и не записывает. А мне надо чтобы эти строки просто замещались, а новые добавлялись |
|||
13
Mary01
30.06.15
✎
08:00
|
(6) Вы оказались правы, в ТЗ действительно было 2 строки, где все поля были одинаковы (кроме цены - в одной строке цена нормальная, в другой цена = 0). Удалила строку с нулевой ценой, и все стало нормально загружаться.
Всем спасибо! |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |