Имя: Пароль:
1C
 
Перезаписать все записи регистра сведений
, , ,
0 pedagog
 
17.03.21
12:21
Есть независимы непериодический рег сведений СоставыСемейФизическихЛиц с измерениями ФизическоеЛицо и НомерПоПорядку.
НомерПоПорядку = 1;
    НаборЗаписей = РегистрыСведений.СоставыСемейФизическихЛиц.СоздатьНаборЗаписей();
    для Каждого текстрока из табзнач1 цикл
        если не ЗначениеЗаполнено(текстрока.DETNAME) тогда
            Продолжить;
        КонецЕсли;
        табНомер = сокрЛП(СтрЗаменить(текстрока.CNTNMBR,"А",""));
        Сотрудник = Справочники.Сотрудники.НайтиПоКоду(табНомер);
        если не ЗначениеЗаполнено(Сотрудник) тогда
            Продолжить;
        КонецЕсли;
        если не ЗначениеЗаполнено(Сотрудник.ФизическоеЛицо) тогда
            Продолжить;
        КонецЕсли;
        
        если текФизЛицо <> Сотрудник.ФизическоеЛицо тогда
                НомерПоПорядку = 1;
                текФизЛицо = Сотрудник.ФизическоеЛицо;
            КонецЕсли;
            
        если ЗначениеЗаполнено(текФизЛицо) тогда
            //МенеджерЗаписи = РегистрыСведений.СоставыСемейФизическихЛиц.СоздатьМенеджерЗаписи();
            //МенеджерЗаписи.Период = НачалоДня(ДатаПереносаДанных);
            //НаборЗаписей.Отбор.ФизическоеЛицо.Установить(текФизЛицо);
            //НаборЗаписей.Отбор.НомерПоПорядку.Установить(НомерПоПорядку);
            новаязапись = НаборЗаписей.Добавить();
            
            новаязапись.Активность = истина;
            новаязапись.Период = НачалоДня(ДатаПереносаДанных);
            новаязапись.ФизическоеЛицо = текФизЛицо;
            новаязапись.НомерПоПорядку = НомерПоПорядку;
            //новаязапись.НомерСтроки = НомерПоПорядку;
            новаязапись.СтепеньРодства = ОпределитьСтепеньРодства(сокрЛП(текстрока.DETKTO));
            новаязапись.ФИО = сокрЛП(текстрока.DETNAME);
            новаязапись.ДатаРождения = текстрока.DETDATE;
            НомерПоПорядку = НомерПоПорядку+1;
        КонецЕсли;
    КонецЦикла;
    НаборЗаписей.Записать();
При записи выдает ошибку . что не так делаю
1 pedagog
 
17.03.21
12:22
или предложите метод попроще
2 Почему 1С
 
17.03.21
12:25
А где текст ошибки?
3 pedagog
 
17.03.21
12:56
Запись не верна! Значение поля не соответствует установленному отбору: СоставыСемейФизическихЛиц: Симонович Игорь Викторович, 1 (Регистр сведений: Составы семей физических лиц; Номер строки: 1; Поле: ФизическоеЛицо)
4 acht
 
17.03.21
12:58
(3) Совместители небось
5 pedagog
 
17.03.21
12:59
так запись делается по физлицу
6 acht
 
17.03.21
13:06
(5) Которое берется откуда?
7 pedagog
 
17.03.21
13:10
из тз
8 acht
 
17.03.21
13:11
текФизЛицо = Сотрудник.ФизическоеЛицо;

Этачо?
9 pedagog
 
17.03.21
13:14
(8) да
10 acht
 
17.03.21
13:16
(9) Розовенький

У тебя два разных сотрудника, с разными табельными номерами, могут ссылаться на одного физика.
11 Почему 1С
 
17.03.21
13:19
Так судя по ошибке у тебя стоит отбор по физлицу у набора записей, если это действительно так то его нужно убрать
12 pedagog
 
17.03.21
13:26
НаборЗаписей.Очистить();
НаборЗаписей.Загрузить(тз);
НаборЗаписей.Записать();
13 pedagog
 
17.03.21
13:26
а так можно?
14 pedagog
 
17.03.21
13:27
НаборЗаписей = РегистрыСведений.СоставыСемейФизическихЛиц.СоздатьНаборЗаписей();
    НаборЗаписей.Записать();
    НаборЗаписей.Прочитать();
        НаборЗаписей.Загрузить(тз);
    НаборЗаписей.Записать();
15 Почему 1С
 
17.03.21
14:24
нет разницы как ты сформируешь набор записей, если  НаборЗаписей.Загрузить(тз) заполняет его нужным образом, то все верно
16 Малыш Джон
 
17.03.21
14:46
Можно вообще не мучаться и написать просто:

НаборЗаписей = РегистрыСведений.СоставыСемейФизическихЛиц.СоздатьНаборЗаписей();
НаборЗаписей.Записать();

Каждый в своей жизни должен хотя бы раз так в проде сделать. Без этого, я считаю, нельзя называться 1сником.
17 youalex
 
17.03.21
14:49
(16) деструктивный пост. Ты же понимаешь, что этот топик может читать не только ТС, и не только сейчас
18 Малыш Джон
 
17.03.21
14:59
(17) согласен, не подумал, что иронию в письменном виде не все могут распознать

удалите сообщение(16), у кого права есть
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой