|   |   | 
| 
 | Изменение записей в таблице sdf | ☑ | ||
|---|---|---|---|---|
| 0
    
        Amfiaray 21.01.14✎ 08:47 | 
        Добрый день! 
 Есть база sdf декларант-алко, там уже заполнено всё кроме адресов обособленных подразделений, подскажите возможно ли из 1С 8.2 отредактировать записи в базе? | |||
| 1
    
        Ёпрст гуру 21.01.14✎ 08:50 | 
        Как 2 байта...     | |||
| 2
    
        Ёпрст гуру 21.01.14✎ 08:50 | 
        Если че, 1с для этого даже не нужен..ну разве что, даже не знаю зачем, можно все запросы тупо в qa написать     | |||
| 3
    
        Amfiaray 21.01.14✎ 08:51 | 
        Пробовал вот так:
 ОлеДБ = Новый COMОбъект("ADODB.Connection"); ОлеДБ.Provider = "Microsoft.SQLSERVER.CE.OLEDB.3.5"; Соединение = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5; Data Source="+СокрЛП(ПутьКДА)+"; SSCE:Database Password=7338a7e6-fd3b-49d1-8d90-ddbbc1b39fa1"; Попытка ОлеДБ.Open(Соединение); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; ТекстЗапроса= "UPDATE wrk_org SET INN ='"+INN+"',KPP='"+KPP+"',OrgName='"+Наименование+"', |Phone='"+Phone+"',CCode ='"+CCode+"', Index ='"+Index+"', Rcode ='"+Rcode+"', Area ='"+Area+"', |City='"+City+"', Place='"+Place+"',Street='"+Street+"',Building='"+Building+"',Korp='"+Korp+"', |Flat='"+Flat+"', Head_id='"+Head_id+"',OrgType='"+OrgType+"',DirID='"+DirID+"',BuhID='"+BuhID+"', |Liter='"+Liter+"' WHERE OrgName = '"+Наименование+"'"; cmd = Новый COMОбъект("ADODB.Command"); cmd.ActiveConnection = ОлеДБ; cmd.CommandText=ТекстЗапроса; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet.ActiveConnection = ОлеДБ; RecordSet.Open(cmd); Выдает ошибку: {Форма.Форма.Форма(87)}: Ошибка при вызове метода контекста (Open) RecordSet.Open(cmd); по причине: Произошла исключительная ситуация (Microsoft SQL Server Compact OLE DB Provider): В команде имеется одна или несколько ошибок. [,,,,,] | |||
| 4
    
        Amfiaray 21.01.14✎ 08:52 | 
        (2), Адреса в 1С забиты     | |||
| 5
    
        Ёпрст гуру 21.01.14✎ 08:53 | 
        (3)
 "' WHERE OrgName = '"+Наименование+"'" тут одинарные ковычки не нужны | |||
| 6
    
        Ёпрст гуру 21.01.14✎ 08:54 | 
        + писать надо так
 "WHERE OrgName like '%"+Наименование+"%'" | |||
| 7
    
        Ёпрст гуру 21.01.14✎ 08:58 | 
        вот те.. рабочий пример
 ОлеДБ = Новый COMОбъект("ADODB.Connection"); Соединение = "Provider=Microsoft.SQLSERVER.CE.OLEDB.3.5;Data Source="+СокрЛП(КаталогИБ)+";SSCE:Database Password=7338a7e6-fd3b-49d1-8d90-ddbbc1b39fa1"; ОлеДБ.Open(Соединение); Command = Новый COMОбъект("ADODB.Command"); Command.ActiveConnection = ОлеДБ; ТекстЗапроса = " |INSERT INTO DecF11 ([Hid],[vidCode],[ProdId],[idPost],[idLic],[P213],[P214],[P215],[P216],[P106],[P107],[P108],[P109],[P110],[P111],[P112],[P113],[P114],[P115],[P116],[P117],[P118],[P119],[P120],[TTYPE],[idOrg]) |select |75,d.vidCode,d.ProdId,d.idPost,d.idLic,d.P213,d.P214,d.P215,d.P216,d.P106,d.P107,d.P108,d.P109,d.P110,d.P111,d.P112,d.P113,d.P114,d.P115,d.P116,d.P117,d.P118,d.P119,d.P120,d.TTYPE,d.idOrg from DecF11 as d |where d.hid=73"; Command.CommandText = ТекстЗапроса; RecordSet = Новый COMОбъект("ADODB.RecordSet"); RecordSet = Command.Execute(); | |||
| 8
    
        Amfiaray 21.01.14✎ 09:07 | 
        (7) Ну в этом коде ведь просто добавляются строки, а мне надо существующие переписать     | |||
| 9
    
        Amfiaray 21.01.14✎ 09:08 | 
        Пробовал как в (6), так же ошибка выходит     | |||
| 10
    
        Ёпрст гуру 21.01.14✎ 09:18 | 
        И чо ?     | |||
| 11
    
        Ёпрст гуру 21.01.14✎ 09:18 | 
        тупо update и усё..     | |||
| 12
    
        Ёпрст гуру 21.01.14✎ 09:21 | 
        и еще, у тя хоть это работает ?
 ТекстЗапроса = "select * from [wrk_org]"; ? | |||
| 13
    
        Amfiaray 21.01.14✎ 09:30 | 
        Не выходит, делаю по примеру по SQL:
 UPDATE table_name SET column1 = ‘data1’, column2 = ‘data2’ WHERE column3 = ‘data3’; всё равно ошибки | |||
| 14
    
        Ёпрст гуру 21.01.14✎ 09:37 | 
        (13) как в (12) работает ?     | |||
| 15
    
        Amfiaray 21.01.14✎ 09:48 | 
        (14), Да работает     | |||
| 16
    
        Amfiaray 21.01.14✎ 09:49 | 
        Только не:
 ТекстЗапроса = "select * from [wrk_org]"; а: ТекстЗапроса = "select * from wrk_org"; | |||
| 17
    
        Amfiaray 21.01.14✎ 10:06 | 
        (14) Работает не только это, я уже заполнил все таблицы из 1С, просто на момент заполнения, адреса не были забиты в базу, теперь хотелось бы просто имеющиеся записи отредактировать     | |||
| 18
    
        Ёпрст гуру 21.01.14✎ 10:08 | 
        (16) %)))))))))))))))))     | |||
| 19
    
        Amfiaray 21.01.14✎ 10:10 | 
        (18) Хватит ржить %) я этот SQL вообще не знаю, меня бухи повесят если им сегодня это не сделаю, они и так уже на сутки с декларацией опаздали     | |||
| 20
    
        Amfiaray 21.01.14✎ 10:21 | 
        Прпробовал удалить все записи и снова записать уже со всеми заполненными полями, фигня вышла, id меняются и записи по подразделениям не выходят :(     | |||
| 21
    
        Ёпрст гуру 21.01.14✎ 10:28 | 
        Ладно..
 если уж делаешь update, то будь добр, смотри хотя бы на тип обновляемой колонки и не пихай в число строку. | |||
| 22
    
        Ёпрст гуру 21.01.14✎ 10:30 | 
        на вот, для понимания
 https://cloud.mail.ru/public/d3232462c244/123.JPG | |||
| 23
    
        Amfiaray 21.01.14✎ 10:34 | 
        (21) Кстати об этом, ещё когда заносил данные в таблицу 11 возник вопрос, колонки Р106-120 имеют тип DECIMAL, но они нормально записались из переменных типа Р106 = Формат(Количество, "ЧРД='.'; ЧДЦ=5"), почему не выдает ошибку?  ведь функция Формат возвращает строку     | |||
| 24
    
        Amfiaray 21.01.14✎ 10:53 | 
        (21) Всё перепроверил, типы данных совпадают с типом колонок     | |||
| 25
    
        Ёпрст гуру 21.01.14✎ 10:56 | 
        Ошибка какая хоть ?
 Текст запроса приведи свой | |||
| 26
    
        Amfiaray 21.01.14✎ 11:00 | 
        Текст запроса вот:
 UPDATE wrk_org SET [INN] ='2204057496',[KPP]='223745005',[OrgName]='Аватар с.Б.Исток ул.Партизанская 5а', [Phone]='',[Email] = '',[CCode] ='643', [Index] ='659560', [Rcode] ='22', [Area] ='Быстроистокский р-н', [City]='', [Place]='Быстрый Исток с',[Street]='Партизанская ул',[Building]='5',[Korp]='а', [Flat]='',[Head_id]='1',[OrgType]='0',[DirID]='0',[BuhID]='0',[Liter]='' WHERE OrgName = Аватар с.Б.Исток ул.Партизанская 5а А ошибка всё та же {Форма.Форма.Форма(83)}: Ошибка при вызове метода контекста (Open) RecordSet.Open(cmd); по причине: Произошла исключительная ситуация (Microsoft SQL Server Compact OLE DB Provider): В команде имеется одна или несколько ошибок. [,,,,,] | |||
| 27
    
        Amfiaray 21.01.14✎ 11:13 | 
        Во, заменил WHERE OrgName = Аватар с.Б.Исток ул.Партизанская 5а на WHERE id = 10; Просто проверить и такой запрос прошел.
 попробую сейчас попробовать чз id сделать | |||
| 28
    
        Ёпрст гуру 21.01.14✎ 11:21 | 
        а зачем делать open ???     | |||
| 29
    
        Ёпрст гуру 21.01.14✎ 11:22 | 
        блин, наименование надо через like делать и в ковычках..     | |||
| 30
    
        Amfiaray 21.01.14✎ 11:37 | 
        (29) Спасибо большое за терпение, разобрался, всё заработало :)     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |