Перейти к содержимому

Как открыть модуль документа в 1с

  • автор:

Программные модули в «1С:Предприятии 8»

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

Общие модули Общие модули принадлежат всей конфигурации в целом, но, в отличие от модуля приложения (см. ниже), их может быть несколько, например, модули РасчетНалогов , ОбработкаДокументов . Общие модули не могут содержать объявлений переменных, и в них нет раздела основной программы, таким образом, они состоят только из процедур и функций
Модуль приложения Это модуль, который относится ко всей конфигурации в целом и может быть только один. Модуль приложения является аналогом глобального модуля в версии 7.7. Он отвечает за пользовательскую сессию (сеанс) работы с «1С:Предприятием 8»
Модуль внешнего соединения Если конфигурация запускается не в режиме клиентской сессии, а через COM-соединение, то вместо модуля приложения используется модуль внешнего соединения, который в конфигурации может быть только один
Модули объектов У некоторых прикладных объектов конфигурации могут быть собственные модули, например, модуль документа РасходнаяНакладная , модуль справочника Номенклатура . Не следует их путать с модулями форм этих объектов
Модули форм У каждой формы есть модуль, в котором определяется поведение формы и действия, выполняемые из нее, например, открытие других форм

На следующем рисунке показано расположение всех этих модулей:

Разделы программного модуля

Любой программный модуль, за исключением общих модулей, состоит из следующих разделов:

  • раздел объявления переменных,
  • раздел процедур и функций,
  • раздел основной программы.

Внимание! У общих модулей есть только раздел процедур и функций.

Контекст

Контекст — очень важное понятие при программировании на любом языке. В «1С:Предприятии 8» контекст обозначает окружение модуля, т. е. какие ему будут доступны переменные, объекты, свойства, методы и события.

Можно выделить следующие виды контекстов, существующих в «1С:Предприятии 8»:

Глобальный контекст , доступный во всех остальных контекстах, состоит из следующих частей:

  • свойства, методы и события глобального контекста (например, свойство РабочаяДата ),
  • системные перечисления и системные наборы значений (например, КодВозвратаДиалога и Символы ).

В контексте модуля приложения (или модуля внешнего соединения) доступны экспортируемые процедуры и функции общих модулей.

В контексте общего модуля доступны экспортируемые процедуры и функции других общих модулей. В этом контексте недоступны экспортируемые переменные, процедуры и функции модуля приложения.

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

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

Необходимо помнить правила видимости экспортируемых переменных, процедур и функций различных модулей:

  1. В общем модуле недоступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения).
  2. В модуле приложения (модуле внешнего соединения) доступны экспортируемые процедуры и функции общих модулей.
  3. В общих модулях доступны экспортируемые процедуры и функции других общих модулей.
  4. В модулях прикладных объектов и модулях форм доступны экспортируемые переменные, процедуры и функции модуля приложения (модуля внешнего соединения), а также экспортируемые процедуры и функции общих модулей.
  5. Если у формы назначен основной реквизит, то контекст модуля формы содержит дополнительные свойства и методы, связанные с основным реквизитом. Например, в модуле формы элемента справочника Номенклатура доступны свойства и методы объекта СправочникОбъект.Номенклатура .

Проиллюстрируем применение первых четырех правил на следующей схеме:

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

Как открыть модуль

При первом запуске модуля или последующем обновлении могут понадобиться права администратора 1С.

Скачать последнюю версию модуля можно по ссылке https://www.diadoc.ru/1C-PRO. Открывать файл с модулем следует только в 1С.

Способ 1. Чтобы открыть модуль, как обычный файл

  1. Нажмите на значок главного меню 1С сверху слева или сверху справа и выберите пункт меню «Файл» → «Открыть».
  2. В открывшемся окне выберите скачанную ранее обработку Diadoc1C_хх_хх.epf.
  3. При появлении окон с предупреждением, нажмите «Да».

Способ 2. Чтобы подключить внешнюю обработку

  1. Откройте справочник «Дополнительные отчеты и обработки». В зависимости от конфигурации 1С путь до справочника может отличаться:

В БП 3.0, БП КОРП 3.0 выберите пункт меню «Администрирование» → «Печатные формы, отчеты и обработки»→ «Дополнительные отчеты и обработки».

В ERP УП 2 выберите пункт меню «НСИ и администрирование» → «Администрирование» → «Печатные формы, отчеты и обработки»→ «Дополнительные отчеты и обработки».

В БП 2.0, БП КОРП 2.0 выберите пункт меню «Сервис» → «Дополнительные отчеты и обработки»→ «Дополнительные внешние обработки».

В УТ 10.3, КА 1.1 выберите пункт меню «Сервис» → «Внешние печатные формы и обработки»→ «Внешние обработки».

В УПП 1.3 выберите пункт меню «Сервис» → «Дополнительные внешние отчеты и обработки»→ «Обработки».
В АА 5.1 выберите пункт меню «Сервис» → «Внешние обработки и отчеты»→ «Обработки».

  1. Нажмите «Создать».

В конфигурациях БП 2.0, БП КОРП 2.0, УПП 1.3, УТ 10.3, КА 1.1, АА 5.1:

    Нажмите «Добавить».

Укажите «Наименование» и с помощью кнопки выберите файл с модулем Диадока.

Если список обработок пустой, нажмите на ссылку «Настроить список» и выберите обработку модуля Диадок. Нажмите «ОК».

Если появится окно «Хранение данных», значит вы используете не стандартную 1С и нужно обновить конфигурацию 1С. Подробнее см. в статье Обновление базы 1С.

Как открыть модуль документа в 1с

Как открыть модуль документа — Документ.Операция (7.7)? Очень хочется туда кое-что дописать. Знаю что МОД при своей инсталяции туда прописывается.
А обычным способом туда можно попасть?

Операция — Редактировать операцию — Модуль
Пожалуйста по подробнее.

2(0) У операции нет модуля. Есть только форма. Доступна в ветке метаданных «Операция». В ней можно написать процедуру ПриЗаписи().

Операция имеется в виду та, которая находится следом после «Субконто» в ветке метаданных. Становишься на ней, жмешь правую кнопку миши дальше Редактировать форму, там есть закладка «Модуль»

Спасибо конечно. Но у Документа.Операция есть модуль проведения. МОД прописывает в него (при установке) процедуры: ОбработкаПроведения() и т.д. В базе где МОД установлен до модуля можно добраться через поиск во всех текстах. А без МОДа, есть возможность как-то туда влезть?

Попробуй ActiveMD.

А какой смысл туда дописывать?
Сейчас проверил, этот модуль ни при #Записать, ни при #Провести
даже не загружается.

А открыть в Конфигураторе его можно так:
Установив опенконф выполнить макрос:
Documents(«Документ.Операция.Модуль Документа»).Open

Спасибо. Сейчас попробую.
(7) при вводе ручной проводки хочется по определенному условию сделать еще одну, а может несколько. На юзверя надеятся не приходится (обязательно забудет)

2(9) А что будешь делать, когда пользователь что-нибудь поменняет в этой операции? Или выключит проводки? Или удалит? А потом восстановит? Ссылки на порожденные операции где хранить будешь?

(9) чем тебе ПриЗаписи не подходит? результат практически тот же..

При записи я смогу создать новую проводку? если да, то это тоже выход.
А в модуле проведения (я думаю) можно написат процедуру отмены проведения и тому подобное.
Кстати ActiveMD помог. С его помощью Внес текст в модульОперации. Потом нашел его по поиску и теперь могу делать все что захочется
Всем СПАСИБО.

Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn

Как открыть модуль документа в 1с

Любая программа состоит из программного кода, то есть собственно из написанных на каком-либо языке последовательности действий, которые должны быть выполнены.

Однако эта самая программа должна быть где-то написана, то есть где-то находиться. В большинстве случаев код программы пишется в обычных текстовых файлов. Разница только в том, что расширение в них не .txt, а .cpp или .php.

Где пишется программа 1С?

Что такое Модуль 1С?

Конечно код 1С можно было бы тоже написать в каком-нибудь текстовом файле. Однако есть понятие Конфигурация 1С – которое включает в себя не только список настроек, шаблонов форм и прочего, но и программный код 1С. Поэтому код 1С хранится в конфигурации.

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

Каждый объект 1С, включая некоторые вложенные, имеет свой Модуль – некий текстовый файл, который содержит программный код.

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

Таким образом в 1С нет «единой» программы. Есть набор модулей для написания программного кода для каждого объекта конфигурации 1С.

Как используются Модули 1С?

Всю программу можно грубо поделить на два вида:

  • Метод объекта
  • Реакция на события.

Методы. Как мы уже говорили ранее – объект 1С является цельной структурой, которая включает в себя как данные, так и способы их обработки. Эти способы – это набор действий (методов), которые можно вызывать для обработки данных. Пример такого действия СправочникОбъект.Записать() – записывает элемент справочника в базу данных.

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

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

Пользовательское события – пользователь нажал кнопку. В ответ какая-то часть кода выполнится, осуществив реакцию на действия пользователя.

Системные события – мы записали объект 1С в базу данных. Возникло системное событие «Запись объекта». Возможно настроить реакцию, которая возникнет на события, вызванные не пользователем (которые нажал на кнопку или что-то еще сделал), а самой системой. Яркий пример такого события – при запуске программы.

Порядок выполнения модулей 1С

Во многих языках есть такое понятие как «точка входа». Это та самая первая строчка или функция которая будет выполнена при запуске программы.

В 1С таких точек входа несколько – на каждый вид клиента. То есть при запуске толстого клиента точка входа одна, при запуске тонкого клиента – другая. Это позволяет запрограммировать особенности, различные в разных видах клиентов.

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

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

Работа с модулями 1С

Производится в конфигураторе. Открыть модуль можно с помощью окна Конфигурация.

  • Модули точки входа (в разрезе разных клиентов) можно открыть нажав правой кнопкой на верхнем элементе окна конфигурации. Называться он может по разному, но находится всегда в самом верху.
  • Общие, независимые от объектов 1С модули, находятся в ветке Общие / Общие модули. Просто нажмите на него два раза мышкой и он откроется.
  • Модули форм, где прописывается реакция на нажатие кнопок, меню и прочего интерфейсного находятся непосредственно в редакторе формы. Раскройте любую ветку объекта (справочник, документ и т.п.) до форм, нажмите два раза мышкой на форму – отроется редактор. Внизу редактора будет три закладки, одна из которых – модуль.
  • В 1С версии 8.2 появилось понятие Команда 1С. Это самостоятельное действие, которое можно вытащить на форму в виде кнопки или меню. В ветке Общие / Общие команды находятся команды, которые можно использовать в любом другом месте конфигурации. Каждая из команд имеет свой собственный модуль.
  • Модули объектов. У каждого объекта 1С (справочник, документ и прочее) есть свой модуль. Там могут быть прописаны реакции на такие системные события как Запись() или Удаление(), а также созданы новые методы объекта. Нажмите правой кнопкой мыши на конкретный объект, например справочник Номенклатура. Модуль объекта – это модуль конкретного элемента этого справочника. Модуль менеджера – это модуль управления элементами справочника (документа..).

Состав модуля 1С

Модуль состоит из набора функций и процедур – т.е. обработчиков событий и методов.

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

В самом низу модуля можно расположить программный код без оформления процедуры или функции. Это можно назвать автостартом конкретного модуля. При попытке первого обращения к любой процедуре или функции этого модуля – будет выполнен автостарт (код внизу модуля).

Обычно его используют для начального заполнения переменных расположенных в начале модуля.

Клиент и сервер 1С

В серверном варианте 1С разные части программы выполняются на клиентской машине или на сервере. Зачем это нужно мы обсудим потом, для начала можно взять хотя бы производительность клиентского компьютера и сервера.

У общих модулей (Общие / Общие модули) есть свойства. Нажмите правой кнопкой мыши и далее – свойства. Галочками можно отметить где будет доступен этот модуль.

Также один модуль может выглядеть по разному если запущен на сервере или клиенте. Для этого есть специальные директивы, указываемые прямо в коде программы: #Если Клиент и #Если Сервер.

Клиент и Сервер видят только те части модуля, которые находятся между этими директивами. Если директив нет – модуль виден весь.

В версии 1С 8.2 для тонкого клиента можно указывать для каждого метода и обработчика где он будет выполняться. Для этого непосредственно перед функцией или процедурой указывается &НаСервере и &НаКлиенте. При этом клиентские функции могут вызывать серверные, но не наоброт.

Сообщение между модулями 1С

Каждый модуль существует сам по себе и в него нет точек входа извне – из других модулей.

Если мы хотим создать метод или переменную, видимую из другого модуля, она помечается словом ЭКСПОРТ.

Однако большое количество модулей и правил клиент-сервера пораждает некоторое количество проблем у программиста с использованием модуля извне. Где-то все просто, а где-то можно тупить пол часа – почему написано ЭКСПОРТ, но вызов оканчивается ошибкой «метод не найден..».

Контекст – это очень сложное потому что очень расплывчатое понятие.

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

Что бы это значило? ��

Проголосовать за этот пост:

Добавить комментарий

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