Имя: Пароль:
1C
1С v8
v8.2 УП: вопрос по обработке проведения документа
0 dborovsky
 
26.04.13
15:47
При проведении документа постояно  выводит ошибку Запись с такими ключевыми полями существует! На форумах изучив данную проблему, изменив процедуру, но безрезультатно. Что ни так в коде, заранее спасибо за ответ:

Для Каждого ТекСтрокаТовары Из Товары Цикл
        //НаборЗаписей.Отбор.Период.Установить(ДатаВходящегоДокумента);
        //НаборЗаписей.Отбор.Поставщик.СоздатьНаборЗаписей(Контрагент);
        НаборЗаписей.Прочитать();
       
        Если НаборЗаписей.Количество() > 0 Тогда
           НаборЗаписей.Очистить();
        КонецЕсли;
       
        НоваяЗапись = НаборЗаписей.Добавить();
        НоваяЗапись.Период = ДатаВходящегоДокумента;
        НоваяЗапись.Организация = Организация;
        НоваяЗапись.Поставщик = Контрагент;
        НоваяЗапись.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяЗапись.Цена = ТекСтрокаТовары.Цена;
        НоваяЗапись.Валюта = ВалютаДокумента;
       
    КонецЦикла;
     НаборЗаписей.Записать();
1 dborovsky
 
26.04.13
15:48
//ОБРАБОТКА ПРОВЕДЕНИЯ ДЛЯ РЕГИСТРА ЦЕНЫ ПОСТАВЩИКА
    НаборЗаписей = РегистрыСведений.ЦеныПоставщика.СоздатьНаборЗаписей();
    НаборЗаписей.Отбор.Регистратор.Установить(ЭтотОбъект.Ссылка);
   
    Для Каждого ТекСтрокаТовары Из Товары Цикл
        //НаборЗаписей.Отбор.Период.Установить(ДатаВходящегоДокумента);
        //НаборЗаписей.Отбор.Поставщик.СоздатьНаборЗаписей(Контрагент);
        НаборЗаписей.Прочитать();
       
        Если НаборЗаписей.Количество() > 0 Тогда
           НаборЗаписей.Очистить();
        КонецЕсли;
       
        НоваяЗапись = НаборЗаписей.Добавить();
        НоваяЗапись.Период = ДатаВходящегоДокумента;
        НоваяЗапись.Организация = Организация;
        НоваяЗапись.Поставщик = Контрагент;
        НоваяЗапись.Номенклатура = ТекСтрокаТовары.Номенклатура;
        НоваяЗапись.Цена = ТекСтрокаТовары.Цена;
        НоваяЗапись.Валюта = ВалютаДокумента;
       
    КонецЦикла;
     НаборЗаписей.Записать();
2 SuperMario
 
26.04.13
15:49
почитай мат. часть по периодическим регистрам сведений (точнее вообще по регистрам сведений)...
3 SuperMario
 
26.04.13
15:51
+(2) если быть конкретнее по по понятию периодичность регистра  и уникальность записи регистра сведений.
4 dborovsky
 
26.04.13
15:51
Читал, что конкретно ни так в данном коде? Записи по идеи очистил.
5 SuperMario
 
26.04.13
15:57
(4) думай голова!
тебе же сама 1С открытым кодом пишет " Запись с такими ключевыми полями существует"!!!!
6 SuperMario
 
26.04.13
16:01
в таб. части есть повторяющиеся записи, которые хотят попасть в регистр. Смотри все значения измерений , которые пытаются лезть в рег.
7 dborovsky
 
26.04.13
17:09
я изначально написал, что знаю в чем ошибка -  Запись с такими ключевыми полями существует. Я в коде прописал, чтобы вызывался метод очистить для удаления всех записей по моему документу, чтобы не было повторений
8 hhhh
 
26.04.13
18:42
(7) то есть если в табчасти товары две одинаковые строчки, ты их обе удалил или какую-то одну?