Имя: Пароль:
1C
 
Регистр сведений (запретить запись одинаковым значениям)
0 Олеся999
 
30.11.15
11:56
Подскажите пожалуйста как запретить записывать в Независимый Регистр Сведений одинаковые записи, а то она их заменяет?


Процедура ОбработкаПроведения(Отказ, Режим)    
Для Каждого ТекСтрокаПриборы Из Приборы Цикл
НаборЗаписей = РегистрыСведений.Ремонты.СоздатьМенеджерЗаписи();
НаборЗаписей.Прибор= ТекСтрокаПриборы.Прибор;
НаборЗаписей.Записать();
КонецЦикла;
КонецПроцедуры
1 Asmody
 
30.11.15
11:58
посмотреть в СП параметры метода Записать()?
2 Горогуля
 
30.11.15
11:58
щито?
3 Горогуля
 
30.11.15
11:59
РегистрыСведений.Ремонты как-то не похож на РС
4 Олеся999
 
30.11.15
12:00
(3) Ну Регистр сведений "Ремонты"  измерение "Приборы"
5 Горогуля
 
30.11.15
12:00
в моей вселенной так называются регистры накопления
6 Олеся999
 
30.11.15
12:03
После проведения документа у нас должен записываться список приборов с номерами, допустим:
222
333
444
При создании следующего документа с номером:
333
нужно выдавать ошибку, что такой уже есть.
7 Godofsin
 
30.11.15
12:05
РС периодический?
8 letni88
 
30.11.15
12:05
Процедура ОбработкаПроведения(Отказ, Режим)    
Для Каждого ТекСтрокаПриборы Из Приборы Цикл
НаборЗаписей = РегистрыСведений.Ремонты.СоздатьМенеджерЗаписи();
НаборЗаписей.Прибор= ТекСтрокаПриборы.Прибор;


НаборЗаписей.прочитать();
Если Не наборЗаписей.Выбран() Тогда
НаборЗаписей.Записать();
Конецесли
КонецЦикла;
КонецПроцедуры
9 Олеся999
 
30.11.15
12:05
(7) Непериодический
10 hhhh
 
30.11.15
12:12
ну, сделать измерение "Прибор"
11 Олеся999
 
30.11.15
12:15
(8) Ошибка при выполнении обработчика - 'ОбработкаПроведения'
по причине:
{Документ.ПриемНаРемонт.МодульОбъекта(12)}: Ошибка при вызове метода контекста (Записать)
НаборЗаписей.Записать();
по причине:
Запись не верна! Значение поля "Прибор" не может быть пустым!: Ремонты: 0 (Регистр сведений: Ремонты)

(10) так вот же я писала(4)
12 hhhh
 
30.11.15
12:16
(11) ну, номер прибора, этот 333, он точно измерение?
13 Олеся999
 
30.11.15
12:18
14 letni88
 
30.11.15
12:20
посмотри в отладчике что в приборе в момент записи
15 Олеся999
 
30.11.15
12:23
16 letni88
 
30.11.15
12:33
а после прочитать() ?
17 Олеся999
 
30.11.15
12:34
(16) 0
18 letni88
 
30.11.15
13:04
тогда так
Для Каждого ТекСтрокаПриборы Из Приборы Цикл
НаборЗаписей = РегистрыСведений.Ремонты.СоздатьМенеджерЗаписи();
НаборЗаписей.Прибор= ТекСтрокаПриборы.Прибор;


НаборЗаписей.прочитать();
Если Не наборЗаписей.Выбран() Тогда
НаборЗаписей.Прибор= ТекСтрокаПриборы.Прибор;
НаборЗаписей.Записать();
Конецесли
КонецЦикла;
19 letni88
 
30.11.15
13:05
Менеджер записи очищает значения измерений если запись не найдена методом Прочитать()
20 hhhh
 
30.11.15
13:07
(17) надо сделать этот регистр подчиненным регистратору.
21 Олеся999
 
30.11.15
13:12
(20) А по другому не как ?
22 Олеся999
 
30.11.15
13:17
(18) Так она перезаписывает
23 vhl
 
30.11.15
13:22
(9) А в чем проблема тогда? Если запись будет заменена той же записью - то ничего не поменяется же.
24 Олеся999
 
30.11.15
13:27
(23) Мне  нужно что бы предупреждения писала , а лучше чтобы запрет проведения документа был, если повторная запись в регистр  пытается записаться
25 vhl
 
30.11.15
13:32
(24) А что произойдет если повторно запишется?
26 Олеся999
 
30.11.15
13:36
ну смысл в том чтобы отследить уникальность записи
27 vhl
 
30.11.15
13:38
(26) Они уникальны. Там дублей не будет по определению.
28 vhl
 
30.11.15
13:39
Ну тупо можно сделать проверку:     
Запрос = Новый Запрос;
    
    Запрос.Текст = "
    |ВЫБРАТЬ
    |    Ремонты.Прибор
    |ИЗ
    |    РегистрСведений.Ремонты КАК Ремонты
    |ГДЕ
    |    Ремонты.Прибор В(&Приборы)
    |";
    
    
    Запрос.УстановитьПараметр("Приборы", Приборы.ВыгрузитьКолонку("Прибор"));
    
    РЗ = Запрос.Выполнить();
    Выборка = РЗ.Выбрать();
    Пока Выборка.Следующий() Цикл
        Сообщить("Есть прибор: " + Выборка.Прибор);
        Отказ = Истина;
    КонецЦикла;
29 Олеся999
 
30.11.15
13:41
(27) Ну я имею ввиду двух проведенных документов  с одним и тем же номером не было
30 Олеся999
 
30.11.15
13:41
чтоб когда мы проводили документ с номером тем что уже имеется в регистре ...док не проводился
31 Олеся999
 
30.11.15
13:53
(28) Спасибо!!! :))
32 aleks_default
 
30.11.15
14:17
Девушка, почитайте хотя бы первую страницу из главы "Регистры сведений" любой книги по 1с.
33 letni88
 
30.11.15
14:19
чтобы все работало как вам нужно, ничего делать не нужно)