Имя: Пароль:
1C
1C 7.7
v7: Какой-то бред с переносом через OLE
,
0 toypaul
 
гуру
09.08.13
14:58
Имеется код:

                БСпрЮЛ = База.CreateObject("Справочник.ЮрЛица");
                БСпрЮЛ.НайтиЭлемент(БСпр.ЮрФизЛицо.ТекущийЭлемент());
                БСпрЮЛ.ИНН = Контрагент.ЮрФизЛицо.ИНН;
                БСпрЮЛ.Телефоны = СокрЛП(Контрагент.ЮрФизЛицо.Телефоны);
                БСпрЮЛ.ЮрАдрес = СокрЛП(Контрагент.ЮрФизЛицо.ЮрАдрес);
                БСпрЮЛ.ФактАдрес = СокрЛП(Контрагент.ЮрФизЛицо.ФактАдрес);
                БСпрЮЛ.ОКПО = Контрагент.ЮрФизЛицо.ОКПО;
                БСпрЮЛ.Записать();
                БСпрЮЛ.НайтиЭлемент(БСпр.ЮрФизЛицо.ТекущийЭлемент());
Сообщить(БСпрЮЛ.ЮрАдрес);

Выдает в конец обновленный адрес в базе приемнике. ЮрАдрес был неограниченный. Сделал ограниченный в обеих базах. Всеравно = захожу в базу приемник, адрес пустой.

У меня на компе (XP) работает! Чо за бредятина? У меня 25 релиз, у клиента 27 Win 7
1 ЧеловекДуши
 
09.08.13
14:59
(0)  Win 7 - Тебе нечего не говорит? :)
2 zak555
 
09.08.13
15:00
xml наше всё
3 toypaul
 
гуру
09.08.13
15:00
(1) ичо? думаешь в этом причина? а можно ссылку почитать у кого также было и что делать.
4 toypaul
 
гуру
09.08.13
15:01
(2) да хоть через что можно сделать. просто подляна такая. снова переписывать - часы увеличивать.
5 zak555
 
09.08.13
15:02
(4) на КД большая часть переноса мышкой делается =)
6 toypaul
 
гуру
09.08.13
15:04
(5) а космонавты в космос летают. и чо? КД умеет из дублей выбрать правильный и обновить нужные реквизиты в приемнике?
7 zak555
 
09.08.13
15:05
(6) конечно
8 1Сергей
 
09.08.13
15:05
(4) Вот такой недальновидный Нуралиев - не смог предугадать в далёком 1999-ом году, что появится такая система, как Windows 7
9 toypaul
 
гуру
09.08.13
15:08
(8) 27й релиз 2006 год. тогда была уже 7ка?
10 1Сергей
 
09.08.13
15:09
(9) нет
11 ЧеловекДуши
 
09.08.13
15:10
(9) Вин Виста (пролетела со свистом)
12 ЧеловекДуши
 
09.08.13
15:10
8 ноября 2006 (RTM)
30 января 2007 (продажи)     Windows Vista     6.0.6001 / SP2 Build 6002 (25 мая 2009)     13 апреля 2010 (RTM); 22 октября 2010 (retail); 12 июля 2011 (SP1); 22 октября 2011 (SBL); 10 апреля 2012 (осн.); 11 апреля 2017 (ext)


wiki:Microsoft_Windows
13 toypaul
 
гуру
09.08.13
15:10
ну ... ладно :)
режим совместимости поможет? или пусть на XP переносят?
14 ЧеловекДуши
 
09.08.13
15:11
+ 30 января 2007 (продажи)  ужо была предпосылка :)
15 1Сергей
 
09.08.13
15:14
(13) на вин 7 32 бита можно попытаться
16 ЧеловекДуши
 
09.08.13
15:14
(13) ХЗ... там проблема в разности кодировки :)

Попробуй вставить, почти везде "Сообщить(СокрЛП(БСпрЮЛ.<ИмяРеквизита>));"
17 1Сергей
 
09.08.13
15:15
(16) не в кодировке, а в регистрации OLE-механизма в системе. С кодировкой проблема решаема
18 ЧеловекДуши
 
09.08.13
15:17
(17) Да? Все ровно как ни крути, косяк на косяке... Что решается в одном месте, тут же выстреливает в другом :)
Проще кастрировать Админов и заставить их везде поставить XP СП3 :)
19 Ёпрст
 
09.08.13
15:31
(0)
а так ?, на всякий..

БСпрЮЛ.УстановитьАтрибут("ЮрАдрес", Контрагент.ЮрФизЛицо.ПоуучитьАтрибут("ЮрАдрес"));
20 Ёпрст
 
09.08.13
15:32
Ну и.. проще в родной базе лепить элементы, чем в оле-базе.
21 toypaul
 
гуру
09.08.13
15:43
(19) я плюнул уже. пусть на XP пробуют. не выйдет если, попробую так.
(20) в родной базе не получится по алгоритму.
22 Ёпрст
 
09.08.13
15:46
(21) ну, тогда еще проше - запусти что-то в базе оде с параметрами, что слепит тебе эти элементы "там" само.
23 Ёпрст
 
09.08.13
15:46
либо обработку, либо глоб функцию/процу.
24 arian_
 
09.08.13
15:49
Вместо вот этой строки
БСпрЮЛ.НайтиЭлемент(БСпр.ЮрФизЛицо.ТекущийЭлемент());
попробуйти вот так
БСпрЮЛ.НайтиПоКоду(БСпр.ЮрФизЛицо.Код,0);

Если же этот справочник зависимый, то тогда с использованием
ИспользоватьВладельца
25 arian_
 
09.08.13
15:55
Минутку. А Контрагент - это справочник источника? Вообще с Оле может быть проблема только в том, присвоение значений между внешней и внутренней базой может производиться только по простым типам.
26 arian_
 
09.08.13
15:58
Как то так!
КлиентОле = База.CreateObject("Справочник.Контрагенты");
КлиентОле.НайтиПоКоду(Контрагент.Код,0);
БСпрЮл.ИспользоватьВладельца(КлиентОле.ТекущийЭлемент());
БСпрЮЛ.НайтиПоКоду(Контрагент.ЮрФизЛицо.Код,1);
БСпрЮЛ.ИНН = Контрагент.ЮрФизЛицо.ИНН;
                БСпрЮЛ.Телефоны = СокрЛП(Контрагент.ЮрФизЛицо.Телефоны);
                БСпрЮЛ.ЮрАдрес = СокрЛП(Контрагент.ЮрФизЛицо.ЮрАдрес);
                БСпрЮЛ.ФактАдрес = СокрЛП(Контрагент.ЮрФизЛицо.ФактАдрес);
                БСпрЮЛ.ОКПО = Контрагент.ЮрФизЛицо.ОКПО;
                БСпрЮЛ.Записать();
27 Ёпрст
 
09.08.13
16:01
(26) да уж..