загрузка данных в справочник в регистр сведений из DBF. как ? :( #475457


#0 by Мохнатый Лобстер
простую загрузку реквизитов в справочники из файликов освоил, всё Ок. :) теперь пытаюсь осознать как загружать из файлика данные которые в 1с8 лежат в регистре сведений. :( нашёл где то тут кой какой код и написал для себя открытие файлика и чтение. как теперь дальше быть7 зная лицевой счёт(в справочнике есть такой реквизит), найти нужную запись в регистре сведений (или создать новую если нет) и вписать туда ПлощадьОбщая??
#1 by Живой Ископаемый
Габец, простые:
#2 by Живой Ископаемый
тамже: Как прочитать (изменить) записи в периодическом независимом регистре сведений? НаборЗаписей = РегистрыСведений.Валюты.СоздатьНаборЗаписей;
#3 by 73
СП: РегистрСведенийМенеджерЗаписи.<Имя регистра сведений> (InformationRegisterRecordManager.<Имя регистра сведений>) ................................. Пример:
#4 by Мохнатый Лобстер
работает, спасибо :) туплю наверно, как мне сделать отбор из регистра по лицевому счёту если лицевой счёт указан в регистре справочника а в регистре сведений отсутствует. ЗЫ реформа ЖКХ идёт, несмотря на некоторые трудности :D
#5 by Живой Ископаемый
" как мне сделать отбор из регистра по лицевому счёту если лицевой счёт указан в регистре справочника а в регистре сведений отсутствует" более бессмысленного предложения давно не встречал.... может просто расскажешь задачу и входные данные типа структуры РС?
#6 by Мохнатый Лобстер
этож самое сложное, грамотно спросить и рассказать))) еслиб я понимал что мне надо я бы уже нашёл ответ)))) легенда: купили конфу, расчёт квартплаты, которую теперь бедные маленькие голодные обезьянки под руководством меня забивают данными. задача: нужно уменьшить количество набиваемых данных загрузив что можно из DBF(чото гдето нашли актуальные данные) и отпустить голодных обезьянок поскорее домой в африку. уволить меня и обратиться к специалистом не вариант. справочник интересующий меня в данный момент - ЛицевыеСчета: в нём хранятся данные о ЛС, некоторые данные в справочнике в реквизитах, типа номера лицевого счета, номера улицы/дома/квартиры, а часть данных сохраняется в РС ОСОЛицевыеСчета, площадь квартиры, тип жилья. РС: измерение одно, Объект, СправочникСсылка.ЛицевыеСчета. ресурсов несколько, в том числе и ПлощадьОбщая реквизит тоже собственно один, дата регистрации. режим записи независимый.
#7 by 73
Из ДБФ-а что-то ж читаешь. Вот и Найти в справочнике(по коду,наименованию, реквизиту..., запросом...) - получишь ссылку, если найдешь(если не найдешь создать прийдется). Вот по этой ссылке отбор и устанавливай.
#8 by 3V
ИМХО: ... отпустить обезьянок в африку и т.п. иначе ппц ЖКХ :)
#9 by Мохнатый Лобстер
ммм, так? НаборЗаписей.Отбор.Объект.Установить(НужныйЛицевойСчёт); поздно...
#10 by Живой Ископаемый
2 да. как в вместо НаборЗаписей.Отбор.Период.Установить(ДатаЗаписи);
#11 by 3V
тогда найдите на работу 1сника, либо приходящего, иначе не взлетите
#12 by Мохнатый Лобстер
ну вот вроде и разобрались и не так всё сложно было чтоб приходящего дядю звать :) это кстати и в книжке для курения описано на 1-162 тока без пинка не усваивалось)))
#13 by Мохнатый Лобстер
родил сей код но не работает, находится нужный ЛС по файлику DBF но блин выборка из РС по найденному ЛС не происходит НаборЗаписей.Отбор.Объект.Установить(ВыборкаЛС); не отбирает ничего ведь ВыборкаЛС.Код даёт код из лицевого счёта, значит ВыборкаЛС содержит ссылку на нужный ЛС? почему тогда не работает отбор?
#14 by Мохнатый Лобстер
смотрю, смотрю, в чём косяк не вижу. может всётаки кто подскажет? просто так весь РС читается пишется, а вот отбор не идёт...
#15 by NewManIn1C
типы значений в Объекте и Выборка.ЛС стопудова различаются. В про это уже писали)
#16 by NewManIn1C
Нужный элемент справочника ЛС лучше искать вот примерно так ЭлементЛС = Справочники.СпрЛС.НАйтиПоКоду(ЛицевойСчет); И уже отбор в регистре делаешь по ЭлементЛС. Если он не пустой конечно
#17 by Мохнатый Лобстер
таки я так и знал что опять через не то место делаю... ладно наконец всё заработало как теперь мне записать регистр чтоб всё сохранилось? пока обработка работает сё Ок а как мне терь окончательно записать в базу? собственно отладчик просто перепрыгивает через строчку НаборЗаписей.Записать;
#18 by 73
НаборЗаписей.Записать; перенести за цикл по Набору? Для Каждого Запись Из НаборЗаписей Цикл
#19 by Мохнатый Лобстер
тэкс если сделать вот так то таки начинаем записывать и переходим в стандартную процедуру записи и при выходе из неё видим ошибку {Форма.Форма}: Ошибка при вызове метода контекста (Записать): Запись не верна! Значение поля "Объект" не может быть пустым!: 01.01.0001 0:00:00 (Регистр сведений: Общие свойства объектов: Лицевые счета) по причине: Запись не верна! Значение поля "Объект" не может быть пустым!: 01.01.0001 0:00:00 (Регистр сведений: Общие свойства объектов: Лицевые счета)
#20 by 73
Может не находит: ? Посмотри в отладчике или проверь в коде на Пустую ссылку.
#21 by Мохнатый Лобстер
работает только для читания записей из РС, просто посмотреть так скажем. чтобы чтото реально записать в РС нужно создавать МенеджерЗаписи создать запись которую надо записать и уже её собственно можно записывать в РС. так вот, запись из регистра я скопировал, изменил как мне надо, как мне теперь её засунуть обратно?
#22 by 73
<находит> - как проверяешь? <НаборЗаписей.Отбор.Объект.Установить(ЭлементСпрЛС); выполняет> - он выполнит даже если не найдет. <работает только для читания записей из РС> - неправда ваша. <как мне теперь её засунуть обратно> - НоваяЗапись.Записать.
#23 by Мохнатый Лобстер
чорт как мне скопировать всё разом? НаборЗаписей = РегистрыСведений.ОСОЛицевыеСчета.СоздатьНаборЗаписей; этот код как можно заметить читает из РС сведения потом создаёт менеджер записи с новой пустой записью куда я копирую объект и период и записывает в регистр. соответсно те поля что я не скопировал остаются пустые и обнуляет мне всю карточку. как мне запись которую я скопировал из РС скопировать во вновь созданную запись полным составом? я кажется опять гдето чото упускаю элементарное...
#24 by 73
ЗаполнитьЗначенияСвойств ЗЫ. А зачем и то и другое???
#25 by Мохнатый Лобстер
ололо такиж заработало... вот если и дальше так всё хорошо пойдёт то пойду на курсы ) минуты 3 наверно крутилось но весь файлик съело. учитывая что мне в идеале надо раза в 4 больше сведений перегонять... тохорошо что мне тока один раз это надо будет сделать)))) "ЗЫ. А зачем и то и другое???" - если чесно вобще не понял о чем спрашиваете)))
#26 by hhhh
Набором записей записывать надо, а ты зачем-то менеджер еще завел.
#27 by 73
Имелось ввиду: Зачем и НаборЗаписей и МенеджерЗаписи? Менеджером и читать и пасать можно - ОДНУ запись. Набором и читать и писать можно - НАБОР записей(хотя он может и из одной записи состоять).
#28 by 73
*пасать = писать
#29 by Мохнатый Лобстер
строка НаборЗаписей.Записать;  совершенно никак не реагирует 1Сина её просто пропускает как будто там её и нет и отладчик просто перескакивает мимо. а вот если менеджер записи создать то всё Ок, вижу в отладчике как заходит в процедуру записи в РС и всё пишет. вот вощем конечный код и он работает. а если без менеджера записи то работает но в РС ничего не пишет.
#30 by Живой Ископаемый
Вот так бы тоже работало:
#31 by aka AMIGO
ммммм... такая хорошая штука: отладчик.. написал около 70 обработок переноса DBF- УПП8.1.. что-б я без него делал :)
#32 by Мохнатый Лобстер
Блин, это я просто в запарке незаметил ))) я же набор записей читал и набор записей же писать надо было, а я зачемто пытался записать новую запись... спасибо за действенную помощь.
#33 by KAO111
Я понимаю конечно, что уже все сделано. Но если поизучать конвертацию данных и посмотреть - можно сэкономить приличное количество времени.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С