Выбор файла в 1С в асинхронном режиме
Рассмотрим как асинхронно (а в управляемых формах необходимо только так) программно обработать выбор пользователем пути к файлу.
Постановка задачи
Предположим, что на форме создан реквизит ПутьКФайлу. Этот реквизит имеет тип Строка и выведен на форму. Пользователь должен указывать в этом поле путь к файлу Excel.
Решение
Для удобства свойство КнопкаВыбора элемента формы установим в значение Да и будем обрабатывать событие НачалоВыбора этого элемента.
В процедуре начала выбора элемента ПутьКФайлу необходимо написать код:
// Отказываемся от стандартной обработки процедуры
СтандартнаяОбработка = Ложь;
содержит описание процедуры, которая будет вызвана после закрытия диалога выбора. В этой процедуре должно быть два параметра:
Пример процедуры, которая будет вызвана после закрытия окна выбора файла:
Если ВыбранныеФайлы <> Неопределено Тогда
ПутьКФайлу = ВыбранныеФайлы [ 0 ];
Внимание!
Процедура, указанная в объекте ОписаниеОповещения должна иметь ключевое слово Экспорт.
Приведенный пример можно немного усовершенствовать: передать в третий параметр конструктора ОписаниеОповещения переменную Диалог.
Тогда в процедуре ВыборФайлаЗавершение будет доступно немного больше информации: из параметра ДополнительныеПараметры можно будет узнать каталог, в котором хранится выбранный файл, и фильтр, которому соответствует файл.
В конструкторе объекта ДиалогВыбораФайла в параметре указывается для чего будет открыт диалог. Возможные значения системного перечисления РежимДиалогаВыбораФайла:
Приведу еще несколько свойств объекта ДиалогВыбораФайла:
Решение средствами БСП
В конфигурациях со втроенной Библиотекой стандартных подсистем можно использовать процедуру
общего модуля ОбменДаннымиКлиент. При помощи этого метода приведенную выше задачу можно решить так:
Остались вопросы?
Спросите в комментариях к статье.
Шаблоны загрузки Excel файлов из каталога в 1С 8 (обычные и управляемые формы)
Загрузка файла (файлов) в 1С 3.0 (управляемые формы)
Добавим реквизиты обработки:
ИмяФайла: Строка (150 )
ИмяКаталога: Строка (150)
РежимЗагрузки: Число (1)
Настроим форму
Свойства «Форма», закладка «Использование»:
Свойства «ИмяФайла», закладка «Использование»:
Вставьте текст в модуль формы:
Добавьте событие реквизиту формы «ИмяФайла:
Тоже самое проделайте с реквизитом «ИмяКаталога».
Настройте рекизит «РежимЗагрузки», закладка «Основные»: Вид: Поле переключателя.
Закладка «Расположение» : КоличествоКолонок: 2.
Закладка «Использование»: СписокВыбора:
Отметьте реквизиты для сохранения:
Добавьте команду «Загрузить». И настройте действие из модуля: Загрузить.
Перенесите команду на форму.
Второй файл с такими же колонками.
Результат загрузки (прочтения файлов):
Обработки приложены к статье.
Скачать файлы
Специальные предложения
Обновление 27.02.21 13:37
См. также
Обработка предназначена прежде всего как пример для разработки внешних доп. обработок во Фреш в помощь программистам.
24.09.2021 768 4 Dem0 0
FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы «Режим сравнения форм») на примере ERP 2.5
Данная публикация является продолжением описания функционирования обработки «FormCodeGenerator » в режиме сравнения форм и генерирования кода на основании сравнения. Подходит для перевода уже доработанных форм с интерактивной доработки на программную. Данный режим работы обработки снизит издержки при дальнейших обновлениях конфигураций.
21.12.2020 9845 27 huxuxuya 11
Заготовка обработки (внешняя печатная форма) заполнения Excel документа из 1С
Умеет заполнять как отдельные ячейки, так и таблицы в рамках листов Excel. Удобно при разработке различных “дашбордов” (с графиками, диаграммами), отчетов финансистов (где много формул), заполнения форм документов организации. Эксель шаблон может сделать пользователь (с нужным ему оформлением, формулами и т.д.) и впоследствии самостоятельно этот шаблон менять. Программисту нужно только настроить выдачу данных для заполнения шаблона. Может подключаться как внешняя печатная форма (для обычных и управляемых форм).
29.07.2020 6080 21 wonderboy 0
Вам нравятся запросы в 1С?
Речь не только о том, что простейший запрос с «легальным» оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать «в нагрузку» к тексту запроса. Все эти «Новый Запрос», «УстановитьПараметр» и последующие пляски с обработкой результата. Пора с этим заканчивать!
03.07.2019 28302 7 m-rv 91
Загрузка прайс-листов в БП 3.0, УНФ 1.6, Розница 2.3, УТ 11.4, КА 2 и ERP Промо
Внешняя обработка для загрузки прайс-листов Excel (и не только) в конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление нашей фирмой, редакция 1.6; Розница, редакция 2.3; Управление торговлей, редакция 11; Комплексная автоматизация 2; ERP Управление предприятием 2 без использования COM-объектов (установленного Excel), для толстого, тонкого и веб-клиента.
16.04.2020 13798 162 LamerSoft 15
Отправка электронной почты с помощью локального почтового клиента из 1С, развернутой под удаленным рабочим столом
Решение для интерактивной (нажал-отредактировал) отправки электронных писем и печатных форм через почтовый клиент (Thunderbird, Outlook) находящийся на локальном компьютере, из конфигурации 1С, развернутой под удаленным рабочим столом (RDP, remote-app). Подходит также для локального развертывания 1С. Представлен пример быстрой интеграции с конфигурациями «Управление торговлей 10.3», «Управление производственным предприятием 1.3», «Комплексная автоматизация 1.1», «Бухгалтерия предприятия 2.0».
21.09.2018 31029 24 stvorl 1
Работа с публикациями «Инфостарт»
Работа с рублевыми публикациями на сайте «Инфостарт»: ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.
13.09.2018 29087 14 RocKeR_13 16
Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции
09.08.2018 36860 31 informa1555 30
[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо
Расширение позволяет без изменений конфигурации проверять остатки по регистру бухгалтерии при проведении каждого документа и запрещает проведение при появлении отрицательных остатков после проведения.
17.08.2015 54691 170 ekaruk 32
Работа с данными выбора
17.07.2018 68031 25 kalyaka 17
ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ («001», «Новый товар»)
Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.
01.06.2018 37220 96 m-rv 58
Вы больше не будете разбирать Excel как раньше
Кому не приходилось разбирать файлы в формате Excel? Все матерятся, плюются, требуют обещаний что «это в последний раз», но таки пишут загрузку из Excel. Потом форматы меняются, строки съезжают, колонки переставляют. Вам это не надоело?
07.05.2018 34880 64 m-rv 34
Прыг-Скок. или из MS EXCEL в 1С (8.2) (открытый код) Промо
Универсальная загрузка данных из Microsoft Office Excel. Автоматическая загрузка из любых по форме документов с очень удобным редактором. Почти готовый шаблон для любой конфигурации. Не требует регистрации-бесплатно.
16.09.2015 74152 365 Tatitutu 50
Заполняем по шаблону (по умолчанию)
Простой в подключении, универсальный и достаточно удобный механизм заполнения реквизитов произвольных документов/справочников значениями по умолчанию. Реализован в расширении, но может быть и непосредственно включен практически в любую конфигурацию на управляемых формах простым копированием одной формы и двух команд. Весь код в статье.
08.02.2018 35181 20 mvxyz 17
Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника. ЗУП 3.1
Расчет начисления зарплаты со сложной формулой, по данным из внешнего источника по данным экономического отдела. ЗУП 3.1.
20.12.2017 62056 35 mvv1975 7
Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП
Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.
06.12.2017 33542 60 kwazi 6
Выгрузка и загрузка данных из файла Excel с поиском по любым полям (есть поиск по ссылке, всего три итерации поиска. Управляемые формы или «Такси») Промо
Обработка позволяет загружать данные с поиском по ссылке как для загружаемого объекта, так и его свойств. Загружает справочники, документы, планы видов характеристик. Будет полезна как замена использования конвертации данных для задач переноса, а также как классическая загрузка из табличного документа (Excel). Поиск объекта при загрузке выполняется до трех раз с разными полями поиска (поля поиска настраиваются). Также реализована выгрузка в Excel по ссылкам. У обработки удобный интерфейс, в котором разберется даже начинающий пользователь. Загрузка накладных из файлов xls реализована с интеллектуальным поиском колонок с данными. В интеллектуальном поиске поддерживаются все основные типовые печатные формы.
16.10.2015 68611 523 primat 35
Загрузка дополнительных реквизитов и сведений справочника Номенклатура из Excel и таблиц УТ 11, ERP 2
Внешняя обработка «Загрузка дополнительных реквизитов и сведений справочника Номенклатура»
07.08.2017 53069 336 Windyhead 45
Расширения конфигураций 1С: учимся перехватывать методы
В этой статье я на примерах разберу некоторые механизмы расширений конфигураций 1С. А именно «перехваты» методов модуля объекта и «перехваты» событий формы и элементов формы. Данная статья написана с учебными целями, чтобы показать, как при помощи расширений конфигурации можно делать такие доработки, ради которых раньше приходилось снимать конфигурацию с поддержки.
30.05.2017 167820 13 signum2009 49
Полное решение билетов сертификации 1С: Специалист УТ 11
Решение 10 основных билетов на экзамене 1С: Специалист по УТ 11. Все билеты попадались группе пользователей, из которой сдали все.
18.08.2016 30313 133 maksimov-y-v 6
1С: Предприятие + корпоративный чат, как наладить оперативные уведомления за 10 минут
Как сделать автоматические уведомления о разных событиях из 1С в корпоративный чат MyChat для сотрудников компании
14.08.2016 55352 36 Demanoidos 60
Интеграция 1С и C#. Обращение к 1С через COM. Создание номенклатуры и выполнение запроса к 1С из C# на примере интеграции с Союз-PLM (система информационной поддержки жизненного цикла изделий). Обработка «Загрузка заказа на сборку». (ERP)
Союз-PLM представляет собой полнофункциональный программный комплекс для решения широкого спектра задач управления инженерной технической информацией наукоемких изделий и сложных инженерных объектов в области машиностроения, приборостроения, архитектуры, строительства. На практике, это управление конструкторской документацией, интегрированное с САПР, бизнес-процессы, файловый архив. Все это работает в SQL и шевелится с помощью скриптов на C#. Скрипты свободно отлаживаются в MS Visual Studio. Подробнее смотрите на их сайте: http://www.programsoyuz.ru/products/system-soyuz-plm.html Редактирование, конструирование и использование бизнес-процессов на порядок лучше систем на базе 1С из тех, что я изучил.
25.07.2016 54058 5 milkers 2
Экзамен 1С:Специалист по платформе 8.3. Полностью решенные ВСЕ билеты экзамена (актуальны на ноябрь 2021 г.).
В публикации представлены полностью решенные билеты экзамена (ВСЕ 16 БИЛЕТОВ ЭКЗАМЕНА + Новые дополнительные задачи) с учетом последних нововведений в заданиях экзамена.
18.07.2016 155534 5755 PoZiTiFFF 372
Хранение файлов в томах на диске (для УПП 1.3)
Доработка типовой УПП 1.3 в плане хранения присоединенных файлов вне базы данных
05.06.2016 68375 12 wowik 32
Остатки на каждый день в запросе
Запрос формирует остатки товаров на каждый день в пределах выбранного периода.
26.04.2016 78188 21 arakelyan 25
Выполнение JavaScript кода из 1С в объекте Поле HTML Документа (HTML 5) и вызов события в 1С ПриНажатии
Пример выполнения JS кода из 1С в Поле HTML Документа под управляемыми формами, с удобным получением результата в 1С(С помощью вызова привязанного события ПриНажатии к элементу ПолеHTMLДокумента)
22.03.2016 96455 172 igo1 61
Количество дней недели (понедельников/вторников/. ) в заданном диапазоне одним запросом
При реализации периодического авто-заполнения маршрутных листов по графику (недельному) необходимо было просчитать стоимость всего периода, с условием выездов только по определенным дням. Заморачиваться с обходом результата не хотелось. Пришлось написать «Небольшой» запрос.
03.03.2016 23312 2 Alexander.Shvets 5
Простые радости жизни программиста 1С: выбор типа значения
Предлагаемая в работе обработка включает обычную и управляемую формы, которые максимально точно реализуют функциональность системного диалога выбора типа в толстом клиенте обычное приложение (включая оформление диалога). Эти формы имеют дополнительные интерфейсные удобства и могут быть использованы в качестве альтернативных диалогов выбора типа.
17.02.2016 59739 56 yuraos 18
Яндекс.Деньги «Благотворительность»
Яндекс.Деньги теперь в 1С. Форма для приема благотворительных взносов. Форму легко сделать и вставить на любую страницу сайта или блога. Платежи будут приходить на ваш кошелек. На форме есть три способа платежа: из кошелька, с банковской карты, с баланса мобильного.
16.02.2016 28681 8 Tatitutu 5
Решение билетов к экзамену «1С: Специалист по конфигурированию УТ 11»
08.02.2016 28625 58 dimbasbear 17
Генерация QR-кода программная и интерактивная (код открыт, управляемая форма, обычное и управляемое приложение, API)
Обработку можно быстро и легко интегрировать в любую конфигурацию с и без БСП (Библиотека Стандартных Подсистем).
04.02.2016 56286 186 TuneSoft 30
Мастер рассылки e-mail 2.2 для управляемых форм
Для пользователей: переделанный из старый разработки под 8.2 с использованием библиотеки Мастер рассылки e-mail 2.2 (ERP, УТ, БП) (Только управляемые формы), который теперь может запускаться под любой версией платформы с разрешенными или запрещенными модальными/синхронными вызовами в конфигурации. Также удобный выбор e-mail и их владельцев с помощью отбора динамического списка по любым критериям и галочки исключения.
29.12.2015 47261 21 milkers 4
Нечеткий поиск одним запросом
Использование механизма полнотекстового поиска в 1С не всегда оправдано, т.к. построение индекса и поддержание его в актуальном состоянии может значительно нагружать систему. Предлагаемая реализация нечеткого поиска методом N-грамм выполняется одним запросом, что позволяет производить поиск в любой таблице и не требует предварительного построения индекса.
28.12.2015 35015 74 vasvl123 9
Передача больших пакетов через веб-сервисы
Реализация механизма передачи больших пакетов через веб-сервисы. С его помощью передать файл размером в несколько гигабайт не составит проблем.
06.12.2015 66315 56 YPermitin 19
Автоматическая подстановка уничтожений временных таблиц в текст запроса
Функция, которая сама подставляет в текст запроса «УНИЧТОЖИТЬ» в местах последнего использования ВТ.
14.11.2015 22817 0 SeiOkami 3
Загрузка УПД в Бухгалтерию 3.0 из Excel
20.10.2015 29562 27 teyana 22
Быстрое определение интервалов в запросе
В статье описывается новый метод определения интервалов между данными различных записей в запросе. В отличие от общеизвестного метода, время работы предлагаемого метода зависит от объема данных ЛИНЕЙНО. Это обеспечивает ему значительный выигрыш по быстродействию на больших объемах данных. В качестве иллюстрации возможностей метода приведен отчет, показывающий гистограмму распределения времени между продажами.
01.10.2015 61319 35 ildarovich 41
Полезные приемы при работе с Excel из 1С (Версия 3.1)
Программисту 1С часто приходится работать с таблицами Excel из 1С. Я постарался собрать небольшой FAQ и набор функций для работы с файлами Excel. Надеюсь, кому-то будет полезна данная статья.
22.09.2015 252650 521 Zerocl 81
Code First и Linq to EF на примере 1С версии 7.7 и 8.3 часть I
28.08.2015 26058 3 Serginio 2
Универсальная учетная система с конструктором документов и справочников в режиме 1С: Предприятие
29.07.2015 35617 143 informa1555 41
Для начинающих: как выбрать файл в 1С?
Добавим новую форму с кнопкой, нажав на которую будет открываться окно выбора файла. Дальнейшая обработка файла в данном примере не рассматривается. Рекомендуется тренироваться на копии базы или пустой конфигурации. Пример создан на конфигурации 1С:CRM 3.0.
Сначала подготовим конфигуратор.
Заходим в конфигуратор 1С. Если конфигурация не открыта, открываем ее и снимаем с поддержки. В меню «Конфигурация» нажимаем «Открыть конфигурацию». Далее в меню «Конфигурация» нажимаем «Поддержка» и выбираем «Настройка поддержки». В окне нажимаем кнопку «Включить возможность изменения» и устанавливаем переключатели как на картинке. Нажимаем «Ок».
Теперь создадим простую обработку.
Находим в левой таблице объектов объект «Обработки», нажимаем на ней правой кнопкой мыши и выбираем «Добавить». Далее потребуется заполнить Имя обработки, указать, в какой подсистеме 1С хотите вызвать обработку, и добавить новую форму в разделе «Формы».
После создания формы появится окно как представлено ниже.
Теперь создадим команду формы «Загрузить» нажав на плюс в верхнем правом окне. Обязательно укажите свойство «Действие». Это будет название процедуры 1С.
Далее добавляем на форму кнопку «Загрузить», нажав на плюс в левом верхнем окне. Обязательно укажите свойство «ИмяКоманды». Здесь укажем название команды, которую создали на предыдущем шаге «Загрузить». В результате на форме появится кнопка «Загрузить».
Далее напишем небольшой код.
Внизу окна нажимаем на закладку «Модуль». У нас здесь уже есть пустая процедура. Добавляем в нее код.
ДиалогВыбора = новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); ДиалогВыбора.Заголовок = «Выберите файл»;
ДиалогВыбора.Фильтр = «Excel документ, .xls|.xls»;
Если ДиалогВыбора.Выбрать() Тогда
В результате получится так как на рисунке ниже.
И в конце остается проверить в пользовательском режиме. Для этого нажимаем «Начать отладку» или F5. Конфигуратор спросит обновить ли конфигурацию базы данных. Отвечаем «Да» и у нас открывается 1С (режим пользователя). Далее находим подсистему, куда добавили обработку (в нашем случае это «Маркетинг») и проверяем.
На простейшем примере было показано как написать код, прикрепить его на форму и вызвать в пользовательском режиме 1С.
Загрузка из Excel в управляемом приложении
Столкнулся очередной раз с задачей древней как мир, кому-то из коллег показалось что в excel задача по загрузке информации в регистр сведений 1С (в частности ЛицевыеСчетаСотрудников) будет выполняться проще, чем в интерфейсе 1С. Но не надо на этом зацикливаться, информация, изложенная ниже, носит более широкий характер. Так вот, ввиду отсутствия MS Office на компьютере с базой пользователь благополучно был с обидой отправлен восвояси, при этом на локальном компьютере у пользователя был установлен офис, и это даже ставилось как аргумент. Позже возникла необходимость загрузки информации в похожий регистр, но задача отличалась тем, что теперь требовалось загрузить из Excel с локальной тачки в клиент-серверную базу. Устав людям доказывать, что не одним экселем сыт 1С, взялся за реализацию несложной задачи и так получилось, что увидел в наискучнейшем рутинном занятии повод для изысканий тут. Итак, как ни странно, подробного разбора полетов не нашел ни здесь, ни на профильных сайтах, есть опытные ответчики на сайтах и тут тоже был замечен из категории черного пояса по «Спасибо, кэп», с советами «в управляемом приложении перенеси все &НаКлиент» или «Конечно, перед открытием нужно указать путь на сервере, проснулся, типа скачай мою обработку и научись». Так вот эта заметка будет полезна тем, кто обойдется без выслушивания подобного рода высказывателей.
Со времен Толстого, задача действительно разделилась. И у банальной процедуры загрузки появились варианты, где ее выполнять, на клиенте или на сервере.
Первый вариант &НаКлиенте
Второй вариант &НаСервере.
После загрузки вам необходимо выполнить группировку загруженных данных, например, вы загружаете информацию не по лицевым счетам, а по загрузке графиков работы сотрудников при суммированном учете, не спорю, можно это извернуться и сделать массивами &НаКлиенте, но при загрузке большого объема данных логичнее в целях увеличения производительности перенести операцию &НаСервер и выполнить загрузку в таблицу значений. При явном указании пути к файлу на клиенте в процедуру &НаСервере, в лучшем случае получите сообщение, что файл не найден. Поэтому перед выполнением необходимо скопировать файл во временное хранилище в процедуре &НаКлиенте, а затем сохранить его во временный каталог уже на сервере
Временный каталог используется стандартного пользователя USR1CV82. В своем коде я еще применил таймстэмп на всякий случай, во избежание ошибки разделенного доступа к файлу в случае неожиданного завершения в прошлый запуск (почему-то окончание фразы сразу подумалось о другом и стало немного грустно а потом весело: не только 1С-ники косячат).
Всем благ, поменьше вам гневных советчиков на форумах, те, кто ничего нового не прочел, но упорно читал до конца, отвечу вам фразой известного футболиста про «Ваши ожидания».