1с диалог выбора каталога управляемые формы

Форма выбора (подбор) в управляемых формах

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

Пример 1.

Простой вызов формы выбора с одним возвращаемым результатом:

Пример 2.

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

В первых 2-х примерах мы использовали обработчик (Событие) формы «ОбработкаВыбора».

Теперь рассмотрим пример с использованием «Обработки оповещения», на мой взгляд более удобно )

Пример 3.

Думаю многие не знают про фишку Оповещением «на Сервере». То есть результат можно вернуть сразу на сервер без дополнительных условий. Работает до 8.3.13.1644, с 8.3.16.1063 этот метод недоступен.

Пример 4.

Мы видим что открывается форма выбора (из списка документов «Реализация товаров и услуг»), но иногда необходимо добавить некий отбор, чтобы при открытии формы не выводить все документы в целом.

Пример 5.

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

Пример 6.

Пример 7.

Как открыть форму выбора с Позиционированием ранее выбранного значения:

Тестировалось на 1С:Предприятие 8.3 (8.3.16.1063) и 1С:Предприятие 8.3 (8.3.13.1644), Спасибо за внимание, возможно, кому-то поможет)

Источник

1С выбор каталога управляемые формы

Рассмотрим как асинхронно (а в управляемых формах необходимо только так) программно обработать выбор пользователем пути к файлу.

Постановка задачи

Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу Excel.

Решение

Для удобства свойство КнопкаВыбора элемента формы установим в значение Да и будем обрабатывать событие НачалоВыбора этого элемента.

В процедуре начала выбора элемента ПутьКФайлу необходимо написать код:

// Отказываемся от стандартной обработки процедуры
СтандартнаяОбработка = Ложь;

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

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

Если ВыбранныеФайлы <> Неопределено Тогда

ПутьКФайлу = ВыбранныеФайлы [ 0 ];

Внимание!

Процедура, указанная в объекте ОписаниеОповещения должна иметь ключевое слово Экспорт.

Приведенный пример можно немного усовершенствовать: передать в третий параметр конструктора ОписаниеОповещения переменную Диалог.

Тогда в процедуре ВыборФайлаЗавершение будет доступно немного больше информации: из параметра ДополнительныеПараметры можно будет узнать каталог, в котором хранится выбранный файл, и фильтр, которому соответствует файл.

В конструкторе объекта ДиалогВыбораФайла в параметре указывается для чего будет открыт диалог. Возможные значения системного перечисления РежимДиалогаВыбораФайла:

Приведу еще несколько свойств объекта ДиалогВыбораФайла:

Решение средствами БСП

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

общего модуля ОбменДаннымиКлиент. При помощи этого метода приведенную выше задачу можно решить так:

Остались вопросы?
Спросите в комментариях к статье.

Достаточно часто нам требуется получить от пользователя какую-либо информацию — имя файла или каталога, цвет или шрифт. Для всего этого в 1С существуют диалоги. Код, который требуется для вызова диалога, довольно стандартный и мало чем отличается из раза в раз. Собственно именно о том, как вызвать различные диалоги в 1С 8.2 и 8.3 и пойдет речь.

Отмечу, что приведенные ниже примеры подходят для любых конфигураций 1С 8.2, а также для конфигураций 1С 8.3 у которых свойство конфигурации «Режим использования модальности» установлено как «Использовать» либо «Использовать с предупреждениями». Если же Вы имеете дело с конфигурацией 1С 8.3 не использующей модальность, то рекомендую прочесть статью о модальности в 1С.

Выбор каталога в 1С

Выбор файла в 1С

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

categoryПрограммирование системы clock26.04.2016 10:54 eye26091

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

Обычное приложение

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

Управляемое приложение

В управляемом приложении сначала необходимо создать реквизит формы. Затем для этого реквизита на форму надо добавить элемент «Поле» и установить для свойства «КнопкаВыбора» значение «Да». И так же как в обычном приложении, в событии «НачалоВыбора», прописать функцию. Функция будет расположена в модуле
формы. В отличии от обычного приложения перед функцией надо прописать &НаКлиенте.

Параметры объекта ДиалогВыбораФайла:

Выбор одного файла

Множественный выбор файлов

Для того чтобы добавить сообщение, необходимо Войти или Зарегистрироваться

Источник

Выбор файла в 1С в асинхронном режиме

Рассмотрим как асинхронно (а в управляемых формах необходимо только так) программно обработать выбор пользователем пути к файлу.

Постановка задачи

Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу Excel.

Решение

Для удобства свойство КнопкаВыбора элемента формы установим в значение Да и будем обрабатывать событие НачалоВыбора этого элемента.

В процедуре начала выбора элемента ПутьКФайлу необходимо написать код:

// Отказываемся от стандартной обработки процедуры
СтандартнаяОбработка = Ложь;

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

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

Если ВыбранныеФайлы <> Неопределено Тогда

ПутьКФайлу = ВыбранныеФайлы [ 0 ];

Внимание!

Процедура, указанная в объекте ОписаниеОповещения должна иметь ключевое слово Экспорт.

Приведенный пример можно немного усовершенствовать: передать в третий параметр конструктора ОписаниеОповещения переменную Диалог.

Тогда в процедуре ВыборФайлаЗавершение будет доступно немного больше информации: из параметра ДополнительныеПараметры можно будет узнать каталог, в котором хранится выбранный файл, и фильтр, которому соответствует файл.

В конструкторе объекта ДиалогВыбораФайла в параметре указывается для чего будет открыт диалог. Возможные значения системного перечисления РежимДиалогаВыбораФайла:

Приведу еще несколько свойств объекта ДиалогВыбораФайла:

Решение средствами БСП

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

общего модуля ОбменДаннымиКлиент. При помощи этого метода приведенную выше задачу можно решить так:

Остались вопросы?
Спросите в комментариях к статье.

Источник

Для начинающих: как выбрать файл в 1С?

Добавим новую форму с кнопкой, нажав на которую будет открываться окно выбора файла. Дальнейшая обработка файла в данном примере не рассматривается. Рекомендуется тренироваться на копии базы или пустой конфигурации. Пример создан на конфигурации 1С:CRM 3.0.

Сначала подготовим конфигуратор.

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

741c21bc37ce7cd566be375d46929dd6

Теперь создадим простую обработку.

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

06a133e8efb05fa0ff0f23a7418b24e9

После создания формы появится окно как представлено ниже.

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

784b124f96d69ffc5b523ea4f4ac6e45

Далее добавляем на форму кнопку «Загрузить», нажав на плюс в левом верхнем окне. Обязательно укажите свойство «ИмяКоманды». Здесь укажем название команды, которую создали на предыдущем шаге «Загрузить». В результате на форме появится кнопка «Загрузить».

a1d2e4c32ea4c7f8be5b706d8e0f8828

Далее напишем небольшой код.

Внизу окна нажимаем на закладку «Модуль». У нас здесь уже есть пустая процедура. Добавляем в нее код.

ДиалогВыбора = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = «Выберите файл»;

ДиалогВыбора.Фильтр = «Excel документ, .xls|.xls»;

Если ДиалогВыбора.Выбрать() Тогда

В результате получится так как на рисунке ниже.

4a34e77bc1d75410966d4dc70ce6ffc1

И в конце остается проверить в пользовательском режиме. Для этого нажимаем «Начать отладку» или F5. Конфигуратор спросит обновить ли конфигурацию базы данных. Отвечаем «Да» и у нас открывается 1С (режим пользователя). Далее находим подсистему, куда добавили обработку (в нашем случае это «Маркетинг») и проверяем.

cf298a3fa308892ca7aec6cd697e98bb

На простейшем примере было показано как написать код, прикрепить его на форму и вызвать в пользовательском режиме 1С.

Источник

Выбор файла и загрузка его на сервер в асинхронном режиме

Введение

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

Но как эту задачу решить на веб-клиенте? В поисковике не удалось найти готового универсального решения. Поискал в типовых, но там все разбросано по модулям и как-то запутано. Посмотрел пример в консоли СКД с диска ИТС для управляемых форм. Там тоже надо вычленять по кусочкам все шаги. Кроме того там применяется одна фича, которая позволяет открывать диалог выбора файла без установленного расширения работы с файлами. Но в общем случае эта хитрость не подойдет, так как она работает только для существующих файлов, насколько я понял. Поэтому написал процедуры, которые можно просто скопировать и использовать в будущем, не тратя время на то, чтобы вспоминать, как это работает.

Диалог выбора файла

Сразу приведу код, который получился после упрощения.

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

Далее приведу код этой служебной процедуры, написанной по принципу, из этой статьи.

Загрузка файлов с клиента на сервер

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

Данная задача снова решается за три простых шага

Все детали скрыты в процедуре ВыполнитьСценарийЗагрузкиФайлаНаСервер(), которая подходит как для файлов, так и для каталогов. При необходимости ее можно доработать, чтобы она покрывала больше случаев.

Файл для скачивания

К публикации прилагается пример, который можно использовать как шаблон для описанных операций. В нем реализованы несколько наиболее востребованных случаев: выбор существующего файла, выбор имени файла для сохранения, выбор каталога и множественный выбор. Для полноты картины приведены аналогичные операции для обычных форм. Тестировались процедуры на платфроме 8.3, на конфигурацях начиная с режима совместимости 8.2.13

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с деньги программа по ведению домашнего учета
  • 1с два контрагента с одним инн