Имя: Пароль:
1C
1С v8
Ошибка при записи в периодический РС почему?
0 SherifSP
 
12.02.14
17:40
Текст ошибки:

НЗ.Записать();    
по причине:
Запись не верна! Значение поля не соответствует установленному отбору: НормыРасходаТоплива: 01.02.2014, ВАЗ 21130 Петренко Р.Є., Бензин А-92 (Регистр сведений: Нормы расхода топлива; Поле: Период)


Код записи:

НЗ = РегистрыСведений.НормыРасходаТоплива.СоздатьНаборЗаписей();
    Для Каждого СтрокаТЗ Из Результат Цикл
        НЗ.Отбор.ТС.Установить(СтрокаТЗ.ТС);
        НЗ.Отбор.Период.Установить(Период);
        НЗ.Отбор.Топливо.Установить(СтрокаТЗ.Топливо);
        НЗ.Прочитать();
        
        Если НЗ.Количество() = 0 Тогда
            НоваяСтрока = НЗ.Добавить();
            НоваяСтрока.Период = Период;
            НоваяСтрока.ТС = СтрокаТЗ.ТС;
            НоваяСтрока.Топливо = СтрокаТЗ.Топливо;
            НоваяСтрока.Количество = СтрокаТЗ.Количество + СтрокаТЗ.Количество*ПроцентНачисления/100;            
            НЗ.Записать();    
        КонецЕсли;
        
    КонецЦикла;
1 SherifSP
 
12.02.14
17:41
(0) Период при установке и при записи одинаковый
2 МойКодУныл
 
12.02.14
17:46
(0) 1. Может в модуле набора запсией устанавливается другой период
2. Моет в подписке устанавливается другой период
3. Период разный:)
3 SherifSP
 
12.02.14
17:49
(2) Если период указать программно вот так:     НЗ.Отбор.Период.Установить('20140101');
записывается нормально
4 SherifSP
 
12.02.14
17:49
Период - реквизит с типом Дата
5 х86
 
12.02.14
17:52
(0)поставь точку останова на НЗ.Записать()
и посмотри отладчиком значения НоваяСтрока.Период и НЗ.Отбор.Период.Значение
6 le_
 
12.02.14
17:53
НоваяСтрока.Период = Период;
НоваяСтрока.ТС = СтрокаТЗ.ТС;
НоваяСтрока.Топливо = СтрокаТЗ.Топливо;


Это там вообще не нужно.
7 Torquader
 
12.02.14
17:56
(4) Точно без времени ?
8 SherifSP
 
12.02.14
17:57
(5) И там и там тип дата, значение одинаковое
9 SherifSP
 
12.02.14
17:57
(7) 00:00
10 SherifSP
 
12.02.14
17:59
Записалось, проблема была в том что регистр не хочет принимать данные за 12.02.14, за 11.02.14 норм все
11 Torquader
 
12.02.14
17:59
// перед записью
Если НЗ.Отбор.Период.Значение<>Период Тогда
Сообщить("Автор явно что-то скрывает!");
КонецЕсли;
12 SherifSP
 
12.02.14
18:08
(11) Не выдает сообщить, но ошибка осталась
13 Torquader
 
12.02.14
18:09
(10) чего-то очень странно - в отборе ссылаются на базу 01-02-2014.
14 SherifSP
 
12.02.14
18:09
Периодичность в пределах месяца, последняя запись еще в 1 месяце 13 года была
15 SherifSP
 
12.02.14
18:10
В модулях рс никаких процедур нет
16 SherifSP
 
12.02.14
18:11
подписок тоже
17 Torquader
 
12.02.14
18:18
А периодичность регистра какая ?
Есть мнение, что месяц, так как в (0) указывает первое число месяца.
18 SherifSP
 
12.02.14
18:19
(17) Месяц
19 Torquader
 
12.02.14
18:21
(18) Ну, тогда понятно, что дата должна быть на первое число месяца - в отборе он переводит, а вот в записи - нет.
Выдавать глобальные идеи — это удовольствие; искать сволочные маленькие ошибки — вот настоящая работа. Фредерик Брукс-младший