Имя: Пароль:
1C
1С v8
Запись или НаборЗаписей - как модифицировать без удаления?
0 fantomrik
 
10.12.15
17:07
Коллеги, добрый день!

Работаю с ВнешнимИсточникомДанных (база MySQL) как с записью или с набором записей.

ТаблицаТоваров = ВнешниеИсточникиДанных.ВнешняяБД.Таблицы.product;
ТоварыБД = ТаблицаТоваров.СоздатьНаборЗаписей();

ИЛИ

ТаблицаТоваров = ВнешниеИсточникиДанных.ВнешняяБД.Таблицы.product;
ТоварБД = ТаблицаТоваров.СоздатьМенеджерЗаписи();

Проблема следующая, как выяснилось при модификации записи, запись сначала удаляется, и следом записывается модифицированная. А так как в MySQL таблицы связанные, мне админ не разрешает удалять уже связанные записи, только модифицировать.
Не могу придумать как быть.


ВнешнийИсточникДанныхТаблицаМенеджерЗаписи.<Имя внешнего источника>.<Имя таблицы внешнего источника данных> (ExternalDataSourceTableRecordManager.<Имя внешнего источника>.<Имя таблицы внешнего источника данных>)
Записать (Write)
Синтаксис:

Записать(<Замещать>)
Параметры:

<Замещать> (необязательный)

Тип: Булево.
Определяет режим замещения существующей записи по ключевым полям.
Значение по умолчанию: Истина.
Описание:

Записывает в базу данных внешнего источника данных запись таблицы с текущими значениями полей. Если запись была предварительно прочитана из базы данных, то при выполнении метода сначала прочитанная запись удаляется, а затем производится запись измененной записи. С помощью параметра Замещать регулируется, будет ли метод замещать запись, если в момент выполнения метода существует другая (исключая прочитанную) запись с такими же значениями ключевых полей.

Доступность:

Толстый клиент.
1 ДенисЧ
 
10.12.15
17:10
Не пользоваться кривым инструментом - не предлагать?
2 fantomrik
 
10.12.15
17:11
(1) а каким инструментом пользоваться? До меня просто начали работу с ВИД, я продолжил то что было.
3 ДенисЧ
 
10.12.15
17:11
(2) Нормальным ))
АДО, например.
Там есть update
4 fantomrik
 
10.12.15
17:14
(3) Что за АДО еще ?
5 Гёдза
 
10.12.15
17:16
можно функцию написать. Во внешних источниках есть поддержка функций
6 ДенисЧ
 
10.12.15
17:17
(4) ADODB
7 fantomrik
 
10.12.15
17:24
(5) Не уловил мысль
8 Гёдза
 
10.12.15
18:17
9 Лефмихалыч
 
10.12.15
19:52
(0) то есть, проблема в том, что ты не можешь отличить изменение существующей записи от удаления, я правьно понял?
10 fantomrik
 
11.12.15
11:08
(9) Ну почти. 1С при работе с записью и набором записи при модификации все равно сначала удаляет запись/набор а потом пишет модифицированный. SQL мне не дает удалить запись, так как к ней привязаны записи других таблиц.
11 fantomrik
 
11.12.15
16:31
Спасибо всем! Будем изучать прямые запросы в SQL для решения задачи)
12 Лефмихалыч
 
11.12.15
16:39
(10) удаление существующей легко отличить.
Перед записью набора делаешь запрос к регистру с отбором по значениям отбора. Если запрос что-то вернул, значит это удаление.
13 ptiz
 
11.12.15
17:09
Не доверял бы я 1С запись во внешние источники.