Обновление записей в PhpMyAdmin

1. ClausKey 21.07.23 09:52 Сейчас в теме
Может кто подсказать, как обновить все строки в SQL из 1с запросом, чтоб не писалось последнее значение запроса, для всех строк в БД?

ЗапросБольше = Новый Запрос;
	ЗапросБольше.Текст = 
	"ВЫБРАТЬ
	|	ВидСобытия.Код КАК Код,
	|	ВидСобытия.Наименование КАК Наименование,
	|	ВидСобытия.Публиковать КАК Публиковать,
	|	ВидСобытия.Отредактировано КАК Отредактировано,
	|	ВидСобытия.Автор КАК Автор,
	|	ВидСобытия.Ответственный КАК Ответственный,
	|	ВидСобытия.Проверено КАК Проверено,
	|	ВидСобытия.GPT КАК GPT,
	|	ВидСобытия.Типограф КАК Типограф,
	|	ВидСобытия.Комментарий КАК Комментарий
	|ИЗ
	|	Справочник.ВидСобытия КАК ВидСобытия
	|ГДЕ
	|	ВидСобытия.IDSQL > 0"; 
	
	ВыборкаБольше = ЗапросБольше.Выполнить().Выбрать();
	
	Попытка 
		
		Пока ВыборкаБольше.Следующий() Цикл 	
			
			Соединение.Execute("UPDATE Events_Types 
			|SET
			|	Title = '"+ВыборкаБольше.Наименование+"',
			|	Responsible = '"+ВыборкаБольше.Ответственный+"',
			|	Creator = '"+ВыборкаБольше.Автор+"',
			|	Publish = '"+Число(ВыборкаБольше.Публиковать)+"',
			|	GPT = '"+Число(ВыборкаБольше.GPT)+"',
			|	Edited = '"+Число(ВыборкаБольше.Отредактировано)+"',
			|	Printer ='"+Число(ВыборкаБольше.Типограф)+"',
			|	Verified = '"+Число(ВыборкаБольше.Проверено)+"");  
			
		КонецЦикла;
		
		Сообщить("Данные обновлены!");
		
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 21.07.23 10:10 Сейчас в теме
3. ClausKey 21.07.23 10:21 Сейчас в теме
(2)
Смысл такой, что я из 1с должен сначала insert всех записей у которых idSQL = 0, после обновляю записи в sql где в 1с idSQL > 0 и вытаскиваю из sql id строки и пресваиваю его для idsql в 1с. Мне в запросе sql по сути не нужно условие, я так понимаю надо сделать цикл с счетчиком, но он жалуется постоянно
Прикрепленные файлы:
4. ClausKey 21.07.23 10:23 Сейчас в теме
(2)

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////
	
	//Инициализация переменных
	
	Провайдер = Константы.Провайдер.Получить();
	Драйвер = Константы.Драйвер.Получить();
	СРВ = Константы.Сервер.Получить();
	БД = Константы.БазаДанных.Получить();
	УИД = Константы.Логин.Получить();
	ПВД = Константы.Пароль.Получить();
	
	//Подключение к SQL-серверу
	Попытка  
		
		Соединение  = Новый COMОбъект("ADODB.Connection");
		Команда     = Новый COMОбъект("ADODB.Command");
		ВыборкаСоединения     = Новый COMОбъект("ADODB.RecordSet");
		Соединение.ConnectionString =  "DRIVER=" + Драйвер + ";Server=" + СРВ + ";Database=" + БД + ";UID=" + УИД + ";PWD=" + ПВД + ";";
		Соединение.ConnectionTimeout = 30;
		Соединение.CommandTimeout = 600;
		//Открытие соединение
		Соединение.Open();
		Команда.ActiveConnection   = Соединение;
		Сообщить("Успешное подключение!");      
		
	Исключение
		Сообщить(ОписаниеОшибки());
		Возврат;
	КонецПопытки;    
	
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////
	
	//////Запрос на объкты 1С где IDSQL = 0	
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ВидСобытия.Код КАК Код,
	|	ВидСобытия.Наименование КАК Наименование,
	|	ВидСобытия.Публиковать КАК Публиковать,
	|	ВидСобытия.Отредактировано КАК Отредактировано,
	|	ВидСобытия.Автор КАК Автор,
	|	ВидСобытия.Ответственный КАК Ответственный,
	|	ВидСобытия.Проверено КАК Проверено,
	|	ВидСобытия.GPT КАК GPT,
	|	ВидСобытия.Типограф КАК Типограф,
	|	ВидСобытия.Комментарий КАК Комментарий
	|ИЗ
	|	Справочник.ВидСобытия КАК ВидСобытия
	|ГДЕ
	|	ВидСобытия.IDSQL = 0";
	
	Выборка = Запрос.Выполнить().Выбрать();	
	
	Попытка
		
		Пока Выборка.Следующий() Цикл
			Соединение.Execute("INS ERT INTO Events_Types(Title, Responsible, Creator, Publish, GPT, Edited, Printer, Verified, ID1c) 
			|VALUES('" + Выборка.Наименование + "', '" + Выборка.Ответственный + "','" + Выборка.Автор +"', '" + Число(Выборка.Публиковать) + "', '" + Число(Выборка.GPT) + "', '" + Число(Выборка.Отредактировано) + "', '" + Число(Выборка.Типограф) + "', '" + Число(Выборка.Проверено) +"', '"+ Выборка.Код + "'  )");	
		КонецЦикла;
		
		Сообщить("Данные загружены!");	
		
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;       
	
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­/////////////////////////////////////////////// 
	
	////Запрос на объкты 1С где IDSQL > 0	
	
	ЗапросБольше = Новый Запрос;
	ЗапросБольше.Текст = 
	"ВЫБРАТЬ
	|	ВидСобытия.Код КАК Код,
	|	ВидСобытия.Наименование КАК Наименование,
	|	ВидСобытия.Публиковать КАК Публиковать,
	|	ВидСобытия.Отредактировано КАК Отредактировано,
	|	ВидСобытия.Автор КАК Автор,
	|	ВидСобытия.Ответственный КАК Ответственный,
	|	ВидСобытия.Проверено КАК Проверено,
	|	ВидСобытия.GPT КАК GPT,
	|	ВидСобытия.Типограф КАК Типограф,
	|	ВидСобытия.Комментарий КАК Комментарий
	|ИЗ
	|	Справочник.ВидСобытия КАК ВидСобытия
	|ГДЕ
	|	ВидСобытия.IDSQL > 0"; 
	
	ВыборкаБольше = ЗапросБольше.Выполнить().Выбрать();
	
	Попытка 
		
		Пока ВыборкаБольше.Следующий() Цикл 	
			
			Соединение.Execute("DECLARE Sum INT
			|	SET Sum = 1
			|	WHILE Sum > 0 DO
			|	UPD ATE Events_Types SET
			|	Title = '"+ВыборкаБольше.Наименование+"',
			|	Responsible = '"+ВыборкаБольше.Ответственный+"',
			|	Creator = '"+ВыборкаБольше.Автор+"',
			|	Publish = '"+Число(ВыборкаБольше.Публиковать)+"',
			|	GPT = '"+Число(ВыборкаБольше.GPT)+"',
			|	Edited = '"+Число(ВыборкаБольше.Отредактировано)+"',
			|	Printer ='"+Число(ВыборкаБольше.Типограф)+"',
			|	Verified = '"+Число(ВыборкаБольше.Проверено)+" 
			|	SE T Sum=Sum+1;
			|	END WHILE");  
			
		КонецЦикла;
		
		Сообщить("Данные обновлены!");
		
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;    
	
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­////////////////////////////////////////////////
	////////////////////////////////////////////////////////////­////////////////////////////////////////////////////////////­/////////////////////////////////////////////// 
	
	//Читаем записи
	ТекстИнструкции = "SEL ECT ID, ID1C FR OM Events_Types";
	
	Попытка
		
		Команда.CommandText = ТекстИнструкции;
		ВыборкаExecute = Команда.Execute();   
		
		// Создаем таблицаЗначений		
		
		ТаблицаЗначенийSQL = Новый ТаблицаЗначений;  
		ТаблицаЗначенийSQL.Колонки.Добавить("Код");
		ТаблицаЗначенийSQL.Колонки.Добавить("IDSQL");
		
		//Заполняем колонки = (Код, IDSQL);
		
		Если ВыборкаExecute.BOF = Ложь Тогда
			
			ВыборкаExecute.MoveFirst();
			
			Пока ВыборкаExecute.EOF = Ложь Цикл
				
				НоваяСтрока = ТаблицаЗначенийSQL.Добавить();
				
				НоваяСтрока.Код = Число(ВыборкаExecute.Fields("ID1C").Value);
				НоваяСтрока.IDSQL = Число(ВыборкаExecute.Fields("ID").Val ue);
				
				ВыборкаExecute.MoveNext();
				
			КонецЦикла;
			
		КонецЕсли;
		
		Запрос = Новый Запрос;
		Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВидСобытия.Ссылка КАК Ссылка,
		|	ВидСобытия.IDSQL КАК IDSQL
		|ИЗ
		|	Справочник.ВидСобытия КАК ВидСобытия";
		
		РезультатЗапроса = Запрос.Выполнить();	
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();     
		
		СЧ = 0;
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			
			ИзменяемыйОбъект = ВыборкаДетальныеЗаписи.Ссылка.ПолучитьОбъект();    
			
			ИзменяемыйОбъект.IDSQL = ТаблицаЗначенийSQL[СЧ].IDSQL;
			ИзменяемыйОбъект.Записать();
			
			СЧ = СЧ +1;
			
		КонецЦикла;
		
		Сообщить("IDSQL записан!");
		
	Исключение
		Сообщить(ОписаниеОшибки());
	КонецПопытки;
Показать


Вот весь мой код, не судите строго, с БД из 1с никогда не работал и понимаю, что не оптимально так использовать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот