диалог выбора каталога 1с обычные формы

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

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

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

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

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

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

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

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

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы

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

Источник

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

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

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

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

Решение

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

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

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

Решение

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

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

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формыПрограммирование системы диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы26.04.2016 10:54 диалог выбора каталога 1с обычные формы. Смотреть фото диалог выбора каталога 1с обычные формы. Смотреть картинку диалог выбора каталога 1с обычные формы. Картинка про диалог выбора каталога 1с обычные формы. Фото диалог выбора каталога 1с обычные формы26091

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

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

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

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

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

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

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

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

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

Источник

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

Введение

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

Пример 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), Спасибо за внимание, возможно, кому-то поможет)

Источник

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

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