|
Набор записей регистра сведений | ☑ | ||
---|---|---|---|---|
0
Max Street
20.01.16
✎
10:57
|
Привет.
Регистр сведений ШтрихкодыНоменклатуры. Измерение: Штрихкод. Ресурсы: Номенклатура, Характеристика. Я хочу удалить все записи по заданным номенклатуре и характеристике, а затем добавить новую. Код такой: НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Записывать = Истина; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ШтрихкодыНоменклатуры.Штрихкод |ИЗ | РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры |ГДЕ | ШтрихкодыНоменклатуры.Номенклатура = &Номенклатура | И ШтрихкодыНоменклатуры.Характеристика = &Характеристика"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Характеристика", Характеристика); РезультатЗапроса = Запрос.Выполнить(); ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл НаборЗаписей.Отбор.Штрихкод.Установить(ВыборкаДетальныеЗаписи.Штрихкод); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); КонецЦикла; НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Штрихкод = Штрихкод; НоваяЗапись.Номенклатура = Номенклатура; НоваяЗапись.Характеристика = Характеристика; Попытка НаборЗаписей.Записать(Ложь); Исключение Сообщить(ОписаниеОшибки()); КонецПопытки; При выполнении ошибка: " Ошибка при вызове метода контекста (Записать): Запись с такими ключевыми полями существует!". подскажите, пожалуйста, что сделал не так |
|||
1
Господин ПЖ
20.01.16
✎
10:59
|
>что сделал не так
все не так |
|||
2
Max Street
20.01.16
✎
11:01
|
(1) как правильно?
|
|||
3
Господин ПЖ
20.01.16
✎
11:02
|
читая буквари по 1с
|
|||
4
Max Street
20.01.16
✎
11:06
|
(3) сострил? расскажи лучше как исправить
|
|||
5
Одинесю
20.01.16
✎
11:12
|
(4) Буквально несколько дней назад эти штрихкоды до дыр затерли.
|
|||
6
lEvGl
гуру
20.01.16
✎
11:13
|
чтобы отработало надо после очистить() поставить записать()
и это НаборЗаписей.Записывать не нужно тут (5) этот самодельный по-моему |
|||
7
lEvGl
гуру
20.01.16
✎
11:14
|
+ или при записать(ложь) убрать ложь
|
|||
8
hhhh
20.01.16
✎
11:17
|
(4) вот так пробуй
НаборЗаписей.Отбор.Штрихкод.Установить(ВыборкаДетальныеЗаписи.Штрихкод); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Штрихкод = Штрихкод; НоваяЗапись.Номенклатура = Номенклатура; НоваяЗапись.Характеристика = Характеристика; |
|||
9
Max Street
20.01.16
✎
11:17
|
(7) если при НаборЗаписей.Записать(Ложь); убрать Ложь - стирает все записи из регистра
(6) спасибо, помогло |
|||
10
hhhh
20.01.16
✎
11:17
|
(8)+
НаборЗаписей.Отбор.Штрихкод.Установить(Штрихкод); конечно же |
|||
11
chelentano
20.01.16
✎
11:19
|
имхо, вот этого должно хватить:
НаборЗаписей = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Номенклатура.Установить(Номенклатура); НаборЗаписей.Отбор.Характеристика.Установить(Характеристика); НоваяЗапись = НаборЗаписей.Добавить(); НоваяЗапись.Штрихкод = Штрихкод; НоваяЗапись.Номенклатура = Номенклатура; НоваяЗапись.Характеристика = Характеристика; НаборЗаписей.Записать(Истина); |
|||
12
Max Street
20.01.16
✎
11:20
|
(11) отбор по ресурсам не накладывается
|
|||
13
Max Street
20.01.16
✎
11:21
|
(8) не понял. это как?
|
|||
14
chelentano
20.01.16
✎
11:23
|
(12) Я в курсе. Но, всё-равно, спасибо
|
|||
15
hhhh
20.01.16
✎
11:37
|
(13) ну у тебя в (0) тупо отбор в цикле. ЕСли цикл не выполнялся, получается
НоваяЗапись = НаборЗаписей.Добавить(); вообще без отбора, весь регистр затираешь. а если цикл выполнялся, то остается последний из отборов, который был. Тоже фигня. |
|||
16
chelentano
20.01.16
✎
11:39
|
Я вообще не понял, зачем запрос, зачем цикл?
|
|||
17
chelentano
20.01.16
✎
11:40
|
(14), (16) Всё, извините, невнимательно заголовок прочитал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |