Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
13 Дек 2017, 10:43
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Выгрузка справочников из MySQL  (Прочитано 4232 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн sjy19

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день, дорогие форумчане!

Подскажите, такой вопрос новичку в 1с.
Делаю выгрузку из MySQL в справочники. Есть 2 справочника Контрагенты и КонтактныеЛица, связанные по k_name. Нужно программно указать Владельца  в Справочнике КонтактныеЛица.
 Вот как делаю я после соединения с базой:

Table=conn.execute("select * from kl_svx");
      Пока Table.EOF() = 0 do
         k_name= Table.Fields("k_name").Value;
         p_name = Table.Fields("p_name").Value;
         adres = Table.Fields("adres").Value;
         dog_in = Table.Fields("dog_in").Value;
         dog_sm = Table.Fields("dog_sm").Value;
         dog_ilg = Table.Fields("dog_ilg").Value;
         opl = Table.Fields("opl").Value;
         sales = Table.Fields("sales").Value;
         
   НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();
   НовыйЭлемент.Наименование = k_name;
   НовыйЭлемент.ПолноеНаименование = p_name;
   НовыйЭлемент.Адрес = adres;
   НовыйЭлемент.ДоговорИнстар = dog_in;
   НовыйЭлемент.ДоговорСмарт = dog_sm;
   НовыйЭлемент.ДоговорИЛГ = dog_ilg;
   НовыйЭлемент.Оплата = opl;
   НовыйЭлемент.Сейлз = sales;
   НовыйЭлемент.Записать();

   
   Table.MoveNext();
      КонецЦикла;
         Table.Close();

   
         
   Table1=conn.execute("select * from kontkl_svx");
   Пока Table1.EOF() = 0 do
         face = Table1.Fields("face").Value;
         dolgn = Table1.Fields("dolgn").Value;
         tel = Table1.Fields("tel").Value;
         mail = Table1.Fields("mail").Value;
         
   НовыйЭлемент1 = Справочники.КонтактныеЛицаКонтрагентов.СоздатьЭлемент();
   НовыйЭлемент1.Наименование = face;
   НовыйЭлемент1.Должность = dolgn;
   НовыйЭлемент1.Телефон = tel;
   НовыйЭлемент1.ЭлектроннаяПочта = mail;
   
   НовыйЭлемент1.Владелец =НовыйЭлемент.Ссылка; //Здесь одно значение,а нужен массив...как   
                                                                                             //получить массив - не знаю(


      НовыйЭлемент1.Записать();
    Table1.MoveNext();
      КонецЦикла;
         Table1.Close();

            
            
   Если conn.state=1 Тогда
      conn.Close();
   КонецЕсли;


Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Создать пустой массив до выполнения первого цикла
Array = New Array()

В первом цикле после записи элемента добавлять в массив ссылку на этот элемент
НовыйЭлемент.Записать();
array.Add(НовыйЭлемент.Ссылка);

Во втором цикле ты сможешь искать в массиве нужного тебе владельца (Как ты это будешь делать я не знаю)
Добавлено: 30 Апр 2013, 14:40

В таблице kontkl_svx какая связь с таблицей kl_svx ?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
И выделяй код тегом, так читать удобнее...
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн sjy19

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
Dethmontt, Dethmontt,
связка по k_name, я уже писала.
:dfbsdfbsdf:все равно не записывает...Массив создан, заполнен, но записать не удается.
Подскажите, люди добрые!
		Table=conn.execute("select * from kl_svx");
МассивКлиенты = Новый Массив();

Пока Table.EOF() = 0 Цикл
k_name= Table.Fields("k_name").Value;
p_name = Table.Fields("p_name").Value;
adres = Table.Fields("adres").Value;
dog_in = Table.Fields("dog_in").Value;
dog_sm = Table.Fields("dog_sm").Value;
dog_ilg = Table.Fields("dog_ilg").Value;
opl = Table.Fields("opl").Value;
sales = Table.Fields("sales").Value;

НовыйЭлемент = Справочники.Контрагенты.СоздатьЭлемент();
НовыйЭлемент.Наименование = k_name;
НовыйЭлемент.ПолноеНаименование = p_name;
НовыйЭлемент.Адрес = adres;
НовыйЭлемент.ДоговорИнстар = dog_in;
НовыйЭлемент.ДоговорСмарт = dog_sm;
НовыйЭлемент.ДоговорИЛГ = dog_ilg;
НовыйЭлемент.Оплата = opl;
НовыйЭлемент.Сейлз = sales;
НовыйЭлемент.Записать();

МассивКлиенты.Добавить(НовыйЭлемент.Ссылка);

Table.MoveNext();
КонецЦикла;
   Table.Close();
   
 Для Каждого ЭлементМассива Из МассивКлиенты Цикл
Если ТипЗнч(ЭлементМассива) = Тип("Строка") Тогда
Сообщить (ЭлементМассива);
КонецЕсли;

КонецЦикла;   

//ПервоеЗначение = МассивКлиенты.Получить(2);
// Сообщить (ПервоеЗначение);


Table1=conn.execute("select * from kontkl_svx");
Пока Table1.EOF() = 0 Цикл
face = Table1.Fields("face").Value;
dolgn = Table1.Fields("dolgn").Value;
tel = Table1.Fields("tel").Value;
mail = Table1.Fields("mail").Value;

НовыйЭлемент1 = Справочники.КонтактныеЛицаКонтрагентов.СоздатьЭлемент();
НовыйЭлемент1.Наименование = face;
НовыйЭлемент1.Должность = dolgn;
НовыйЭлемент1.Телефон = tel;
НовыйЭлемент1.ЭлектроннаяПочта = mail;

Для Каждого ЭлементМассива Из МассивКлиенты Цикл
Если Не ПустаяСтрока(ЭлементМассива) Тогда

НовыйЭлемент1.Владелец = ЭлементМассива;
Попытка
        НовыйЭлемент1.Владелец.Записать();
    Исключение
        Предупреждение("Не удалось записать объект """ + НовыйЭлемент1.Владелец + """
                       |" + ОписаниеОшибки());
    КонецПопытки;
КонецЕсли;
КонецЦикла;

  НовыйЭлемент1.Записать();
    Table1.MoveNext();
КонецЦикла;
   Table1.Close();

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
Так ты массив всех владельцев перебираешь! И для каждой записи у тебя всегда один владелец (Последний элемент в массиве)
Добавлено: 07 Май 2013, 11:37

Я не просто так спросил про связи таблиц!!!

В твоей выборке я не вижу связи!!!
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн Dethmontt

  • Денис
  • Модератор
  • *****
  • Сообщений: 2857
  • РЕПУТАЦИЯ: 546
  • КПД: 19%
  • Адын Эс
  • Регистрация: 2010-11-01
  • Сайт: 
  • Профессия: Программист 1С
k_name есть в таблице kontkl_svx ?
Если долго всматриваться в учебник...то в голову может прийти мысль его открыть!

Оффлайн sjy19

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-30
  • Сайт: 
  • Профессия: Ученик 1С
В том то и дело, предупреждение выскакивает для каждой записи в справочнике..

Исключение
        Предупреждение("Не удалось записать объект """ + НовыйЭлемент1.Владелец + """
                       |" + ОписаниеОшибки());
с разным
НовыйЭлемент1.Владелец
:trhregerhg:


Теги: код 
 

выгрузка из "Платежные документы" выборочно в "Бухгалтерию предприятия"

Автор hkvРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 6
Просмотров: 4095
Последний ответ 09 Окт 2014, 15:58
от дфтын
Выгрузка Бух учет из "Зарплаты и управления персоналом 8" в "1С:Бухгалтерию 8"

Автор KazakOFFРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 5
Просмотров: 2417
Последний ответ 10 Ноя 2015, 16:20
от vitasw
Ошибка при загрузке данных через (Обработка "Выгрузка и загрузка данных XML")

Автор Сергей_87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 8560
Последний ответ 26 Апр 2012, 23:08
от Dethmontt
Модуль "выгрузка в банк"

Автор Dima IgnatovРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 941
Последний ответ 11 Май 2016, 13:23
от Rasty
Выгрузка из "Зарплата и кажпы" платеж за три месяца

Автор vlasssov71Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 1227
Последний ответ 07 Июл 2015, 15:19
от vlasssov71

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
38 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 843
  • Точка Скрытых: 0
  • Точка Пользователей: 11
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal