Имя: Пароль:
1C
1С v8
Разложить строку в структуру
,
0 Ayvengo
 
20.11.13
18:37
Собственно строка

INSERT INTO class_mkb (id, name, code, parent_id, parent_code, node_count, additional_info) VALUES(5, 'Холера, вызванная холерным вибрионом 01, биовар eltor', 'A00.1', 3, 'A00', 0, 'Холера Эль-Тор');

Как бы из этой строки сделать Структура("id, name, code, parent_id, parent_code, node_count, additional_info")

Вариант СтрЗаменить не предлагать, т.к. разделитель ", " существует в поле текста, например 'Холера, вызванная холерным вибрионом 01, биовар eltor' - это одно поле "name"

Поехали :)
1 Господин ПЖ
 
20.11.13
18:49
резать по "', " и ", "
2 Serginio1
 
20.11.13
18:55
3 Serginio1
 
20.11.13
18:57
4 Ярус
 
20.11.13
19:00
в типовой есть РазложитьСтрокуВМассивПодстрок , аналогичног сделай свое
5 Ayvengo
 
20.11.13
19:01
Никто не читает :)
6 kosts
 
20.11.13
19:02
(0) А в чем собственно проблема?
7 Ayvengo
 
20.11.13
19:03
(6) почитай внимательно, особенно
Вариант СтрЗаменить не предлагать, т.к. разделитель ", " существует в поле текста, например 'Холера, вызванная холерным вибрионом 01, биовар eltor' - это одно поле "name"
8 Classic
 
20.11.13
19:03
(5)
Чем тебя (1) не устроило?
9 Ayvengo
 
20.11.13
19:03
(8) как мне понять как резать? =\
10 Ayvengo
 
20.11.13
19:03
+(9) и где резать
11 Ненавижу 1С
 
гуру
20.11.13
19:05
первач часть id, name, code, parent_id, parent_code, node_count, additional_info вообще без вопросов
вторая:
циклом по открывающемся и закрывающемся кавычкам
12 Ayvengo
 
20.11.13
19:05
(11) пример в студию
13 Ayvengo
 
20.11.13
19:06
(11) не всегда есть кавычки =\
14 Конфигуратор1с
 
20.11.13
19:07
(0) Находишь первую скобку "(", находишь вторую ")" и все что между ними стрзаменить)
15 Ярус
 
20.11.13
19:09
(13) тогда никак, только руками, все что можно обрабатываешь программно(считаешь запятые, считаешь ковычки), все что выбивается из нормального формата делаешь руками
16 Ayvengo
 
20.11.13
19:10
(15) неправильный ответ :) уверен, что способ есть
17 Конфигуратор1с
 
20.11.13
19:10
(16) чем (14) не подходит?
18 Classic
 
20.11.13
19:10
(10)
ВКавычках = Ложь;
НомерЗначения = 1;
СтрокаЗначения = "";
Для Сч = 1 По СтрДлина(НашаСтрока) Цикл
   Если Сред(НашаСтрока,Сч,1) = "'" Тогда
      ВКавычках = НЕ ВКавычках;
   КонецЕсли;

   Если НЕ ВКавычках И Сред(НашаСтрока, Сч, 1) = "," Тогда
     // делаем какуюто операцию с СтрокаЗначение
     СтрокаЗначение = "";
     НомерЗначения = НомерЗначения + 1;
   Иначе
     СтрокаЗначение = СтрокаЗначение + Сред(нашаСтрока, Сч,1);
   КонецЕсли;

КонецЦикла;
19 Classic
 
20.11.13
19:11
(18)
Заменить
// делаем какуюто операцию с СтрокаЗначение
на то, что тебе надо. В этот момент в СтрокаЗначение будет символьное представление значения поля с номером НомерЗначения
20 Classic
 
20.11.13
19:12
Ну и вконце тоже отработать то, что осталось
21 Ayvengo
 
20.11.13
19:15
(20) небольшие ошибочки в коде, но спасибо :) Хороший вариант!
22 Classic
 
20.11.13
19:15
(21)
ну я собственно его не отлаживал :)
23 Ayvengo
 
20.11.13
19:17
Но я веселее придумал ))) Загрузил в SQL и экспортнул в CSV :D В шикарно работает ;)
24 Classic
 
20.11.13
19:23
(23)
Читер
25 zakidonoff
 
20.11.13
19:29
(23) Вот и не начинай после такого в следующий раз выяснять у ТС что он делает, зачем делает, откуда делает...
Мог бы сразу задачу описать, мол, нужно дбф файл данных в 1С получить разложенный по реквизитам. Мол, операция разовая.
26 Ayvengo
 
20.11.13
19:39
(25) да нет, все не так, пока мы размышляли я ставил SQL сервер и пробовал загрузить туда данные из файла с разрешением SQL. Но чет не нравился мне метод разбивания строки из файла для загрузки данных в SQL.
27 zakidonoff
 
20.11.13
19:43
(26) Вот сие и мог бы сразу в (0) указать -)
28 Ayvengo
 
20.11.13
19:47
(27) так идеи то не было такой, когда писал пост :)
29 Serginio1
 
21.11.13
10:39
30 НЕА123
 
21.11.13
10:49
Новый Структура(""""+СтрПолучитьСтроку(СтрЗаменить(СтрЗаменить(СтрЗаменить(СобственноСтрока,Символы.ПС,""),"(", Символы.ПС),")",Символы.ПС),2)+"""")