Последнее обновление: 23 мая 2015 в 14:58
Подпишись на RSS
rss Подпишитесь на RSS, чтобы всегда быть в курсе событий.

Дописано 29.03.10 http://extremallife.ru/work/virus-work/virus8353 — здесь написано как я избавился от вируса, который просит отправить смс на номер 8353. (так как с яндекса по этому запросу идут на эту статью) Принесли ноутбук зараженный вирусом, который выводит окно, которое нельзя закрыть через диспетчер задач, отключить через настройку автозагрузки системы. Загрузка в безопасном режиме не позволяет решить проблему […]


17 апреля 2010 · Анализ, Всячина

В последнее время, особенно это заметно по весне, появилось множество автомобилей, с автолюбителями за рулем. Это конечно хорошо, значит благосостояние советского народа растет день ото дня :-). Однако, если задуматься, что даже при ужесточении правил получения водительского удостоверения на дорогах стало больше безграмотных и агрессивных водителей, которые может по незнанию, а может от обезбашенности, создают […]


Метки

Метки записей
Загрузка с компакт - диска jaws просроченная дебиторская задолженность Юмор портативный аккумулятор перенумарация Система антивирусы код защита Интерент Проблемы переустановка windows антивирус Бухгалтерия Экстремальные игры контент-провайдер Деньги 1с и MySQL свертка в картинках бесплатно свертка пакетный запуск 1С удаляем пароли восстановить нумерацию узнать пароль Финансы редактирование DBF Drivers Zver DVD Свертка базы 1С реестр Оптимизация Добавить новую метку Делаем LiveCD автоматизация Вирусы скачать конвертер office 2003-2007 Подключить 1С к MySQL Командная строка Видео СМС Программы office 2007 Оборудование Файлы 1С Драйвера сверка базы 1С Windows XP Пошаговая свертка связь Драйвер ODBC скачать Удаление партий Программы для 1С программы для слепых мошенничество Печатные формы Методика свертки 1С office 2003 Автомобили Вся Oracle Взлом 1 Asus Eee Документы на почту удаление документов Работа автозапуск Лирика СМС оплата Свертка по партиям LiveCD Dr.Web homachi локальная сеть через интернет сбились номера документов Взлом Скачать 1С 1с реестр Жизнь Спорт Отчет вирус XPE Ошибки 1С Кино HP Pavilion dv6000 Игры гаджеты вирус эмулирует нажатие Win День жестянщика Экономика партии уменьшить размер базы Интренет новости Армия расчет ПЗД ZverCD Вопросы Свертка 1С Отношения заблокирован Обзоры сертфикаты открыть xlsx docx вирус SMS Интернет Фото Спутниковое ТВ печать от поставщика Анализ ПДЗ взломать пароль Установка Windows Интересные места Новая форма счет-Фактуры Обработки Структура 1С дравер MySQL скачать Взлом 1С перенос документов Мужчина и женщина Альпинизм свертка торговли Отзывы сайт Сайты
27 мая 2010

Как подключить 1с 8 к 1с 7.7 через OLE

Автор статьи: , 27 мая 2010 в рубрике . Метки: , , . Просмотров: 18 436

Давно не писал обмены данными между базами данных. Подзабыл как это делается :-).

А тут задачку подкинули. Пока вспоминал про обмены между базами данных решил статейку написать.

Итак, цель — подключиться к 1с 7.7 из 1с 8 с помощью внешней обработки, вытащить какие-то данные из семерки.

Создаем внешнюю обрабтку в восьмерке

epf Как подключить 1с 8 к 1с 7.7 через OLE

Создаем внешнюю обработку в 1С8


На форму добавляем поля Путь к базе, Пользователь, Пароль, а так же кнопу Подключиться

Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru

forma Как подключить 1с 8 к 1с 7.7 через OLE

Создаем элементы формы

На кнопку Путь к базе вешаем код для того чтобы выбор каталога, в котором находится база 1с 7.7 был интерактивным.

connect Как подключить 1с 8 к 1с 7.7 через OLE

Выбираем базу-источник


Процедура ИмяФайлаНачалоВыбора(Элемент, СтандартнаяОбработка)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Диалог.Заголовок = "Укажите путь к базе ...";
Если Не Диалог.Выбрать() Тогда
Возврат;
КонецЕсли;
ПутьКБазе = Диалог.Каталог;
КонецПроцедуры

А на кнопку Подключиться код

Процедура ПодключитьБазу()
База="";
База=Новый COMОбъект("V77.Application");
Попытка
СтрокаПодключения = "/D"""+СокрЛП(ПутьКБазе)+""" /N"""+СокрЛП(Пользователь)+""" /P"""+СокрЛП(Пароль)+"""";
Открыта=База.Initialize(База.RMTrade,СтрокаПодключения,"NO_SPLASH_SHOW");
Если Открыта Тогда
ЕстьПодключение = Истина;
Иначе
Предупреждение("Ошибка при подключении!");
ЕстьПодключение = Ложь;
КонецЕсли;
Исключение
Предупреждение("Ошибка при подключении!");
ЕстьПодключение = Ложь;
КонецПопытки;
КонецПроцедуры


Ключевыми переменными здесь является СтрокаПодключения, в которой мы передаем параметры запуска 1с 7.7

Если ошибок не возникло, значит база 1с 7.7 подключена успешно и мы можем обращаться к ее объектам через объект База

Например создадим на форме таблицу значений и заполним ее данными из подключенной базы. Мне конкретно нужна информация о приходных кассовых ордерах (ПКО).

Для этого добавляем кнопку ( в моем случае — Заполнить) и вешаем на нее процедуру:


Процедура ЗаполнитьТаблицуПараметров()
ПКО = База.CreateObject("Документ.ПКО");
ПКО.ВыбратьДокументы(НачДата,КонДата);
Пока ПКО.ПолучитьДокумент() = 1 ЦиклНоваяСтр = ТЗ.Добавить();
НоваяСтр.ТипДок = "ПКО";
НоваяСтр.НомерДок = ПКО.НомерДок;
НоваяСтр.ДатаДок = ПКО.ДатаДок;
НоваяСтр.Контрагент = СокрЛП(ПКО.Контрагент.Наименование);
НоваяСтр.Код7 = СокрЛП(ПКО.Контрагент.Код);НоваяСтр.Сумма = Число(ПКО.СуммаВзаиморасчетов);
КонецЦикла;
КонецПроцедуры

Результатом будет заполнение Таблицы необходимыми нам параметрами, в моем случае это Номер Документа (ПКО.НомерДок), Дата документа (ПКО.ДатаДок), Наименование контарента (СокрЛП(ПКО.Контрагент.Наименование)), Код контрагента (ПКО.Контрагент.Код) и сумма приходника (ПКО.СуммаВзаиморасчетов).

zapoln Как подключить 1с 8 к 1с 7.7 через OLE

Заполненная таблица значений

Таким образом мы можем вытаскивать из базы — источника любые данные и даже выполнять в ней запросы.

Например мне необходимо сопоставить контарагентов в 7ке и 8ке. Для этого я создаю дополнительный реквизит в 7.7, где будет храниться восьмерошный код контрагента.

При заполнении табличной части считываем год из источника, выбираем элемент справочника Контрагенты, который соотвествует ему в в 8ке (для этого в таблице значений добавил дополнительное поле (Контрагент8).

kontr Как подключить 1с 8 к 1с 7.7 через OLE

Выбираем контагента

И пишем в источник код элемента справочника Контрагенты (который выбрали только что) нажатием Заполнить коды 7.7, повесив на нее процедуру:


Процедура ЗаполнитьКодыВ77(Кнопка)
Для Каждого ТекСтрока Из ТЗ Цикл
Если СокрЛП(ТекСтрока.КодКонтр) = "" Тогда
Продолжить;
КонецЕсли;
ОлеКонтр = База.CreateObject("Справочник.Контрагенты");
ОлеКонтр.ВыбратьЭлементы();
ОлеКонтр.НайтиПоКоду(ТекСтрока.Код7);
ОлеКонтр.Код8 = Текстрока.КодКонтр;
ОлеКонтр.Записать();
Сообщить("Изменен код для " + ОлеКонтр.Наименование);
КонецЦикла;
КонецПроцедуры

save Как подключить 1с 8 к 1с 7.7 через OLE

Записали информацию в базу - источник

Все готово. Код записан в 1с 7.7 базу — источник.

Общие принципы такие.




К записи "Как подключить 1с 8 к 1с 7.7 через OLE" 11 комментариев

Классная статья. Хочу решить подобную задачу.Проблема в том, что база, к которой я хочу подключиться, лежит на удаленном компьютере. Как настроить соединение с этой базой — ума не приложу. Может подскажете, как это сделать?

Ответить

admin Reply:

Удаленные компьютер — он в твоей локальной сети? Если да, то проблем нет — расшаривай папку с базай и подключайся на здоровье.

Ответить

Это бы все было так просто… Нет, это реально удаленный комп в интернете. Я работаю с базой на том компе через удаленный рабочий стол. Хочу соединяться с той базой «тихо», через OLE. Т.е имею ip того, компа, пароль на доступ к нему, директорию в которой лежит база. База, к которой надо соединиться -Торговля 9.2 + SQL.Как это сделать?

Ответить

В теории точно также.
Не практике интернет бывает нестабильным и низкоскоростным…
А тебе надо только считывать информацию или еще и писать в базу?

Ответить

Нужно только считывать, интернет-канал толстый, проблем со скоростью нет.Я так понял, что директория, где лежит база, должна быть расшарена для интернета? Если это так, то как нужно расшаривать и как  будет выглядеть примерный путь до базы?

Ответить

Честно говоря не знаю, по идее для интернета все должно быть расшарено точно так как для локалки.
Как вариант можно использовать Hamachi — бесплатная программа для организации локальной сети через интернет. В этом случае даже «белый» IP не нужен.
Сам использую Hamachi для подключения к «терминалке» клиентов,  у которых нет внешних IP адресов.
Работает отлично. Даже медиаплеер видит компы клиента, которые находятся на другом конце города.
Про хамачи — http://extremallife.ru/work/program/homachi-network

Ответить

Что такое Hamachi я знаю, это реально хорошая идея, спасибо за подсказку, наверное так и попробую.

Ответить

За статью спасибо, но для каждой строки в цикле создавать экземпляр справочника это феерично)) Вот это:Для Каждого ТекСтрока Из ТЗ ЦиклЕсли СокрЛП(ТекСтрока.КодКонтр) = «» ТогдаПродолжить;КонецЕсли;ОлеКонтр = База.CreateObject(«Справочник.Контрагенты»);ОлеКонтр.ВыбратьЭлементы();

Ответить

А если база находиться в Серверном варианте этот способ прокатит?

Ответить

Дмитрий Reply:

Здравствуйте, прочитал ваше сообщение на сайте по поводу того как подключиться к серверной базе 7.7 SQL через OLE? меня тоже давно мучает этот вопрос, я слышал, что нужно дополнительно указывать имя сервера и имя базы SQL? но пока ответа так и не нашол. Вы уже разобрались с данным вопросом? Подскажите пожалуйста, если ответ нашли. Спасибо.

Ответить

Спасибо за пример.Вопрос:  как вытащить из 1с7.7 в 1с8  ПЕРИОДИЧЕСКИЙ реквизит?Возможно проблема в том, что формат даты в 8ке отличается от формата даты в 7ке…

Ответить


Оставить комментарий

*

Блог программиста 1С. Программирование 1С
Если Вас что-то заинтересовало или возникли вопросы, пишите.
petr@evseev.ru
Skype - evseev_petr
ICQ - 262808698

Сохраните меня в социальных сервисах

Комментарии

Присоединяйтесь к обсуждению
  • Леха: Мало того, что это говно-антивирус требует .Net Framework не ниже 4.0, так он еще пожирает ресурсы компьютера,...
  • tommy: AVG равно еще хуже Касперского . Иди в жопу с ним
  • просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
  • Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
  • Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...

Избранное видео

Ссылки