работа с sql из 1С #710879


#0 by Мисти
Пока ничего непонятно. Есть небольшая база (для обмена данными), сделанная непосредственно в скл. Мне надо как-то к ней подключиться и в известные поля положить известные мне данные. Как это делают?
#1 by Поpyчик-4
#2 by butterbean
какие же все-таки ленивые бывают люди
#3 by Поpyчик-4
ТС, ну одно слово, сам понимаешь. Не взлетит у неё, нутром чую.
#4 by Мисти
Я первым делом сама поискала в яндексе, ничего не нашла. По второй ссылке в кое-что, но тоже не всё. А нет ли где полноценных инструкций? Чё это не взлетит?
#5 by ДенисЧ
Уууу..... Шоу маст гоу он....
#6 by mikecool
ищи в гугле )
#7 by Мисти
Ну серьезно! Неужели никто не делал?
#8 by ДенисЧ
Нет. Вообще никто и никогда. Ты уникальная
#9 by andreymongol82
Даю подсказки. Можно как п оотдельности, так и вместе ADODB, Внешние источники данных.
#10 by Мисти
Предполагаю, что это юмор. Какими источниками пользовались остальные? Как выглядят кусочки программы?
#11 by ДенисЧ
Вот тебе примитивный кусок кода
#12 by Мисти
Спасибо! Кое-что проясняется. Таблица называется Invoice, мне надо создать новую запись и заполнить поля InvoiceNumber и InvoiceDateю Как это написать?
#13 by ДенисЧ
Ну уж нет... Бегом читать учебник...
#14 by Мисти
у меня еще останется куча задач по поиску нужных для выгрузки данных в 1С - они в разных справочниках и документов,зависят от разных условий и т.д. Так какой учебник? Я с этого и начала!
#15 by Мисти
По сути - у меня с скл дел не много - считать все данные нескольких таблиц и заполнять несколько таблиц, даже условий никаких не надо - берем всё подряд. Да, и очистить после себя!
#16 by ДенисЧ
Например,
#17 by Мисти
Нашла кусочек. Похоже? ВЫБРАТЬ
#18 by Мисти
SELECT * FROM Invoice - из того, что там написано, мне, походе, надо это. - ну, чтобы считать. А из 1С-то как это написать?
#19 by zmaximka
т.е. подключиться к базе уже получилось?
#20 by Мисти
А у меня нет пока этой базы, ее делаю не я, и она еще вообще не готова. У меня куча работы по совмещению реквизитов (штук 100!) в 1С и в их базе, по поиску нужных данных в 1С для выгрузки и по правильному размещению данных в 1С считанных, а сам факт подключения (считывания и записи)- технический, мне надо только знать, как это выглядит, чтобы потом углубиться в свои задачи.
#21 by Apokalipsec
Тебе значит из скуля ничего выбирать не надо. Будешь просто дописывать во внешний источник. Сделай запрос в 1С и пропиши названия полям соответственно названиям колонок в таблице бд.
#22 by Мисти
Так мне, получается, в запросе и названия не надо прописывать! селект олл - и готово! А потом - для каждого Стр из выборка Цикл Объект1С.Реквизит1С = Стр.РеквизитСКЛ Как написать обращение-то?
#23 by Segate
Позовите программиста лучше ) Быстрее будет. А по хорошему - подключаешься к базе и используешь банальные Insert и update.
#24 by Kalambur
да она все время тут отжигает, иногда даже везет, пишут все за нее, пока не надоест ))
#25 by Мисти
Если б я знала эти 2 фразы - я бы подсказала.
#26 by SSSSS_AAAAA
Какие ЭТИ? Какие 2?
#27 by Мисти
Как считать поля из базы и как туда добавить свои данные. соед.Execute(стрЗапрос); Мой стрЗапрос будет FROM Invoice" Где я потом получу данные? И очистить! Записать, наверное, сложнее, но всё равно ж - наверное, как с регистром - создать запись, заполнить столбцы и сохранить. - еще 2 волшебных слова.
#28 by Segate
Еще раз. читайте документацию по SQL, зайдите в менеджер SQL попробуйте в консоли сделать то что вы хотите, как только получится, скопируйте текст в 1с, и добавьте строку подключения.
#29 by SSSSS_AAAAA
соед.Execute(стрЗапрос); - это выполнение инструкции, не возвращающей набора данных. rsDoc = Соединение.Execute(strSQL); - и, о чудо, в rsDoc мы обнаруживаем выданный запросом набор данных. Далее, как обычно, rsDoc.next и, например, КодПлатежа = rsDoc.Fields("uniq").Value; для чтения значения конкретного поля. Все это есть в доке по ADO раз уж эта технология выбрана для доступа к внешним данным. Эту доку читать не пробовали?
#30 by catena
Ну точно так же! DELETE * FROM Invoice
#31 by Segate
для слабаков. в такой формулировке Drop Быстрее отработает
#32 by Мисти
А в чем разница? Только в том, что возвращается значение?
#33 by Мисти
Где бы это описание найти? - "Все это есть в доке по ADO"?
#34 by ДенисЧ
А поискать в интернете не пробовала? g adodb.connection - там много чего интересного есть
#35 by Мисти
Я пробовала, но недолго. Я как-то не так яндекса спрашиваю и мне вываливается совсем не то.
#36 by Segate
У нас разные яндексы, у меня например 3я ссылка сверху ведет на мсдн. А у вас? ЗЫ это наверное санкции...
#37 by Segate
#38 by Мисти
О! Я по-английски-то не очень - так - "как пройти к автобусу". А что, по-русски нет??
#39 by Segate
сколько можно? Тебе предлагают уже готовое, ты и это не хочешь почесаться и взять. Там текста на 2 страницы, тебе нужно всего пара обзацев. словарик в руки и вперед
#40 by Woldemar177
Вопрос а что за база то? Оракловская на скотине?
#41 by Segate
Это идет 5й ссылкой в яндексе, если что.
#42 by Серго62
>> Где бы это описание найти? - "Все это есть в доке по ADO"? Вот здесь:
#43 by Поpyчик-4
От этой ссылки Мисти и вовсе станет скорбной на голову. Там же PHP, неведом..... ....я
#44 by Segate
какая разница то? После создания адодб - на любом языке писать одинакого...
#45 by Поpyчик-4
Для кого как. Для тебя и меня разницы нет.
#46 by Мисти
в 42 мне очень нравится! Спасибо!
#47 by Мисти
rs.AddNew rs.Fields("CompanyName") = "Test rs company"
#48 by Мисти
Не все слова понятны. Dim rs? Set rs = CreateObject("ADODB.Recordset") - это прямо в 1С можно Написать? Recordset - это название базы? или чего? (ну не таблицы же!)
#49 by Мисти
rs.LockType = 3 - это тоже непонятно. Зато понятно вот это!! rs.AddNew rs.Fields("CompanyName") = "Test rs company" rs.Update Именно тут основное поле моей деятельности - надо сопоставить их поля с нашими.
#50 by Segate
скажи нам честно, ты троллишь так? ) ты берешь код для VB копируешь его в 1с и мечтаешь, что все взлетит?
#51 by Kalambur
пока ей не напишут рабочий код, так и будет :)
#52 by Мисти
rs.Fields("Country") = "Germany" - вот такая строчка в 1С не сработает?
#53 by Segate
нет =)) ругнется, на точку с запятой. инфа 146%
#54 by Серго62
Это текст на vbs, под 1с его нужно адаптировать
#55 by ttk
читать проще через внешние источники данных(если версия платформы позволяет) пишем через рекордсет
#56 by Серго62
если писать все равно через рекордсет, то зачем с внешним источником заморачиваться?
#57 by ttk
я так понял ТС скл скл не знает, проще запрос конструктором на 1с наклепать
#58 by Мисти
Давайте совсем просто. Без подключения, буду писать пока "тело". Есть таблица Invoice, надо заполнить поле InvoiceNumber. Как это написать на 1С?
#59 by МихаилМ
#60 by Segate
"INSERT INTO Invoice (InvoiceNumber) Так как-то должно сработать
#61 by Мисти
А это написать в стрЗапрос из ? А если разных полей в 1 записи 20 и записей 50 - наверное, как-то можно сначала эту кучу создать, а потом записать? Не с каждым же полем в базу лазить?
#62 by Мисти
Там в основном описание бед и ошибок.
#63 by ttk
"INSERT INTO Invoice (InvoiceNumber)     VALUES (InvoiceNumber1c,p2_1c,...,pN_1c)"
#64 by Мисти
"INSERT INTO Invoice (InvoiceNumber,р2,р1) ? Т.е. сначала перечислить все их поля, потом все свои значения?
#65 by Мисти
Если у них есть описание типа, мне не надо никак типы описывать? Главное - передавать правильного типа?
#66 by Серго62
Как-то так...
#67 by ttk
да
#68 by Мисти
66 Спасибо! 67 - всё равно, перечислять в каждой команде по полю, или задать списком? (мне удобнее - по полю, чтобы было видно)
#69 by ttk
ну ты можешь сформировать строку запроса скл как хочешь
#70 by Segate
не... она не может. вот так надо: "Ты можешь  ctrl+c Ctrl+v как напишут"
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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