
Рубрики
Популярные статьи
- Монтаж потолка из пластиковых панелей на металлический каркас. - 372 943 просмотров
- Не открываются сайты антивирусов drweb.com, kaspersky.ru и esetnod32.ru. Что делать? - 231 536 просмотров
- Взлом пароля пользователя 1С 8 версии - 221 505 просмотров
- Обзор спутникового ресивера GS 8300 - 214 096 просмотров
- Что делать если закрыли доступ на одноклассники, вконтакте, маил, аську - 190 910 просмотров
- Как самому собрать душевую кабину - 133 470 просмотров
- Вирус просит пополнить счет абонента билайн - 129 803 просмотров
- Megafon модем HUAWEI Mobile Connect 3G - 124 154 просмотров
- Не открывается файл с расширением docx, xlsx - 102 569 просмотров
- Как установить 1С Предприятие 8.1 - 101 981 просмотров
Печать картинок сертификатов в 1с 8.х
Некоторые фирмы торгуют товаром, который подлежит обязательной сертификации, причем клиенту надо отдать не только реестр сертификатов, но и копии (или распечатки) самих сертификатов. Обратился клиент, который занимается продажей огнетушителей и у него к каждом проданный огнетушителю должен прилагаться сертификат соответствия. Делать нечего пришлось писать внешнюю печатную форму для документа «Реализация», которая выводит на печать скан-копии […]
Как самому собрать душевую кабину
Вот сделал ремонт в ванной, кафель положил, полы залил, сантехнику проложил. Решил поставить душевую кабину, ибо не любитель понежиться в ванной. Долго выбирал кабинку, бюджет был сильно урезан, поэтому круг поиска модели душевой кабина был сильно сужен. Ванная комната у меня стандартная — 150 см на 170 см, поэтому решил брать кабину 90 на 90 […]
Метки
Как отключить соединение OLE
Сегодня писал одну задачку, робота 1с, который по графику должен подключаться к удаленной базе через OLE, выбирать оттуда данные, а потом закрывать подключение и ждать времени следующего запуска.
В итоге столкнулся с несколькими проблемами, одна из которых — отключиться от удаленой базы. Обычно я даже не парился по этому вопросу, просто закрывал обработку и все, однако, это не правильно. Необходимо полностью отключаться.
Пробовал обнулять переменные, как советуют в интернете — не помогало, процесс 1С все равно оставался висеть в памяти.
Авторские права на предоставленный материал принадлежат автору сайта http://extremallife.ru
Тогда решил попробовать а почему бы не завершить работу системы, как и в локально базе… Ура, получилось.
Процедура Дисконнект()
Сообщение("Отключаюсь от удаленной базы");
Форма.СтрокаСостояния.Заголовок("Отключение...");
Если БазаОткрыта <> 0 Тогда
Попытка
Оля.ExecuteBatch("ЗавершитьРаботуСистемы(0)");
Исключение
Сообщение("Не удалось отключиться");
КонецПопытки;
OLE_ОбъектБазы="";
Оля="";
БазаОткрыта =0;
КонецЕсли;
Сообщение("Отключилась от удаленной базы");
Форма.СтрокаСостояния.Заголовок("Ожидание...");
КонецПроцедуры
Написал процедуру Дисконнект()
Которая как раз завершает работу удаленной базы с помощью стандартной команды.
Единственное, что еще необходимо сделать — это в настройках пользователя, под которым происходит подключение снять флаг «Запрашивать подтверждение при выходе из системы»
Кстати не путайте
Сообщение("Отключилась от удаленной базы");
от
Сообщить("123");
Сообщение — это я дописал еще мелкую процедуру, чтобы время выводила.
Процедура Сообщение(Текст)
Перем чч,мм,сс;
ТекущееВремя(чч,мм,сс);
Сообщить(Формат(чч,"Ч(0)2") + ":" + Формат(мм,"Ч(0)2") + ":" + Формат(сс,"Ч(0)2") + " " + СокрЛП(Текст));
КонецПроцедуры
ЗЫ. У меня возникла еще одна проблема, которую я так и не смог решить.
Как передать через V77.Application (ОЛЕ соединение) таблицу значений?
Дело в том, что мне необходимо вытаскивать из удаленной базы остатки на точку актуальности итогов (ТА) — делается очень легко, а главное быстро. Выгрузить эти итоги в таблицу значений на стороне удаленного компьютера — тоже проблем нет, а вот передать эту ТаблицуЗначений в локальную базу, или же выгрузить итоги в локальную таблицу у меня так и не получилось, пришлось перебирать все итоги. Может подскажет кто решение проблемы?
|
К записи "Как отключить соединение OLE" 12 комментариев
Оставить комментарий

petr@evseev.ru
Skype - evseev_petr
ICQ - 262808698
Сохраните меня в социальных сервисах
Комментарии
- Леха: Мало того, что это говно-антивирус требует .Net Framework не ниже 4.0, так он еще пожирает ресурсы компьютера,...
- tommy: AVG равно еще хуже Касперского . Иди в жопу с ним
- просто_чайник: Не люблю этот антивирус. Заметил такую особенность. Если обновить базы в начале работы, довольно часто...
- Елена: Самое главное. Файл для совместной работы открыть нельзя! Если надо что-то отредактировать — только...
- Виктор: Поставили мне на работе эту замечательную программку. Работать невозможно, ужасные тормоза. Стали...
Избранное видео
Страницы блога
Ссылки
- Блог java программиста
- Здесь можно скачать софт
- Справочник програмиста 1С Выписываю основные приемы программирования
Кстати, если выгружать отчеты, данные в Excel файл, то этот файл тоже надо закрывать, иначе он остается в памяти и компьютер начинает жутко тормозить.
Это я так, вспомнилось.
Ответить
«в локальную таблицу» это в какую?
Ответить
Например
Т = Оля.Createobject(«ТаблицаЗначений»);
….
//Сформировали Т
ТТ = СоздатьОбъект(«ТаблицаЗначений»);
Как передать (выгрузить) Т в ТТ ?
Но не перебором.
Ответить
Т.Выгрузить(ТТ);вообщем так можно и загрузитьТТ.Загрузить(Т);
Ответить
у Выгрузить() параметры еще указать надо, в синтаксис помощнике найти можно
Ответить
Такой фокус через OLE не работает…
Если бы все было так просто))
Мне необходимл выгрузить итоги регистра в таблицу
Т = Оля.Createobject(»ТаблицаЗначений»);
ТТ = СоздатьОбъект(»ТаблицаЗначений»);
СкладОле = Оля.CreateObject(«Справочник.Склады»);
СкладОле.ВыбратьЭлементы();
СкладОле.НайтиПоКоду(СокрЛП(ВыбСклад));
РегОле=Оля.CreateObject(«Регистр.ОстаткиТМЦ»);
РегОле.УстановитьФильтр(,,СкладОле.ТекущийЭлемент(),);
РегОле.ВыбратьИтоги();
Далее в локальной базе
РегОле.выгрузитьИтоги(ТТ)
не работает, хотя работает так
РегОле.выгрузитьИтоги(Т)
но Т — это таблица в базе к которой подключаемся…
Мне надо сразу передать таблицу Т в ТТ или выгрузить итоги в ТТ
Ответить
ну тут даже не подскажу, не знаю четно =)
Ответить
Короче, пришлось делать так
Пока РегОле.ПолучитьИтог()=1 Цикл
ТТТ.НоваяСтрока();
…………………….
КонецЦикла;
Ответить
Заполучить ТЗ/СЗ из ОЛЕ-контекста можно «в лоб» через ЗначениеВСтрокуВнутр (в оле-контексте, примененное к ТЗ оле-контекста), которое на «этой» стороне «вернуть взад» с помощью ЗначениеИзСтрокиВнутр().
Ответить
3aполучить ТЗ/СЗ из ОЛЕ-контекста можно «в лоб» через ЗначениеВСтрокуВнутр (в оле-контексте, примененное к ТЗ оле-контекста), которое на «этой» стороне «вернуть взад» с помощью ЗначениеИзСтрокиВнутр().
Ответить
2 Cthulhu
Спасибо за подсказку, попробую
Ответить
ТТ.Загрузить(Т)
Ответить