УФ: Размещение элементов на форме 1 Гиперссылка в 1С
Эту и другие технические статьи написали наши программисты 1С и получили за них премии. Если вы тоже работаете с 1С и любите делиться опытом, приходите разработчиком в Neti → |
Рассмотрим варианты размещения элементов на форме на примере вывода реквизитов документа на форму документа, состав документа представлен на рис. 1:
Рис. 1. Реквизиты документа
Добавляем форму документа, по умолчанию все элементы формы будут располагаться сверху вниз по порядку (рис. 2):
Рис. 2. Расположение элементов на форме по умолчанию
Сделаем форму более удобной для просмотра и ввода значений.
Поля Документ основание, Ответственный и Комментарий сдвинем вниз, для этого выделяем эти поля и нажимаем стрелку вниз (рис. 3):
Рис. 3. Перемещение полей
Поле Документ основание представим в виде ссылки, чтобы при нажатии открывалось значение реквизита Документ основание. Открываем свойства поля ДокументОснование правой кнопкой мыши Свойства или Alt Enter (рис. 4):
Рис. 4. Открытие свойств поля
В окне Свойства у свойства Вид устанавливаем значение Поле надписи, отмечаем галочкой свойство Гиперссылка (рис. 5). Можно убрать заголовок поля Документ основание:, если у свойства ПоложениеЗаголовка изменить значение на Нет.
Рис. 5. Настройка свойств поля-гиперссылки
Зададим обработку события нажатия гиперссылки: в окне Свойства в разделе События нажимаем на значок лупы у события Нажатие (рис. 6):
Рис. 6. Событие Нажатие
В открывшемся окне оставляем значение Создать на клиенте, нажимаем ОК. Откроется модуль формы документа с шаблоном процедуры ДокументОснованиеНажатие(), добавляем строку ПоказатьЗначение(,Объект.ДокументОснование); (рис. 7):
Рис. 7. Обработка нажатия на гиперссылку
Само значение реквизита ДокументОснование будет определяться при создании на основании, задаем это на вкладке Ввод на основании (рис. 9):
Рис. 9. Ввод на основании
и прописываем в процедуре ОбработкаЗаполнения() в модуле объекта документа (рис. 10, рис. 11):
Рис. 10. Открытие модуля объекта документа
Рис. 11. Создание процедуры ОбработкаЗаполнения() в модуле объекта документа
В процедуру ОбработкаЗаполнения() в модуле объекта документа добавим строку ДокументОснование = ДанныеЗаполнения.Ссылка;.
Теперь в пользовательском режиме у созданного на основании документа поле Документ основание будет выглядеть так (рис. 12):
Рис. 12. Гиперссылка в пользовательском режиме
Добавляем гиперссылку на форму с командой без добавления формы в расширение
Задача: Типовая УНФ 1.6.21.124. Добавить на форму кнопку, при нажатии на которую открывалась бы история состояний Заказа покупателя.
Регистр сведений с состоянием Заказов уже есть в УНФ, поэтому самым простым решением мне показалось:
1. Добавить гиперссылку на форму, видимость которой только если состояний 2+ в регистре сведений.
Немного напоминает гиперссылку с историей КПП у контрагентов, не правда ли?)
Итак, собственно, решение:
2. Открываем общий модуль УправлениеСвойствами, находим процедуру ПриСозданииНаСервере, добавляем в расширение с
Вся суть в строке команды, с данной строкой задуманное не будет работать на предыдущих платформах (по причине: Неверно задана навигационная ссылка).
Есть другие варианты написания строки команды:
1. Для команды документа
2. Для общей команды
3. Для массива с одним типом данных
4. Для массива с несколькими типами данных, если параметр команды имеет составной тип
Возможно, о других решениях я не в курсе, но задача решена, и это главное)
Кому нужно, может скачать расширение с решением.
Гиперссылка с формы на внешний файл (1с8.2)
Просмотрел мельком сообщения из ссылки в (0).
Открыть вордовский файл можно несколькими способами. Например: КомандаСистемы() или через OLE.
Большое спасибо что помогаете, но как открыть потом этот файл
Создаю форму элемента справочника:
Объект
Декорация надпись(флаг гипрессылака, надпись нажатие «текст процедуры».
как открыть прикрепленный файл? (чтобы при счелчке по кнопке открывался файл с жеского диска)
Спасибо огромное что помогаете!
Создаю форму элемента справочника:
Объект
Декорация надпись(флаг гипрессылака, надпись нажатие «текст процедуры».
Куда лезть чтобы его открыть или что где задать?
я уж не пойму куда проще разживать задачу. Вы подробно читали что написано?
нужна организация гиперсылки на внешний файл чтобы ПОЛЬЗОВАТЕЛЬ мог без заморок открыть файл по гиперссылке. как в ворде или в экселе гиперссылка на файл.
Как пользователь сможет открыть этот выбранный файл? на что жать? форме не хватает кнопки открытия этого файла как ее созадть?
//При нажатии на ссылку:
Если под «Прикрепить файл» подразумевается «сохранить его в реквизите справочника», то:
Открытие файла в этом случае можно сделать так:
Вместо самого файла в справочнике можно хранить только ссылку на него (путь к нему). В этом случае, нужно будет учитывать то, что файлы могут перемещаться, изменяться, удаляться и т.п.
не прикрипить файл(мне не нужна раздутая картинками база,с проблемой переименования удаления и другими вопросами сам справлюсь), а прикрипить ссылку на внешний файл. И вторую кнопку чтобы открыть этот файл по ссылке(мне паралельно какой рограммой он откываться будет, вордом, экселем или как картинка, или в 1се.)
кто то посоветывал скачать типовую клиент-банк,буду искать скачивать, чтобы там
подглядеть как сделано. Вот ток вопрос, там точно как нужно «ссылка на файл» а не файл в базу. У меня уже есть пару конфигураций типа Документооборота, вот там в
базу файл кидается, а мне нужна именно ссылка на внешний файл.
Конечно лучше всего если есть у кого такая конфигурация киданите один справочник
в конфигурации, можно на мыло,если есть скажите, мыло напишу.
Вот что делаю что делать дальше уважаемые Гурру помогите пожалуйста
очень уж долго над этой проблеммой бьюсь.
(19) «СсылкаНаФайл» должна иметь тип значения строка!
>дальше что добавить надо туда чтобы в реквизит СсылкаНаФайл добовлялась ссылка.
P.S.: mir-mup, ты из какой страны? Пойму, если не русский, но если русский, старайся писать так, чтобы было понятно, тем, кто будет это читать. Если бы я тебе в ответ написал что-нибудь типа:
Ссылка на файл текстовый дальше что надо добавить ссылка на файл присвоить диалог полное имя файла.
Ты понял бы, что я имею ввиду.
дальше что добавить надо туда, чтобы в реквизит «СсылкаНаФайл» добовлялась ссылка.
Пожалуйста ни придирайтесь к запятым, если можете помочь по вопросу помогите, если нет то может кто знает как это сделать и все же научит.
Мир не без добрых людей.
Для второй кнопки текст уже имеется в примере, подставляй туда значение реквизита «СсылкаНаФайл».
Я не учитель русского языка ) Просто после прочтения подобных сообщений приходится догадываться (угадывать), что именно ты имел ввиду. Диктанты на 5-ку со всеми зпт никто не просит писать.
Не получается строку в реквизит записать, чтобы потом прочитать его.
две дикорации одна пивязывает ссылку другая открывает ссылку. при открытой форме все работает. После закрытия формы ссылка стирается. Если можете, прошу помогите.
(23) А где у тебя записывается элемент справочника с измененным значением реквизита?
Ты открыл форму элемента справочника, присвоил что-то там, не записал и закрыл. Естественно, при следующем открытии формы в реквизите ничего не будет.
Гиперссылка в табличной части управляемых форм
Теперь чуть поточнее задачу. В документе, в табличной части необходимо добавить дополнительный реквизит со ссылкой на другой документ. Если ссылка не заполнена, то отображать слово «Создать», с возможностью создать этот документ и автоматическим помещением в этот реквизит ссылку на этот созданный документ. Добавить ниже еще одну ссылку на выбор документа из базы.
В табличную часть документа был добавлен реквизит «aspect_Поступление», тип ДокументСссылка.ПоступлениеТоваровУслуг
В форме документа в процедуре ПриСозданииНаСервере следующий код:
В процедуре Выбор нужной табличной части прописать следующее:
Серверная процедура по созданию документа:
В раздел описания переменных добавить:
Необходимо для того, чтобы передать номер обрабатываемой строки. Т.к. у надписи нет события ОбработкаВыбора. Поэтому приходится использовать событие формы.
В процедуру ОбработкаВыбора формы добавить:
Скачать файлы
Специальные предложения
Обновление 29.06.18 20:12
См. также
Безопасная работа с транзакциями во встроенном языке Промо
Разбираемся с опасностями использования транзакций во встроенном языке 1С. Познаем ошибку «В данной транзакции уже происходили ошибки». Учимся защищаться от них.
25.03.2019 45779 tormozit 58
Пример создания документа с движениями в ERP 2.5.7
Пример создания документа с движениями в ERP 2.5.7, а также включение документа в основные подсистемы, а именно по управлению доступом, датам запрета изменения, контролю остатков, использованию характеристик и серий и прочее.
10.08.2021 2062 maraty 10
Работа с абстрактным массивом
Абстрактные типы данных и алгоритмы уверенно набирают популярность в языках общего назначения. Встроенный язык 1С является предметно-ориентированным и не спешит развиваться в сторону поддержки абстракций. Однако потребность в них существует, т.к. задачи, решаемые на платформе, не уступают разнообразию из других ЯП. Предлагаю рассмотреть вариант реализации абстрактного массива в 1С.
07.07.2021 3797 kalyaka 56
Семеро одного не ждут? Асинхронное исследование асинхронности
Все уже, наверное, знают о появлении в новых версиях платформы асинхронных функций и конструкций Асинх/Ждать. Многие, возможно, уже их используют. Но что будет, если создать свои асинхронные функции, запустить и не дожидаться окончания их выполнения? Неужели можно запустить несколько процессов параллельно?
08.06.2021 5508 Alxby 45
План подготовки к аттестации на 1С: Специалиста по платформе (+ Ссылки на материалы) Промо
Хочу поделиться собственным планом подготовки к аттестации на 1С: Специалист по платформе 8.3 со ссылками на материалы (и указанием стоимости).
23.12.2017 25692 UtSpar 39
Модель запроса
Работа с текстом запроса напрямую не позволяет просто обратиться к определенному полю, таблице или условию. Однако, работая со схемой, можно добавить к существующему условию новое или вообще включить его в состав другой группы. Как ни странно, в типовых решениях часто можно встретить код работы с текстом запроса наряду с использование схемы. Возможно появление удобной библиотеки или нового объектного подхода позволит отказаться от работы с текстом совсем, а код построения запроса будет аутентичен исходному запросу, но без избыточности и доступный для простой модификации.
01.03.2021 2938 kalyaka 25
Как сдать экзамен 1С:Специалист по платформе?
18.01.2021 17783 vasilievil 10
СКД: все, что вы хотели знать о подмене схемы компоновки данных в отчетах и обработках
Довольно часто на различных тематических форумах задается вопрос, можно ли использовать в отчете/обработке несколько схем компоновки данных, подменяя одну другой по мере надобности? При этом желательно, чтобы и пользовательские настройки при смене схемы менялись соответственно.
07.12.2020 5185 user1502278 18
Как выполнить отчет на СКД через COM и получить данные отчета? Промо
Для чего это нужно. Например, нужно в одной базе получить какой-либо показатель из другой базы. Этот показатель вычисляется в каком-либо сложном отчете, который написан на СКД. Можно, конечно, «скопипастить» текст запроса из другой базы, немного подправить его и выполнять в том же COM подключении. Но с этим теряется гибкость: если отчет изменился, то нужно помнить о том, что где-то есть его «немного модифицированная» копия. В статье будет рассмотрен пример получения данных из базы ЗУП.
08.05.2018 32621 wowik 3
Cбор и анализ ошибок при помощи Sentry, или как упростить жизнь себе и пользователям
09.10.2020 7502 hexhoc 12
Программная корректировка при выводе отчета СКД
Большинство отчетов на СКД, требующих программной корректировки, реализуются с помощью программной настройки СКД или обработки табличного документа уже после вывода отчета. Но во многих случаях более оптимально будет выполнять программную корректировку в процессе вывода отчета. Для этого существуют программные объекты, о которых я расскажу в данной статье.
08.10.2020 11058 dabu-dabu 16
Библиотека программного изменения формы (УФ)
Нам часто приходится дорабатывать различные управляемые формы. Проще внести изменения непосредственно на самой форме, но, для дальнейшего поддержания конфигурации, удобнее вносить все изменения на форме программно. Предлагаю Вам библиотеку для программного изменения управляемых форм, которую можно внедрить в конфигурацию либо совсем бесшовно, либо практически бесшовно.
07.08.2020 6941 BuriyLesha 19
Если у вас возникает необходимость на форму влиять динамически и создавать элементы управляемой формы программно, а особенно хотите вывести программно (динамически) динамический список, вам будет интересна эта процедура. Процедура включает также возможность формирования своей командной панели (а-ля снятие галочки «Автозаполнение» у стандартной командной панели списка).
19.01.2018 70186 rpgshnik 31
Загрузка, скачивание, удаление файлов с помощью НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера()
В платформе 8.3.15 появились новые методы НачатьПомещениеФайлаНаСервер() и НачатьПолучениеФайлаССервера(). В данной статье рассмотрено готовое решение проверенное и прекрасно работающее на тонком и веб-клиенте.
25.07.2020 11931 Flashill 15
Подготовка к экзамену 1С:Специалист, платформа 8.3
Подготовка, подготовка, подготовка.
10.03.2020 14287 jan-pechka 91
Запуск фонового задания во внешней обработке без регистрации в справочнике «Дополнительные отчеты и обработки»
Описал, как показать прогресс выполнения длительной операции во внешней обработке, и при этом не регистрировать обработку в справочнике «ДополнительныеОтчетыИОбработки». Проверял на БСП версии «3.1.2.264».
09.03.2020 7563 VinnieThePOOH 5
Как нарисовать граф на 1С Промо
09.08.2013 73569 ildarovich 117
Методика обновления формы объекта данных при изменении объекта
В формах объектов данных часто встречаются элементы, косвенно связанные с объектом. Логику обновления этих элементов при изменении объекта обычно вызывают из обработчиков ПриСозданнииНаСервере и ПриОткрытии, забывая про наличие других способов изменения объекта. В статье предложена методика для обычных и управляемых форм, учитывающая все способы.
09.03.2020 20719 tormozit 16
Отправка уведомлений с помощью командной строки, Оповещения с сервера на клиент с помощью командной строки
Отправка уведомлений с помощью команды командной строки msg. Оповестить пользователей из серверного модуля или регламентного задания, с помощью командной строки msg.
05.03.2020 8158 user5300 3
Вывод сообщений в HTML поле средствами 1С
Пример использования вывода большого количества сообщений в поле HTML. С возможностью открывать ссылочные объекты и создавать новые объекты передавая параметры прямо из HTML поля. Протестировано на релизах 8.3.12 и 8.3.15+
31.01.2020 11173 burni4 16
Простой способ индексирования интервалов Промо
Предлагается простой способ индексирования интервалов для решения задач выборки записей, включающих заданный момент времени, пересекающихся с заданным интервалом или множеством интервалов. Способ основан на добавлении к исходной таблице особого числового индексированного поля, рассчитываемого по специальной формуле. Приведен код функций, необходимых для расчетов поля поиска и параметров поисковых запросов. Приведены также результаты тестирования метода, доказывающие его высокую эффективность.
28.09.2016 42090 ildarovich 22
Как в 1С создать паутинку «как на Инфостарте»
15.01.2020 9793 user660153_aleks.pisanets 17
Краткое руководство по внесению изменений в конфигурацию
Кратко описаны основополагающие моменты при старте групповой разработки конфигурации несколькими программистами. Полезно для проектной документации как требование к разработчикам или сопровождающей компании.
13.01.2020 22858 sapervodichka 41
Универсальные функции: разложение произвольной строки адреса в структуру
Процедуры и функции раскладывают произвольную строку адрес в структуру по ключевым словам.
30.12.2019 5974 vik070777 10
Бесплатная проверка контрагентов в ФНС (общий модуль с алгоритмом). На примере выводим статус в список справочника контрагентов Промо
Если вам интересно проверить контрагенте в ФНС, вам поможет данная публикация. Весь алгоритм работы строится на основе данных, полученных с сервиса http://npchk.nalog.ru совершенно бесплатно.
01.02.2018 38465 rpgshnik 59
Разбираемся с web-kit в 1С, на примере интеграции TinyMCE в управляемую форму в УТ 11.4. Допиливаем обмен с сайтом в УТ 11.4
Многие уже знают, что в релизе платформы 8.3.14.1565, браузер Internet Explorer был заменен на Web-Kit, это на самом деле большой шаг вперед, но я уверен, многим, как и мне, пока не совсем понятно, что к чему. Возник опыт использования web-kit в 1С, вызова JS из 1С и вызова 1С из JS. Давайте вместе попробуем понять, чем одно отличается от другого, и заодно сделаем, что-нибудь полезное. Да и наверняка многим придется переписывать свои подобные поделки после обновления на новую платформу, так что надеюсь мой опыт окажется полезным.
08.12.2019 9689 Бэнни 25
«Живые» картинки со Snap.SVG
В статье рассмотрен пример использования http-сервисов для визуализации данных
24.10.2019 15171 blackhole321 7
«Подводные камни», возникающие при бездумном копировании ролей с ограничениями RLS, как это отражается на производительности, разбор примера и инструмент для анализа.
07.10.2019 10078 geron4 4
БСП: Дополнительная обработка (Регламенты), примеры от простого к сложному Промо
Очень много попадается странных решений, которые можно решить через БСП:Дополнительные отчеты и обработки. Я бы вообще БСП из-за этой подсистемы переименовал в «Большое Спасибо Программистам». Поработаем с подсистемой в части написания регламентных заданий.
10.05.2018 54467 dsdred 46
Полное копирование одной формы в другую
Однажды я столкнулся с необходимостью открыть форму ЛЮБОГО документа с определенными изменениями, не зависящими от структуры объекта (например, заблокировать все кнопки). В интернете решения я не нашел. Обычно на форумах на запросы подобного рода отвечают чем-то вроде «покажи первоначальную задачу, а не спрашивай как реализовать то, что ты придумал». Тем не менее, мне стало интересно, как это можно сделать.
03.10.2019 8072 nekit_rdx 25
Многопоточная обработка данных на примере перепроведения документов
17.09.2019 12932 ids79 46
Отображение истории выполнения по всем задачам комплексного процесса в документообороте
Коллеги, предлагаю вашему вниманию доработку для вывода полной истории в задачах комплексного процесса.
15.09.2019 8832 pavelpribytkin96 8
Некоторая работа с данными через COM Промо
В статье приведены примеры работы с Платформой 8.X через COM (точнее, через объект COMConnector). Примеры кода были использованы при реализации прикладных задач в процессе трудовой деятельности.
05.12.2012 60042 wowik 32
Описание формата внутреннего представления данных 1С в контексте обмена данными
Фирма 1С не рекомендует использовать внутреннее представление данных для любых целей, которые отличны от обмена с 1С:Предприятием 7.7. Но сама возможность заглянуть на «внутреннюю кухню» платформы с помощью функций ЗначениеВСтрокуВнутр(), ЗначениеВФайл(), ЗначениеИзСтрокиВнутр() и ЗначениеИзФайла(), дала возможность сообществу программистов 1С разработать новые приемы разработки и анализа. Так, именно на использовании внутреннего представления был построен алгоритм «быстрого массива», который позволяет практически мгновенно создать массив в памяти на основании строки с разделителями. С помощью разбора внутреннего представления можно «на лету» программным кодом выполнить анализ обычной формы и даже сделать редактор графической схемы. Во внутреннем формате сохраняют свои данные между сеансами различные популярные внешние обработки. А еще это возможность сделать быстрый обмен с внешними системами.
В данной статье описаны примеры программного создания объектов управляемой формы 1С : элементов, команд, реквизитов, а также описание стандартных возможностей для работы с ними.
Введение в управляемая форма 1С реквизиты элементы команды
Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.
Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.
Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.
Программное переопределение обработчиков событий формы и элементов формы
Переопределить обработчики событий формы можно в обработчике «ПриСозданииНаСервере» (кроме самого обрабочика «ПриСозданииНаСервере») или в теле модуля формы в контексте сервера (например, Переопределение событий ПриЧтениинаСервере и ПриСозданииНаСервере).
В теле модуля формы:
А в новой процедуре нужно добавить вызов основной, если такая процедура есть.
Аналогично можно поступить и с обработчиками элементов формы:
Программное создание групп формы.
Доступные виды групп формы:
Программное добавление команды на форму.
Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить( ). Удалять можно только те команды, которые были созданы программно.
Программное создание декораций форм.
Программное добавление реквизита на форму.
Добавлять новые реквизиты в управляемую форму и удалять необходимо с помощью метода ИзменитьРеквизиты(), куда в параметры передается массив добавляемых реквизитов и массив удаляемых. Удалять при этом можно только те реквизиты, которые были созданы программно.
Вывод реквизитов на форму.
Вызов процедур при создании на сервере 1С
После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.
Некоторые советы при программном редактировании формы
Итак, взглянем на получившийся результат. Все элементы на форме созданы программно: