Как сделать процедуру доступной в разных модулях

Обновлено: 05.07.2024

1. запросы
2. таблицы
3. отчеты
4. формы
5. страницы
Задание № 129484
Объекты, предназначенные для вывода данных на принтер
Ответ:
1. отчеты
2. таблицы
3. страницы
4. модули
5. формы
Задание № 129485
Объекты, предназначенные для предоставления доступа к данным через Web- интерфейс
Ответ:
1. страницы
2. макросы
3. модули


21 21 4. таблицы
5. запросы
Задание № 129486
Объекты, предназначенные для автоматизации повторяющихся операций и представ- ляющие собой последовательность внутренних команд СУБД
Ответ:
1. макросы
2. модули
3. страницы
4. таблицы
5. запросы
Задание № 129487
Объекты, предназначенные для реализации нестандартных функциональных возмож- ностей СУБД средствами языка программирования
Ответ:
1. модули
2. макросы
3. страницы
4. таблицы
5. запросы
Задание № 129488
Свойство, идентифицирующее поле и используемое по умолчанию в качестве заголов- ка столбца таблицы
Ответ:
1. имя поля
2. значение по умолчанию
3. тип поля
4. условие на значение
5. маска ввода
Задание № 129489
Свойство, определяющее тип данных, содержащихся в данном поле
Ответ:
1. тип поля
2. имя поля
3. размер поля
4. формат поля
5. подпись
Задание № 129490
Тип данных, используемый для хранения текста размером до 255 символов
Ответ:


22 22
1. текстовый
2. гиперссылка
3. поле МЕМО
4. поле объекта ОLE
5. счетчик
Задание № 129491
Тип данных, используемый для хранения текста размером до 65535 символов
Ответ:
1. поле МЕМО
2. гиперссылка
3. поле объекта ОLE
4. текстовый
5. счетчик
Задание № 129492
Тип данных, используемый для уникальных натуральных чисел с автоматическим на- ращиванием
Ответ:
1. счетчик
2. гиперссылка
3. поле МЕМО
4. текстовый
5. поле объекта ОLE
Задание № 129493
Тип данных, используемый для хранения созданных в других приложениях объектов, например мультимедийных
Ответ:
1. поле объекта ОLE
2. гиперссылка
3. поле МЕМО
4. текстовый
5. счетчик
Задание № 129494
Тип данных, используемый для хранения URL-адресов Web-объектов
Ответ:
1. гиперссылка
2. поле МЕМО
3. поле объекта ОLE
4. текстовый
5. счетчик
Тема: Базы данных и СУБД
Задание № 129304


23 23
Какое свойство распределенной базы данных означает, что в идеальной системе все уз- лы равноправны и независимы, а расположенные на них базы являются равноправными поставщиками данных в общее пространство данных
Ответ:
1. независимость от центрального узла
2. локальная автономия
3. непрерывные операции
4. прозрачность расположения
Задание № 129305
Какое свойство распределенной базы данных трактуется как "данные доступны всегда, а операции над ними выполняются непрерывно
Ответ:
1. непрерывные операции
2. локальная автономия
3. независимость от центрального узла
4. прозрачность расположения
Задание № 129306
Какое свойство распределенной базы данных означает, что все операции над данными выполняются без учета их местонахождения
Ответ:
1. прозрачность расположения
2. локальная автономия
3. независимость от центрального узла
4. непрерывные операции
Задание № 129307
Какое свойство распределенной базы данных трактуется как возможность распреде- ленного размещения данных, логически представляющих собой единое целое
Ответ:
1. прозрачная фрагментация
2. прозрачность тиражирования
3. обработка распределенных запросов
4. обработка распределенных транзакций
Задание № 129308
Какое свойство распределенной базы данных означает, что асинхронный перенос изме- нений объектов исходной базы данных в базы, расположенные на других узлах распре- деленной системы достигается внутрисистемными средствами
Ответ:
1. прозрачность тиражирования
2. прозрачная фрагментация
3. обработка распределенных запросов
4. обработка распределенных транзакций


24 24
Задание № 129309
Какое свойство распределенной базы данных означает возможность выполнения вы- борки над распределенной базой данных, сформулированной на языке SQL
Ответ:
1. обработка распределенных запросов
2. прозрачная фрагментация
3. прозрачность тиражирования
4. обработка распределенных транзакций
Задание № 129310
Какое свойство распределенной базы данных означает возможность выполнения опе- раций обновления распределенной базы данных, не разрушающее целостность и согла- сованность данных
Ответ:
1. обработка распределенных транзакций
2. прозрачная фрагментация
3. прозрачность тиражирования
4. обработка распределенных запросов
Задание № 129311
Какое свойство распределенной базы данных означает, что в качестве узлов могут вы- ступать компьютеры любых моделей и производителей
Ответ:
1. независимость оборудования
2. независимость от операционных сетей
3. прозрачность сети
4. независимость от баз данных
Задание № 129312
Какое свойство распределенной базы данных означает многообразие операционных систем, управляющих узлами распределенной сети
Ответ:
1. независимость от операционных сетей
2. независимость оборудования
3. прозрачность сети
4. независимость от баз данных
Задание № 129313
Какое свойство распределенной базы данных означает, что спектр сетевых протоколов не должен быть ограничением системы
Ответ:
1. прозрачность сети
2. независимость оборудования
3. независимость от операционных сетей


25 25 4. независимость от баз данных
Задание № 129314
Какое свойство распределенной базы данных означает, что возможно сосуществование
СУБД различных производителей
Ответ:
1. независимость от баз данных
2. независимость оборудования
3. независимость от операционных сетей
4. прозрачность сети
Задание № 129504
Функция, включающая в себя хранение как непосредственно данных, так и индек- сов(для ускорения доступа к данным)
Ответ:
1. управление данными во внешней памяти
2. управление буферами оперативной памяти
3. управление транзакциями
4. журнализация и восстановление базы данных после сбоев
Задание № 129506
Функция, управляющая последовательностью операций, рассматривающая базу данных как единое целое
Ответ:
1. управление транзакциями
2. управление данными во внешней памяти
3. управление буферами оперативной памяти
4. журнализация и восстановление базы данных после сбоев
Задание № 129507
Функция, требующая избыточности объема памяти для хранения данных для так назы- ваемой "упреждающей" записи
Ответ:
1. журнализация и восстановление базы данных после сбоев
2. управление данными во внешней памяти
3. управление буферами оперативной памяти
4. управление транзакциями
Задание № 129508
Для управления данными во внешней памяти, буфера оперативной памяти, управления транзакциями и журнализацией служит
Ответ:
1. ядро системы управления базой данных
2. компилятор языка базы данных


26 26
Задание № 129509
Спецификация некоторого действия над базой данных, реализуемая в машинных кодах, но более часто - в выполняемом внутреннем машинно-независимом коде
Ответ:
1. компилятор языка базы данных
2. ядро системы управления базой данных
Задание № 129510
Как называется язык, описывающий логическую структуру данных и налагаемые огра- ничения целостности, регламентируемые моделью данных
Ответ:
1. язык описания данных
2. язык машинных данных
Задание № 129511
Язык, позволяющий запрашивать предусмотренные в системе операции над данными из базы данных
Ответ:
1. язык машинных данных
2. язык описания данных
Задание № 129512
Какой аспект информационной безопасности обеспечивает возможность получения не- которой информационной услуги
Ответ:
1. условия доступа
2. целостность
3. конфиденциальность
Задание № 129513
Какой аспект информационной безопасности отражает непротиворечивость информа- ции, ее защищенность от разрушения и несанкционированного доступа
Ответ:
1. целостность
2. условия доступа
3. конфиденциальность
Задание № 129514
Какой аспект информационной безопасности обеспечивает защиту от несанкциониро- ванного прочтения
Ответ:
1. конфиденциальность
2. условия доступа
3. целостность


27 27
Задание № 129515
Проблема обеспечения информационной безопасности баз данных является
Ответ:
1. комплексной
2. локальной
Задание № 129516
Что базируется на реализации метода ограничения доступа к объектам, уровня секрет- ности, списка категорий и сопоставлении меток безопасности субъекта и объекта
Ответ:
1. управление доступом к базам данных
2. протоколирование и аудит
Задание № 129517
Обнаружение необычных и подозрительных действий пользователей, оценка возмож- ных последствий и оказание помощи представляет
Ответ:
1. протоколирование и аудит
2. управление доступом к базам данных
Задание № 129518
В каких СУБД поддерживается иерархия, наследование типов и управление сложными объектами
Ответ:
1. объектно-ориентированных
2. распределенных
3. реляционных
Задание № 129519
Обработка приложений несколькими территориально распределенными машинами на- зывается
Ответ:
1. распределенной обработкой данных базы данных с сетевым доступом архитектура "клиент-сервер"
2. распределенные базы данных
Задание № 129520
Системы, созданные на основе оборудования и программного обеспечения различных локальных вычислительных сетей называются
Ответ:
1. базы данных с сетевым доступом
2. распределенной обработкой данных
3. архитектура "клиент-сервер"


28 28 4. распределенные базы данных
Задание № 129521
Набор файлов (отношений), хранящихся в разных узлах информационной сети и логи- чески связанных так, чтобы составлять единую совокупность данных называется
Ответ:
1. распределенная база данных
2. база данных с сетевым доступом
3. архитектура "клиент-сервер"
Задание № 129522
Чем отличается сервер файлов в базах данных с сетевым доступом от сервера базы данных в архитектуре "клиент-сервер"
Ответ:
1. параллельная обработка запросов со всех рабочих станций и выдача готовых резуль- татов
2. только хранение совместно используемой базы данных
Задание № 129523
Где происходит обработка пользовательских запросов в базах данных с сетевым досту- пом (архитектура "файл-сервер")
Ответ:
1. на рабочих станциях
2. на сервере
Задание № 129524
Где происходит обработка пользовательских запросов в архитектуре "клиент-сервер"
Ответ:
1. на сервере
2. на рабочих станциях
Задание № 129525
Где происходит разделение функций стандартного интерактивного приложения на функцию ввода, прикладные, фундаментальные и служебные функции
Ответ:
1. в архитектуре "клиент-сервер"
2. в распределенной обработке данных
3. в базах данных с сетевым доступом
4. в распределенных базах данных
Задание № 129526
Какое свойство распределенной базы данных означает, что управление данными на ка- ждом из узлов выполняется локально
Ответ:


29 29
1. локальная автономия
2. независимость от центрального узла
3. непрерывные операции
4. прозрачность расположения


Для описания всех алгоритмов управления данными в конфигурации приложения 1С предусмотрено 11 видов программных модулей, 3 раздела, 7 опций, 5 директив компиляции и инструкции препроцессора. Ниже кратко и конспективно они объяснены, изложены принципы внутренней организации модулей и их взаимодействие между собой, приведены примеры. Текст еще не завершен и многие нюансы еще уточняются и будут дополняться.

    • осуществляет обработку интерактивного запуска и завершения Толстого клиента в режиме Обычного приложения, в котором присутствует обычный командный интерфейс в виде Главного меню
    • компилируется и как Клиент и как Сервер
    • обработка интерактивного запуска и завершения
      • Тонкого клиента
      • Толстого клиента
      • Управляемого приложения
      • Веб-клиента

      Модуль инициализирует значения глобальных переменных, служащих параметрами сеанса

      • модуль используется при любом режиме запуска
      • при старте приложения событие УстановкаПараметровСеанса вызывается самым первым
        • события в модуле приложения вызываются позже и могут выполнить Отказ в дальнейшем запуске приложения
        • событие УстановкаПараметровСеанса может возникать во время сеанса повторно
        • при первом вызове события УстановкаПараметровСеанса количество элементов в массиве параметров сеанса равно нулю

        Общие модули содержат общие алгоритмы, которые могут вызываться из других модулей.

        Опции Общего модуля

        • Глобальный — объявленные в модуле экспортные методы будут доступны за пределами модуля напрямую без указания имени модуля, глобальный модуль компилируется при старте системы, поэтому увеличивает время старта системы.
        • Опции компиляции и доступности
          • Клиент (управляемое приложение) — модуль будет скомпилирован и доступен на Клиенте
          • Сервер — модуль будет скомпилирован и доступен на Сервере
          • Внешнее соединение — модуль будет скомпилирован и доступен при Внешнем соединении
          • Вызов сервера — делает экспортные процедуры и функции доступными для вызова из модулей исполняемых на Клиенте, предполагает возможность двунаправленного XDTO преобразования параметров и возвращаемых значений (см. подробней Передача параметров и возвращаемых значений ниже).
          • Привилегированный — применим только к модулям на Сервере, отменяет контроль доступа к объектам данных, что существенно увеличивает скорость выполнения, особенно при горизонтальном разграничении доступа к записям таблицы.
          • Повторное использование возвращаемых значений — позволяет ускорить выполнение функций неглобального общего модуля путем оптимизации XDTO преобразования параметров повторяющихся вызовов.

          Вызов метода общего модуля

          Вызов методов общего модуля из других модулей возможен, если они были определены экспортными и область компиляции метода соответствует вызывающему методу. Пример непосредственного вызова метода общего модуля:

          Пример косвенного вызова метода общего модуля:

          Основное назначение модуля — обрабатывать события записи объекта где и как бы оно не возникло, в т.ч. программно, а также расширять набор методов объекта.

          • присутствует у Справочников, Документов, Отчетов, Обработок, ПВХ
            • отсутствует у Констант, Перечислений, Журналов, Внешних источников данных
            • у Регистров аналогичную роль выполняет Модуль Записи
            • переменные объявленные как Экспорт доступны у объекта как реквизиты . , но в отличие от реквизита она не сохраняется при записи
            • процедуры и функции описанные как Экспорт доступны у объекта как методы . ( )
              • по неизвестной причине доступ к переменным и методам у Обработок не действует

              Примеры

              Пример описания переменной, конструктора объекта, экспортной функции и пример вызова:

              Модуль предназначен для описания общих статических процедур и функций применимых к прикладному типу без контекста отдельного элемента семейства. Модуль менеджера похож на Общий модуль, но инкапсулирован в своем прикладном типе.

              • присутствует у Справочников, Документов, Журналов, Перечислений, Отчетов, Обработок, ПВХ, Регистров, Бизнес-процессов, Задач
                • отсутствует у Внешних источников данных
                • доступность обеспечивается только из модулей на Сервере
                • могут при необходимости получить объект или ссылку в параметре вызова

                Примеры

                Пример описания статической экспортной функции и ее вызов из другого модуля , где эти типы доступны (на Сервере). :

                Основное назначение модуля — обрабатывать события записи константы.

                Очень похож на Общий модуль, но инкапсулирован в форму, поэтому ему доступны реквизиты данных, реквизиты формы, элементы формы и статические переменные.

                • компиляция по умолчанию выполняется на Сервере, но отдельные фрагменты модуля могут устанавливать другую область компиляции директивами компиляции
                • НаКлиенте
                  • реквизиты объекта формы доступны через Объект.
                  • реквизиты формы доступны непосредственно по имени
                  • элементы формы доступны через Элементы.
                  • статические переменные существуют только на время обработки события формы, а затем удаляются
                  • реквизиты объекта формы доступны через Объект.
                  • реквизиты формы доступны непосредственно по имени
                  • элементы формы на Сервере недоступны
                  • статические переменные существуют только на время вызова метода на Сервере, а затем удаляются
                  • данные реквизитов при каждом вызове НаКлиенте->НаСервере и возврате НаСервере->НаКлиенте все (целиком в полном объеме) проходят через XDTO сериализацию
                  • доступные методы реквизитов на Клиенте и на Сервере отличаются

                  Временный динамический модуль создается платформой при использовании оператора Выполнить() :

                  Пять директив определяют область исполнения функций и процедур. Их следует применять только в коде модулей управляемых форм и в коде модулей команд, в остальных модулях рекомендуется применять инструкции препроцессора.

                  • директива должна предшествовать каждому определению в модуле
                  • по умолчанию действует директива &НаСервере
                  • директива &НаСервереБезКонтекста имеет смысл только в формах (чей контекст директива подразумевает)
                  • определение в общем модуле с директивой &НаСервере в общем модуле имеет
                  • директива &НаСервереНаКлиенте применяется только в коде модулей команд
                  • приведенный в таблице порядок директив соответствует иерархии доступности, так функции и процедуры определенные с некоторой директивой имеют доступ к процедурам и функциям определенным с той же директивой, либо с любой директивой следующей ниже, но не имеют доступа к определенным с предшествующей директивой
                    • определениям с директивой &НаКлиенте доступны все определения на Клиенте и все определения на Сервере, для которых предусмотрен серверный вызов
                    • определениям с директивой &НаКлиентеНаСервереБезКонтекста доступны определения только с такой же директивой

                    Инструкции препроцессора управляют включением и исключением фрагментов модуля прежде чем он будет скомпилирован для выполнения, все инструкции препроцессора и исключенные ими фрагменты кода отсутствуют в коде передаваемом компилятору модуля.

                    Предусмотрены четыре инструкции

                    Области

                    Области дают возможность выделять произвольные области кода, группировать и сворачивать их в окне редактора модуля и служат только для облегчения работы разработчика над исходным кодом большого объема. Инструкции определения Области относятся к препроцессору, хотя они не влияют ни на работу препроцессора, ни на дальнейшую компиляцию модуля, поскольку перед компиляцией они полностью исключаются из кода.

                    Области выделяются с помощью двух инструкций препроцессора:

                    • должно соответствовать общим требованиям к именам переменных (не может начинаться с цифры, содержать пробелы, знаки и символы и т.п.).
                    • области могут быть вложены друг в друга или в другие группируемые конструкции языка.
                    • 1С не рекомендует разрывать отдельные грамматические конструкции, выражения, а также объявления и места вызова процедур и функций.

                    Конфигурации применяют следующие области:

                    Три аннотации позволяют определить перехват порядка вызова типовых методов новыми методами.

                    • &Перед — перехватчик будет выполнен до того, как начнётся выполнение типового метода.
                    • &После — перехватчик будет выполнен после того, как выполнится типовой метод.
                    • &Вместо — реализует возможность полного перекрытия типового метода (типовой метод вообще не будет выполнен)
                      • в методе-перехватчике в произвольном месте можно вызвать типовой метод вызовом ПродолжитьВызов().

                      Для характеристики типов значений в 1С используется понятие мутабельность (от англ. Mutable — изменчивый), которое нуждается в разъяснении. Немутабельными типами являются простые типы (Число, Строка, Дата, Булево, Цвет, Ссылка), для которых определены пустые значения. Мутабельными типами являются сложные типы (Структура, Массив, СписокЗначений, ТаблицаЗначений, ДеревоЗначений, Объект, Форма и т.п.), свойства которых могут быть изменены после создания, а проверка на пустое значение лишена смысла.

                      Пусть требуется разработать программу, которая должна рассматривать точки на плоскости и находить среди них пару (одну), расстояние между которыми максимально.

                      Обсуждаем программу

                      • Блок 1. Получение исходных данных (т е координат точек на плоскости и количества этих точек). Эти данные можно или вводить с клавиатуры или генерировать как случайные числа. Можно придумать и другие варианты, например, определять координаты щелчка мышкой на форме.
                      • Блок 2. Можно включить в программу блок проверки исходных данных. Опять же здесь могут быть варианты реализации - например, вывести координаты точек в виде таблицы, можно эти точки изобразить графически в окне формы.
                      • Блок 3, в котором собственно и решается задача, т е отыскивается пара точек, наиболее удаленных друг от друга.
                      • Блок 4. Наконец, должен быть блок, выполняющий вывод результатов. Ясно, что его можно задумать тоже по-разному (если не задано в задании). Например, можно просто вывести номера найденных точек и расстояние между ними. Второй вариант - дополнительно вывести все возможные пары точек и расстояния. Третий вариант - дополнительно ко 2-му варианту сортировать эту таблицу по расстояниям. Четвертый - изобразить все точки графически на форме и найденные как-то выделить

                      Похоже, что это самое крупное структурное разбиение, потому что если какую то пару блоков объединить, то объединенный блок будет выполнять не одну, а две функции.
                      Примечание: В таком соединении иногда есть смысл. Например, ввод данных объединить с какими-то вычислениями, потому что при вводе с клавиатуры процессор почти все время свободен.

                      Если выделенные блоки могут применяться не только в разрабатываемой программе, но и в каких-то других программах или они должны исполняться несколько раз в программе (или и то и другое), то такие блоки обычно оформляют в виде подпрограмм. Мы так и сделаем. Описание таких вспомогательных подпрограмм обычно размещают в отдельном модуле, чтобы структура главного модуля была максимально ясной. Применение модулей имеет и другие достоинства.

                      А где же главный модуль и что он делает ?
                      Главный модуль обеспечивает интерфейс пользователя, например, на главной форме разместим переключатель для выбора вариантов получения исходных данных, переключатель для выбора варианта просмотра данных и варианта представления результатов. Полезно предусмотреть кнопку "Пуск" и кнопку для выхода (завершения работы). Конечно, что-нибудь забыто, но надеемся дополнить в ходе работы

                      Через некоторое время мне это не понравилось, решил, что на главной форме для вызова подпрограмм должно быть просто главное меню. И что можно добавить ввод и вывод данных с использованием файла (текстового, каждая строка - координаты точки).

                      • Подпрограмма ввода данных с клавиатуры.
                        • Имя - должно напоминать о сути подпрограммы, например - VvodKlav (не рекомендуется русские слова изображать латиницей), или InputFromKeyboard (лучше)
                        • Параметры - входные: число точек, минимальные и максимальные X Y (хотя это не обязательно); выходные: т е или массивы координат X, Y или массив записей типа TPointFloat.
                          (TPointFloat = record
                          X,Y: single;
                          end;)
                          Второе - удобнее, но требуется знание типа данных ЗАПИСЬ. Однако здесь возникает вопрос: какой размерности должен быть массив. Есть разные решения этой проблемы. Самое простое - использовать массив большой размерности, "с запасом", описанный глобально. Но это не дело. Существуют динамические массивы, размерность которых можно задавать и изменять в Run-Time, применим их.
                        • В итоге предлагается такой заголовок процедуры:
                          procedure InputFromKeyboard(NumPoints: integer; // число точек
                          MinX,MaxX,MinY,MaxY: double; // допустимые мин и макс значения координат.
                          var Coord: TCoord < массив координат точек.
                          Тип TCoord (TCoord = array of TPointFloat) не забудьте описать глобально > );
                        • Рекомендуется примерно так (с подробными комментариями) оформлять заголовки подпрограмм. Так как даже Вы сами, если придется редактировать программу через 6 или более месяцев - можете не вспомнить эти детали. Кроме того, имена формальных параметров должны напоминать об их смысле. Используется также стиль, когда в начало имени идентификатора помещается обозначение типа (так называемая ВЕНГЕРСКАЯ система именования идентификаторов, применяемая в заголовках подпрограмм Win API. (см исходник Windows.pas)).
                          Пример такого заголовка:
                          function VirtualAllocEx(hProcess: THandle; lpAddress: Pointer; dwSize, flAllocationType: DWORD; flProtect: DWORD): Pointer; stdcall;
                        • Заголовок: procedure RandomData(NumPoints: integer; MinX,MaxX,MinY,MaxY: double; var Coord: TCoord);
                        • Заголовок: procedure ShowTabPoints(NumPoints: integer; MinX,MaxX,MinY,MaxY: double; var Coord: TCoord);
                        • Заголовок: procedure ShowGraphPoints(NumPoints: integer; MinX,MaxX,MinY,MaxY: double; var Coord: TCoord);
                        • Заголовок: procedure CalcMax(NumPoints: integer; MinX,MaxX,MinY,MaxY: double; var Coord: TCoord;
                          var N1,N2: integer );
                        • Заголовок: procedure ShowGraphPoints(NumPoints: integer; MinX,MaxX,MinY,MaxY: double; var Coord: TCoord; N1,N2: integer);
                          То есть прежний заголовок недействителен, т к эта процедура будет выполнять 2 функции

                        Думаю, что этап разработки заголовков подпрограмм был не лишним. Теперь нужно выбрать стиль продолжения разработки. Можно сосредоточиться на детальной разработке всех (по очереди) или некоторых подпрограмм, а затем организовать их вызов из главной формы. А можно действовать наоборот: вначале создать главное меню и обеспечить вызовы подпрограмм (которые пока заменить заглушками), а потом заняться детальной разработкой подпрограмм, начиная с тех, которые можно проверять и отлаживать не дожидаясь готовности остальных. Отметим, что заголовки заглушек совпадают с заголовками "настоящих" подпрограмм, т е являются окончательными, меняется только тело (т е: begin -операторы- end). Для этой программы выберу 2-й стиль.

                        Детально (1-й этап):

                        2-й этап

                        На разработку всех запланированных процедур не хватило терпения, созданы наиболее интересные. В совокупности они решают поставленную задачу.

                        В системе 1С:Предприятие существуют несколько видов программных модулей. Они различаются по месту размещения и доступному контексту.

                        Модуль управляемого приложения

                        Модуль управляемого приложения располагается в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы с установленном в значение "Управляемое приложение" свойства Основной режим запуска. В модуле управляемого приложения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации (кроме модуля внешнего соединения). Их доступность также обеспечивается для неглобальных общих модулей с установленным свойством Клиент (управляемое приложение). В контексте модуля управляемого приложения доступны экспортируемые процедуры и функции общих модулей.

                        Модуль сеанса

                        Модулем сеанса называется модуль, который автоматически выполняется при старте системы 1С:Предприятие 8 в момент загрузки конфигурации.

                        Модуль сеанса предназначен для инициализации параметров сеанса и отработки действий, связанных с сеансом работы. Модуль сеанса всегда исполняется в привилегированном режиме в кластере серверов 1С:Предприятия 8.

                        Важно! Модуль сеанса может содержать только определения процедур и функций.

                        Модуль сеанса не содержит экспортируемых процедур и функций и может использовать процедуры из общих модулей конфигурации.

                        Модуль внешнего соединения

                        Модуль внешнего соединения расположен в корневом разделе конфигурации. В нем располагаются процедуры-обработчики событий, которые инициализируются при старте и окончании работы системы в режиме внешнего соединения (СОМ-соединения).

                        В модуле внешнего соединения возможно объявление переменных, а также объявление и описание процедур и функций, которые будут доступны для внешнего приложения, а также для неглобальных общих модулей с установленным свойством Внешнее соединение.

                        Объекты 1С:Предприятия, доступные извне через COM-соединение:

                        • Экспортируемые переменные и процедуры/функции модуля внешнего соединения
                        • Экспортируемые процедуры/функции общих модулей
                        • Включение и исключение модулей целиком с помощью установки свойств общих модулей
                        • Включение и исключение фрагментов общих модулей с помощью препроцессора
                        • Глобальный контекст 1С:Предприятия 8
                        • За исключением объектов, жестко связанных с клиентским приложением (ТекстовыйДокумент, ТабличныйДокумент, . )

                        Модуль присутствует только в сессии внешнего соединения.

                        В данном режиме характерно полное отсутствие пользовательского интерфейса.

                        Модуль обычного приложения

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

                        Общие модули

                        Общие модули располагаются в отдельной ветке дерева метаданных. Основным назначением общих модулей является содержание общих алгоритмов конфигурации, доступных из разных модулей. В общих модулях отсутствует раздел определения переменных и раздел основной программы, то есть они содержат только раздел процедур и функций (см. раздел "Структура программного модуля").

                        В любом общем модуле возможно объявление и описание процедур и функций, которые будут доступны в любом модуле конфигурации.

                        Если используется клиент–серверный вариант системы 1С:Предприятие 8, то с помощью свойств Клиент (обычное приложение), Клиент (управляемое приложение) и Сервер, а также инструкций препроцессора можно организовывать выполнение различных процедур и функций общих модулей на сервере приложения или на клиентском месте.

                        Если установлено свойство Клиент (обычное приложение) или Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в клиентском приложении.
                        В контексте неглобального общего модуля с установленным свойством Клиент (обычное приложение) доступны экспортируемые переменные, процедуры и функции модуля обычного приложения.
                        В контексте неглобального общего модуля с установленным свойством Клиент (управляемое приложение) доступны экспортируемые переменные, процедуры и функции модуля управляемого приложения.

                        Важно! Свойство Клиент (обычное приложение) показывается, если в настройках конфигурации режима запуска установлен режим "Управляемое приложение и обычное приложение".

                        Если установлено свойство Сервер, то все процедуры и функции общего модуля могут использоваться в клиент-серверном варианте.

                        Если предполагается, что процедуры и функции общего модуля могут быть использованы во внешнем соединении, то следует установить свойство Внешнее соединение.
                        В контексте неглобального общего модуля с установленным свойством Внешнее соединение доступны экспортируемые переменные, процедуры и функции модуля внешнего соединения.

                        Свойство Вызов сервера разрешает вызов сервера. Свойство доступно, если установлено свойство Сервер. Если не установлено, то процедуры и функции данного модуля доступны только на сервере. Если установлено, то процедуры и функции данного модуля доступны на клиенте.

                        Свойство Привилегированный предназначено для установки полных прав доступа при выполнении действий с базой данных в процедурах и функциях общего модуля. При установленном свойстве выполнение производится только на сервере.

                        Повторное использование возвращаемых значений. Свойство доступно, если общий модуль не является Глобальным. Это свойство может принимать следующие значения:

                        • Не использовать – повторное использование возвращаемых значений для функций этого общего модуля не используется;
                        • На время вызова и На время сеанса – для общего модуля используется метод определения повторного использования данных. Суть этого метода заключается в том, что в ходе выполнения кода система запоминает параметры и результат работы функций после первого вызова функции. При повторном вызове функции с такими же параметрами, происходит возврат запомненного значения (из первого вызова) без выполнения самой функции. Если функция во время своего выполнения меняет значения параметров, то повторный вызов функции не будет это делать.

                        Можно выделить следующие особенности сохранения результатов вызова:

                        • если функция выполняется на сервере и вызывается из серверного кода, то значения параметров и результат вызова запоминаются для текущего сеанса на стороне сервера;
                        • если функция выполняется на толстом или тонком клиенте, то значения параметров и результатов вызова запоминается на стороне клиента;
                        • если функция выполняется на стороне сервера, а вызывается из клиентского кода, то значения параметров вызова запоминаются и на стороне клиента и на стороне сервера.

                        Сохраненные значения удаляются:

                        • если свойство установлено в значение На время вызова:
                          • на стороне сервера – при возврате управления с сервера;
                          • на стороне клиента – при завершении работы процедуры или функции встроенного языка верхнего уровня (вызванной системой из интерфейса, а не из другой процедуры или функции встроенного языка).
                          • на стороне сервера – при окончании сеанса;
                          • на стороне клиента – при закрытии клиентского приложения.

                          Сохраненные значения могут быть удалены:

                          • после долгого неиспользования (более 5 минут);
                          • при нехватке оперативной памяти в рабочем процессе сервера;
                          • при перезапуске рабочего процесса;
                          • при переключении клиента на другой рабочий процесс.

                          После удаления значений, вызов экспортной функции выполняется как при первом вызове.

                          Свойство Глобальный определяет, являются ли экспортируемые методы общего модуля частью глобального контекста.
                          Если свойство Глобальный установлено в значение Истина, то экспортируемые методы общего модуля доступны как методы глобального контекста.

                          Если свойство Глобальный установлено в значение Ложь, то в глобальном контексте создается свойство с именем, соответствующим имени общего модуля в метаданных. Данное свойство доступно ТОЛЬКО для чтения. Значением данного свойства является объект ОбщийМодуль. Через данный объект доступны экспортируемые методы данного общего модуля. Таким образом, обращение к методам неглобальных общих модулей выглядит как XXXXX.YYYYY, где XXXXX – это имя свойства общего модуля, а YYYYY – имя экспортируемого метода общего модуля.

                          Если установлено свойство Клиент (обычное приложение), то модуль загружается в толстом клиенте в режиме обычного приложения.

                          Если установлено свойство Клиент (управляемое приложение), то все процедуры и функции общего модуля могут использоваться в режиме Управляемое приложения, в тонком клиенте, в веб-клиенте.

                          Модули с установленным свойством Клиент (обычное приложение), проверяются для режимов запуска:

                          • Толстый клиент (обычное приложение);
                          • Толстый клиент (обычное приложение) вариант клиент-сервер.

                          Модули с установленным свойством Клиент (управляемое приложение), проверяются для режимов запуска:

                          • Толстый клиент (управляемое приложение);
                          • Толстый клиент (управляемое приложение) вариант клиент-сервер;
                          • Тонкий клиент;
                          • Веб-клиент.
                          Модули общих объектов

                          Некоторые общие объекты имеют собственные модули. К таким объектам относятся:

                          Модули располагаются в ветках конфигурации, в которых содержатся сами объекты и являются свойствами объектов. Каждый объект имеет свой индивидуальный модуль. В этих модулях возможно объявление переменных, процедур и функций, которые будут доступны при работе с объектом извне во встроенном языке, дополняя контекст объекта.

                          Модули прикладных объектов

                          Набор прикладных объектов имеет собственные модули. К таким объектам относятся:

                          • менеджеры значения константы;
                          • справочники;
                          • документы;
                          • отчеты (внешние отчеты);
                          • обработки (внешние обработки);
                          • планы видов характеристик;
                          • планы счетов;
                          • планы видов расчетов;
                          • бизнес-процессы;
                          • задачи;
                          • регистры.

                          Модули располагаются в ветках конфигурации, в которых содержатся сами объекты и являются свойствами объектов. Каждый объект имеет свой индивидуальный модуль. В этих модулях возможно объявление переменных, процедур и функций, которые будут доступны при работе с объектом извне во встроенном языке, дополняя контекст объекта.

                          В контексте модуля прикладного объекта есть доступ к реквизитам и табличным частям объекта, а также его методам и событиям.

                          Модули менеджеров прикладных объектов

                          Каждый прикладной объект имеет менеджер, предназначенный для управления этим объектом, как объектом конфигурации. С помощью менеджера можно создавать объекты, работать с формами и макетами. Модуль менеджера позволяет расширить функциональность менеджеров за счет введения процедур и функций на встроенном языке. Фактически, это позволяет описать методы для объекта конфигурации (например, справочника), которые относятся не к конкретному экземпляру объекта базы данных, а к самому объекту конфигурации.
                          Контекст модуля менеджера образуется из:

                          • глобального контекста, в том числе экспортируемых функций общих модулей (если для модулей установлено свойство Клиент (обычное приложение), Клиент (управляемое приложение) или Сервер);
                          • экспортируемых переменных, процедур и функций модулей управляемого или обычного приложений;
                          • локальных и экспортируемых функций самого модуля.

                          Модуль менеджера не может иметь переменных и тела модуля.

                          Если функции или процедуры модуля менеджера объявлены как экспортируемые, к ним можно будет получить доступ через менеджер объекта.

                          Пример:
                          Модуль менеджера:

                          Вызов из прикладного кода:

                          Модули команд (модули общих команд)

                          Для нестандартных команд требуется написать процедуру ее выполнения. Для этого служит модуль команды, в котором можно написать предопределенную процедуру ОбработатьКоманду(). Данная процедура должна предваряться директивой компиляции &НаКлиенте, так как выполнение команды происходит в клиентском приложении.

                          Модули управляемых форм

                          Модуль состоит из набора процедур и функций. Переменные модуля и тело модуля не допускаются.

                          Модули форм

                          Эти модули содержатся в формах конфигурации. Каждая форма имеет свой индивидуальный модуль. В этих модулях возможно объявление переменных, процедур и функций, которые будут доступны при работе с формой извне во встроенном языке, дополняя контекст формы.

                          В контексте модуля формы доступны реквизиты формы, а также ее свойства, методы и события. Если у формы назначен основной реквизит, то в модуле формы становятся доступны свойства и методы прикладного объекта, используемого в качестве основного реквизита.


                          1C:Enterprise


                          Script


                          General Script Description


                          Source text format in program modules


                          What is a program module?


                          Context for executing programming modules


                          Program modules types

                          Читайте также: