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

Некоторые фирмы торгуют товаром, который подлежит обязательной сертификации, причем клиенту надо отдать не только реестр сертификатов, но и копии (или распечатки) самих сертификатов. Обратился клиент, который занимается продажей огнетушителей и у него к каждом проданный огнетушителю должен прилагаться сертификат соответствия. Делать нечего пришлось писать внешнюю печатную форму для документа «Реализация», которая выводит на печать скан-копии […]


7 октября 2009 · Всячина

Вот сделал ремонт в ванной, кафель положил, полы залил, сантехнику проложил. Решил поставить душевую кабину, ибо не любитель понежиться в ванной. Долго выбирал кабинку, бюджет был сильно урезан, поэтому круг поиска модели душевой кабина был сильно сужен. Ванная комната у меня стандартная — 150 см на 170 см, поэтому решил брать кабину 90 на 90 […]


Метки

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

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

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

Сегодня писал одну задачку, робота 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 равно еще хуже Касперского . Иди в жопу с ним
  • просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
  • Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
  • Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...

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

Ссылки