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

Новая тема
Показывать по 10 20 40 сообщений
"Доброго времени суток. я из базы SQL закидываю номенклатуру (наименования) в Базу 1с. и все было б не плохо...

Только теперь нужно закидывать Номенклатуру не сразу в справочник. а в Новую папку созданную. как это дописать. что бы загружались наименования в "номенклатуру в определенную папку" (Всегда в одну и туже, она одна)

Пользуюсь вот этой обработкой из sql в 1с



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

         Rs=0;
         Соединение=0;
    Исключение
         Предупреждение(ОписаниеОшибки());
         Соединение=0;
    КонецПопытки;
КонецПроцедуры"
И сразу если можно подскажите... что дописать что бы не только "наименования перекидывались" а еще и "код". что бы он КОД не сам подставлял следующий, а брал из SQL базы этот код и писал.
А как определить программе в какую папку загружать?
"путь написать ;))

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


ТекКод=СокрЛП(Rs.Fields("CODE").Value);Номенклатура.Код=ТекКод; 






Запись в папку:


Номенклатура=СоздатьОбъект("Справочник.Номенклатура");Номенклатура.ИспользоватьРодителя(ВыбраннаяПапка); 




Если Номенклатура.НайтиПоНаименованию(ТекНаименование,1,1)=0 Тогда 





... "Выбранную папку" думаю как-нибудь сам определишь."
Лучше в форме обработки по загрузке сделать поле ввода, в котором выбирать нужную папку. В противном случае придется искать эту папку по наименованию или коду.
"// выбор папки
ПапкаДляНовых = СоздатьОбъект("Справочник.Номенклатура");
ПапкаДляНовых.НайтиПоНаименованию("<имя папки>");

ТекКод=СокрЛП(Rs.Fields("<имя поля кода>").Value);

Номенклатура.Новый();
Номенклатура.ИспользоватьРодителя(ПапкаДляНовых);
Номенклатура.Код = ТекКод;"
"Rs = CreateObject("ADODB.RecordSet");
         Rs = Cmd.Execute;
         Для i = 1 по Rs.RecordCount Цик
ТекНаименование=СокрЛП(Rs.Fields("HH123").Value);

Я после этой строчки пишу про КОД

ТекКод=СокрЛП(Rs.Fields("<имя поля кода>").Value);

Вот так вот ?

я правильно понял ???"
Когда делаю по наименованию одному все работает... Когда добавляю (папку) по вашим советам.. все тоже работает. загружается в папку..

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

Быстрый переход