Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Регламентное задание в клиент-серверном варианте

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №1
 
05.05.2009 12:24

Подскажите, пожалуйста, что вообще происходит на сервере? Какие запускаются модули и в каком порядке?<br><br>Вот мы создали регламентное задание, задали ему некое расписание. Пусть, к примеру, в течение дня раз в час оно должно выполняться. Закрываем конфигуратор и все пользовательские сеансы и уходим. Что происходит на сервере в момент запуска регламентного задания? Какие модули запускаются? И что там вообще получается - сеанс или что? Возможно ли вообще отловить момент вроде "Перед запуском регламентного задания", чтобы, к примеру, инициализировать некоторые нужные этому заданию глобальные переменные?

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
05.05.2009 13:10

> Что происходит на сервере в момент запуска регламентного задания?<br>Запускается процедура, на которую ссылается задание.<br><br>> Какие модули запускаются? <br>Что значит запускаются? Модули не запускаются, они либо доступны, либо нет. Насколько я понимаю доступны те общие модули, у которых стоит флаг "сервер", и модули объектов. (Правда я не проверял, будет ли доступен модуль если этого флага нет, а стоит скажем внешнее соединение)<br><br>> И что там вообще получается - сеанс или что?<br>Логично предположить, что раз запущено сервером, то сеанса нет (точнее он серверный), а это налагает определенные ограничения - не все функции доступны.<br><br>> Возможно ли вообще отловить момент вроде "Перед запуском регламентного задания", чтобы, к примеру, инициализировать некоторые нужные этому заданию глобальные переменные?<br>Перед запуском вы его не поймаете, а вот вставить инициализацию переменных можете в начало запускаемой процедуры.

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №3
 
05.05.2009 13:37

> > Что происходит на сервере в момент запуска регламентного задания?<br>> Запускается процедура, на которую ссылается задание.<br>это как раз понятно.<br><br>> > Какие модули запускаются? <br>> Что значит запускаются? Модули не запускаются, они либо доступны, либо нет. Насколько я понимаю доступны те общие модули, у которых стоит флаг "сервер", и модули объектов. (Правда я не проверял, будет ли доступен модуль если этого флага нет, а стоит скажем внешнее соединение)<br>Немного не об этом. Есть глобальные модули - модуль приложения, модуль сеанса и модуль внешнего соединения. К примеру, модуль приложения, по сути, запускается при открытии программы в пользовательском режиме. Естественно, его экспортные функции,процедуры и переменные доступны потом, но при открытии приложения - инициализируются объявленные в модуле приложения переменные, затем выполняется код самого модуля, а затем уже процедуры/функции ПередНачаломРаботыСистемы() и т.д. А в случае, когда запускается регламентное задание - ни один из этих модулей не исполняется. Соответственно, все глобальные переменные остаются неинициализированы.<br><br>Собственно, у меня возникла проблема с одной из таких переменных.<br>В упрощенном варианте, проблема в следующем:<br>в модуле приложения объявляется переменная глТекущийПользователь. Регламентное задание создает документ ЗаказПокупателя. В модуле ЗаказаПокупателя в процедуре ПриЗаписи() используется эта самая переменная глТекущийПользователь. При выполнении регл.задания, сервер эту переменную просто не видит. Где ее можно объявить, чтобы сервер ее видел? Править ЗаказПокупателя не хочется. Хочется просто подсунуть серверу в таком варианте эту злосчастную переменную, тем более, что присвоить ей значение не составляет труда. Проблема в ее объявлении.<br> <br>> Логично предположить, что раз запущено сервером, то сеанса нет (точнее он серверный), а это налагает определенные ограничения - не все функции доступны.<br>вот-вот, не все функции/процедуры/переменные доступны<br><br>

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №4
 
05.05.2009 14:15

глТекущийПользователь - в моем варианте это не совсем переменная - это ПараметрыСеанса.ТекущийПользователь.<br>К сожалению у меня сервер отказывается загружать тестовую базу, поэтому не могу проверить возможность установки параметра сеанса и его получения при выполнии задания, но судя по фразе "Возможен обмен с сервером." - это возможно.<br>Другое дело, что в коде фигурирует глОбщиеЗначения, вот на это сервер может ругнуться (а может быть и нет) - это надо проверять.

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №5
 
05.05.2009 14:36

"В общем-то, как бы глТекущийПользователь потом не определялся, но сам он - это переменная.<br><br>а затем она заполняется значением. Наверна, даже пока не важно, каким.<br>Проблема в том, что переменная объявляется в модуле приложения:<br><br>Перем глТекущийПользователь Экспорт;<br><br>а для сервера получается не объявлена. Как ее можно определить для сервера?.. Нужна именно эта переменная, а не ПараметрыСеанса.ТекущийПользователь, потому как глТекущийПользователь в моем варианте определяется иначе, чем в демо-базе торговли.<br><br>глОбщиеЗначения - у меня такой нет в конфигурации."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №6
 
05.05.2009 17:15

"У меня нет торговли, поэтому не могу проанализировать вашу ситуацию.<br>Только не получиться у вас определить эту переменную так, чтобы она была доступна везде.<br>Для этого есть ПараметрыСеанса. В УПП все постоено на них. При этом интересующее значение получается через функцию глЗначениеПеременной. При этом функция обявлена в 2-х местах в МодулеПриложения и в ОбщемМодуле.ГлобальныйМодуль.<br>В моем тесте запуска задания была такая строка:<br>ЗначениеВФайл ("c:\work\test.txt", "Обмен не доступен "+глЗначениеПеременной("глТекущийПользователь"));<br>При этом в функцию из ОбщегоМодуля я вставил свой возврат.<br>Результат:<br>1. Отработала функция из ОбщегоМодуля<br>2. Функция вернула установленого при создании регламентированного задания пользователя."

Klyacksa
читатель
офлайн
Дата регистрации: 04.05.2009
Сообщений: 20
Пост №7
 
05.05.2009 17:24

Да, наверна, придется выходить из ситуации как-то по-другому. <br><br>В любом случае, спасибо за помощь))

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация