Имя: Пароль:
1C
1С v8
Опять регистр сведений 8,2
,
0 KonstantinK90
 
01.04.15
05:48
Здрасти выдает ошибку поле не уникальна запись с таким ключевым полем
Процедура Кнопка1Нажатие(Элемент)
    // Вставить содержимое обработчика.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    уатПервоначальныеСведенияТС.Модель,
               |    уатПервоначальныеСведенияТС.ГосударственныйНомер,
               |    уатПервоначальныеСведенияТС.Менеджер
               |ИЗ
               |    РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС";
Результат = Запрос.Выполнить().Выгрузить();
Дата =  НачалоГода(ТекущаяДата());
Для Каждого строки Из Результат Цикл
    
Если строки.Менеджер.Наименование = "" Тогда
    Иначе
    НаборЗаписей = РегистрыСведений.УАТ_РегистрацияМенеджеров.СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.Менеджер.Установить(строки.Менеджер);
    НаборЗаписей.Отбор.ГосНомер.Установить(строки.ГосударственныйНомер);    
    НаборЗаписей.Прочитать();    
    НоваяЗапись           = НаборЗаписей.Добавить();
    
    НоваяЗапись.Период    =  НачалоГода(ТекущаяДата());
    НоваяЗапись.Менеджер  =  строки.Менеджер;
    НоваяЗапись.ГосНомер  =  строки.ГосударственныйНомер;
    НоваяЗапись.Модель    =  строки.Модель;    
    НаборЗаписей.Записать();
    //НаборЗаписей.Очистить();    

КонецЕсли;    
    КонецЦикла;
    
КонецПроцедуры

Запись с такими ключевыми полями существует! : УАТ_РегистрацияМенеджеров: 01.01.2015, 01.01.0001 0:00:00, Маланин Александр Юрьевич, АО032822 (Регистр сведений: Регистрация менеджеров; Номер строки: 2)
1 KonstantinK90
 
01.04.15
05:49
я полагаю это из за даты как от этого избавиться
2 KonstantinK90
 
01.04.15
05:51
регистр сведений куда записываем периодичность в пределах секунды не зависимый
3 hawksib
 
01.04.15
05:53
(1) сделайте выборку строк для записи которых нет в регистре, куда вы пишите по срезу на начало года и пишите в него эти строки, ошибки не будет
4 KonstantinK90
 
01.04.15
05:59
спасибо буду пробовать
5 KonstantinK90
 
01.04.15
06:10
блин а если он пустой то тогда как
6 hawksib
 
01.04.15
06:15
УАТ_РегистрацияМенеджеров у тебя не пустой, там уже существую записи, сообщение же возникает, сам говоришь
7 KonstantinK90
 
01.04.15
06:19
а вот так делаю проверку все равно ошибка
Процедура Кнопка1Нажатие(Элемент)
    // Вставить содержимое обработчика.
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               |    уатПервоначальныеСведенияТС.Модель,
               |    уатПервоначальныеСведенияТС.ГосударственныйНомер,
               |    уатПервоначальныеСведенияТС.Менеджер
               |ИЗ
               |    РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС";
Результат = Запрос.Выполнить().Выгрузить();
Дата =  НачалоГода(ТекущаяДата());
Для Каждого строки Из Результат Цикл
    
Если строки.Менеджер.Наименование = "" Тогда
Иначе
        
    НаборЗаписей = РегистрыСведений.УАТ_РегистрацияМенеджеров.СоздатьНаборЗаписей();
    //НаборЗаписей.Отбор.Менеджер.Установить(строки.Менеджер);
    НаборЗаписей.Отбор.ГосНомер.Установить(строки.ГосударственныйНомер);    
    НаборЗаписей.Прочитать();    
    НоваяЗапись           = НаборЗаписей.Добавить();
    //
      Запрос =новый Запрос;
      Запрос.Текст = "ВЫБРАТЬ
                     |    УАТ_РегистрацияМенеджеров.Менеджер,
                     |    УАТ_РегистрацияМенеджеров.ГосНомер,
                     |    УАТ_РегистрацияМенеджеров.Период
                     |ИЗ
                     |    РегистрСведений.УАТ_РегистрацияМенеджеров КАК УАТ_РегистрацияМенеджеров";
                    
     РегистрацМен = Запрос.Выполнить().Выгрузить();
    
    Для Каждого Менеждера Из РегистрацМен Цикл
    //
    Если Менеждера.Менеджер = строки.Менеджер И Менеждера.ГосНомер = строки.ГосударственныйНомер Тогда
        
        Иначе
    НоваяЗапись.Период    =  НачалоГода(ТекущаяДата());
    НоваяЗапись.Менеджер  =  строки.Менеджер;
    НоваяЗапись.ГосНомер  =  строки.ГосударственныйНомер;
    НоваяЗапись.Модель    =  строки.Модель;    
    НаборЗаписей.Записать();
    //НаборЗаписей.Очистить();    

КонецЕсли;    
КонецЦикла;
КонецЕсли;
    КонецЦикла;
    
КонецПроцедуры
8 hawksib
 
01.04.15
06:46
(7) какую-то фигню делаешь
если так делаешь, то выборку делай не для всего регистра УАТ_РегистрацияМенеджеров, а сделай отбор по ключевым полям

и вообще, чего хочешь добиться, чтобы просто что-то в регистр записалось без ошибок, или всё-таки нужны конкретные данные, я просто думаю, что вы не понимаете смысла того, что делаете
9 ЧеловекДуши
 
01.04.15
06:54
(7) Кто так делает?
Тебе нужен Менеджер Записи, а не Запрос ;)
10 kosts
 
01.04.15
06:57
(0) Уже неделю ковыряешь запись в регистр, может уже хотя бы литературу почитаешь по теме...
11 Defender aka LINN
 
01.04.15
07:25
(5) Значит, у тебя в наборе дублирующиеся по измерениям записи