Параметр стандартная обработка 1с
Итак, что же такое параметр?
Параметр – это значение, передаваемое в форму при открытии. Параметр может иметь любой тип и принимать любое значение.
Зачем нужен параметр?
Параметр нужен для передачи в форму дополнительных значений. Например: откуда открыта форма.
Как передать параметр?
Параметр передается в форму при открытии. Например:
Как получить параметр в открывшейся форме?
Получить параметр, переданный в форму, мы можем таким образом:
Как передать несколько значений?
Поскольку параметр может принимать любое значение, он может принимать значение типа Список. Пример
Пример обработки его в открывшейся форме:
Что такое контекст формы?
Контекст – это идентификатор формы, что-то вроде ее имени. Он используется для того, чтобы точно указать программе, к какой форме вы обращаетесь. То есть с помощью контекста можно обращаться к одной форме из другой.
Как работать с контекстом?
Все довольно просто. Для того, чтобы с контекстом работать, его надо сначала передать.
Передается он с помощью параметра. Например:
Но правильнее будет воспользоваться такой процедурой в глобально модуле:
использовать ее нужно так:
Для закрепления полученных знаний приведем практический пример.
Создадим тестовую обработку, и назовем ее Пример. Добави на нее кнопку Закрыть для закрытия формы. Теперь добавим на нее Текстовый реквизит и пропишем ему в поле Формула ТР. Также в модуле формы пропишем:
Теперь откроем форму списка справочника Номенклатура и добавим туда кнопку. В формуле кнопки напишем
Запустите 1С, откройте справочник номенклатуры, нажмите кнопку. Откроется форма и там будет наименование выбранной номенклатуры. Мы передали параметр.
Теперь передадим несколько значений. У кнопки поменяем формулу на ОткрытьПример(). Опишем процедуру:
В обработке перепишем:
Пробуем. В зависимости от того, группа или нет, текущий элемент, в обработке пишется полное наименование или обычное.
Теперь поработаем с контекстом. Перепишем процедуру ОткрытьПример:
Изменим и обработку:
В текстовом реквизите на обработке в формулу пропишем Надпись() и приделаем туда еще одну кнопку Обновить у которой в формулу пропишем Форма.Обновить()
Запускаем. При открытии в текстовом реквизите высвечивается текущий элемент справочника, но при его смене надпись не меняется, а меняется она только после нажатия кнопки Обновить. То есть текстовый реквизит на форме не обновляется. Незадача? Давайте решим и ее. Оказывается, при открытии формы можно получить и ее контекст из места открытия. В форме списка справочника объявим переменную ПримерКонт. Перепишем процедуру ОткрытьПример:
Теперь в функции какого-нить текстового реквизита (например ИнформационнаяНадпись()), пропишем такие строки:
Опытные программисты 1С стараются свести количество изменений в основной конфигурации к минимуму, чтобы обновление не занимало слишком много времени. Но пользователи хотят автоматизировать свои рутинные действия и просят помочь им, сделав «дополнительную кнопку с требуемым функционалом». Обойтись без изменений типовой конфигурации или внести их как можно меньше помогут нам обработки.
Обработки – это специальный объект конфигурации, предназначенный для изменения информации в базе данных или создания нового функционала для администратора или пользователей.
Классификация обработок
В момент создания обработка не выполняет никаких действий. Для чего она предназначена и что будет выполнять – полностью зависит от программиста, который ее пишет, поэтому понятий «типовые обработки в 1С» или «стандартные обработки в 1С» просто не существует. Но все же по своим функциям все обработки 1С можно условно разделить на следующие группы:
- Отельные наборы функций и процедур, подобие объекта или класса. Программисты могут использовать их как библиотеку или пользоваться всеми прописанными в обработке кусками кода, если включат ее в конфигурацию. В качестве примера можно привести функции печати, объединенные разработчиками типовых конфигураций в одном месте;
- Вспомогательные обработки. Выполняют автоматизацию небольшого участка механической работы или предоставляют пользователям данные в требуемом виде. Сюда входят автоматизированные рабочие места, групповая обработка 1С документации, импорт или экспорт данных и др.;
- Дополнительные инструменты работы с данными. Это специализированные обработки чаще всего позволяющие работать с любой конфигурацией и базой данных.
Внешняя обработка 1С 8.3 второго и третьего типов очень часто используется программистами в повседневной деятельности. Каждый опытный разработчик 1С имеет свой набор «помощников» – отдельных файлов с процедурами на все случаи жизни. Благодаря этому он способен выполнять некоторые задачи лишь подправив пару строк кода: загрузка или выгрузка данных, обработка справочника или документов, формирование печатной формы – не составит труда для разработчиков.
После того как программист решил создать обработку, ему необходимо понять, куда ее нужно добавлять. Не нужно спешить открывать конфигуратор – типовые конфигурации поддерживают возможность добавления внешних дополнительных обработок. Их отличительная черта заключается в отсутствии необходимости изменять основную конфигурацию и, соответственно, упрощении обновления. Также их могут подключать к конфигурации даже рядовые пользователи, а не только администраторы, как встроенные в систему обработки.
Чтобы узнать перечень обработок, подключенных к вашей конфигурации, необходимо зайти в нее в режиме конфигуратора. Нажмите на меню «Конфигурация» -> «Открыть конфигурацию». Слева откроется окно, в котором можно найти все объекты конфигурации, куда входят и встроенные обработки.
Рис.1 Открыть конфигурацию
Чтобы увидеть перечень внешних обработок уже подключенных к конфигурации, необходимо запустить 1С в режиме предприятия. В программе УТ интересующий нас список находится в разделе «Сервис», в меню «Внешние печатные формы и обработки». В других типовых продуктах компании 1С его можно найти в разделах «НСИ и Администрирование» и аналогичных.
Отдельно стоит сказать о том, как открыть внешнюю обработку, автором которой вы не являетесь. В интернете дополнительные обработки 1С можно скачать на многих сайтах, большинство из которых призвано помогать коллегам. Но встречаются случаи, когда обработка 1С, небрежно запущенная через меню «Файл» -> «Открыть», ломала рабочую базу огромной компании. Незнакомые дополнительные универсальные обработки сначала открывайте в конфигураторе и тщательно проверяйте весь код, чтобы не допустить ужасных последствий.
Как подключить внешнюю обработку к 1С
Создание обработок в отдельные файлы и подключение их к базе 1С – одно из основных умений администратора. Вы скачали и проверили или самостоятельно написали отличную обработку, которая поможет вам и вашим пользователям работать в 1С. Теперь перед вами стоит задача добавить обработку в конфигурацию, чтобы сотрудники вашей компании пользовались новым функционалом.
Работа с обработками представляет собой простой алгоритм действий, после выполнения которого, вы сможете провести контрольную проверку и сообщить об окончании работ по разработке функционала:
- Открываем список внешних обработок, подключенных к базе. Выше уже говорилось, где искать этот перечень;
- Нажмите «Создать» и 1С откроет окно выбора файлов, через которое необходимо указать, где размещена обработка данных 1С;
- После выбора 1С самостоятельно распознает тип внешней обработки (вы должны были заранее прописать его в модуле объекта). Автоматически заполняться некоторые поля – вид, имя файла, версия, имя команды, наименование и другие;
- Также 1С прочитает из обработки, где ее стоит расположить – в документах, справочнике или специальном разделе для дополнительных обработок. Причем разработчики могут добавить вызов обработки только для форм некоторых документов или справочников;
- Чтобы пользователи могли увидеть новый функционал, необходимо установить параметр «Публикация» в значение «Используется».
Рис.2 Как подключить внешнюю обработку к 1С
Для некоторых видов внешних обработок существует возможность задать пользователей, у которых в интерфейсе появится новая функция или расписание. Регламентные или фоновые задания – отдельный тип обработок, которые могут выполняться без участия пользователя. Это удобный функционал в тех случаях, когда нужно автоматизировать рутинную работу или чтобы запускалась групповая обработка 1С по документам. Также они могут помочь, если сервер слабый – все обработки можно запускать в вечернее время, когда активных пользователей в базе нет.
Рис.3 Обработка по расписанию
Настройка расписания в 1С богата вариантами, но даже неподготовленный пользователь сможет разобраться в принципах за несколько минут. В нижнем поле в зависимости от расставленных значений формируется описание распорядка, когда нужно запустить обработку и как она будет выполняться. Чтобы проверить правильность выполнения можно использовать журнал регистрации – в нем фиксируются дата и время начала и окончания обработки.
Многие компании-франчайзи строят свое внедрение исключительно на создании обработок – они разрабатывают автоматизированные рабочие места и подключают их. То есть заменяют стандартный интерфейс 1С со сложными названиями собственноручно разработанным по пожеланиям пользователей. А по введенным данным на стороне сервера происходит обработка документа 1С 8.3 незаметно для глаз сотрудников компании. Ничего не мешает вам использовать этот опыт и значительно облегчить пользователям обработку данных в программе 1С.
Иерархическому справочнику Номенклатура добавили реквизит Услуга (Булево).
Этому реквизиту задали использование для группы и элемента.
И представление - Заполнять из данных заполнения.
Нужно смотреть - есть ли у группы признак Услуга.
Если есть - при создании нового элемента признак Услуга должен устанавливаться.
Нет - не устанавливать, соответственно.
В модуле объекта справочника Номенклатура:
, то это не очень хорошо - если стоит отбор по реквизиту Услуга, то система и так отработает, без нашего кода.
Давайте сделаем СтандартнуюОбработку. Это правильнее.
Я поэкспериментировал с параметром - СтандартнуюОбработка = Ложь;
- это не стандартная обработка.
- Это стандартная обработка.
Только вот не могу понять, почему это стандартная обработка? Т.е. где признак стандартной обработки?
8.3 Упр.прил - Конвертация из 7.7
Конфигурация на 7.7 имеет свою структуру на 8.3 пишется сейчас и имеет свою. Вопрос как можно.
8.3 Упр.прил.: ДеревоЗначений и .НайтиСтроки
Ситуация такая, нужно вывести на экран дерево с отбором строк. Делаю это путем полного.
8.3 Упр.прил.: Дерево из Запроса ?
Есть справочник с группами и элементами - нужно получить дерево с видом: Группа Элемент.
8.3 Упр.прил. - Оптимизация работы с переменными ?
Все на клиенте: Одна процедура заполняет массив неизвестного размера, другая должна его.
Ты бы хоть обрисовал ситуацию: через что происходит заполнение, в каких событиях.
СтандартнаяОбработка - это системный флаг для ленивых программистов. Перехватив событие, ты можешь не маяться с доведением его до конца, если оставить флаг поднятым (тру), типа "Ой! Я не брал!" и система доведёт дело сама. Но если ты серьёзно взялся, тогда сбрасываешь флаг, и всё на тебе: выборы, заполнения и пр. хрень. Этот флаг параметром передаётся во все события, где это нужно.
Вы мне немного встряхнули мозги.
Или просто с утра виднее стало. В общем, я только что допер, что если флаг СтандартнаяОбработка сбросить, то ДанныеЗаполнения будут "неопределено".
Ваш вопрос, не совсем понял вопрос, извините, пожалуйста.
Постараюсь ответить - как смогу.
На картинке мой справочник. Если галка "Услуга" для группы стоит, то всем элементам этой группы надо по умолчанию поставить галочку "Услуга". Т.е. без всякого отбора - только в зависимости от галочки у группы.
Событие - в модуле объекта ОбработкаЗаполнения.
Теперь не могу понять, почему правильнее написать
"ДанныеЗаполнения.Вставить("Услуга", ДанныеЗаполнения.Родитель.Услуга)", а не
"Услуга = ДанныеЗаполнения.Родитель.Услуга".
В видеокурсе объясняют: "Услуга = ДанныеЗаполнения.Родитель.Услуга" не очень хорошо по одной причине. Признак Услуга у нас - это реквизит справочника. В реквизите справочника у нас поставлено "Заполнять из данных заполнения". А это значит, что если в данных заполнения при отрабатывании этой процедуры будет найден ключ Услуга, то принудительное заполнение реквизитов устанавливать не нужно. Лучше написать "ДанныеЗаполнения.Вставить("Услуга", ДанныеЗаполнения.Родитель.Услуга)".
Т.е. не устанавливать значение напрямую, а передать стандартному механизму 1С: Предприятие инструкцию заполнить эти значения при отрабатывании процедуры ОбработкаЗаполнения.
Вот по мне - один хрен. Оба способа одинаковы. Просто первый обращается непосредственно к свойствам, а второй применяет метод объекта Структура к ДаннымЗаполнения. Оба механизма не будут работать, если я поставлю СтандартнаяОбработка = Ложь.
Я не прав, что один хрен?
Это управляемое. Тонкости, с которыми я плохо знаком. ДанныеЗаполнения - это, похоже, системный объект - соответствие или структура. Он действует в рамках стандартной процедуры. Допустим, он содержит полный комплект атрибутов элемента справочника (где он их берёт - из умолчаний, из копии - надо читать или проверять), Услуга там по умолчанию Ложь, а флаг СтОб поднят. Ты ставишь Услуга=Истина, а стандарт его сбрасывает. Если сбросить СтОб, тогда Услуга останется, но и всё остальное тоже.
Добавлено через 3 минуты
А если ты корректируешь ДанныеЗаполнения, но оставляешь флаг СтОб поднятым - всем хорошо
Формы:УФ.
Есть внешняя обработка.Нужно в форму обработки передать некоторые данные при открытии.
В модуле формы код подключения.
То есть открыв нужный документ я вижу значок "внешней обработки", нажав на который у меня откроется форма этой обработки.
В самом модуле формы обработки, в процедуре "ВыполнитьКоманду" я пишу что-то вроде
Тут ошибка:ДатаДокумента - поле не найдено.Как бы не передались.
Ладно,ок.В конструкторе формы обработки, на закладке "параметры" добавляю параметры,с теми же наименованиями ключей, что и указывал при создании структуры параметров.
Для передачи параметров в форму внешней обработки всегда нужно указывать эти же параметры на вкладке "Параметры"?
Что я не так сделал?
Как обратиться к реквизиту формы документа из внешней обработки
Добрый день) Появился такой вопрос - в модуле формы обработки пишу запрос к документу(нахожу.
Передача параметров обработки
Есть обработка. Выбираю на ней кучу флажков, параметров выполнения этой обработки. Также выбираю.
Создание внешней печатной формы с возможностью передачи параметров
Пытаюсь переделать внешнюю печатную форму из 1С 8.2 под версию 8.3, в связи с чем возникают.
Передача параметров из управляемой формы обработки в управляемую форму другой обработки
Есть 2 обработки, в одной из них(Назовём её первой) есть кнопка, при нажатии на которую открывается.
1С:Предприятие 8.3 (8.3.15.1869)
Никаких доп.параметров нет.Вот хочу чисто при создании на сервере передать дату основного документа из которого открывается доп.обработка.
OverDozero, передай уникальный ключ в открытие
ОткрытьФорму("ВнешняяОбработка.ТЕСТ.Форма.ФормаОбработки",Па раметрыОткрытия,ЭтаФорма);
Та же беда.Поле не найдено.
Че-то никак не пойму..а если написать:
Сообщить(Параметры), то будет выведено "ДанныеФормыСтруктура"
Вот что показывает отладка(см.скриншот)
И получается так, что процедура "ПриСозданииНаСервере" вызывается 2 раза.
Первая точка в процедуре "ВыполнитьКоманду" не открывается,а сразу "ПриСозданииНаСервере"
И вот в этом случае "параметры" - данные формы структура, где дату можно вытащить из "объектыНазначения"
А вот потом идет выполнение процедуры "ВыполнитьКоманду",в которой уже передаются в открываемую форму мои параметры(см.скриншот)
OverDozero, Может попробовать ДанныеФормыВЗначение и вытащить ссылку и через нее дату в параметры открытия?
В какой момент то?Вот именно что сначала выполняется "ПриСозданииНаСервере", когда я даже еще не зашел в клиентскую процедуру, где у меня формируется структура параметров открытия.
Именно тут у меня она срубается,так как в Параметры я не передавал еще ничего!
Не говнокод, а говнокодище получается.
Добавлено через 3 минуты
Мало инфы. Это внешнаяя обработка для БСП ?
Добавлено через 39 секунд
Что написано в функции СведенияоВнешнейОбработке()
Добавлено через 1 минуту
Если форма уже открыта, ПриСозданииНаСервере уже не вызывается. (и даже если вызывается, то все уже давно инициализированно)
Загрузка формы внешней обработки
Добрый вечер. 1с 8.1, создаю регламентное задание, которое теоретически должно открывать форму.
1с 7.7 Вызов процедуры внешней обработки из другой внешней обработки
Здравствуйте всем! Вопрос такой: Есть внешняя обработка Обработка1. Обработка1 запускается через.
Добавление данных в форму списка из формы выбора внешней обработки
Добрый день, поставили задачу создать внешнюю форму. Форма должна содержать два поля выбора, в.
Передача параметров через список параметров формы
Hi all! У кого есть опыт передачи параметров через заголовочный список параметров формы? .
Передача параметров из дочерней формы в класс, унасле́дованный от главной формы
Добрый день, форумчане. Сильно не пинайте. Ситуация такая: из главной формы вызываю дочернюю.
Передача параметров формы
Доброго времени суток, господа программисты. Нужно написать две программы, используя для этого HTML.
По теме открытия формы с параметрами, часто возникают вопросы, надеюсь данная статья поможет кому-либо.
Обычные формы
Для передачи параметра в обычную форму существует два способа.
Первый, менее распространенный, заключается в создании реквизита формы (этот реквизит, при необходимости, можно отобразить визуальным элементом).
Реквизит на обычной форме
Второй вариант используется значительно чаще. Его суть заключается в том, что в модуле открываемой формы нужно объявить экспортную переменную, а обработка этой переменной производится в событии «ПередОткрытием» открываемой формы:
И для первого и для второго способа используется одинаковый код:
Управляемые формы
В управляемых формах появилась прекрасная возможность предавать параметры сразу при получении формы. Кроме этого, в управляемых формах появились стандартные параметры для различных объектов (справочники , документы и тд.), большим плюсом которых является отсутствие необходимости какой-либо обработки (задал параметр — получил результат). Список этих параметров, определяется типом объекта.
Например, параметр «ТекущееЗначение», позволяет позиционировать форму выбора справочника на определенном элементе.
Для собственных параметров, потребуется обработка, которая выполняется в событии «ПриСозданииНаСервере» открываемой формы, в остальном механизм передачи параметра такой же.
Получение формы и передача параметра:
Обработка передаваемого параметра в модуле открываемой формы:
Если Вы нашли ошибку или неточность, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.
(оценок: 20, средняя оценка: 3,70 из 5)
Продолжаем разговор о открытие форм различным способом (и с различными целями), предыдущая статья рассказывала
Dropbox — это один самых популярных сервисов облачного хранения данных. Подобному сервису облачного хранения
Читайте также: