Имя: Пароль:
1C
1С v8
Синхронизация БП 3.0 с 1с 7.7 по Оле
,
0 Gal4onok
 
06.01.15
12:40
Добрый день!
Есть ряд нетиповых баз, их нужно остатками перенести на 8.3 и настроить синхронизацию данных для последующей работы.
Подключение из 8.3 в базе есть (идет на клиенте).Но при обращении к данным выдается ошибка.
Подскажите, как передать открытую базу 1с77 и реквизиты обработки на сервер, или как то по другому нужно?
1 Ranger_83
 
06.01.15
12:43
а COM-cоединение с 7.7 не канает?
2 GreyK
 
06.01.15
12:46
(0) А зачем нужно запускать подключение на клиенте? Реквизиты обработки, заполненные на клиенте, прекрасно видны на сервере.
3 Gal4onok
 
06.01.15
12:47
не работает на сервере
4 Gal4onok
 
06.01.15
13:01
есть какие нибудь примеры, чтобы разобраться?
5 Мимохожий Однако
 
06.01.15
13:12
вверху ссылка на Книгу знаний. Там есть оле для 77
6 Gal4onok
 
06.01.15
13:15
(5) мне для 7.7 не надо. у меня на 8.3 не работает
7 Мимохожий Однако
 
06.01.15
13:16
(6)Делай наоборот. Из 8-ки обращайся к 7-ке.
8 Худой
 
06.01.15
13:18
Если интересует, конкретно, " нужно остатками перенести на 8.3 и настроить синхронизацию данных для последующей работы" вполне  подойдет написание на системе "Конвертации данных"
9 Gal4onok
 
06.01.15
13:19
(7)
&НаКлиенте
Процедура Подключится(Команда)
    Если Сервер = 1 тогда
        База     = Новый COMОбъект("V77S.Application");
    Иначе
        База     = Новый COMОбъект("V77.Application");
    КонецЕСли;
    БазаОткрыта = База.Initialize(База.RMTrade,"", "NO_SPLASH_SHOW");
    
    Если НЕ БазаОткрыта Тогда
        
        Сообщить("Не удалось открыть базу!");
    Иначе
        Сообщить("База открыта");
    КонецЕсли;

КонецПроцедуры

&НаСервере
Процедура ЗагрузитьДокументы(Команда)
    Если База=0 Тогда
        Сообщить("Сначала необходимо подключится к базе");
        Возврат;    
    КонецЕсли;
    
/////////обработка данных......

КонецПроцедуры
10 Gal4onok
 
06.01.15
13:19
(8) мне надо либо через Com либо через файл текстовый - ни то ни то через УФ не работает
11 Мимохожий Однако
 
06.01.15
13:22
(10)Конкретизируй "не работает". Отладчик до какой точки доходит?
12 Gal4onok
 
06.01.15
13:26
(10) при коде в (9) база 77 на клиенте открывается, но в процедуру загрузки не заходит вообще
13 Gal4onok
 
06.01.15
13:40
на УФ никто синхронизацию не делал?
14 Мимохожий Однако
 
06.01.15
13:43
(12)Так ты в первой процедуре её и не указывала.
15 Gal4onok
 
06.01.15
13:44
там с кнопки запускается
16 Худой
 
06.01.15
13:45
(13) я на УФ делал синхронизацию, когда переходил с ТиС на УТ 11. Несколько месяцев контора работала в ТиС, пока не привел в порядок все. Потом все продолжили работать в УТ 11, как ни в чем не бывало.
17 Gal4onok
 
06.01.15
13:47
(16) можете помочь в (0). У нас рабочая база на 1с77 сильно нетиповая, налоговые базы на 8.2, все синхронизации работают, Сейчас надо все переделать под 8.3.
18 Остап Сулейманович
 
06.01.15
13:48
(13) Делали. Задай вопрос. А то из "как передать открытую базу 1с77 и реквизиты обработки на сервер" нифига не понятно.

1. Открытую базу на сервер не передашь.
2. Реквизиты обработки, они и так есть на сервере. Если обработка из 8.
19 Gal4onok
 
06.01.15
13:48
(16) + есть какой нибудь пример подключения и загрузки например Клиентов в 8.3 из 7ки, чтобы понять принцип что на клиенте делается, что на сервере???
20 Gal4onok
 
06.01.15
13:50
(18) на форме реквизит Организация - он не доступен при обработке на сервере- почему не понятно
21 Остап Сулейманович
 
06.01.15
13:50
(19) На клиенте устанавливается подключение к 77 и заполняются реквизиты. После заполнения, на сервере создаются элементы, документы ... по уже заполненным реквизитам обработки.
22 Остап Сулейманович
 
06.01.15
13:51
(20) Организация - реквизит обработки или реквизит формы?
23 Gal4onok
 
06.01.15
13:52
(22) реквизит формы.
(21) как передать с клиента на сервер, например базу и данные для заполнения? Можно примерно кодом, я не понимаю
24 Остап Сулейманович
 
06.01.15
13:53
+ (22) В смысле он есть в свойствах обработки?

Обращение к нему в коде через точку? Например : Объект.Организация
25 Gal4onok
 
06.01.15
13:54
(23)+На форме реквизиты : выбор периода загрузки, организация. расчетный счет и перечень документов для загрузки
26 Остап Сулейманович
 
06.01.15
13:55
(23) Все что нужно передавать на сервер - сделать реквизитами обработки. Они будут доступны на сервере. В том числе и табличные части.
27 Gal4onok
 
06.01.15
13:57
(26)Как это передать? Например справочник или документ Реализация?
28 Худой
 
06.01.15
13:59
Меня совершенно не интересовал механизм подключения. Я писал правила на и все. А воросы, типа, " загрузки например Клиентов в 8.3 из 7ки", вообще, не вызывали никаких проблем после того, как разобрался с конфой по разработке правил обменов.
Начни с этой конфигурации, не пожалеешь.
29 Gal4onok
 
06.01.15
13:59
(27)- то есть я на клиенте должна перебрать справочник или  документы, а загружать в 8.3 уже на сервере? как этот переход делается?
30 Остап Сулейманович
 
06.01.15
14:00
(27) Например Справочники или документ Реализация по ОЛЕ не передаются НИКОГДА, НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ. Абсолютно. По ОЛЕ передаются только данные простых типов. Строка, Дата, Число.
31 Gal4onok
 
06.01.15
14:00
(28) у меня все подключается, я перейти с клиента на сервер не могу с данными для обработки
32 Gal4onok
 
06.01.15
14:02
(30) код можно?
33 Остап Сулейманович
 
06.01.15
14:06
(32) Код в данном случае тебе не поможет. И переходить с клиента на сервер не нужно.
Еще раз
1. На клиенте подключиться к базе 77.
2. На клиенте получить нужные данные из 77 и заполнить ими реквизиты ОБРАБОТКИ. А не формы. Реквизиты формы на сервере недоступны.
3. Вызвать серверную процедуру по созданию элементов, документов и прочего. Ей вполне будут доступны реквизиты ОБРАБОТКИ. И ничего для этого делать не нужно.
34 ДенисЧ
 
06.01.15
14:08
(30) "Справочники или документ Реализация по ОЛЕ не передаются НИКОГДА, НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ"
ЛПП. Они передаются как ком-объекты.
35 Gal4onok
 
06.01.15
14:09
(33) я тогда не понимаю видимо разницу между реквизитами формы и реквизитами обработки.
36 Мимохожий Однако
 
06.01.15
14:10
37 Gal4onok
 
06.01.15
14:16
http://rghost.ru/60166839

Это реквизиты обработки как понимаю, мне нужно перебрать 2,5 тыс документов и данные 4 справочников - какие реквизиты заполнять и как передать на сервер? Можно пример хотя бы справочника Клиенты
38 Gal4onok
 
06.01.15
14:17
39 Худой
 
06.01.15
14:19
Самый лучший совет, по моему, который был тут - "лучше через КД".
40 Gal4onok
 
06.01.15
14:21
Мне через COM надо, спасибо
41 Gal4onok
 
06.01.15
14:27
(33) "2.На клиенте получить нужные данные из 77 и заполнить ими реквизиты ОБРАБОТКИ. А не формы. Реквизиты формы на сервере недоступны. "

&НаКлиенте
Процедура ЗагрузитьДокументы(Команда)
    Если База=0 Тогда
        Сообщить("Сначала необходимо подключится к базе");
        Возврат;    
    КонецЕсли;
    
    Спр = База.CreateObject("Справочник.Фирмы");
    Спр.ВыбратьЭлементы();
    Пока Спр.ПолучитьЭлемент() > 0 Цикл
        
        Если Лев(СокрЛП(Спр.ИНН),10) = СокрЛП(Объект.Организация.ИНН) Тогда
            
               ФирмаВ77 = Спр.ТекущийЭлемент();
         КонецЕсли;
        
    КонецЦикла;
    
        
КонецПроцедуры
Ошибка:
{Форма.Форма.Форма(77,7)}: Переменная не определена (База)
    Если <<?>>База=0 Тогда (Проверка: Тонкий клиент)
{Форма.Форма.Форма(82,8)}: Переменная не определена (База)
    Спр = <<?>>База.CreateObject("Справочник.Фирмы"); (Проверка: Тонкий клиент)


ХЗ как это должно работать.
42 ДенисЧ
 
06.01.15
14:36
Галчонок, а ты борщЪ умеешь варить? А плов готовить?
43 Мимохожий Однако
 
06.01.15
14:40
Переменная не определена (База).
Потеряла фрагмент База = и т.д.
44 Gal4onok
 
06.01.15
14:49
(42)ты голодаешь?
45 Gal4onok
 
06.01.15
14:53
(43)не потеряла...в процедуре подключения база есть,а в эту процедуру не передается.переменная определена.по сути будет помощь или нет?
46 ProxyInspector
 
06.01.15
15:40
(19) Делал я переносы данных по ОЛЕ 1с77-1с82, 1с77-1с83 (УФ)
Делал Бухгалтерия-Бухгалтерия, Торговля - Бухгалтерия, Торговля-Торговля. Есть несколько ньюансов и тонкостей. Есть тонкости при работе с х32/х64 серверами 1с Предприятия.
  Как тебе Gal4onok помочь?
  ДенисЧ тебе намекает, что перенос - дело не быстрое поэтому подкрепиться будет просто необходимо.
47 ProxyInspector
 
06.01.15
15:48
Ты Gal4onok начни с простого.
1. Определись откуда у куда ты будешь таскать данные.
2. Научись подключаться по ОЛЕ в клиент серверном варианте. Здесь тебе потребуется помощь системных администраторов, как минимум.
3. Определись как будешь синхронизировать данные. По GUID лучше, но тогда придется научиться делать GUID в 7-ке.
4. Рекомендую добавить десяток экспортных процедур в глобальный модуль 7-ки, что существенно облегчает жизнь.
Ну и работать, работать, работать.
48 ProxyInspector
 
06.01.15
15:54
ДЛя тонкого клиента переменная БазаOLE существовать может только на клиенте или только на сервере. И с этим надо смириться. Передавать эту переменную с клиента на сервер прогрессивная общественность еще пока на научилась.
49 Gal4onok
 
06.01.15
17:09
У меня на 8.2это все работает.в обычном приложении 8.3 тоже.хочу разобраться с уф и сделать красиво.таскать надр из 77 в 8.3 по ком.в остальных нюансах по ходу разбиратся готова
50 SleepyHead
 
гуру
06.01.15
17:09
Делал и я такие переносы, пока КД не изучил. Где-то обработки валяются :)

Предыдущий оратор прав, на сервере надо перенос делать. А на клиенте только собирать какие-то параметры переноса, например период для переносимых документов итп.

Я делал так - отдельная процедура для чтения списка документов из базы 77, потом юзер отмечал, что надо перенести.

Вторая процедура, тоже серверная, искала документы по номеру и дате документа, ну и по организации конечно.

Работало, но ОЧЕНЬ долго. Если бы знал КД на тот момент, потратил бы меньше времени на перенос, и намного.
51 Gal4onok
 
06.01.15
17:12
Мне кто нить может показать простой код переноса справочника в уф из 7 в 8.3 или документа для примера.я 8.3 не трогала до последнего момента,видимо он уже настал. Я даже перебрать доки не могу при подключении
52 SleepyHead
 
гуру
06.01.15
17:27
(51) стукнись в аську или скайп, дам пример переноса в БП 3.0
53 Gal4onok
 
06.01.15
17:34
(52) уже в аське
54 SleepyHead
 
гуру
06.01.15
18:02
(53) не вижу...
55 SleepyHead
 
гуру
06.01.15
18:03
Лучше в скайп тогда
56 SleepyHead
 
гуру
06.01.15
18:07
https://cloud.mail.ru/public/15d7f99e9f0d/ОлеПеренос30_Мастер.epf

ладно вот качай. Вопросы в скайп. Даю обработку как есть, разбирайся, как подключаться к базе, как дописать свой перенос, в принципе там понятно как.
57 Gal4onok
 
06.01.15
20:16
(56) спасибо
58 ProxyInspector
 
06.01.15
20:26
(56) Только для того, чтобы эта обработка заработала надо как минимум

&НаСервере
// Необходимо дать права пользователю, под которым работает Сервер1СПредприятия (user1cv82) в этом случае возможно только одно OLE соединение
//   Панель управления -- Администрирование -- Службы компонентов
//   -- Console Root -- Component Serveces -- Компьютеры -- Мой Компьютер -- Настройка DCOM -- V77.GeneralPropPage -- Свойства -- Безопасность -- Разрешения на запуск и активацию


//Лучше всего запускать Сервер1СПредприятия под системной учетной записью, но не забыть поставить галку "Разрешить взаимодействие с рабочим столом". В этом случае получится устанавливать боле одного оле соединения.
//Панель управления -- Администрирование --- Сервер1сПредприятия -- Запускать службу с системной учетной записью
59 ProxyInspector
 
06.01.15
20:28
Если же у вас сервер 1с предприятия - х64. Тогда надо править реестр, чтобы запустить 1с7 в режиме оле сервера.
60 SleepyHead
 
гуру
06.01.15
20:45
(59) Работала без того, что вы написали :)
61 SleepyHead
 
гуру
06.01.15
20:46
Хотя я работал только с правами администратора всегда.
62 Sol78
 
06.01.15
20:51
(0) типовая синхронизация между 7.7 и 3.0 тебя чем не устраивает? допили её под свою "нетиповость" и вперед.
63 Бертыш
 
07.01.15
17:09