|
Изменение записи регистра сведений | ☑ | ||
---|---|---|---|---|
0
Sayan_mi
30.05.18
✎
08:23
|
Есть непериодический независимый регистр сведений.
В нем два измерения Физическое лицо и номер по порядку. Пытаюсь изменить в нем ресурсы. ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи(); ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо; ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку; ткЗапись.Прочитать(); врДата = ткЗапись.ДатаНачала; ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания; ткЗапись.ДатаОкончания = врДата; ткЗапись.Записать(); Вылетает по ошибке: Запись не верна! Значение поля не соответствует установленному отбору: ТрудоваяДеятельностьФизическихЛиц: Аввакумов Александр Васильевич, 1 (Регистр сведений: Трудовая деятельность; Поле: НомерПоПорядку) Но я номер по порядку не менял. В какой момент он изменился. Перед записью смотрел НПП был равен 2. Не подскажите что с этим сделать? |
|||
1
Tankur
30.05.18
✎
08:37
|
ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи();
ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо; ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку; ткЗапись.Прочитать(); ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо; ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку; врДата = ткЗапись.ДатаНачала; ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания; ткЗапись.ДатаОкончания = врДата; ткЗапись.Записать(); |
|||
2
Tankur
30.05.18
✎
08:38
|
это если уж тебе надо действительно прочитать, что для менеджера записи не обязательно
|
|||
3
Tankur
30.05.18
✎
08:40
|
но тут нет проверки на пустые значения в измерениях. Если в твоем строка будут пустые значения - пеняй на себя )))
|
|||
4
Tankur
30.05.18
✎
08:46
|
ткЗапись = РегистрыСведений.ТрудоваяДеятельностьФизическихЛиц.СоздатьМенеджерЗаписи();
ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо; ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку; ткЗапись.Прочитать(); ткЗапись.ФизическоеЛицо = Строка.ФизическоеЛицо; ткЗапись.НомерПоПорядку = Строка.НомерПоПорядку; врДата = ткЗапись.ДатаНачала; ткЗапись.ДатаНачала = ткЗапись.ДатаОкончания; ткЗапись.ДатаОкончания = врДата; Если ткЗапись.ПроверитьЗаполнение() Тогда ткЗапись.Записать(Истина); Иначе Сообщить("Ошибка "); Продолжить; КонецЕсли; |
|||
5
catena
30.05.18
✎
08:52
|
Пример из СП:
Курс = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи(); -->Курс.Валюта = ВыбВалюта; -->Курс.Период = ТекущаяДата(); Курс.Прочитать(); Если Не Курс.Выбран() Тогда --> Курс.Период = ТекущаяДата(); --> Курс.Валюта = ВыбВалюта; Курс.Курс = 41.35; Курс.Кратность = 1; КонецЕсли; Если ВвестиЧисло(Курс.Курс, "Введите курс на сегодня",15,5) Тогда Курс.Записать(); КонецЕсли; |
|||
6
Ненавижу 1С
гуру
30.05.18
✎
08:53
|
посмотри подписку на событие ПроверитьЗаписиДанныхФизическихЛиц
|
|||
7
Sayan_mi
30.05.18
✎
09:06
|
(1) Ошибка осталась. В отладчике смотрел ткЗапись после чтения НомерПоПорядку был 2 перед записью тоже в ошибке пишет про 1.
|
|||
8
Sayan_mi
30.05.18
✎
09:13
|
(6) да там устанавливается номер по порядку 1. Похоже придется считывать все данные по физ лицу - менять в одной строке даты местами и записывать весь набор записей.
|
|||
9
Сияющий в темноте
30.05.18
✎
09:14
|
Смотреть модуль набора записей и подписки на события,где то 2 меняется на 1 сторонним алгоритмом.
И очень похоже,что создатели регистра ожидали запись через набор записи,где все записи пронумерованы. |
|||
10
Ненавижу 1С
гуру
30.05.18
✎
09:21
|
(8) там же условие отключения этого дела есть
Если ЗарплатаКадры.ОтключитьБизнесЛогикуПриЗаписи(Источник) Тогда Возврат; КонецЕсли; Функция ОтключитьБизнесЛогикуПриЗаписи(Знач Объект) Экспорт Возврат Объект.ОбменДанными.Загрузка И (НЕ Объект.ДополнительныеСвойства.Свойство("ПроверятьБизнесЛогикуПриЗаписи")); КонецФункции |
|||
11
Sayan_mi
30.05.18
✎
09:33
|
Да решил сделать запись набором куда подтащить все строки физ лица. Получилось.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |