работа с подчинеными справочниками
Angg
15.06.2009 - 16:36
|
Проблема: с четырех баз dbf собираются подчиненные справочники 1 справочник населенных пунктов -> 2 справочник улиц -> 3 справочник домов -> 4 справочник лицевых счетов до 3 пункта все проходит нормально если исключить четвертый. т.е. дома перебрасываются исключительно правильно как задумано в коде покажу где начинается загвозка Процедура Обновить() Гор=СоздатьОбъект("Справочник.НаселенныйПункт"); Ул=СоздатьОбъект("Справочник.Улица"); До=СоздатьОбъект("Справочник.Дома"); ЛС=СоздатьОбъект("Справочник.ЛицевыеСчета"); ФайлУлиц=СоздатьОбъект("XBase"); ФайлУлиц.ОткрытьФайл(КаталогИБ()+"\Base\"+"UlicaOLs.dbf"); ФайлДомов=СоздатьОбъект("XBase"); ФайлДомов.ОткрытьФайл(КаталогИБ()+"\Base\"+"Dom.dbf"); ФайлЛС=СоздатьОбъект("XBase"); ФайлЛС.ОткрытьФайл(КаталогИБ()+"\Base\"+"Ls.dbf"); ФайлУлиц.Первая(); Пока ФайлУлиц.ВКонце()=0 цикл Гор.НайтиПоКоду(ФайлУлиц.KODORGLS); Ул.ИспользоватьВладельца(Гор.ТекущийЭлемент()); Если Ул.НайтиПоКоду(ФайлУлиц.KODUL)=0 тогда Ул.Новый(); Ул.Код=ФайлУлиц.KODUL; Ул.Наименование=ФайлУлиц.NAMEUL; Сообщить("Улица: "+СокрЛП(Ул.Наименование)); Ул.Записать(); КонецЕсли; Ул.НайтиПоКоду(ФайлУлиц.KODUL); До.ИспользоватьВладельца(Ул.ТекущийЭлемент()); ФайлДомов.Первая(); Пока ФайлДомов.ВКонце()=0 цикл Если (СокрЛП(ФайлДомов.KODORGLS)=Ул.Владелец.Код) и (ФайлДомов.KODUL=Число(Ул.Код)) тогда Если До.НайтиПоКоду(ФайлДомов.KODDOM)=0 тогда До.Новый(); До.Код=ФайлДомов.KODDOM; До.ГодПостройки=ФайлДомов.GODPOSTR; НомерДома= СокрЛП(Число(Лев (ФайлДомов.KODDOM,3)))+?(СокрЛП(Прав (ФайлДомов.KODDOM,1))="0","",СокрЛП(Прав (ФайлДомов.KODDOM,1))) ; До.Наименование=СокрЛП(Ул.Наименование) +" "+НомерДома; Сообщить("Дом: "+СокрЛП(До.Наименование)); До.Записать(); КонецЕсли; КонецЕсли; До.НайтиПоКоду(ФайлДомов.KODDOM); ЛС.ИспользоватьВладельца(До.ТекущийЭлемент()); ФайлЛС.Первая(); Пока ФайлЛС.ВКонце()=0 цикл Если (СокрЛП(ФайлЛС.KODORGLS)=Ул.Владелец.Код) и (ФайлЛС.KODUL=Число(До.Владелец.Код)) и (СокрЛП(ФайлЛС.KODDOM)=ЛС.Владелец.Код) тогда //!!! вот в этом месте ЛС.Владелец.Код показывает-"" //хотя ЛС.ИспользоватьВладельца(До.ТекущийЭлемент()).Код показывает //правильный код; Если ЛС.НайтиПоКоду(ФайлЛС.LS)=0 тогда ЛС.Новый(); ЛС.Код=ФайлЛС.LS; НомерКвартиры= СокрЛП(Число(Лев(ФайлЛС.KODKV,3))); ЛС.Квартира=НомерКвартиры; ЛС.Площадь=ФайлЛС.S1; ЛС.ДатаДоговора=ФайлЛС.DTDOG; ЛС.Наименование=СокрЛП(До.Наименование)+", кв. "+НомерКвартиры; Сообщить("ЛС: "+СокрЛП(ЛС.Наименование)); ЛС.Записать(); КонецЕсли; КонецЕсли; ФайлЛС.Следующая(); КонецЦикла; ФайлДомов.Следующая(); КонецЦикла; ФайлУлиц.Следующая(); КонецЦикла; вот такая беда... может кто что подскажет заранее признателен |