Имя: Пароль:
1C
 
потеря реквизита
0 nad0001
 
12.11.06
12:12
при обновлении потерялся реквизит. теперь вот пытаюсь восстановить. с помощью обработки перегрузить из одной базы в другую. запускается обработка запрашивает базу...база вторая грузится и наступает полная тишина.
базы SQL 1с7.7. помогите плиз.
Процедура Сформировать()
    БазаОле=СоздатьОбъект("v77s.application");
    Если БазаОле.Initialize(БазаОле.RMTrade, "","")=0 Тогда
         Сообщить("ниче не вышло");
    КонецЕсли;
    СпрОле=БазаОле.CreateObject("Справочник.ОсновныеСредства");
    Спр=CreateObject("Справочник.ОсновныеСредства");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
         Если Спр.ЭтоГруппа()=1 Тогда
              Продолжить;
         КонецЕсли;
         Если СпрОле.НайтиПоКоду(Спр.ПолныйКод(),2)=1 Тогда
              Спр.Реквизит=СпрОле.Реквизит;
              Спр.Записать();
         КонецЕсли;
    КонецЦикла;
КонецПроцедуры
1 Обдолбанный Вася
 
12.11.06
12:20
А не проще ли в старой выгрузить энтот реквизит, в новой загрузить? Да хотя бы и через текст?
2 nad0001
 
12.11.06
12:22
(1) мне вот интересно..пыталсь делать и так как вы говорите. таже тишина. файл создается но он пустой....загрузка не происходит
3 Лефмихалыч
 
12.11.06
12:25
(2) не правильно значит выгружала, как, кстати, ты это делала?
4 Обдолбанный Вася
 
12.11.06
12:29
Проц Выгрузка()
 ТВыгрузки=СоздатьОбъект("Текст");
 Спр=СоздатьСпр("Спр.ОС");
 Спр.ВыбратьЭл();
 Пока Спр.ПолЭл=1 Цикл
    ТВыгрузки.ДобавитьСтроку(Спр.Реквизит); ну или строка
 КонецЦикла;
 Твыгрузки.Записать(ИмяФайла);


Что-то типа того?
5 nad0001
 
12.11.06
12:32
Процедура Выгрузить()
   ДБФ = СоздатьОбъект("XBASE");
   ДБФ.ОткрытьФайл("C:\obmen.dbf");
   ДБФ.КодоваяСтраница(0);
   ДБФ.ДобавитьПоле("CODE","S", 30, 0);
   ДБФ.ДобавитьПоле("KAB","S", 30, 0);
   Спр = СоздатьОбъект("Справочник.ОсновныеСредства");
   Спр.ВыбратьЭлементы();
   ии = 0;
   Пока Спр.ПолучитьЭлемент() = 1 Цикл
       Если ПустоеЗначение(Спр.Кабинет) = 1 Тогда
           Продолжить;
       Иначе
           ии = ии+1;
           ДБФ.Добавить();
           ДБФ.CODE = Спр.Код;
           ДБФ.KAB  = Спр.Кабинет;
           ДБФ.Записать();
           Состояние("Записывается строка - "+ии)
       КонецЕсли;
   КонецЦикла;
   ДБФ.ЗакрытьФайл();
КонецПроцедуры
типа этого
6 Лефмихалыч
 
12.11.06
12:33
(5) ТипЗначенияСтр(Спр.Кабинет) что возвратит?
7 nad0001
 
12.11.06
12:35
(7) я думаю что возвратит значение №кабинета из спр ОС
8 Лефмихалыч
 
12.11.06
12:35
+(6) код из (5) создаст пустой файлик в случае если кабинеты не заполнены. Может обработка выгрузки была запущена не на той базе?
9 Лефмихалыч
 
12.11.06
12:35
(7) вопрос на засыпку: а для чего нужна функция ТипЗначенияСтр()?
10 nad0001
 
12.11.06
12:35
(8) кабинеты заполнены:( проверяла 100раз.... и обработка запущена на той базе:(
11 Обдолбанный Вася
 
12.11.06
12:36
Да ради пары реквизитов чем текст-то плох и не мучаться и недолго
12 nad0001
 
12.11.06
12:37
(9)эххх...определяет тип данных.вопрос в другом.
13 Лефмихалыч
 
12.11.06
12:38
ты по прежнему утверждаешь, что obmen.dbf после выполнения кода (5) оказывается пустым?
(12) тогда ответь на вопрос (6)
14 nad0001
 
12.11.06
12:41
(13) файл не пустой....но маленький по размеру 98 байт всего. после нажатия кнопки загрузки ничего не происходит
15 nad0001
 
12.11.06
12:41
(14)+13 ничего не загружается
16 Лефмихалыч
 
12.11.06
12:43
(15) а загружаешь ты его каким кодом? дай позырить
17 nad0001
 
12.11.06
12:46
16. а выгрузка правильная?
18 Лефмихалыч
 
12.11.06
12:46
правильная
19 nad0001
 
12.11.06
12:49
18..а чего ж она не выгружает....
20 Лефмихалыч
 
12.11.06
12:52
(19) во-первых, откуда ты знаешь, что не выгружается, во-вторых, ты мне на вопрос (6) ответишь когда-нибудь?
21 nad0001
 
12.11.06
12:56
20.файл слишком маленький.поентому мне так кажется. (6).определит к какому типу данных принадлежит параметр
22 Обдолбанный Вася
 
12.11.06
12:57
(21) Что конкретно возвращает в данной выгрузке?
23 Обдолбанный Вася
 
12.11.06
12:58
Это я про (6) еси чо)
И все равно говорю вам давно бы уже текстом сделали
24 zzzzz
 
12.11.06
13:01
(0)Спр.Реквизит=СпрОле.Реквизит;
Это ошибка. Но вот если воспользоваться ТипЗначенияВСтроку - то будет фурычить.
При условии совпадения баз конечно.
25 Лефмихалыч
 
12.11.06
13:01
(23) я, например, сделал через XML, потому как от паринья текстовых файликов "сильней чем от водки блюю" (с) Шнур
26 nad0001
 
12.11.06
13:02
(24) подробнее можно? почему ошибка?
27 nad0001
 
12.11.06
13:04
22.реквизит кабинет из справочника ОС
28 Лефмихалыч
 
12.11.06
13:04
(24) ТипЗначенияВСтроку это где такое растет?
29 zzzzz
 
12.11.06
13:04
СпрОле.Реквизит - Это неизвестный элемент в твоей базе. ОЛЕ объект.
Но вот если его преобразовать в строку в старой базе, а потом развернуть из строки в новой, то получиться объект новой.
30 Лефмихалыч
 
12.11.06
13:05
(27) МЛЯ!!! Кабинет - это строка, справочник или число?
31 nad0001
 
12.11.06
13:05
(30)кабинет это строка
32 Обдолбанный Вася
 
12.11.06
13:05
(25) А я еще маленький и окромя текста ничего не ем?
33 nad0001
 
12.11.06
13:06
такс..ну что сделать то? где все таки не верно?
34 nad0001
 
12.11.06
13:06
попробую через текст.
35 nad0001
 
12.11.06
13:07
но все равно интересно почему происходит затык....
36 zzzzz
 
12.11.06
13:08
(0) Подскажи, ты реальный код пишешь. У тебя реквизит так и называется - реквизит. Он не периодический?
37 nad0001
 
12.11.06
13:09
(36) реквизит называется Кабинет....не переодичский
38 Лефмихалыч
 
12.11.06
13:09
А делать я скажу чего. Надо идти в ОТЛАДЧИК
39 Лефмихалыч
 
12.11.06
13:10
у кого-то бардак не-то в метаданных, не-то в голове, не-то и там и сям...
40 zzzzz
 
12.11.06
13:12
Спр.Реквизит=СпрОле.Реквизит;
Замени на   Спр.Кабинет=СпрОле.Кабинет;
Если конечно этот реквизит - строка.
41 nad0001
 
12.11.06
13:15
(40)да..до меня дошло и я только что заменила. результат тот же..нулевой.
42 nad0001
 
12.11.06
13:15
41.происходит затык.
43 Лефмихалыч
 
12.11.06
13:18
разруха - она не в клозетах...
44 nad0001
 
12.11.06
13:20
43 нечего сказать лучше промолчи
45 zzzzz
 
12.11.06
13:31
Тогда на
Спр.Кабинет=СокрЛП(СпрОле.Кабинет);
Немножко надоело. Посмотри сравнение справочников. Сравнивает изменения спрвочников текущей базы с архивной копией.
//*******************************************
Процедура ЗапРекв()
   //НаимСтр = Метаданные.Справочник(ФормСправочник.ТекущаяСтрока()).Идентификатор();
   СпрМД = Метаданные.Справочник(ФормСправочник.ПолучитьЗначение(ФормСправочник.ТекущаяСтрока()));
   РеквСпр.УдалитьВсе();
   Для Инд = 1 По СпрМД.Реквизит() Цикл
       РеквСпр.ДобавитьЗначение(СпрМД.Реквизит(Инд).Идентификатор, СпрМД.Реквизит(Инд).Представление());
       РеквСпр.Пометка(Инд, 1);
   КонецЦикла;
КонецПроцедуры
Процедура ПриОткрытии()
   Для Инд=1 По Метаданные.Справочник() Цикл
       ФормСправочник.ДобавитьЗначение(Метаданные.Справочник(Инд).Идентификатор,Метаданные.Справочник(Инд).Представление());
   КонецЦикла;  
   ФормСправочник.ТекущаяСтрока(1);
   ЗапРекв();
КонецПроцедуры
Функция ВыбратьКаталогОЛЕ()    
   ИмяФайла="1cv7.md";
   Если ФС.ВыбратьФайл(0,ИмяФайла,ВыбПуть,"Выберите базу, из которой будете получать данные","1cv7.md|1cv7.md")=1 Тогда
   КонецЕсли;    
КонецФункции            
Процедура Сформировать()
       Путь=СокрЛП(ВыбПуть);
   Если ФС.Существуетфайл(Путь+"1Cv7.MD") =  0 Тогда    
       Предупреждение("Путь информационной базы не найден!");    
       Возврат;
   КонецЕсли;    
   V7 = СоздатьОбъект("V77.Application");      
   Открыта = V7.Initialize(V7.RMTrade, "/d" + Путь +" /N" +"", "");  
   Если Открыта = 0 Тогда              
       Предупреждение("Ошибка открытия информационной базы");        
       Возврат;        
   КонецЕсли;      
   
   СтарНапечАтр=СоздатьОбъект("СписокЗначений");
   НапечататьАтрибуты=СоздатьОбъект("СписокЗначений");
   СписВыбРекв=СоздатьОбъект("СписокЗначений");  
   СпрМД = Метаданные.Справочник(ФормСправочник.ТекущаяСтрока());
   Таб=СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка|Основа");
   Для Сч=1 По РеквСпр.РазмерСписка() Цикл
       Если РеквСпр.Пометка(Сч)=1 Тогда
           СписВыбРекв.ДобавитьЗначение(РеквСпр.ПолучитьЗначение(Сч));  
           Таб.ПрисоединитьСекцию("Шапка|Атрибуты");
       КонецЕсли;
   КонецЦикла;
   ОлеСпр=V7.CreateObject("Справочник."+СпрМД.Идентификатор);
   Спр=СоздатьОбъект("Справочник."+СпрМД.Идентификатор);
   ОлеСпр.ВыбратьЭлементы(0);          
   Ном=0;
   Пока ОлеСпр.ПолучитьЭлемент()=1 Цикл  
       
       ОлеСтрока=V7.ЗначениеВСтрокуВнутр(ОлеСпр.ТекущийЭлемент());
       ТекЭлем=ЗначениеИзСтрокиВнутр(ОлеСтрока);    
       Если ТипЗначенияСтр(ТекЭлем)<>"Справочник" Тогда
           Сообщить("Проблемы с элементом. Код = "+ОлеСпр.Код);
           Сообщить("Наименование = "+ОлеСпр.Наименование);
           Продолжить;
       КонецЕсли;                                    
       Печатать=0;                                  
       ТекЭлем.ИспользоватьДату(ВыбДата);
       ОлеСпр.ИспользоватьДату("'"+ ВыбДата+ "'");
       ПечНаимПрежн=СокрЛП(ОлеСпр.Наименование);
       ПечНаимНов=СокрЛП(ТекЭлем.Наименование);        
       ПечКодПреж=СокрЛП(ОлеСпр.Код);
       ПечКодНов=СокрЛП(ТекЭлем.Код);
       Если ПечНаимПрежн<>ПечНаимНов Тогда
           Печатать=1;            
       КонецЕсли;
       Если ПечКодПреж<>ПечКодНов Тогда      
           Печатать=1;            
       КонецЕсли;        
       НапечататьАтрибуты.УдалитьВсе();  
       СтарНапечАтр.УдалитьВсе();  
       
       Для Сч=1 По СписВыбРекв.РазмерСписка() Цикл  
           НазвАтр=СписВыбРекв.ПолучитьЗначение(Сч);                              
           ТекАтр=ТекЭлем.ПолучитьАтрибут(НазвАтр);  
           //Если ТипЗначенияСтр(ТекАтр)="Строка" Тогда
           //    ТекАтр=СокрЛП(ТекАтр);
           //    ТекАтрИзОле
           //Иначе
               ОлеСтрокаАтр=V7.ЗначениеВСтрокуВнутр(ОлеСпр.ПолучитьАтрибут(НазвАтр));
               ТекАтрИзОле=ЗначениеИзСтрокиВнутр(ОлеСтрокаАтр);    
           //КонецЕсли;
           Если ТекАтр<>ТекАтрИзОле Тогда  
               Печатать=1;            
           КонецЕсли;              
           СтарНапечАтр.ДобавитьЗначение(ТекАтрИзОле);
           НапечататьАтрибуты.ДобавитьЗначение(ТекАтр);
       КонецЦикла;
       Если Печатать=1 Тогда          
           Ном=Ном+1;
           Таб.ВывестиСекцию("Строка|Основа");    
           Для Сч=1 По НапечататьАтрибуты.РазмерСписка() Цикл
               Таб.ПрисоединитьСекцию("Строка|Атрибуты");
           КонецЦикла;
       КонецЕсли;
           
       
   КонецЦикла;
   Таб.Показать("Переделка");
КонецПроцедуры
46 Лефмихалыч
 
12.11.06
13:32
(44) я уже тебе сказал - посмотри отладчиком, выгружаются ли данные, а потом посмотри, загружаются ли они. Может у тебя в обработках загрузки и выгрузки ошибка. только отладчик тебе поможет
47 Лефмихалыч
 
12.11.06
13:32
(45) господь спаси...
48 nad0001
 
12.11.06
13:35
:)) м-дя...ладно. спасибо всем. я попробую разобраться.
49 zzzzz
 
12.11.06
13:35
(47) :)
У меня давно универсальный наборчик написан. Весьма полезно.
Этот отчет я продавал уже раз пять. По регистрам - чаще. А уж по проводкам...
50 nad0001
 
12.11.06
13:38
(49) базы одинаковые. 100%
51 nad0001
 
12.11.06
13:38
но так и не работает
52 Обдолбанный Вася
 
12.11.06
13:44
(51) так все-таки проводилась работа в отладчике, или вам неизвестно сие развитие событий?
53 zzzzz
 
12.11.06
13:49
Если СпрОле.НайтиПоКоду(Спр.ПолныйКод(),2)=1 Тогда
              Спр.Реквизит=СпрОле.Реквизит;
              Спр.Записать();
         КонецЕсли;
Заменить на
СтрокаТек=ЗначениеВСтрокуВнутр(Спр.ТекущийЭлемент());
СпрОле_=БазаОле.ЗначениеИзСтрокиВнутр(СтрокаТек);
ТекРекв=БазаОле.ЗначениеВСтрокуВнутр(СпрОле_.Кабинет);
Спр.Кабинет=ЗначениеИзСтроки(ТекРекв);
Спр.Записать();
54 zzzzz
 
12.11.06
13:50
(52) :)
55 nad0001
 
12.11.06
13:52
(52) нет еще. щас закончу другое дело и посмотрю.спасибо!:))
56 Прохожий
 
12.11.06
13:53
(0) "тишина" - а ты уверена, что у тебя версия движка 1С не ниже ПРОФ? Стандарт движек 1С:ОЛЕ не поддерживает...
57 Лефмихалыч
 
12.11.06
13:55
кроме того, в ЖКК вроде написано, что в данном случае с поиском элементов мудрить не надо, а надо использовать:
спрОле.НайтиЭлемент(спр.ТекущийЭлемент())

или кажется мне это?..
58 nad0001
 
12.11.06
13:55
(56)не уверена...у меня обчная 1Ска SQL
59 Обдолбанный Вася
 
12.11.06
13:58
ТЕКСТ, ТЕКСТ и а не 1,5 часа разбора ошипки если важен результат для одного реквизита - буду настаивать таки на том!!!
Не, ну конешно, если просто сама проблема, как проблема зацепила) То впередъ и с песней....
60 Лефмихалыч
 
12.11.06
14:05
СтрЗаменить(ПостНомер59, "ТЕКСТ", "XML")
61 zzzzz
 
12.11.06
14:07
(59) Бредовость текста, как и дбф, так же как и ХМЛ - это отдельный случай.
Для прикола, перекачай что-либо многострочное.
(60) В имени контрагента нажми кнопку Сонтр и например В. Потом перекачай.
62 Лефмихалыч
 
12.11.06
14:08
(61) я? где?
63 Обдолбанный Вася
 
12.11.06
14:09
Если глПользователь="Лёвыч" тогда
  СтрЗаменить(ПостНомер59, "ТЕКСТ", "XML")
ИначеЕсли глПользователь="Вася" тогда
  СтрНичегоНеМенять(ПостНомер59)
Иначе
  Сообщить(Пост61+"Речь-то в конкретике тока об 1 реквизите)")
КонецВсего;
64 zzzzz
 
12.11.06
14:11
(62) Перекачка ХМЛ, в случае спецсимволов - затыкается. Причем самая большая гнусь в том, что без сообщения об ошибке. ОЛЕ в этом случае получше.
65 Лефмихалыч
 
12.11.06
14:12
(64) вот проблема - 4 символа в полете заменять на спецпоследовательность...
66 Лефмихалыч
 
12.11.06
14:13
(64) а, ты вон про чо... ну, так, а некуй фсякую шнягу в справочниках хранить 8)
67 nad0001
 
12.11.06
14:14
ого...у вас тут продолжение банкета?:))))
68 Обдолбанный Вася
 
12.11.06
14:14
(67)Так каков результат -то
69 Лефмихалыч
 
12.11.06
14:14
(67) как успехи?
70 nad0001
 
12.11.06
14:18
пока никаков. настраиваю ком и сажусь за обработку:)))) продолжайте пока:))))
71 Лефмихалыч
 
12.11.06
14:21
деловая, однако, колбаса... имхо
72 nad0001
 
12.11.06
14:27
(71) не колбаса а сис админ
73 zzzzz
 
12.11.06
14:29
Заколбасившийся сисадмин.
Но т.к. женского рода, то засисадминенная колбаса.
:)
74 nad0001
 
12.11.06
14:30
(73) ну типа того:))
75 Лефмихалыч
 
12.11.06
14:33
кошмар какой...
76 Прохожий
 
12.11.06
14:33
(58) Если СКЛ, то ОЛЕ должно замечательно работать всегда..
(57) "Это ему кажется" (с) Мигающая надпись из К/ф "Двенадцать стульев"
...
Единственный минус реальный у ОЛЕ - оно с отладчиком плохо дружит и при отладке могет аварийно падать вся батарея зацепленных по ОЛЕ баз....
Даже медлительность ОЛЕ - не проблема.
(0) А если у тебя СКЛ почему средствами СКЛ не перельёшь? Две минуты делов + точность попадания 256% ибо по ID.
77 nad0001
 
12.11.06
14:34
(76) а можно спросить как?
78 Лефмихалыч
 
12.11.06
14:37
семен семеныч, а про скуль-то я как-то не подумал....
в энтерпрайс манагере есть такой пунктик в контекстном меню "Import\Export" тамоко мастер запускается, довольно понятно все
79 Прохожий
 
12.11.06
14:37
(78) Можно. Вот адрес
www.forum.mista.ru
Там ветку подними "Как колонку таблицы СКЛ одной базы перенести в таблицу СКЛ другой базы по ID?"
Там народ отзывчивый, кто-нибудь сразу поможет. Ты главное с названием темы не перемудри. И сразу скажи как называется таблица и колонка в ней...
80 nad0001
 
12.11.06
14:38
пытаюсь сделать как в (53) результат тот же
81 Прохожий
 
12.11.06
14:38
+(79) Чес слово самому интересно скока способов одноэснеги знают...
82 Прохожий
 
12.11.06
14:38
(80) Хочешь, я сам для тебя подниму?
83 nad0001
 
12.11.06
14:39
(79) так я ж на мисте сейчас...ниччего не поняла
84 nad0001
 
12.11.06
14:39
(79) ого...мы еще и земляки:) круто
85 Прохожий
 
12.11.06
14:39
(83) НОВУЮ конференцию подними про СКЛ. ВТЕМЕ укажи вопрос...
86 Лефмихалыч
 
12.11.06
14:40
(83) шутка юмора такая, он имеет в виду, что не хило было бы спросить в отдельной ветке про то, как средствами скуля перелить твою колонку
87 nad0001
 
12.11.06
14:42
(85) щас попытаюсь
88 zzzzz
 
12.11.06
14:42
(80) Мистика. Ничего не понимаю.
89 nad0001
 
12.11.06
14:43
(88) вот вот.....я тоже ничего не понимаю.почему оно не работает?:???.. реквизит я сама дописывала. в этом причина не может быть?
90 Лефмихалыч
 
12.11.06
14:44
чудес не бывает! Ъ!
91 nad0001
 
12.11.06
14:44
(90) получается что бывает
92 Прохожий
 
12.11.06
14:44
(88) Потому что база не хочет. Она СКЛ хочет. Я ясно вижу...
93 nad0001
 
12.11.06
14:46
(92) и что делать с ее хотелкой?:)
94 zzzzz
 
12.11.06
15:00
(93) В обеих базах это строка? В обеих базах размер одинаковый? Может что менялось? Число уровней справочника например?
95 nad0001
 
12.11.06
15:03
(94)да,в обеих базах этот реквизит типа Строка.и ничего не менялось. я просто перед обновлением сделала выгрузку,чтобы сохранить данные
96 zzzzz
 
12.11.06
15:04
(95) Такого не бывает. Запусти отладчик наконец.
97 nad0001
 
12.11.06
15:05
(95)упс...длина разная:(
98 Прохожий
 
12.11.06
15:05
(96) Прочти 76:
"Единственный минус реальный у ОЛЕ - оно с отладчиком плохо дружит и при отладке могет аварийно падать вся батарея зацепленных по ОЛЕ баз...."
99 nad0001
 
12.11.06
15:05
(+97) поэтому и не работает?
100 Прохожий
 
12.11.06
15:05
(99) Нет.
101 nad0001
 
12.11.06
15:06
(98) ой,не охота чтобы бызы упали
102 nad0001
 
12.11.06
15:06
(100)а что делать?
103 zzzzz
 
12.11.06
15:06
(99) Да. Воспользуйся СокрЛП
104 nad0001
 
12.11.06
15:07
(103) как в 53?
105 nad0001
 
12.11.06
15:07
я же уже пользовалась сокрлп....тоже самое
106 Прохожий
 
12.11.06
15:07
(103) Ты её прекрати чему попало учить, ей только СКЛ помочь должен.
107 Прохожий
 
12.11.06
15:08
108 nad0001
 
12.11.06
15:08
(106) это ниче попало. тихо,дай человеку сказать. ты издеватель:)
109 zzzzz
 
12.11.06
15:08
(98) Да фурычит с отладчиком. Рассинхронизация дейсвительно может произойти.
(105) Да воспользуйся отладчиком!
110 nad0001
 
12.11.06
15:09
(107) не надо лекарство мне такое.
111 zzzzz
 
12.11.06
15:09
+109 Но рассинхронизация не критична. Ну закроешь отладчик и все.
112 nad0001
 
12.11.06
15:10
ладно. открою отладчик
113 Прохожий
 
12.11.06
15:11
(109) Куда рас зайти могет?
114 zzzzz
 
12.11.06
15:12
(106) Как-то по памяти по телефону объяснял человеку, что нужно в конфигурации поправить. Продавцу. Ничего. Даже заработало.
115 Прохожий
 
12.11.06
15:15
(114) Везунок...
116 nad0001
 
12.11.06
15:16
застряла где-то..на создании справочника Оле
117 Прохожий
 
12.11.06
15:22
Замени
...
    Если БазаОле.Initialize(БазаОле.RMTrade, "","")=0 Тогда
         Сообщить("ниче не вышло");
    КонецЕсли;
...
   Открыта=База.Initialize(База.RMTrade,,"NO_SPLASH_SHOW");
   
   Попытка
       Если ПустоеЗначение(База.Метаданные) = 1 Тогда
           Предупреждение("Ошибка открытия информационной базы!");
           Возврат;
       КонецЕсли;
   Исключение
       База="";
       Возврат;
   КонецПопытки;
118 Прохожий
 
12.11.06
15:23
...
    Если БазаОле.Initialize(БазаОле.RMTrade, "","")=0 Тогда
         Сообщить("ниче не вышло");
    КонецЕсли;
...
   Открыта=БазаОле.Initialize(БазаОле.RMTrade,,"NO_SPLASH_SHOW");
   
   Попытка
       Если ПустоеЗначение(База.Метаданные) = 1 Тогда
           Предупреждение("Ошибка открытия информационной базы!");
           Возврат;
       КонецЕсли;
   Исключение
       База="";
       Возврат;
   КонецПопытки;
119 Прохожий
 
12.11.06
15:25
Вот. Так :
...
    Если БазаОле.Initialize(БазаОле.RMTrade, "","")=0 Тогда
         Сообщить("ниче не вышло");
    КонецЕсли;
...
   Открыта=БазаОле.Initialize(БазаОле.RMTrade,,"NO_SPLASH_SHOW");
   
   Попытка
       Если ПустоеЗначение(БазаОле.Метаданные) = 1 Тогда
           Предупреждение("Ошибка открытия информационной базы!");
           Возврат;
       КонецЕсли;
   Исключение
       БазаОле="";
       Предупреждение("Ошибка открытия информационной базы!");
       Возврат;
   КонецПопытки;
120 zzzzz
 
12.11.06
15:27
(116) А зачем ты его создаешь?
121 Прохожий
 
12.11.06
15:30
(120) Без CreateObject можешь?
122 Прохожий
 
12.11.06
15:33
(116) Чего молчишь, у тебя 119 проходит? или ругается?
123 zzzzz
 
12.11.06
15:46
(121) Так я написал, как. Там ненужно.
124 zzzzz
 
12.11.06
15:54
+123
Процедура Сформировать()
    БазаОле=СоздатьОбъект("v77s.application");
    Если БазаОле.Initialize(БазаОле.RMTrade, "","")=0 Тогда
         Сообщить("ниче не вышло");
    КонецЕсли;
    Спр=СоздатьОбъект("Справочник.ОсновныеСредства");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() = 1 Цикл
         Если Спр.ЭтоГруппа()=1 Тогда
              Продолжить;
       КонецЕсли;        
       СтрокаТек=ЗначениеВСтрокуВнутр(Спр.ТекущийЭлемент());
       СпрОле_=БазаОле.ЗначениеИзСтрокиВнутр(СтрокаТек);
       ТекРекв=СокрЛП(СпрОле_.Кабинет);
       Спр.Кабинет=ТекРекв;  
       Попытка
           Спр.Записать();    
       Исключение
       КонецПопытки;
   КонецЦикла;
КонецПроцедуры
125 Прохожий
 
12.11.06
16:58
(124) Так ты из приемника хочешь тянуть? ОЛЕ - источник данных?
ТекРекв=СокрЛП(СпрОле_.Кабинет); может не сработать для элемента, отсутствующего в "старом" источнике...
126 Прохожий
 
12.11.06
16:59
+(125) "NO_SPLASH_SHOW" надо ...
127 zzzzz
 
12.11.06
17:16
(125) Базы идентичны. По словам. Я только переделал то, что было в сабже написано.
(126) Согласен. Но в принципе должно работать.
128 SnarkHunter
 
12.11.06
21:06
Пипец... Данные между скульными базами через 1С-овскую олю тягают...
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан