|
1С ЗУП запись данных в справочник Физические лица | ☑ | ||
|---|---|---|---|---|
|
0
ammorf
27.07.26
✎
09:16
|
Приветствую всех! Проблем такая, требуется записать дату рождения физ лица и место рождения. Все данные обработкой получаю с файла, нахожу физика по СНИЛС получаю объект элемента справочника, вставляю значения в реквизиты, записываю. Все проходит нормально включая запись объекта. В отладчике проверяю после записи в ссылке реквизиты заполнены. Но дальше начинается странное, реквизиты остаются пустыми когда открываешь элемент справочника, позже я в журнале регистрации вижу что изменения объекта в статусе транзации "Отменено". Скажите, плиз, что не так с 1с ЗУП???
|
|||
|
1
Мультук
гуру
27.07.26
✎
09:25
|
(0)
>> после записи в ссылке реквизиты заполнены А дальше идёт ОтменитьТранзакцию() Код будет ? |
|||
|
2
ammorf
27.07.26
✎
09:29
|
(1)
Для Каждого Данные Из ТЗ Цикл Если Данные.ФИО = "" Тогда Продолжить; КонецЕсли; СНИЛС = Данные.СНИЛС; ФИО = СокрЛП(Данные.Фамилия) + " " + СокрЛП(Данные.Имя) + ?(СокрЛП(Данные.Отчество) <> "", " " + СокрЛП(Данные.Отчество), ""); СсылкаСпрФЗ = ПолучитьЭлемнтСправочникаФЗ(СНИЛС); Если МассивОбработанных.Найти(СсылкаСпрФЗ) <> Неопределено Тогда //уже обработали Продолжить; КонецЕсли; Если СсылкаСпрФЗ = Неопределено Тогда Общегоназначения.СообщитьПользователю("Не найден сотрудник: " + ФИО + "; СНИЛС: " + СНИЛС + ""); Продолжить; КонецЕсли; ОбъектСпрФЗ = СсылкаСпрФЗ.ПолучитьОбъект(); ОбъектСпрФЗ.ОбменДанными.Загрузка = Истина; ДатаРождения = Дата(Сред(Данные.ДатаРождения, 7, 4) + Сред(Данные.ДатаРождения, 4, 2) + Сред(Данные.ДатаРождения, 1, 2)); ОбъектСпрФЗ.ДатаРождения = ДатаРождения; Попытка ОбъектСпрФЗ.Записать(); Исключение ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки()); Возврат; КонецПопытки; КонецЦикла; |
|||
|
3
ammorf
27.07.26
✎
09:32
|
Пробовал с привилегией и без нее. Без толку. Но при этом групповая обработка реквизитов встроенная в конфу изменяет реквизит без проблем.
|
|||
|
4
2S
27.07.26
✎
09:38
|
А если без попытки?
|
|||
|
5
PuhUfa
27.07.26
✎
09:50
|
(2) это же не весь код. а что в остальном коде?
|
|||
|
6
ammorf
27.07.26
✎
09:52
|
(4) без попытки тоже самое
|
|||
|
7
ammorf
27.07.26
✎
09:57
|
Спсибо всем огромное, еще раз пробежался по коду и нашел лишнее начало транзакции)) оказывается я ее начал еще до цикла. В цикле вызывал еще раз. Потом убрал ее совсем а первую до цикла не фиксировал получается)))
|
|||
|
8
ammorf
27.07.26
✎
09:57
|
Надо быть внимательнее))
|
|||
|
9
Волшебник
27.07.26
✎
10:04
|
Для Каждого Данные Из ТЗ Цикл
Если Данные.ФИО = "" Тогда Продолжить; КонецЕсли; СНИЛС = Данные.СНИЛС; ФИО = СокрЛП(Данные.Фамилия) + " " + СокрЛП(Данные.Имя) + ?(СокрЛП(Данные.Отчество) <> "", " " + СокрЛП(Данные.Отчество), ""); Физлицо = НайтиФизлицо(СНИЛС); Если МассивОбработанных.Найти(Физлицо) <> Неопределено Тогда //уже обработали Продолжить; КонецЕсли; Если НЕ ЗначениеЗаполнено(Физлицо) Тогда ОбщегоНазначения.СообщитьПользователю("Не найден сотрудник: " + ФИО + "; СНИЛС: " + СНИЛС + ""); Продолжить; КонецЕсли; оФизлицо = Физлицо.ПолучитьОбъект(); оФизлицо.ОбменДанными.Загрузка = Истина; ДатаРождения = Дата(Сред(Данные.ДатаРождения, 7, 4) + Сред(Данные.ДатаРождения, 4, 2) + Сред(Данные.ДатаРождения, 1, 2)); оФизлицо.ДатаРождения = ДатаРождения; Попытка оФизлицо.Записать(); //Возврат; Исключение ОбщегоНазначения.СообщитьПользователю(ОписаниеОшибки()); КонецПопытки; КонецЦикла; |
|||
|
10
ammorf
27.07.26
✎
10:06
|
(9) Благодарю за попытку :))
|
|||
|
11
SleepyHead
гуру
27.07.26
✎
10:09
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |