powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / [игнор отключен] [закрыт для гостей] / ЗагрузкаДанных1С8
10 сообщений из 10, страница 1 из 1
ЗагрузкаДанных1С8
    #35471661
Привет! Надо из акцесса загрузить данные. Пробелма в том что это взаимосвязанные данные и после загрузки связь не должна потеряться. Т.е. упрощу чтобы было яснее - справочник Номенклатура (к примеру) и в нем поле ID_Контрагент (причем в акцессовском варианте это просто ключевое поле, которое связано по ключу с полем ID_Контрагент в справочнике Контрагенты). Т.е. есть 2 справочника Номенклатура и Контрагенты, надо чтобы после переноса данных в справочнике Номенклатура осталась связь со справочником Контрагенты по соответствующему полю... При простой загрузке контрагенты переносятся наименованием и если создавать новый элемент в Номенклатуре, то справочник Контрагенты в поле ID_Контрагент подтягиваться не будет, как сделать такой перенос?
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35471699
ПЖ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Интересно, какая связь между номенклатурой и клиентом...

У 10 поставщиков у каждого свой "Домик в деревне"? О_о
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35471722
ПЖИнтересно, какая связь между номенклатурой и клиентом...

У 10 поставщиков у каждого свой "Домик в деревне"? О_о

Нет, на самом деле пример - это абстракция, нужно загрузить 2 справочника со взаимосвязанными полями, тоже самое про абонентов и адреса, где в абонентах связь со справочником улиц, т.е. гружу данные, где есть ссылка на другой справочник, а у меня наименования гонятся при экспорте, а мне нужно чтобы была связь со вторым справочником
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35471928
DmitryOrlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приблизительно так
Код: plaintext
1.
2.
3.
БКОбъект = Справочники.БонусныеКарты.СоздатьЭлемент();
	СсылкаНового = Справочники.БонусныеКарты.ПолучитьСсылку();
	БКОбъект.УстановитьСсылкуНового(СсылкаНового);
В этом случае переменная СсылкаНового содержит GUID еще не записанного объекта, но при записи GUID будет именно такой. Его затем можно использовать в зависимом объекте.

или получив GUID записанного объекта его можно использовать например вот так:
Код: plaintext
БКОбъект.Владелец = Ссылка;
Примеры взяты из стандартного хелпа 1с и применены, так что можно с уверенностью сказать, что это работает.
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472475
DmitryOrlovПриблизительно так
Код: plaintext
1.
2.
3.
БКОбъект = Справочники.БонусныеКарты.СоздатьЭлемент();
	СсылкаНового = Справочники.БонусныеКарты.ПолучитьСсылку();
	БКОбъект.УстановитьСсылкуНового(СсылкаНового);
В этом случае переменная СсылкаНового содержит GUID еще не записанного объекта, но при записи GUID будет именно такой. Его затем можно использовать в зависимом объекте.

или получив GUID записанного объекта его можно использовать например вот так:
Код: plaintext
БКОбъект.Владелец = Ссылка;
Примеры взяты из стандартного хелпа 1с и применены, так что можно с уверенностью сказать, что это работает.

Спасибо большое! Сейчас попробую!
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472510
Создала СправочникУлицыТест, Создала СправочникКонтрагентыТест, в СправочникКонтрагентыТест в Реквизите Улицы сделала ссылку на СправочникУлицыТест, вот код обработки:

Пока НаборЗаписей.EOF()=0 Цикл
НовыйЭлемент=Справочники.КонтрагентыТест.СоздатьЭлемент();

НовыйЭлемент.Наименование=Строка(НаборЗаписей.Fields("Контрагент").Value);
НовыйЭлемент.Улица=Справочники.УлицыТест.ПолучитьСсылку();
НовыйЭлемент.УстановитьСсылкуНового(НовыйЭлемент);

НаборЗаписей.MoveNext();
НовыйЭлемент.Записать();

КонецЦикла;
НаборЗаписей.Close();

вот ошибка:
{Обработка.ЗагрузкаКонтрагентовТест.Форма.Форма(48)}: Ошибка при вызове метода контекста (УстановитьСсылкуНового): Несоответствие типов (параметр номер '1')
НовыйЭлемент.УстановитьСсылкуНового(НовыйЭлемент);
как и что мне исправить чтобы заработало?
вот в акцессе:

Таблица Улицы:
Код Наименование
1 Улица1
2 Улица2

Таблица Контрагенты:

Код Контрагент Улица
1 Иванов1 Улица1
2 Иванов2 Улица2
3 Иванов11 Улица1
4 Иванов111 Улица1
5 Иванов22 Улица2
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472555
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то не получается...
вот в акцессе:

Таблица Улицы:
Код Наименование
1 Улица1
2 Улица2

Таблица Контрагенты:

Код Контрагент Улица
1 Иванов1 Улица1
2 Иванов2 Улица2
3 Иванов11 Улица1
4 Иванов111 Улица1
5 Иванов22 Улица2

ПолучитьСсылкНового() - да еще с попыткой грохнуть сам объект - здесь ни к чему.
Дстаточно:
1. обработать таблицу улиц (добавить в соотв. справочник 1С элементы, если не найдены по наименованию)

2. при обработке справочника Контрагенты сделать:

НовыйЭлемент=Справочники.КонтрагентыТест.СоздатьЭлемент();

НовыйЭлемент.Наименование=Строка(НаборЗаписей.Fields("Контрагент").Value);
НовыйЭлемент.Улица=Справочники.УлицыТест.НайтиПоНаименованию(ИмяУлицы,истина);

Это если улицы по наименованию синхронизируются.
Или .НайтиПоКоду(),
или .НайтиПоРеквизиту() - смотря как задача синхронизации поставлена.


А ПолучитьСсылкуНового() нужно только в одном случае - если есть перекрестные ссылки типа
Улица.Контрагент и Контрагент.Улица, и загружаются эти объекты одновременно (т.е. оба еще не записаны, и каждому нужна ссылка на другого)
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472582
[quot pail]
НовыйЭлемент.Улица=Справочники.УлицыТест.НайтиПоНаименованию(ИмяУлицы,истина);

quot]
т.е. это получается каждую улицу надо грузить отдельно... когда я написала именно так, то программа выдала:
{Обработка.ЗагрузкаКонтрагентовТест.Форма.Форма(50,64)}: Переменная не определена (ИмяУлицы)
НовыйЭлемент.Улица=Справочники.УлицыТест.НайтиПоНаименованию(<<?>>ИмяУлицы,истина);

Сработало только когда я написала в кавычках и точное название улицы:
НовыйЭлемент.Улица=Справочники.УлицыТест.НайтиПоНаименованию("Улица1",истина);
, но при этом программа всем контрагентам поставила Улица1, хотя правильно - ссылка есть, как сделать чтобы все улицы грузились?
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472612
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну так надо для каждого контрагента именно ЕГО улицу найти. А откуда ее взять - ваши проблемы.
Переменная ИмяУлицы, в котрой должно быть наименование улицы обрабатываемого контрагента - некоторая абстракция.
За вас полностью работающий код никто написать в форуме не сможет.
...
Рейтинг: 0 / 0
ЗагрузкаДанных1С8
    #35472638
pailНу так надо для каждого контрагента именно ЕГО улицу найти. А откуда ее взять - ваши проблемы.
Переменная ИмяУлицы, в котрой должно быть наименование улицы обрабатываемого контрагента - некоторая абстракция.
За вас полностью работающий код никто написать в форуме не сможет.

понятно... а надо было именно одновременное сопоставление улиц у всех абонентов... ну что же ладно... нет так нет...
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / ЗагрузкаДанных1С8
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]