1с приначалеработысистемы параметры запуска
// 9 января 2009 г.
Листинг ю_3.4
Умолчанию-
// выполнение операции, Истина – отказ
От операции.
// Замещение (Булево) режим записи набора (Ложь-по умолчанию-
Дописывание
//записи, Истина – замещение записи.
Если Отказ Тогда
Сообщить ( "Запись не выполнена. " ,
КонецЕсли;
КонецПроцедуры
//Проверьте работу процедуры путем ввода новой или редактирования
//существующей записи в регистре сведений "Курсы".
Листинг ю_4.1
Иначе
Элемент . Параметры . Заполнить ( Выборка );
ТабДок . Вывести ( Элемент );
КонецЕсли;
КонецЦикла;
ТабДок . ОтображатьСетку = Ложь ;
ТабДок . Защита = Ложь ;
ТабДок . ТолькоПросмотр = Истина ;
ТабДок . ОтображатьЗаголовки = Ложь ;
ТабДок . Показать ();
//>>_КОНСТРУКТОР_ПЕЧАТИ_СПИСОК
КонецПроцедуры
Листинг ю_7.2
Фирмы.Код КАК Код,
Фирмы.Наименование
Справочник.Фирмы КАК Фирмы
|УПОРЯДОЧИТЬ ПО
| Код" ;
//И выполняем запрос
Результат = Запрос . Выполнить ();
Секция = Макет . ПолучитьОбласть ( "Элемент" );
// Обработка результата
Выборка = Результат . Выбрать ();
Процедура ПриОткрытии ()
ВыборкаФирм = Справочники .Фирмы. Выбрать ();
СтрокаСФирмой ,
КонецПроцедуры
//ДобавитьУровеньПодразделений(. ) добавляет в "Дерево"
Подраздления
СтрокаСПодразделением ,
КонецПроцедуры
Листинг ю_9.1
// Модуль справочника "ОсновныеСредства"
//УстановитьКод() - устанавливает новый код
//для записи в справочнике
КонецПроцедуры
Затем исправьте модуль формы:
КонецПроцедуры
Листинг ю_9.2
//ПриИзмененииГруппыОС - управляет видимостью
// реквизита "ЕстьДетали" и страницы "СписокДеталей"
КонецПроцедуры
Листинг ю_9.3
//НаборДанныеОСПередНачаломДобавления – проверяет
// возможность добавления новой строки
Копирование )
Если ЭтоНовый () Тогда
// откажем в добавлении строки:
Отказ = Истина;
Предупреждение ( "Прежде чем добавлять запись необходимо
записать элемент справочника!" );
КонецЕсли;
КонецПроцедуры
Листинг ю_9.4
//НаборДанныеОСПриНачалеРедактирования - заполняет реквизит
// ОС ссылкой на текущий элемент справочника
Если НоваяСтрока Тогда
ТекСтрока = ЭлементыФормы . НаборДанныеОС . ТекущаяСтрока ;
ТекСтрока . ОС = Ссылка ;
КонецЕсли;
КонецПроцедуры
Листинг ю_9.5.
//СписокДеталейПередОкончаниемРедактирования - проверяет
// правильность заполнения строки
КонецПроцедуры
Листинг ю_9.6.
Процедура ПриОткрытии ()
Если ЭтоНовый () Тогда
// Заполним реквизиты нового объекта начальными значениями
Фирма = Константы . ОсновнаяФирма . Получить ();
УстановитьКод ();
КонецЕсли;
// Установим свойство видимость у элементов диалога перед его
открытием
ПриИзмененииГруппыОС (Неопределено);
КонецПроцедуры
Листинг ю_9.7.
//ЕстьОшибка() - возвращает имя реквизита с ошибкой
//Если ошибок нет, то: ""
Если ЭтоГруппа Тогда
Возврат "" ;
КонецЕсли;
//Ошибкой будем считать пустые реквизиты
//"Фирма" и "ГруппаОС"
КонецФункции
Листинг ю_9.8.
// Проверяет правильность заполнения элемента справочника
Возврат; //ошибок нет
КонецЕсли;
Сообщить ( "Реквизит" + Имя + " не содержит данных!" ,
Сообщить ( "Запись " + ЭтотОбъект + " справочника не записана!" ,
Отказ = Истина;
КонецПроцедуры
Листинг ю_9.9.
//ПередЗаписью - проверяет правильность заполнения элемента
Справочника
Возврат; // т.к. нет ошибок
КонецЕсли;
Предупреждение ( "Реквизит" + Имя + " не содержит данных!" );
// установим курсор в нужное поле;
ТекущийЭлемент = ЭлементыФормы [ Имя ];
Отказ = Истина;
КонецПроцедуры
Листинг ю_9.10.
//ПриЗаписи - записывает набор записей регистра сведений
Попытка
НаборДанныеОС . Обновить ();
Исключение
Предупреждение ( "Не удалось сохранить""Данные ОС""!" );
Отказ = Истина
КонецПопытки;
КонецПроцедуры
Листинг ю_9.11.
//ПослеЗаписи() - переустанавливает отбор после записи
Процедура ПослеЗаписи ()
НаборДанныеОС . Отбор . ОС . Установить ( Ссылка );
КонецПроцедуры
Листинг ю_9.12.
//ПолеКартинкиНажатие - читает картинку в поле картинки
КонецПроцедуры
Листинг ю_9.13.
// ПриОткрытии - действия в момент открытия формы
Процедура ПриОткрытии ()
Если ЭтоНовый () Тогда
// Заполним реквизиты нового объекта начальными значениями
Фирма = Константы . ОсновнаяФирма . Получить ();
УстановитьКод ();
// запишем пустую картинку
Изображение = Новый ХранилищеЗначения (Новый Картинка ());
КонецЕсли;
// Установим свойство видимость у элементов диалога перед его
открытием
ПриИзмененииГруппыОС (Неопределено);
// отобразим картинку
ЭлементыФормы . ПолеКартинки . Картинка = Изображение . Получить ();
КонецПроцедуры
Листинг ю_9.14.
//Печать - печатает записи из справочника "ОсновныеСредства"
// и срез записей из регистра сведений "ДанныеОС"
Иначе
Секция = Макет . ПолучитьОбласть ( "Элемент" );
Секция . Параметры . Код = Объект . Код ;
Секция . Параметры . Наименование =
Объект . Наименование ;
Секция . Параметры . Фирма = Объект . Фирма ;
Секция . Параметры . ГруппаОС = Объект . ГруппаОС ;
Секция . Параметры . ДатаВвода = Объект . ДатаВвода ;
Секция . Параметры . ДатаСписания =
Объект . ДатаСписания ;
// Найдем строку содержащую ОС в таблице значений
СтрокаСреза = ТаблицаСреза . Найти ( Объект . Ссылка, "ОС" );
Если СтрокаСреза<>Неопределено Тогда
Секция . Параметры . БалансоваяСтоимость =
СтрокаСреза . БалансоваяСтоимость ;
Иначе
Секция = Макет . ПолучитьОбласть ( "Элемент" );
Секция . Параметры . Заполнить ( Выборка );
ТабДок . Вывести ( Секция );
КонецЕсли;
КонецЦикла;
Листинг ю_9.18.
//ПечатьЗапросомНажатие - выполняет теже действия, что и
Процедура
// Печать(. ), но с использованием объекта запрос
ЛЕВОЕ СОЕДИНЕНИЕ
РегистрСведений.ДанныеОС.СрезПоследних(&Период) КАК ДанныеОС
ПО ОсновныеСредства.Ссылка = ДанныеОС.ОС
|УПОРЯДОЧИТЬ ПО
| Ссылка ИЕРАРХИЯ" ;
// Выполняем запрос
Запрос . УстановитьПараметр ( "Период" ,РабочаяДата );
Результат = Запрос . Выполнить ();
//Откроем выборку
Выборка = Результат . Выбрать ();
КонецПроцедуры
// ДатаПриИзменении(Элемент) - изменяет дату курса, курс и
// пересчитывает содержимое колонок "ЦенаУЕ" и "СуммаУЕ" по
// новому курсу
КонецПроцедуры
// ДатаКурсаПриИзменении(Элемент) - изменяет курс и
// пересчитывает содержимое колонок "ЦенаУЕ" и "СуммаУЕ" по
// новому курсу
КонецПроцедуры
// КурсПриИзменении(Элемент) - пересчитывает содержимое
// колонок "ЦенаУЕ" и "СуммаУЕ" по новому курсу
КонецПроцедуры
Процедура ПересчетСтроки ()
ТекСтрока = ЭлементыФормы . Список . ТекущаяСтрока ;
КонецЦикла
КонецПроцедуры
Листинг ю_10.2.
Процедура ПересчетСтроки()
ТекСтрока=ЭлементыФормы.Список.ТекущаяСтрока;
КонецЦикла
КонецПроцедуры
Листинг ю_10.3.
Если ЭтоНовый( ) Тогда
Фирма = Константы.ОсновнаяФирма.Получить();
УстановитьНовыйНомер(Фирма.Префикс+"-");
Строка=РегистрыСведений.Курсы.ПолучитьПоследнее(ДатаКурса);
Курс=Строка.Курс;
ДатаКурса=Дата;
КонецЕсли
КонецПроцедуры
Листинг ю_10.4.
//ОбновлениеОтображения() - отображает итоговую строку в
// "подвале" формы
КонецПроцедуры
НачПериода ,
?( КонПериода = '0001-01-01' , КонПериода , КонецДня ( КонПериода )));
НастройкаПериода . РедактироватьКакИнтервал = Истина;
НастройкаПериода . РедактироватьКакПериод = Истина;
НастройкаПериода . ВариантНастройки =
ВариантНастройкиПериода . Период ;
НастройкаПериода . Редактировать ();
НачПериода = НастройкаПериода . ПолучитьДатуНачала ();
КонПериода = НастройкаПериода . ПолучитьДатуОкончания ();
КонецПроцедуры
Листинг ю_11.2.
Процедура ПриОткрытии()
Если НачПериода = '0001-01-01' и КонПериода='0001-01-01'
Тогда
НачПериода = ДобавитьМесяц(РабочаяДата, -3);
КонПериода = РабочаяДата;
КонецЕсли;
КонецПроцедуры
Листинг ю_11.5.
//КнопкаСформироватьНажатие(Элемент) - формирует
//отчет с использованием запроса
КонецПроцедуры
Листинг ю_11.7.
//СформироватьОтчетКурсыУЕ() - пример формирования отчета
// программным путем
КонецПроцедуры
Листинг П_А.3
//Общий модуль служебных функций
//ИнтервалСтр(Начало,Конец) - возвращает продолжительность
//интервала времени строкой:
КонецФункции
Листинг П_А.4
// Модуль приложения
// Раздел переменных:
Перем НачалоРаботы Экспорт;
//Раздел процедур и функций:
//Обработчики событий:
//ПриНачалеРаботыСистемы() - проверяет время входа в систему
КонецПроцедуры
//ПередЗавершениемРаботыСистемы(Отказ) - запрашивает
// подтверждение о выходе из системы
КонецПроцедуры
// раздел основной программы:
НачалоРаботы = ТекущаяДата ();
Листинг П_В.1
ПечатьКурсаУЕ () :
//ПечатьКурсаУЕ()2 - печать курса УЕ
// формирует отчет без использования макета
КонецПроцедуры
Процедура ПримерыОбращенияККонстантам ()
// Если это первый запуск конфигурации, то константа
// содержит в качестве значения 1 января 0001 года.
Если Константы . ДатаРегистрации . Получить ()= '00010101' Тогда
// Тогда установим 1 января текущего года
Константы . ДатаРегистрации . Установить ( НачалоГода ( ТекущаяДата ()));
КонецЕсли;
// распечатаем значения констант:
Сообщить( "Датарегистрации:" + Константы . ДатаРегистрации . Получить ()+ "." );
Сообщить( "Наименованиеорганизации:" + Константы . НаименованиеОрганизации . Получить ()+".");
КонецПроцедуры
Процедура ПриНачалеРаботыСистемы ()
//Примеры:
ПримерыОбращенияККонстантам ();
КонецПроцедуры
Листинг ю_2.2
//ПримерыОбращенияККонстантам()
//- содержит примеры обращения к Константам
Процедура ПримерыОбращенияККонстантам ()
//Создадим набор констант:
НаборКонстант = Константы.СоздатьНабор
(" ДатаРегистрации,НаименованиеОрганизации ");
НаборКонстант.Прочитать ();
//Прочитаем набор
// Если это первый запуск конфигурации, то константа
// содержит в качестве значения 1 января 0001 года.
Если НаборКонстант.ДатаРегистрации =' 00010101 ' Тогда
// Тогда установим 1 января текущего года
НаборКонстант.ДатаРегистрации = НачалоГода ( ТекущаяДата ());
НаборКонстант.Записать ();
//Запишем набор
КонецЕсли;
// распечатаем значения констант:
Сообщить(" Дата регистрации: "+
НаборКонстант.ДатаРегистрации +" . ");
Сообщить(" Наименование организации: "+
НаборКонстант.НаименованиеОрганизации +" . ");
КонецПроцедуры
Листинг ю_3.1
Процедура ПримерыОбращенияКРегиструСведений ()
// Найдем
(7) ну уж нет!
Тематическая ветка форума подобна нераспустившейся розе, которую нужно осветить солнцем, помочь ей подняться. Только когда вопрос уже решён, девушке можно намекнуть про фотку. И тогда распустившаяся роза будет прекрасна!
2(17) так а зачем вам этот форум? терзайте гугл дальше. может кто-то посоветует убиться об стену в гугл-ответах, тоже выполните.
(18) Теперь не понимает Рабочий стол и Обмен (User1)
@SET Program=C:\Program Files\1cv81\bin\1cv8.exe
start "C:\Program Files\1cv81\bin\1cv8.exe" ENTERPRISE /DisableStartupMessages F"C:\UAT8_les" /N"obmen" /P"obmen"
а так ENTERPRISE не понимает снова
start "C:\Program Files\1cv81\bin\1cv8.exe" "%Program%" ENTERPRISE /DisableStartupMessages F"C:\UAT8_les" /N"obmen" /P"obmen"
а если так то окно командной строки мелькает и пропадает
(45) спс посмотрю просто впервые батник пишу
регламентные задания не вижу в сервисе только регламентные операции конф UAT упр-ние автотр-ртом
2(56) я могу ошибаться но вам нужно вниматель посмотреть процедуру При/ПередНачаломРаботыСистемы() - мне кажется что именно там анализуерется кто вошел и вызывается процедура обмена. там же можно и добавить Завершение работысиситемы
(59) спс
получается так?:
через назначенные задания (пуск, проги, станд, служебные) создаю задание, которое ночью ежедневно вызвает батник, запускающий 1с с юзером obmen, все остальное делается в самой 1С.
если напишу все остальное в ПередНачаломРаботыСистемы(), то обмен будет производиться в любое время когда кто-то вдруг войдет под юзером obmen, а надо чтоб только ночью
значит из батника нужно прицепляться все же не к ПередНачаломРаботыСистемы()?
если к реглам заданию, то его настройки по времени запуска уже не нужны, т.к. в назначенные задания время укажется
(66) надо сходить и посмотреть, не вызывается ли уже обмен (я не помню). на юзера обмен можно навесить пароль от всяких любопытных. и запускать можно не батником а регламентным заданием. есть свои особенности.
2(66) нет. в ТИПОВОЙ уже есть код который анализирует - если зашли под юзером обмен значит будет выполнен обмен.. все что вам нужно добавить - чтобы после этого программа закрылась
(71) ждём новых веток ;) после ознакомления с file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm разумеется
(72) читаю про Регламентные задания:
При создании регламентного задания дополнительно можно указать расписание (может быть указано в метаданных), значения параметров метода, имя пользователя, от имени которого должно выполняться регламентное задание, и др.
если регл задание, то имя польз-ля наверно не нужно, оно как-то без пользователя видимо обменяется?
нужно: Создание и управление регламентными заданиями выполняется программно из любого соединения и разрешено только пользователям, имеющим административные права.
тогда где-то можно его в регл задании не в коде указать?
В Конфигураторе, нажимаем правой кнопкой на конфигурацию:
Модуль управляемого приложения
Модуль управляемого приложения является аналогом модуля приложения, но используется для управляемого приложения. 1С:Предприятие 8 исполняется в режиме управляемого приложения, если запущен тонкий клиент, Веб-клиент или толстый клиент и при этом установлен режим управляемого приложения либо на всю конфигурацию, либо у конкретного пользователя. В модуле управляемого приложения могут располагаться объявления переменных, процедуры, функции и тело модуля.
Кроме того, в модуле управляемого приложения могут располагаться предопределенные процедуры ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы, ПередЗавершениемРаботыСистемы, ПриЗавершенииРаботыСистемы, ОбработкаВнешнегоСобытия. Все процедуры и функции отрабатывают на клиенте. В процедурах и функциях модуля управляемого приложения доступны экспортные процедуры и функции общих модулей управляемого клиента, а также общих неглобальных серверных модулей. Процедуры, функции и переменные модуля управляемого приложения доступны из клиентской части модулей форм и команд.
Добавляем нужный нам код, например:
Код 1C v 8.2 УП
При закытии программы
Код 1C v 8.2 УП
Есть еще процедуры Перед:
Код 1C v 8.2 УП
В 1С 8.1 Конфигурация - Модуль приложения
Код 1C v 8.х
Так же есть процедуры Перед:
Код 1C v 8.х
В 1С 7.7 Конфигурация - Глобальный модуль
Код 1C v 7.x
Похожие FAQ
Еще в этой же категории
Полнотекстовый поиск в 1С (что это и пример использования) 23
Полнотекстовый поиск - позволит найти текстовую информацию, размещенную практически в любом месте используемой конфигурации. При этом искать нужные данные можно либо по всей конфигурации в целом, либо сузив область поиска до нескольких объектов Формат, функция форматирования значений 21
//Функция формирует удобное для чтения представление значений. // Примеры форматирования чисел ЗначФормат = Формат(123456.789, " ЧЦ=10; ЧДЦ=2" ); // ЗначФормат = " 123 456,79" ЗначФормат = Формат(123456.789, " ЧГ=0; ЧДЦ=2" ); // Знач Обработчики событий при записи объектов. Зачем и что за чем? 12
Программисту, имеющего немного опыта на платформе 1С 8.2, бывает сложно разобраться: ПередЗаписью, ПриЗаписи, ПослеЗаписи, на сервере, на клиенте, в модуле формы, в модуле объекта, а-а-а-а-аааа. Именно такое сложное чувство непонимания УстановитьСсылкуНового 11
Установить ссылку нового это специальный механизм программиста, который позволяет присваивать новому объекту нужную ссылку. В основном это задача обмена, во многих типовых обменах используется синхронизация по UID объекта. Рассмотрим этот метод на к МоментВремени, получение остатков до и после проведения 9
" Момент времени" - виртуальное поле, не хранится в базе данных. Содержит объект МоментВремени (который включает в себя дату и ССЫЛКУ НА ДОКУМЕНТ) В 7.7 было понятие ПозицияДокумента, а в 8.x Момент времени Для получения Остатков, Движений: М Посмотреть все в категории Встроенные Функции
Уже не один день играюсь, но так и не нашел способа запустить заданную процедуру обработки при запуске. Все, что понял за все время, так это то, что функция обработки должна быть экспортной и код для запуска процедуры обработки должен быть в процедуре ПриНачалеРаботыСистемы .
2 ответа 2
Вот решение от Гения1С
Запускать с ключом запуска: /C"АвтВнешняяОбработка = ВнешниеОбработки.Создать(ПолноеИмяФайла); ВнешняяОбработка.Запуститься();"
этот способ хороший только если у тебя внешняя обработка, а если обработка встроенная и это надо сделать в веб клиенте? я попытался таким способом, но к сожалению на веб клиенте говорит что переменная "Обработки" не определена (На Сервере оно не будит бить ошибку но в то же время и сами команды ничего делать не будут) &НаКлиенте Процедура ПриНачалеРаботыСистемы() обр = Обработки.<Обработка>.Создать(); обр.; КонецПроцедурыОбработка>
а, там "управляемые формы". А если так : ОткрытьФорму("Обработка.<Имяобработки>.Форма."); &НаКлиенте естественно. Проверить ,извини, не могу, не установлена 1С. Но если что гугли - управляемые формы - открыть форму обработки на клиентеИмяобработки>
ПриНачалеРаботыСистемы бывает в трёх разных модулях - Управляемого, Обычного приложений и Внешнего соединения. Соответственно, надо определиться - прописан ли вызов нужной процедуры именно в модуле нужного типа приложения.
Под выражением "процедура обработки" что понимается - процедура, которая что-то обрабатывает, или процедура, которая находится в обработке как объекте 1С? Если второе, то где она находится - в модуле обработки, в модуле менеджера или в форме? Ну и главное - обработка внешняя или встроенная в конфигурацию?
Если обработка встроенная и процедура находится в модуле обработки, то код будет такой
Если обработка встроенная и процедура находится в модуле менеджера, то обработку можно не создавать:
Если же это веб-клиент, а обработка встроенная, тогда только можно вызвать только процедуру формы обработки.
Ошибок не выдает, но константы пустые и, что интересно, точка останова в процедуре несрабатывает.
В чем может быть дело ?
Получение значения константы в модуле управляемого приложения
Появилась такая тема: нужно взять значение из логической константы в переменную и проверить его на.
Почему в модуле осталось видна только одна процедура?
Коротко: в одном модуле находится 4 процедуры. Причём три из них вызываются одной с аргументами.
Режим управляемого приложения
Всем привет. Начал осваивать 8.2. Возник вопрос. Зачем нужен режим управляемого приложения? Это.
Запуск управляемого и обычного приложения
Здравствуйте! Такой вот у меня вопрос. Имеется УТ 11 . В свойствах выставлено : основной режим.
Из модуля упр приложения вызываются клиентские функции. Вбейте свою процедуру в какой-нить общий модуль и из него вызывайте на сервере
В толстом клиенте все заработало как надо, но только сейчас попробовал в тонком - и все, при запуске выдается ошибка:
": Метод объекта не обнаружен (УстановитьКонстантыНаСервере) Общий.УстановитьКонстантыНаСервере();"
В модуле упр.приложения, запускается клиентская процедура из общего модуля, которая, в свою очередь, запускает "УстановитьКонстантыНаСервере". Неужели не вариант даже через посредника вызвать из модуля упр.прил. сервер ?
Или чего-то не догоняю ?
BVladimir2, внимательно изучите материалы по программированию 1с-клиент-сервер. там много нюансов и с галочками, и с директивами
Добавлено через 35 секунд
и с доступом
BVladimir2, внимательно изучите материалы по программированию 1с-клиент-сервер. там много нюансов и с галочками, и с директивами
Добавлено через 35 секунд
и с доступом
А ссылку конкретную можно ? В доксы к 8.2.- те что 5 + 2 книжки глянул, там про модуль упр.приложения сказано
не больше чем в СП.
Добавлено через 9 секунд
Модуль управляемого приложения
Модуль управляемого приложения является аналогом модуля приложения, но используется для управляемого приложения. 1С:Предприятие 8 исполняется в режиме управляемого приложения, если запущен тонкий клиент, Веб-клиент или толстый клиент и при этом установлен режим управляемого приложения либо на всю конфигурацию, либо у конкретного пользователя. В модуле управляемого приложения могут располагаться объявления переменных, процедуры, функции и тело модуля. Кроме того, в модуле управляемого приложения могут располагаться предопределенные процедуры ПередНачаломРаботыСистемы, ПриНачалеРаботыСистемы, ПередЗавершениемРаботыСистемы, ПриЗавершенииРаботыСистемы, ОбработкаВнешнегоСобытия. Все процедуры и функции отрабатывают на клиенте. В процедурах и функциях модуля управляемого приложения доступны экспортные процедуры и функции общих модулей управляемого клиента, а также общих неглобальных серверных модулей. Процедуры, функции и переменные модуля управляемого приложения доступны из клиентской части модулей форм и команд.
Добавлено через 2 минуты
Пример:
Модуль управляемого приложения:
В неглобальном общем модуле: ОбщийМодуль1
В неглобальном общем модуле: ОбщийМодуль1
Если у общего модуля установлены флажки клиент,сервер и вызов сервера тогда этот пример срабатывает, если перед "МояФункция()" поставить &НаСервере - не работает, но если у общ.модуля убрать галочку "клиент" то начинает работать, ОДНАКО если вместо &НаСервере написать &НаСервереБезКонтекста - опять не работатет ! И где, блин, про это написано ?
Офтоп:
Не встречал более недружелюбной для программера среды чем 1С
Это обычная Клиент-серверная архитектура!
Код в 1С компилируется в двух (независимых) экземплярах Клиент и Сервер и они не знаю о существовании друг друга! (тоже самое что PHP + Java)
&НаСервереБезКонтекста используется только для ФОРМ (чтоб не передавать контекст формы на сервер)
P.S. Поэтому разработчики и создают отдельно Серверный общий модуль, отдельно Клиентский - в некоторых случаях создается и на сервере и на клиенте, но выполнять он тогда будет там откуда вызван!
P.P.S Про все это можно узнать почитав умные книжки (которых полно в интернете) или пройти обучение в ЦСО 1С
Добавлено через 10 минут
И чуть не забыл ВОТ - Литература по 1С программированию
Это обычная Клиент-серверная архитектура!
Код в 1С компилируется в двух (независимых) экземплярах Клиент и Сервер и они не знаю о существовании друг друга! (тоже самое что PHP + Java)
&НаСервереБезКонтекста используется только для ФОРМ (чтоб не передавать контекст формы на сервер)
P.S. Поэтому разработчики и создают отдельно Серверный общий модуль, отдельно Клиентский - в некоторых случаях создается и на сервере и на клиенте, но выполнять он тогда будет там откуда вызван!
P.P.S Про все это можно узнать почитав умные книжки (которых полно в интернете) или пройти обучение в ЦСО 1С
Офтоп:
А такие базовые вещи не должны разве писатся "большими" буквами в СинтаксисПомощнике или, уж если так лень было разработч., хотя бы в прилагаемой документации ? Или это такая политика, чтобы програмисты еще б и учится бегали на курсы по недокументированным вопросам ? Смысл тогда в 7-ми томах доксов, если все равно курсы нужны.
Курсы нужны для тех кому лень читать =)) (Или ТУГО усваивает)
Добавлено через 2 минуты
Из справки:
Модуль формы
В модуле формы доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаСервереБезКонтекста, &НаКлиентеНаСервереБезКонтекста.
Модуль команды
В модуле команды доступны директивы компиляции – &НаКлиенте, &НаСервере, &НаКлиентеНаСервере.
Общий модуль
В общем модуле доступны директивы компиляции – &НаКлиенте, &НаСервере.
Добавлено через 3 минуты
Опять же из справки:
Общие модули
Общие модули располагаются в отдельной ветке дерева метаданных. Основным назначением общих модулей является содержание общих алгоритмов конфигурации, доступных из разных модулей. В общих модулях отсутствует раздел определения переменных и раздел основной программы, то есть они содержат только раздел процедур и функций (см. раздел "Структура программного модуля").
В любом общем модуле возможно объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации.
Если используется клиент–серверный вариант системы 1С:Предприятие 8, то с помощью свойств Клиент (обычное приложение), Клиент (управляемое приложение) и Сервер, а также инструкций препроцессора можно организовывать выполнение различных процедур и функций общих модулей на сервере приложения или на клиентском месте.
Если установлено свойство Клиент (обычное приложение) или Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в клиентском приложении.
В контексте неглобального общего модуля с установленным свойством Клиент (обычное приложение) доступны экспортируемые переменные, процедуры и функции модуля обычного приложения.
В контексте неглобального общего модуля с установленным свойством Клиент (управляемое приложение) доступны экспортируемые переменные, процедуры и функции модуля управляемого приложения.
Важно! Свойство Клиент (обычное приложение) показывается, если в настройках конфигурации режима запуска установлен режим "Управляемое приложение и обычное приложение".
Если установлено свойство Сервер, то все процедуры и функции общего модуля могут использоваться в клиент-серверном варианте.
Если предполагается, что процедуры и функции общего модуля могут быть использованы во внешнем соединении, то следует установить свойство Внешнее соединение.
В контексте неглобального общего модуля с установленным свойством Внешнее соединение доступны экспортируемые переменные, процедуры и функции модуля внешнего соединения.
Свойство Вызов сервера разрешает вызов сервера. Свойство доступно, если установлено свойство Сервер. Если не установлено, то процедуры и функции данного модуля доступны только на сервере. Если установлено, то процедуры и функции данного модуля доступны на клиенте.
Свойство Привилегированный предназначено для установки полных прав доступа при выполнении действий с базой данных в процедурах и функциях общего модуля. При установленном свойстве выполнение производится только на сервере.
Повторное использование возвращаемых значений. Свойство доступно, если общий модуль не является Глобальным. Это свойство может принимать следующие значения:
Не использовать – повторное использование возвращаемых значений для функций этого общего модуля не используется;
На время вызова и На время сеанса – для общего модуля используется метод определения повторного использования данных. Суть этого метода заключается в том, что в ходе выполнения кода система запоминает параметры и результат работы функций после первого вызова функции. При повторном вызове функции с такими же параметрами, происходит возврат запомненного значения (из первого вызова) без выполнения самой функции. Если функция во время своего выполнения меняет значения параметров, то повторный вызов функции не будет это делать.
Можно выделить следующие особенности сохранения результатов вызова:
если функция выполняется на сервере и вызывается из серверного кода, то значения параметров и результат вызова запоминаются для текущего сеанса на стороне сервера;
если функция выполняется на толстом или тонком клиенте, то значения параметров и результатов вызова запоминается на стороне клиента;
если функция выполняется на стороне сервера, а вызывается из клиентского кода, то значения параметров вызова запоминаются и на стороне клиента и на стороне сервера.
Сохраненные значения удаляются:
если свойство установлено в значение На время вызова:
на стороне сервера – при возврате управления с сервера;
на стороне клиента – при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка).
если свойство общего модуля установлено в значение На время сеанса:
на стороне сервера – при окончании сеанса;
на стороне клиента – при закрытии клиентского приложения.
Сохраненные значения могут быть удалены:
после долгого неиспользования (более 5 минут);
при нехватке оперативной памяти в рабочем процессе сервера;
при перезапуске рабочего процесса;
при переключении клиента на другой рабочий процесс.
После удаления значений, вызов экспортной функции выполняется как при первом вызове.
Свойство Глобальный определяет, являются ли экспортируемые методы общего модуля частью глобального контекста.
Если свойство Глобальный установлено в значение Истина, то экспортируемые методы общего модуля доступны как методы глобального контекста.
Если свойство Глобальный установлено в значение Ложь, то в глобальном контексте создается свойство с именем, соответствующим имени общего модуля в метаданных. Данное свойство доступно ТОЛЬКО для чтения. Значением данного свойства является объект ОбщийМодуль. Через данный объект доступны экспортируемые методы данного общего модуля. Таким образом, обращение к методам неглобальных общих модулей выглядит как XXXXX.YYYYY, где XXXXX – это имя свойства общего модуля, а YYYYY – имя экспортируемого метода общего модуля.
Если установлено свойство Клиент (обычное приложение), то модуль загружается в толстом клиенте в режиме обычного приложения.
Если установлено свойство Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в режиме Управляемое приложения, в тонком клиенте, в веб-клиенте.
Модули с установленным свойством Клиент (обычное приложение), проверяются для режимов запуска:
Толстый клиент (обычное приложение);
Толстый клиент (обычное приложение) вариант клиент-сервер.
Модули с установленным свойством Клиент (управляемое приложение), проверяются для режимов запуска:
Толстый клиент (управляемое приложение);
Толстый клиент (управляемое приложение) вариант клиент-сервер;
Тонкий клиент;
Веб-клиент.
Читайте также: