![]() |
|
РегистрСведений.МенеджерЗаписи - метод "Прочитать" | ☑ | ||
---|---|---|---|---|
0
cfk
19.08.09
✎
19:23
|
такая процедура:
Процедура КнопкаВыполнитьНажатие(Кнопка) Попытка Excel=Новый COMОбъект("Excel.Application"); DataFile = Excel.WorkBooks.Open(SrcFile); DataSheet = DataFile.Sheets(1); rsm=РегистрыСведений.ФИОФизЛиц.СоздатьМенеджерЗаписи(); for row=2 to 2 do INN=undefined; FN=undefined; Nm=undefined; SN=undefined; FNS=undefined; for col=1 to 2 do //Try UserInterruptProcessing(); if IsBlankString(DataSheet.cells(row,col).Value)=false then if col=1 then INN=ПроверитьИНН(DataSheet.cells(row,col).Value); else FNS=TrimAll(String(DataSheet.cells(row,col).Value)); S1Idx=Find(FNS," "); FN=TrimALL(Left(FNS,S1Idx-1));//first name S2Idx=Find(Right(FNS,StrLen(FNS)-S1Idx)," "); Nm=TrimALL(Mid(FNS,S1Idx+1,S2Idx-1));//name SN=TrimALL(Right(FNS,StrLen(FNS)-(StrLen(FN)+StrLen(Nm)+2)));//surname Usr=Справочники.ФизическиеЛица.НайтиПоРеквизиту("ИНН",INN); if Usr<>Справочники.ФизическиеЛица.ПустаяСсылка() then rsm.ФизЛицо=Usr; rsm.Период=ТекущаяДата(); rsm.Прочитать(); if rsm.Выбран() then rsm.ФамилияР=FN; rsm.ИмяР=Nm; rsm.ОтчествоР=SN; rsm.Записать(); else message("record for Usr "+Usr.Наименование+" in register not found!"); endif; else message("usr w "+INN+" nf!");//usr w current INN nf! endif; endif; else message("empty value in cell @ r:"+string(row)+", c:"+string(col)+".");//empty cell value! endif; //except // //endtry; enddo; enddo; Исключение Ошибка = Строка(ОписаниеОшибки()); Предупреждение(Ошибка); Excel.WorkBooks.Close(); Excel.Quit(); //Возврат Ошибка; КонецПопытки; Excel.WorkBooks.Close(); Excel.Quit(); КонецПроцедуры В результате rsm.Прочитать() не находит запись в регистре, хотя она там есть. Пробовал убирать период, оставлял только ссылку на физлицо, все равно не находит. Ничего не пойму. |
|||
1
ТелепатБот
гуру
19.08.09
✎
19:23
|
||||
2
cfk
19.08.09
✎
19:34
|
т.е. метод Выбрать() возвращает ложь.
|
|||
3
cfk
19.08.09
✎
19:34
|
* Выбран()
|
|||
4
Defender aka LINN
19.08.09
✎
19:42
|
ААААА!!!
Мои глаза!!!... Пипец, ЧТО ЭТО? О_О З.Ы. Ну нету там записи, НЕТУ. З.З.Ы. Юзай НаборЗаписей, а не менеджер. |
|||
5
inka
19.08.09
✎
20:43
|
(4) - Как Вам удалось ЭТО дочитать?
|
|||
6
Фокусник
19.08.09
✎
20:58
|
(0) и не ломает расклатку переключать так часто...?
|
|||
7
Фокусник
19.08.09
✎
20:58
|
(6) *раскладку
|
|||
8
cfk
20.08.09
✎
11:28
|
Сразу видно урожденных кто тут кроме 1С в глаза ничего больше не видел. Прямо базар какой-то.
|
|||
9
cfk
20.08.09
✎
11:32
|
Один походу даже мутантом стал из "заклятья долины змей" =)
|
|||
10
cfk
20.08.09
✎
12:14
|
(6) по поводу рскладки - а не ломает писать операторы и функции с процедурами такой длины что они не влазят даже в большие разрешения?
|
|||
11
Aprobator
20.08.09
✎
12:21
|
(10) от такого нечитаемого да плюс к этому еще и корявого кода станешь фиг знает кем.
|
|||
12
cfk
20.08.09
✎
12:56
|
чем он корявый? А на счет нечитаемости спорный вопрос. Про BRAIN FUCK слыхали? По существу пожалуйста.
(4) - спасибо, помогло, но я уже и сам думал так сделать. Только я так и не понял почему с менеджером записи не работает. |
|||
13
Futarkh
20.08.09
✎
13:31
|
(12) Патамушта МенеджерЗаписи нужен для другого.
Описание: Позволяет читать, записывать и удалять отдельную запись регистра сведений. Используется только для регистров сведений, неизменяемых регистраторами, т.е. для которых в конфигураторе установлен режим записи "Независимый". Предназначен для интерактивной работы с записью регистра сведений. НаборЗаписей: Описание: Предназначен для операций с наборами записей регистра сведений в памяти. Представляет собой коллекцию записей регистра сведений. Позволяет выполнять считывание записей по определенному условию отбора из базы данных, добавлять, удалять и модифицировать записи в наборе. Также может быть выполнена запись в базе данных по определенному условию. При записи может выполняться замещение всех имеющихся в базе данных записей по данному условию на записи, содержащиеся в наборе. Выбирай че тебе надо |
|||
14
Aprobator
21.08.09
✎
10:53
|
(10)да хотя бы по количеству кода запиханного внутрь попытки. Например, поиск по справочнику что ли может дать ошибку? Нафиг это - то внутрь попытки запихано? Это раз.
Если вылет будет на Excel=Новый COMОбъект("Excel.Application"), то какой прок от строчек после КонцаПопытки да и в исключении? Это два. Это тока навскидку. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |