-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexport and import.txt
107 lines (97 loc) · 6.62 KB
/
export and import.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Процедура ЭкспортСайт() Экспорт
Соединение = Новый COMОбъект("ADODB.Connection");
ИмяДрайвера = "MySQL ODBC 5.3 Unicode Driver";
ИмяСервера = "127.0.0.1";
Порт= "3306";
ИмяБД = "test_1C";
Логин="test_1C";
Пароль="test_1C";
СтрокаСоединения = "DRIVER=" + ИмяДрайвера + ";SERVER=" + ИмяСервера + ";PORT=" + Порт + ";DataBase=" + ИмяБД + ";UID=" + Логин + ";PWD=" + Пароль;
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| GLНоменклатура.Код,
| GLНоменклатура.Наименование,
| GLЦеныСрезПоследних.Цена,
| GLТоварыОстатки.КоличествоОстаток
|ИЗ
| РегистрСведений.GLЦены.СрезПоследних КАК GLЦеныСрезПоследних
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.GLНоменклатура КАК GLНоменклатура
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.GLТовары.Остатки КАК GLТоварыОстатки
| ПО GLНоменклатура.Ссылка = GLТоварыОстатки.Номенклатура
| ПО GLЦеныСрезПоследних.Номенклатура = GLНоменклатура.Ссылка";
Соединение.Open(СтрокаСоединения);
Попытка
ТЗМускул = Новый COMОбъект("ADODB.Recordset");
ТЗМускул.CursorType = 3;
ТЗМускул.ActiveConnection = Соединение;
ТЗМускул.Open ("select * from goods");
ТЗМускул.MoveFirst();
ТЗ=Новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Код", Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Наименование", Новый ОписаниеТипов("Строка"));
ТЗ.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
ТЗ.Колонки.Добавить("КоличествоОстаток", Новый ОписаниеТипов("Число"));
Пока ТЗМускул.EOF()=0 Цикл
// Обрабатываем значения полей выборки.
СтрокаТЗ = ТЗ.Добавить();
СтрокаТЗ.Код = ТЗМускул.Fields("good_id").Value;
СтрокаТЗ.Наименование = ТЗМускул.Fields("good").Value;
СтрокаТЗ.Цена = ТЗМускул.Fields("price").Value;
СтрокаТЗ.КоличествоОстаток = ТЗМускул.Fields("qty").Value;
// Перемещаем указатель.
ТЗМускул.MoveNext();
КонецЦикла;
ТЗМускул.Close();
А=ТЗ;
АКол=А.Количество();
Исключение
ОшибкаЧт = ОписаниеОшибки();
КонецПопытки;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
Если АКол=Неопределено Тогда //если прочтенных записей нет вообще, тогда мы вставляем записи
МойЗапросВставка = "insert goods (good_id, good, price, qty) VALUES ('"+Выборка.Код+"','"+Выборка.Наименование+"','"+Выборка.Цена+"','"+Выборка.КоличествоОстаток+"');";
Попытка
Соединение.Execute(МойЗапросВставка);
Результат="Запись в БД на сайте вставлена";
Исключение
Ошибка = ОписаниеОшибки();
КонецПопытки;
Иначе
ПоискДанных = Новый Структура;
ПоискДанных.Вставить("Код", Выборка.Код);//Выборка.Код);
Попытка
СтрочкаТЗ=ТЗ.НайтиСтроки(ПоискДанных).Получить(0);
Если
(СтрочкаТЗ.Наименование=Выборка.Наименование И СтрочкаТЗ.Цена=Выборка.Цена И СтрочкаТЗ.КоличествоОстаток = Выборка.КоличествоОстаток)
ИЛИ
(СтрочкаТЗ.Наименование=Выборка.Наименование И СтрочкаТЗ.Цена=0 И Выборка.Цена=null И СтрочкаТЗ.КоличествоОстаток = Выборка.КоличествоОстаток)
ИЛИ
(СтрочкаТЗ.Наименование=Выборка.Наименование И СтрочкаТЗ.Цена=0 И Выборка.Цена=null И СтрочкаТЗ.КоличествоОстаток=0 И Выборка.КоличествоОстаток=null)
ИЛИ
(СтрочкаТЗ.Наименование=Выборка.Наименование И СтрочкаТЗ.Цена =Выборка.Цена И СтрочкаТЗ.КоличествоОстаток=0 И Выборка.КоличествоОстаток=null)
Тогда
//записи тождественны
Результат="Записи тождественны";
Иначе
МойЗапросОбновить = "UPDATE goods SET good_id = '"+Выборка.Код+"', good = '"+Выборка.Наименование+"', price = '"+Выборка.Цена+"', qty = '"+Выборка.КоличествоОстаток+"' WHERE good_id='"+Выборка.Код+"';";
Попытка
Соединение.Execute(МойЗапросОбновить);
Результат="Запись в БД на сайте обновлена";
Исключение
Ошибка = ОписаниеОшибки();
КонецПопытки;
КонецЕсли;
Исключение
Ошибка = ОписаниеОшибки(); //строка с данным кодом не найдена. Вставить строку.
МойЗапросВставка = "insert goods (good_id, good, price, qty) VALUES ('"+Выборка.Код+"','"+Выборка.Наименование+"','"+Выборка.Цена+"','"+Выборка.КоличествоОстаток+"');";
Попытка
Соединение.Execute(МойЗапросВставка);
Результат="Запись в БД на сайте вставлена";
Исключение
Ошибка = ОписаниеОшибки();
КонецПопытки;
КонецПопытки;
КонецЕсли;
КонецЦикла;
КонецПроцедуры