Имя: Пароль:
1C
1С v8
КД2 - выгрузить 1 колонку в ТЧ документа
0 impulse9
 
24.04.13
05:51
Необходимо выгрузить всего одну колонку в ТЧ документа, остальное оставить так, как есть.

Галочки "не замещать значение" в колонках ТЧ не помогают, такая же галочка на ТЧ не дает загрузиься нужной колонке


Как это сделать?
1 Rie
 
24.04.13
05:57
(0) Откуда берётся эта колонка?
2 impulse9
 
24.04.13
06:01
(1) В Источнике есть документ, этот же документ есть в Приемнике.

В Приемнике документ поправили - изменили в ТЧ в каждой колонке значения реквизитов, к примеру, Цена и Количество.

В Источнике документ тоже поправили - изменили в этой же ТЧ в каждой колонке реквизит ГТД.

Нужно загрузить из Источника в Приемник документ, чтобы Цена и Количество не затерлось, а ГТД заменилось.
3 el-gamberro
 
24.04.13
06:09
(2) Так нельзя делать. Можно объект либо замещать либо нет. Иначе неизбежны коллизии. Например в вашем случае ГТД изменили и в Источнике и в Приемнике. Что делать обработчику??

Возможен вариант, превратить ГТД в справочник и менять его рекивизиты, которые и будут потом отражаться в документе
4 Рэйв
 
24.04.13
06:12
пройдись по COM. Проще будет намного
5 impulse9
 
24.04.13
06:13
(4) Базы на разных серверах в разных городах...
6 Рэйв
 
24.04.13
06:13
это плохо.
7 Рэйв
 
24.04.13
06:14
а терминально доступен их сервер?
8 Rie
 
24.04.13
06:15
(2) Несколько странно. А если изменился порядок строк? Или количество строк в этой табличной части увеличилось?
Но если очень хочется - то можешь попробовать ПриЗагрузке проверить, что ОбъектНайден и заменить ГТД в объекте базы-приёмника.
9 impulse9
 
24.04.13
06:18
(8) 100% не меняется, это регламентировано.

А можно кусок кода?

(7) Термнально доступен, но все остальное закрыто. Обе базы на SQL, размерами уже по 10 гигов. COM и правда было бы удобно, но в этом случае не вариант...
10 el-gamberro
 
24.04.13
07:12
Если ОбъектНайден Тогда
Для Каждого СтрокаТовары Из Объект.Товары Цикл
ЗапросГТД = "Выбрать ГТД Из РасходнаяТовары ГДЕ РассходнаяТовары.Ссылка = &Ссылка И НомерСтроки = &НомерСтроки";
Запрос.УстПарам("НомерСтроки",СтрокаТовары.НомерСтроки);
СтрокаТовары.ГТД = ВыьоркаЗапроса[0].ГТД;
КонецЦикла;
конецесли;

Тут главное не запутаться между загужаемым объектом и объектом в базе данных
11 impulse9
 
24.04.13
07:25
(10) попробую, спасибо
12 ilpar
 
24.04.13
08:27
Есть альтернативный вариант, пкс существующие отключить.

У меня когда сработало.
13 vicof
 
24.04.13
08:36
(12) Для табличных частей хоть заотключайся, при загрузке они очищаются и записываются заново.
14 ilpar
 
24.04.13
10:04
(13) гилевская пропоганда? или проверил?

я факт из жизни написал.
15 ilpar
 
24.04.13
10:05
(14) но не уверен на 100 процентов.
16 vicof
 
24.04.13
10:16
(14) Проверял. На последней КДхе, недели три назад.
17 impulse9
 
24.04.13
10:20
(12) Отключал, тогда вообще реквизиты ТЧ обнуляются

Конвертация данных, редакция 2.1 (2.1.6.5)
18 cw014
 
24.04.13
10:45
Создай отдельный узел для этого добра
19 cw014
 
24.04.13
10:45
И не парься с группами ПКС
20 impulse9
 
25.04.13
07:29
(10) Да, такой вариант работает. Я еще на всякий пожарный вывел поиск и по номеру строки, и по номенклатуре, и если не найдено, пишу сообщение об ошибке.

Спасибо!