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

Как известно, как и любую другую важную информацию базы данных 1С необходимо периодически копировать, чтобы в случае сбоя оборудования, например жесткого диска, не остаться у разбитого корыта. Ведь в информационных базах 1С зачастую хранится очень важная информация, потеря которой недопустима. Как известно в ручную копировать муторно и не надежно, так как можно просто забыть сделать […]


28 апреля 2011 ·

Пишу клиенту конфигу с нуля, и так вышло, что элементы справочника необходимо сортировать по нескольким реквизитам в обоих направлениях (по возрастанию и убыванию), однако 1С не позволила сортировать по убыванию напрямую, а очень надо. Проблему решил с помощью ИспользоватьСписокЭлементов


Метки

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

Как отключить соединение OLE

Автор статьи: , 10 августа 2010 в рубрике . Метки: , , . Просмотров: 3 714

Сегодня писал одну задачку, робота 1с, который по графику должен подключаться к  удаленной базе через OLE, выбирать оттуда данные, а потом закрывать подключение и ждать времени следующего запуска.

В итоге столкнулся с несколькими проблемами, одна из которых — отключиться от удаленой базы. Обычно я даже не парился по этому вопросу, просто закрывал обработку и все, однако, это не правильно. Необходимо полностью отключаться.

Пробовал обнулять переменные, как советуют в интернете — не помогало, процесс 1С все равно оставался висеть в памяти.

dispetcher Как отключить соединение OLE

В диспетчере задач все равно висит сеанс 1С

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

Тогда решил попробовать а почему бы не завершить работу системы, как и в локально базе… Ура, получилось.

Процедура Дисконнект()
   Сообщение("Отключаюсь от удаленной базы");
   Форма.СтрокаСостояния.Заголовок("Отключение...");

   Если БазаОткрыта <>  0 Тогда
     Попытка
       Оля.ExecuteBatch("ЗавершитьРаботуСистемы(0)");
     Исключение
       Сообщение("Не удалось отключиться");
     КонецПопытки;

     OLE_ОбъектБазы="";
     Оля="";
     БазаОткрыта =0;
     КонецЕсли;

Сообщение("Отключилась от удаленной базы");
Форма.СтрокаСостояния.Заголовок("Ожидание...");
КонецПроцедуры

Написал процедуру Дисконнект()

Которая как раз завершает работу удаленной базы с помощью стандартной команды.

Единственное, что еще необходимо сделать — это в настройках пользователя, под которым происходит подключение снять флаг «Запрашивать подтверждение при выходе из системы»

save Как отключить соединение OLE

Запрашивать подтверждение при выходе из системы

Кстати не путайте

Сообщение("Отключилась от удаленной базы");

от

Сообщить("123");

Сообщение — это я дописал еще мелкую процедуру, чтобы время выводила.


Процедура Сообщение(Текст)
Перем чч,мм,сс;
ТекущееВремя(чч,мм,сс);
Сообщить(Формат(чч,"Ч(0)2") + ":" + Формат(мм,"Ч(0)2") + ":" + Формат(сс,"Ч(0)2") + " " + СокрЛП(Текст));
КонецПроцедуры

ЗЫ. У меня возникла еще одна проблема, которую я так и не смог решить.
Как передать через V77.Application (ОЛЕ соединение) таблицу значений?

Дело в том, что мне необходимо вытаскивать из удаленной базы остатки на точку актуальности итогов (ТА) — делается очень легко, а главное быстро. Выгрузить эти итоги в таблицу значений на стороне удаленного компьютера — тоже проблем нет, а вот передать эту ТаблицуЗначений в локальную базу, или же выгрузить итоги в локальную таблицу у меня так и не получилось, пришлось перебирать все итоги. Может подскажет кто решение проблемы?




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

Кстати, если выгружать отчеты, данные в Excel файл, то этот файл тоже надо закрывать, иначе он остается в памяти и компьютер начинает жутко тормозить.
Это я так, вспомнилось.

Ответить

«в локальную таблицу» это в какую?

Ответить

Например
Т = Оля.Createobject(«ТаблицаЗначений»);
….
//Сформировали Т

ТТ = СоздатьОбъект(«ТаблицаЗначений»);

Как передать (выгрузить) Т в ТТ ?
Но не перебором.

Ответить

Т.Выгрузить(ТТ);вообщем так можно и загрузитьТТ.Загрузить(Т);

Ответить

у Выгрузить() параметры еще указать надо, в синтаксис помощнике найти можно

Ответить

Такой фокус через OLE не работает…
Если бы все было так просто))
Мне необходимл выгрузить итоги регистра в таблицу

Т = Оля.Createobject(»ТаблицаЗначений»);
ТТ = СоздатьОбъект(»ТаблицаЗначений»);

СкладОле = Оля.CreateObject(«Справочник.Склады»);
СкладОле.ВыбратьЭлементы();
СкладОле.НайтиПоКоду(СокрЛП(ВыбСклад));
РегОле=Оля.CreateObject(«Регистр.ОстаткиТМЦ»);
РегОле.УстановитьФильтр(,,СкладОле.ТекущийЭлемент(),);
РегОле.ВыбратьИтоги();

Далее в локальной базе
РегОле.выгрузитьИтоги(ТТ)
не работает, хотя работает так
РегОле.выгрузитьИтоги(Т)
но Т — это таблица в базе к которой подключаемся…

Мне надо сразу передать таблицу Т в ТТ или выгрузить итоги в ТТ

Ответить

ну тут даже не подскажу, не знаю четно =)

Ответить

Короче, пришлось делать так

Пока РегОле.ПолучитьИтог()=1 Цикл
    ТТТ.НоваяСтрока();  
…………………….
КонецЦикла;    
       

Ответить

Заполучить ТЗ/СЗ из ОЛЕ-контекста можно «в лоб» через ЗначениеВСтрокуВнутр (в оле-контексте, примененное к ТЗ оле-контекста), которое на «этой» стороне «вернуть взад» с помощью ЗначениеИзСтрокиВнутр().

Ответить

3aполучить ТЗ/СЗ из ОЛЕ-контекста можно «в лоб» через ЗначениеВСтрокуВнутр (в оле-контексте, примененное к ТЗ оле-контекста), которое на «этой» стороне «вернуть взад» с помощью ЗначениеИзСтрокиВнутр().

Ответить

2 Cthulhu
Спасибо за подсказку, попробую

Ответить

ТТ.Загрузить(Т)

Ответить


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

*

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

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

Комментарии

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

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

Ссылки