Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Добрый день! Есть реглам. задание, вызывает процедуру из общего модуля(Сервер,Клиент(обычное приложение),Вызов сервера). В этом модуле присутствуют процедуры и функции которые выполняются по кнопкам, в процедурах присутствуют такие методы как "ОбработкаПрерыванияПользователем()", "Состояние()". В этому же модуле есть точно такие же процедуры и функции которые отвечают за загрузку по регламентному заданию, в них нет методов "ОбработкаПрерыванияПользователем()", "Состояние()". При активации задания, выскакивает ошибка что не обнаружено "ОбработкаПрерыванияПользователем()", я закоменнтировал это даже в тех процедурах которые по сути не вызываются для авто загрузки.
Закоментировал в этом общем модуле все строки с методами которые не могут вызываться в фоновом режиме - регламентное задание запустилось, но вылезло следующее на метод (Закрыть()) внешней компоненты которую я подключаю чтобы подключиться к базе.
Подскажите плиз что делаю не так?
Добвил директивы на процедуры и функции которые не используются в фоновом режиме. Ошибок по поводу обработки ожидания пользователя не появлялось, а вот ошибка с методом подключаемой внешней компонентой осталась....как быть?
Добрый день! Есть реглам. задание, вызывает процедуру из общего модуля(Сервер,Клиент(обычное приложение),Вызов сервера). В этом модуле присутствуют процедуры и функции которые выполняются по кнопкам, в процедурах присутствуют такие методы как "ОбработкаПрерыванияПользователем()", "Состояние()". В этому же модуле есть точно такие же процедуры и функции которые отвечают за загрузку по регламентному заданию, в них нет методов "ОбработкаПрерыванияПользователем()", "Состояние()". При активации задания, выскакивает ошибка что не обнаружено "ОбработкаПрерыванияПользователем()", я закоменнтировал это даже в тех процедурах которые по сути не вызываются для авто загрузки.
Закоментировал в этом общем модуле все строки с методами которые не могут вызываться в фоновом режиме - регламентное задание запустилось, но вылезло следующее на метод (Закрыть()) внешней компоненты которую я подключаю чтобы подключиться к базе.
Подскажите плиз что делаю не так?
Добвил директивы на процедуры и функции которые не используются в фоновом режиме. Ошибок по поводу обработки ожидания пользователя не появлялось, а вот ошибка с методом подключаемой внешней компонентой осталась....как быть?
Код в студию чтоле?
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0
Функция ПодключитьсяКБазеКОДОСАвтоматически() Экспорт Попытка Alias = "codos"; Login = "sysdba"; Password = "masterkey";
ПодключитьВнешнююКомпоненту("Addin.Kodos_db"); БДЕ = Новый("Addin.Kodos_db"); //!!!Загружаем внешнюю компоненту для обмена с базой КОДОС
ПодключитьВнешнююКомпоненту("Addin.Kodos_rd"); ОбменСоСчитывателем = Новый("Addin.Kodos_rd"); //!!!Загружаем внешнюю компоненту для обмена со считывателем КОДОС
БДЕ.Подключиться(Alias, Login, Password); //!!! Подключаемся к базе данных КОДОС
глПрефикс="CODOS.";
Попытка //ЗДЕСЬ БЫЛ ЗАПРОС К БАЗЕ, УДАЛИЛ Т.К. НЕ ХОТЕЛО ПОСТИТЬСЯ... //ЗДЕСЬ БЫЛ ЗАПРОС К БАЗЕ, УДАЛИЛ Т.К. НЕ ХОТЕЛО ПОСТИТЬСЯ... //БДЕ.Close(); БДЕ = Неопределено;
Исключение глПрефикс=""; //БДЕ.Close(); //!!! Закрываем соединение с базой КОДОС БДЕ = Неопределено; КонецПопытки;
СЗ = Новый СписокЗначений; СЗ.Добавить(БДЕ, "БДЕ",,); СЗ.Добавить(глПрефикс, "Префикс",,);
Процедура ЗагрузитьДанныеИзКОДОСАвтоматически() ЭКСПОРТ СЗ = ПодключитьсяКБазеКОДОСАвтоматически(); Если СЗ <> Неопределено Тогда БДЕ = СЗ.НайтиПоИдентификатору(0).Значение; глПрефикс = СЗ.НайтиПоИдентификатору(1).Значение; ПрочитатьБазуКОДОСАвтоматически(БДЕ,глПрефикс); КонецЕсли; КонецПроцедуры
Процедура ПрочитатьБазуКОДОСАвтоматически(БДЕ,глПрефикс) Экспорт Попытка ТаблицаСотрудников = ПолучитьАктуальныхСотрудниковОрганизации(); //ТаблицаСотрудников - актуальных,не помеченных на удаление, с видом занятости = основное место работы ТаблицаСотрудников.Сортировать("Ссылка ВОЗР");
//Ищем в базе КОДОС записи у которых табельный номер равен табельному номеру в базе 1С Для Каждого Строка Из ТаблицаСотрудников Цикл
ТабельныйНомер = Число(Формат(Строка.Ссылка.Код,"ЧГ=0")); ТабельныйНомер = СтрЗаменить(ТабельныйНомер,Символы.НПП,""); Если ПосленийПериодВ1С <> Неопределено Тогда //Данные с последней даты в базе 1С //ЗДЕСЬ БЫЛ ЗАПРОС К БАЗЕ, УДАЛИЛ Т.К. НЕ ХОТЕЛО ПОСТИТЬСЯ... Иначе //Данные начиная с начала создания базы //ЗДЕСЬ БЫЛ ЗАПРОС К БАЗЕ, УДАЛИЛ Т.К. НЕ ХОТЕЛО ПОСТИТЬСЯ...
//Данные начиная с 01.01.15 //ЗДЕСЬ БЫЛ ЗАПРОС К БАЗЕ, УДАЛИЛ Т.К. НЕ ХОТЕЛО ПОСТИТЬСЯ...((POBJ_N = 1) OR (POBJ_N = 6))";" КонецЕсли;
БДЕ.ЗапросSQL(ЗапросКБазеКОДОС);
Пока БДЕ.ПолучитьЗапись() = 1 Цикл Запись = РегистрыСведений.КФЗДанныеПроходныхКОДОС.СоздатьМенеджерЗаписи(); Если БДЕ.Поле("EV_N") = 7 Тогда //Вход Запись.Период = БДЕ.Поле("DT"); Запись.Сотрудник = Строка.Ссылка; Запись.ТабельныйНомер = Строка.Ссылка.Код; Запись.ПодразделениеОрганизации = Строка.Ссылка.ТекущееПодразделениеОрганизации; Запись.Период1 = Дата(Формат(Запись.Период,"ДФ=yyyyMMdd")); Запись.Событие = "Вход"
Если ДатаВхода <> Неопределено Тогда //Получим из секунд часы минуты и секунды СекундыФактические = Запись.Период - ДатаВхода; Запись.ФактическоеВремя = СекундыФактические;
Иначе Запись.ФактическоеВремя = Дата("00010101000000"); КонецЕсли;
//Отрицательное значение СекундыОтклонения означает что сотрудник отработал меньше нормы СекундыОтклонения = СекундыФактические - СекундыНормаГрафик; Запись.Отклонение = СекундыОтклонения;
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0
Если база серверная, то вероятно метод Close() компоненты не работает в консольном сеансе под которым запущен север, раз работает в интерактивном. Попробуйте поставить Close() в #Если Клиет может соединению будет достаточно закрыться по присвоению Неопределено.
Личные бесплатные консультации не даю, для этого есть форум!
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!