|
Не получается записать данные в регистр | ☑ | ||
---|---|---|---|---|
0
FFIL0S0FF
10.05.18
✎
11:58
|
Добрый день.
УПП регистр сведений Контактная информация Делаю обработку для загрузки пропусков из текстового файла. Проблема в том что если в регистре уже есть запись то номер пропуска записывается и изменяется. А если записи в регистре нет то новая запись не записывается. Но могу понять почему. Сам код: Процедура КнопкаВыполнитьНажатие(Кнопка) ТекстовыйДок = Новый ТекстовыйДокумент(); ТекстовыйДок.Прочитать(ПутьКФайлу); КоличествоСтрок = ТекстовыйДок.КоличествоСтрок(); Для Сч=2 по КоличествоСтрок Цикл СтрокаИзФайла = ТекстовыйДок.ПолучитьСтроку(Сч); МассивЗначений =СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаИзФайла,";",Ложь); Если МассивЗначений.ВГраница()>5 Тогда НомерКарты = МассивЗначений[6]; МассивЗначений[6]= НомерКарты; СтрокаФИО = СокрЛП(МассивЗначений[0]) +" "+ СокрЛП(МассивЗначений[1])+" " +СокрЛП(МассивЗначений[2]); НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Объект.Установить(Справочники.ФизическиеЛица.НайтиПоНаименованию(СтрокаФИО)); НаборЗаписей.Отбор.Тип.Установить(Перечисления.ТипыКонтактнойИнформации.Другое); НаборЗаписей.Отбор.Вид.Установить(Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Номер пропуска")); НаборЗаписей.Прочитать(); Для каждого Запись из НаборЗаписей Цикл Запись.Представление = СокрЛП(НомерКарты); КонецЦикла; НаборЗаписей.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры Проблема в том что если в регистре уже есть запись то номер пропуска записывается и изменяется. А если записи в регистре нет то новая запись не записывается. Не могу понять почему? |
|||
1
DrShad
10.05.18
✎
12:00
|
кто же пишет РС наборами?
|
|||
2
FFIL0S0FF
10.05.18
✎
12:04
|
А как нужно? Я нашел именно такой способ поэтому делаю так.
|
|||
3
1Сергей
10.05.18
✎
12:05
|
(2) ищи другой способ
|
|||
4
hhhh
10.05.18
✎
12:07
|
(2) забыл НаборЗаписей.Добавить();
поэтому не добавляется новая запись |
|||
5
Малыш Джон
10.05.18
✎
12:09
|
(1) а что не так?
|
|||
6
Волшебник
10.05.18
✎
12:10
|
(1) Платформа всегда
|
|||
7
ugorchina
10.05.18
✎
12:17
|
(1) а вы как пишите?
|
|||
8
DrShad
10.05.18
✎
12:19
|
(7) через менеджер записи
а наборами только очищаю |
|||
9
ugorchina
10.05.18
✎
12:32
|
(8) или я туплю даже если менеджер записи не нужно разве писать затем НаборЗаписей = МенеджерЗаписи.СоздатьНаборЗаписей();
? или я ошибаюсь? |
|||
10
DrShad
10.05.18
✎
12:34
|
(9) а ты попробуй
|
|||
11
ugorchina
10.05.18
✎
12:36
|
(10) нет возможности
|
|||
12
FFIL0S0FF
10.05.18
✎
12:39
|
(10) Ваш способ действительно показался мне более удобным.
погуглил... сделал... Процедура КнопкаВыполнитьНажатие(Кнопка) ТекстовыйДок = Новый ТекстовыйДокумент(); ТекстовыйДок.Прочитать(ПутьКФайлу); КоличествоСтрок = ТекстовыйДок.КоличествоСтрок(); Для Сч=2 по КоличествоСтрок Цикл СтрокаИзФайла = ТекстовыйДок.ПолучитьСтроку(Сч); МассивЗначений =СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(СтрокаИзФайла,";",Ложь); Если МассивЗначений.ВГраница()>5 Тогда НомерКарты = МассивЗначений[6]; МассивЗначений[6]= НомерКарты; СтрокаФИО = СокрЛП(МассивЗначений[0]) +" "+ СокрЛП(МассивЗначений[1])+" " +СокрЛП(МассивЗначений[2]); НаборЗаписей = РегистрыСведений.КонтактнаяИнформация.СоздатьМенеджерЗаписи(); НаборЗаписей.Объект=Справочники.ФизическиеЛица.НайтиПоНаименованию(СтрокаФИО); НаборЗаписей.Тип=Перечисления.ТипыКонтактнойИнформации.Другое; НаборЗаписей.Вид=Справочники.ВидыКонтактнойИнформации.НайтиПоНаименованию("Номер пропуска"); НаборЗаписей.Представление = СокрЛП(НомерКарты); НаборЗаписей.Записать(Истина); КонецЕсли; КонецЦикла; КонецПроцедуры Но теперь вылезает ошибка: Ошибка при вызове метода контекста (Записать) НаборЗаписей.Записать(Истина); по причине: Не удалось записать: "Контактная информация"! Я что то сделал не так? У регистра 3 измерения и я их заполняю. + в предыдущем вареанте работало с такими значениями на изменение. |
|||
13
lEvGl
гуру
10.05.18
✎
13:14
|
(1) че бы нет, тем более при загрузке из файла, а то ж получится как в (12)
|
|||
14
lEvGl
гуру
10.05.18
✎
13:16
|
(12) "запись с такими значениями измерений уже существует"?
|
|||
15
FFIL0S0FF
10.05.18
✎
13:29
|
нет
|
|||
16
lEvGl
гуру
10.05.18
✎
13:39
|
с такими ключевыми полями?
|
|||
17
lubitelxml
10.05.18
✎
13:42
|
(12)
НомерКарты = МассивЗначений[6]; МассивЗначений[6]= НомерКарты; не расскажешь для чего вторая строка? |
|||
18
Мандалай
10.05.18
✎
13:44
|
Поставь галочку "Остановка по ошибке" и запусти свой алгоритм, только войди в режим отладки. Увидишь где ругается, скорее всего какая нибудь проверка в модуле при записи выполняется.
|
|||
19
lEvGl
гуру
10.05.18
✎
13:46
|
(17)+
ну а так для варианта из 0 в (4) уже все сказали |
|||
20
DrShad
10.05.18
✎
13:47
|
у менеджера записей еще есть метод Выбран()
на всякий случай |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |