#0
by Мисти
Уже вижу саму базу - таблицы,представления,синонимы и т.д. Пока непонятно, где я увижу данные, пока их там, наверное, еще нет. Дальше не работает: Ругается: Ошибка при вызове метода контекста (Open) по причине: Произошла исключительная ситуация (ADODB.Recordset): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с др
#0
by Мисти
Уже вижу саму базу - таблицы,представления,синонимы и т.д. Пока непонятно, где я увижу данные, пока их там, наверное, еще нет. Дальше не работает: Ругается: Ошибка при вызове метода контекста (Open) по причине: Произошла исключительная ситуация (ADODB.Recordset): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с др
#4
by Мисти
Спасибо! А потом Контрагенты.AddNew;? Мне бы еще проверить по реквизиту с названием UI1C, что такого элемента нет?
#5
by Мисти
Я могу одновременно смотреть, что там в этой базе через ManagementStudio и подключаться из 1С?
#6
by Мисти
Произошла исключительная ситуация (Microsoft OLE DB Provider for SQL Server): Не был задан текст команды для объекта команды.
#20
by Мисти
Ну вот, приплыли: {Форма.Форма1.Форма}: Ошибка при вызове метода контекста (AddNew) Контрагенты.AddNew; по причине: Произошла исключительная ситуация (ADODB.Recordset): Текущий объект Recordset не поддерживает обновление. Это связано с ограничением поставщика или с выбранным типом блокировки.
#24
by Мисти
Интересный вопрос - зачем. Затем, что этот вариант был в предыдущей подсказке. insert - что?
#29
by Мисти
Отлично-прекрасно, мне это нравится! INSERT INTO Customers( city, cname, cnum ) VALUES( 'Новосибирск', 'Петров', 2010 ) Всё понятно, непонятно, как это из 1С написать. Напишите мне, люди добрые, последний кусочек! Мне надо в таблице account поискать строку по полю UI1C, и если найдено - обновить, если не найдено - добавить. Ну и кучу реквизитов заполнить, это я уж справлюсь.
#38
by Мисти
- вот там хорошо написано, только там выгрузка из скл, а мне пока загрузить туда нужно.
#41
by Мисти
Наверное, тут вариант мне подходящий! 2. Выбрать категорию товаров (таким образом, выборку можно сделать почем угодно): ТекстЗапроса = "SELECT category_id FROM categories WHERE name="+"'"+ КатегорияНаименование+"'"; 3. Обновить цену: ТексЗапроса = "UPDATE products SET price="+"'"+Цена+"'"+ "WHERE model="+"'"+ТоварыНаименование+"'"+ " and category_id="+"'"+Категория+"'"+ " and brand_id="+"'"+Бренд+"'"; 4. Добавить товар:
#42
by Мисти
ТекстЗапроса = "SELECT * FROM account WHERE UI1C="+"'"+ КатегорияНаименование+"'"; А как туда переменную вставить? СтрКонтр.UI1C - я должна искать по этому реквизиту
#46
by Мисти
ТексЗапроса = "SELECT * FROM account WHERE [UI1C=] = ?"; КонецЕсли; Потом надо это как-то зафиксировать или можно переходить к следующей строке? Соединение.Close; Так? И как вставить строку вопрос остался.
#47
by Fragster
если ты хочешь изменять данные рекордсетом, то источником для него должна быть таблица, а не запрос.
#48
by Мисти
рекордсетом - непонятно вообще, а по поводу источника - как бы слова понятны, но как получить таблицу, а не запрос, и почему у меня - запрос, а не таблица... Непонятно!
#50
by ДенисЧ
Ты наотрез отказываешься читать документацию. В ответ я применяю к тебе санкции - отказываюсь отвечать на твои вопросы до тех пор, пока ты не докажешь, что оную документацию ты прочитала.
#51
by Repey
Я вот так по диагонали поглядел - и не понял. Не понял - что ты хочешь делать с теми данными, которые получаешь из скуля. Расскажи, пожалуйста. Простыми словами.
#52
by Мисти
По ссылке в 27 я всё прочитала, но там же - просто скл, без 1с! Я должна в таблице account поискать строку с известным мне значением в столбце UI1C, и если найду, то обновить там поля (20 штук), а если нет, до добавить строку и заполнить эти поля. Всё! Потом этот же фокус мне нужно будет повторить еще раз 10 с разными таблицами, для заполнения этих данных я написала уже 1500 строк на 1С.
#53
by Repey
А если вдруг найдешь несколько строк? Скуль запросы на добавление и обновление уже сочинила? Покажи.
#54
by Мисти
Там может быть только одна такая строка. в всё, что я сочинила, используя всякие образцы.
#55
by Мисти
Вот этот образец из мне подойдет? 4. Добавить товар: ТексЗапроса = "INSERT INTO products SET model="+"'"+Товар+"',"+"price="+"'"+Цена+"',"+"enabled="+"'"+АктивныйДаНет+"',"+"category_id="+"'"+Категория+"',"+"brand_id="+"'"+Бренд+"'"; Соединение.Close; Только мне бы - добавить сначала пустую строчку, а потом заполнить поля поштучно КонтрагентыСКЛ.Fields("AccountId").Value = СтрКонтр.AccountId; чтоб наглядно было.
#56
by Repey
Конечно всего одна строка! Но если все-таки найдешь несколько? Отработай сначала изменение и вставку строки без 1С. Примеры тут вижу. Надо полагать, когда выезжаете на шашлычок - ты сперва прожариваешь пустые шампуры, а потом (по одному!) нанизываешь и жаришь кусочки мяса.
#57
by Мисти
мне нужно, чтобы хотя бы написано было раздельно, а не в одну строчку, иначе я концов не найду. Я не могу отработать без 1С, я через 1С подключаюсь и данные у меня все в 1С.
#58
by Мисти
А так- пожалуйста - INSERT INTO account WHERE [UI1C=] = ? ( поле1,поле2,...,поле20 ) VALUES( 'поле1', 'поле2',..., поле20 )
#63
by Staffa
странно, что никто не дал ссылку на вышеданном ресурсе: есть пример: INSERT INTO Production.UnitMeasure (Name, UnitMeasureCode, там же описано применение условий WHERE
#64
by Мисти
Спасибо! Там всё подробно и довольно понятно. Сейчас попробую применить. Но только всё равно ж - просто скл, а не из 1С!
#65
by Мисти
Не-а, не понимаю. Нет там моего примера. Все 3 части - SELECT, WHERE и INSERT описаны отдельно, а мне их нужно как-то объединить.
#67
by Мисти
Я б заплатила за работоспособный примерчик. А вот простой вопрос - все таблицы в базе называются (я их видела) dbo.Account и тд , везде dbo. (объект базы данных?), а даже сам программист этой базы мне в качестве примера написал SELECT * FROM Account Так надо писать dbo. или нет? А то в очередном примере вижу - INSERT dbo.Products
#68
by SSSSS_AAAAA
И как вы себе представляете объединение трех совершенно разных команд? dbo - название схемы. Если эта схема стоит по умолчанию, то ее можно не указывать.
#69
by Мисти
Ну откуда я знаю? SELECT из Account WHERE ид = пар1; Если найден, то UPDATE; Иначе INSERT И задать всн поля.
#70
by SSSSS_AAAAA
Ну хотите то вы, а не кто-нибудь? if exist(select из Account) Update ... else Insert into ... Какая буква непонятна?
#73
by SSSSS_AAAAA
Вы не знаете как собрать в 1С текстовую строку произвольной длины? Такой текст никогда не видели?
#74
by Мисти
Я не вижу там похожего примера Ну и будет список из 20 плей, а потом список из 20 значений - они даже на один экран не влезут, это неудобно. Как-то так нельзя? Контрагенты.Fields("ID").Value = Контрагенты1С.ИдентификаторBPM; //Идентификатор BPM
#76
by SSSSS_AAAAA
Серверу нужна строка команды и ваши предпочтения по рисованию текста его совершенно не интересуют. Это запрос. Вы же 1с-освские запросы рисуете на несколько экранов и не переламываетесь? Вот и тут точно так же нарисуйте.
#78
by SSSSS_AAAAA
Если Вам нужны тормоза работы только через АДО, то читайте доку по этому самому АДО и не морочьте людям голову. Нравится вам этот пример? Это пример использования нотации АДО вместо нативного Update. Что в нем непонятно?
#79
by Мисти
Сыр-бор начался с того, что AddNew не сработало. Так что мне вся эта методика наверное, не подходит.
#80
by Мисти
if exist(select из Account) - прямо так можно в 1С писать? Или Для Каждого СтрКонтр из ТабКонтр Цикл ОбработкаПрерыванияПользователя; ТекстЗапроса = "SELECT * FROM account WHERE [UI1C] = ?"; ТекстЗапроса = "UPDATE INTO account SET Name=?,AccountOwnerShipId= ?
#82
by SSSSS_AAAAA
1. Вместо SELECT * напишите SELECT 1, ибо весь набор полей совершенно тут не нужен. 2. Откуда взялось UPDATE INTO ? Точнее INTO после UPDATE?
#84
by Мисти
{Форма.Форма1.Форма}: Ошибка при вызове метода контекста (Parameters) Соединение.Parameters.Value = СтрКонтрСКЛ.UI1C; по причине: Произошла исключительная ситуация (ADODB.Command): В коллекции не удается найти элемент, соответствующий требуемому имени или порядковому номеру. Есть такая таблица, есть такое поле, правда записи нет ни одной пока и перед названием таблицы dbo. Куды бечь?
#85
by SSSSS_AAAAA
Проверять коллекцию параметров. Ибо речь ведь про неё, не так ли? Искать, куда делся Соединение.Parameters
#87
by Jaap Vduul
Каша какая-то. >> Выборка = Соединение.Execute(ТекстЗапроса); Так можно в случае, когда в переменной Соединение находится объект типа ADODB.Connection А судя по ошибке у тебя там ADODB.Command, поэтому надо так: Соединение.Commandtext = ТекстЗапроса; // только из цикла надо это вынести
#90
by Мисти
Конечно, каша! Я ж куски тащу из разных примеров, мне ж никто не может стройно 4 строчки написать!"!!
#92
by Jaap Vduul
Присвоение текста запроса вынести, он ведь не меняется в цикле, только значения параметров.
#94
by Wobland
>Соединение.Parameters.Value вот откуда в этом месте нулевой параметр? может (страшно говорить) MSDN?
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- "Поле объекта недоступно для записи" при изменении значения в структуре
- Обработка заполнения ТЧ документа из табличного документа
- ИП купил товар за свои деньги. Как оприходовать товар в 1С БП. Какая проводка
- v7: Конвертация данных из 7.7 Попытка смены источника в процессе разбора документа
- Как отчет на СКД управляемые формы выполнить в превилигированном режиме?
- "Не удалось определить статус партии товаров"
- Отчет по ограничениям на уровне записей
- Word 1с сделать кусок текста жирным шрифтом
- Бухгалтерия 8.2. ВР при амортизации ОС
- Убрать в режим совместимости с 8.2.13 в УПП 1.3
- БП3: Закрытие месяца ругается на амортизационную премию
- Движение документа "Возврат товаров от покупателя" по регистру "Учет затрат"
- Как сделать запрос к другой информационной базе через 1с?
- Как упорядочить ресурс в СКД?
- Как в управляемой форме списка программно изменять группировку списка
- Обработка поиск и замена значений в 1С 8.2 редакция 3.0
- БП 3.0 форма "цены и валюта" недоступен для редактирования
- Начисление налогов с ФОТ. Проводки на 91
- Как вычислить угол при вращении системы координат?
- Дата актуальности учета в БП 3.0