Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Изменение записи регистра сведений

Изменение записи регистра сведений
Я
   Sayan_mi
 
30.05.18 - 08:23
Есть непериодический независимый регистр сведений.
В нем два измерения Физическое лицо и номер по порядку.
Пытаюсь изменить в нем ресурсы.
ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи();    
        ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо;
        ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку;
        ткЗапись.Прочитать();

        врДата = ткЗапись.ДатаНачала;
        ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания;
        ткЗапись.ДатаОкончания = врДата;
        
        ткЗапись.Записать();

Вылетает по ошибке: Запись не верна! Значение поля не соответствует установленному отбору: ТрудоваяДеятельностьФизическихЛиц: Аввакумов Александр Васильевич, 1 (Регистр сведений: Трудовая деятельность; Поле: НомерПоПорядку)
Но я номер по порядку не менял. В какой момент он изменился. Перед записью смотрел НПП был равен 2.
Не подскажите что с этим сделать?
 
 
   Tankur
 
1 - 30.05.18 - 08:37
ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи();    
        ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо;
        ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку;
        ткЗапись.Прочитать();
        ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо;
        ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку;

        врДата = ткЗапись.ДатаНачала;
        ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания;
        ткЗапись.ДатаОкончания = врДата;
        
        ткЗапись.Записать();
   Tankur
 
2 - 30.05.18 - 08:38
это если уж тебе надо действительно прочитать, что для менеджера записи не обязательно
   Tankur
 
3 - 30.05.18 - 08:40
но тут нет проверки на пустые значения в измерениях. Если в твоем строка будут пустые значения - пеняй на себя )))
   Tankur
 
4 - 30.05.18 - 08:46
ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи();    
ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо;
ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку;
ткЗапись.Прочитать();
ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо;
ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку;

врДата = ткЗапись.ДатаНачала;
ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания;
ткЗапись.ДатаОкончания = врДата;
Если ткЗапись.ПроверитьЗаполнение() Тогда 
    ткЗапись.Записать(Истина); 
Иначе
    Сообщить("Ошибка ");
    Продолжить;
КонецЕсли;
   catena
 
5 - 30.05.18 - 08:52
Пример из СП:

Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
-->Курс.Валюта = ВыбВалюта;
-->Курс.Период = ТекущаяДата();
Курс.Прочитать();
Если Не Курс.Выбран() Тогда
-->    Курс.Период = ТекущаяДата();
-->    Курс.Валюта = ВыбВалюта;
    Курс.Курс = 41.35;
    Курс.Кратность = 1;
КонецЕсли;
Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда
    Курс.Записать();
КонецЕсли;
   Ненавижу 1С
 
6 - 30.05.18 - 08:53
посмотри подписку на событие ПроверитьЗаписиДанныхФизическихЛиц
   Sayan_mi
 
7 - 30.05.18 - 09:06
(1) Ошибка осталась. В отладчике смотрел ткЗапись после чтения НомерПоПорядку был 2 перед записью тоже в ошибке пишет про 1.
   Sayan_mi
 
8 - 30.05.18 - 09:13
(6) да там устанавливается номер по порядку 1. Похоже придется считывать все данные по физ лицу - менять в одной строке даты местами и записывать весь набор записей.
   Сияющий в темноте
 
9 - 30.05.18 - 09:14
Смотреть модуль набора записей и подписки на события,где то 2 меняется на 1 сторонним алгоритмом.
И очень похоже,что создатели регистра ожидали запись через набор записи,где все записи пронумерованы.
   Ненавижу 1С
 
10 - 30.05.18 - 09:21
(8) там же условие отключения этого дела есть
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(Источник) Тогда
        Возврат;
    КонецЕсли;


Функция ОтключитьБизнесЛогикуПриЗаписи(Знач Объект) Экспорт
    
    Возврат Объект.ОбменДанными.Загрузка И (НЕ Объект.ДополнительныеСвойства.Свойство("ПроверятьБизнесЛогикуПриЗаписи")); 
        
КонецФункции
 
 Рекламное место пустует
   Sayan_mi
 
11 - 30.05.18 - 09:33
Да решил сделать запись набором куда подтащить все строки физ лица. Получилось.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует