Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Предприятие 7.7]

Подсжите строчку (загрузку из SQL в 1c)

diablo05
читатель
офлайн
Дата регистрации: 23.06.2010
Сообщений: 1435
Пост №1
 
15.07.2011 15:35

"Доброго времени суток. я из базы SQL закидываю номенклатуру (наименования) в Базу 1с. и все было б не плохо...<br> <br>Только теперь нужно закидывать Номенклатуру не сразу в справочник. а в Новую папку созданную. как это дописать. что бы загружались наименования в "номенклатуру в определенную папку" (Всегда в одну и туже, она одна)<br> <br>Пользуюсь вот этой обработкой из sql в 1с<br> <br> <br> <br>Процедура Сформировать()<br> //здесь<br> //192.168.7.70 = ip Microsoft SQL Server<br> //User1C = пользователь, имеющий права доступа на базу в MS SQL Server (обычно sa, но я всегда меняю)<br> //omega = пароль пользователя<br> //BaseID = идентификатор базы<br>      <br> ConnectionString = "Provider=SQLOLEDB;Data Source=192.168.7.70;Password=omega;User ID=User1C;Initial Catalog=BaseID";<br>      <br> Соединение = СоздатьОбъект("ADODB.Connection");      <br> Соединение.ConnectionTimeOut =600;<br> Соединение.CursorLocation = 3;<br> Попытка<br>       //здесь:<br>       //HH123 - идентификатор поля, где лежит наименование<br>       //TT567 - идентификатор таблицы, где лежат нужные данные<br>            <br>       Номенклатура=СоздатьОбъект("Справочник.Номенклатура");<br>       Соединение.Open(ConnectionString);            <br>       Cmd = СоздатьОбъект("ADODB.Command");<br>       Cmd.ActiveConnection = Соединение;<br>       Cmd.CommandText = СокрЛП("Select HH123 FROM TT567");<br>       Rs = CreateObject("ADODB.RecordSet");<br>       Rs = Cmd.Execute;<br>       Для i = 1 по Rs.RecordCount Цикл<br>             ТекНаименование=СокрЛП(Rs.Fields("HH123").Value);<br>             Если Номенклатура.НайтиПоНаименованию(ТекНаименование,0,1)=0 Тогда<br>                   Номенклатура.Новый();<br>                   Номенклатура.Наименование=ТекНаименование;<br>                   Номенклатура.Записать();<br>             КонецЕсли;<br>             Rs.MoveNext();<br>       КонецЦикла;<br><br>       Rs=0;<br>       Соединение=0;<br> Исключение<br>       Предупреждение(ОписаниеОшибки());<br>       Соединение=0;<br> КонецПопытки;<br>КонецПроцедуры"

diablo05
читатель
офлайн
Дата регистрации: 23.06.2010
Сообщений: 1435
Пост №2
 
15.07.2011 15:39

И сразу если можно подскажите... что дописать что бы не только "наименования перекидывались" а еще и "код". что бы он КОД не сам подставлял следующий, а брал из SQL базы этот код и писал.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №3
 
18.07.2011 10:00

А как определить программе в какую папку загружать?

diablo05
читатель
офлайн
Дата регистрации: 23.06.2010
Сообщений: 1435
Пост №4
 
18.07.2011 11:04

"путь написать ;))<br> <br>Но тут то он есть.. Справочник.Номенклатура..<br>А как показать 1с что нужно пихать данные еще после этого в папку я не знаю"

Петров-В
читатель
офлайн
Дата регистрации: 23.01.2011
Сообщений: 581
Пост №5
 
18.07.2011 11:12

"Установить код:<br> <br> <br><pre>ТекКод=СокрЛП(Rs.Fields("CODE").Value);Номенклатура.Код=ТекКод; </pre><br><br> <br> <br> <br> <br>Запись в папку:<br> <br> <br><pre>Номенклатура=СоздатьОбъект("Справочник.Номенклатура");Номенклатура.ИспользоватьРодителя(ВыбраннаяПапка); </pre><br><br> <br> <br><pre>Если Номенклатура.НайтиПоНаименованию(ТекНаименование,1,1)=0 Тогда </pre><br><br> <br> <br> <br>... "Выбранную папку" думаю как-нибудь сам определишь."

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №6
 
18.07.2011 12:22

Лучше в форме обработки по загрузке сделать поле ввода, в котором выбирать нужную папку. В противном случае придется искать эту папку по наименованию или коду.

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №7
 
18.07.2011 12:33

"// выбор папки<br>ПапкаДляНовых = СоздатьОбъект("Справочник.Номенклатура");<br>ПапкаДляНовых.НайтиПоНаименованию("<имя папки>");<br> <br>ТекКод=СокрЛП(Rs.Fields("<имя поля кода>").Value);<br> <br>Номенклатура.Новый();<br>Номенклатура.ИспользоватьРодителя(ПапкаДляНовых);<br>Номенклатура.Код = ТекКод;"

diablo05
читатель
офлайн
Дата регистрации: 23.06.2010
Сообщений: 1435
Пост №8
 
18.07.2011 13:40

"Rs = CreateObject("ADODB.RecordSet");<br>       Rs = Cmd.Execute;<br>       Для i = 1 по Rs.RecordCount Цик<br>ТекНаименование=СокрЛП(Rs.Fields("HH123").Value);<br> <br>Я после этой строчки пишу про КОД<br> <br>ТекКод=СокрЛП(Rs.Fields("<имя поля кода>").Value);<br> <br>Вот так вот ?<br> <br>я правильно понял ???"

diablo05
читатель
офлайн
Дата регистрации: 23.06.2010
Сообщений: 1435
Пост №9
 
18.07.2011 13:48

Когда делаю по наименованию одному все работает... Когда добавляю (папку) по вашим советам.. все тоже работает. загружается в папку..<br> <br>А когда пишу Код.. то не пашет.. видимо куда-то не туда я пишу его

SerKaz
читатель
офлайн
Дата регистрации: 07.04.2010
Сообщений: 60
Пост №10
 
18.07.2011 13:57

Доброго времени суток . А вы не пробовали сделать данную операцию с помощью обработки ЗагрузкаДанныхИзТабличногоДокумента.epf, расположенной на диске ИТС?

Показывать по 10 20 40 сообщений

Читают тему:

1 гостей
Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация