Какое Имя Присваивается по Умолчанию Файлу Excel • Специальные предложения

Сохранить табличный документ по умолчанию в Excel

Очень часто клиенты просили меня сделать им так, чтобы по нажатию элемента меню «Сохранить как» открывался диалог сохранения файла, в котором уже был бы выбран тип файла «ТаблицаExcel (*.xls)».

Посидел, подумал и решил немножко по-другому сделать.

Функция глСохранитьФайлExcel () Экспорт
Перем ТекКонтекст ;
Перем ИмяФайла ;
Перем ИмяКаталога ;

ЗагрузитьВнешнююКомпоненту( «FormEx.dll» ) ;
глСервис = СоздатьОбъект( «Сервис» );

//получаем контекст активной формы
Если глСервис . АктивныйКонтекст ( ТекКонтекст ) = 1 Тогда

//проверяем является ли форма таблицой
Если ТипЗначенияСтр( ТекКонтекст ) = «Таблица» Тогда

//активная таблица будет всегда первой в списке таблиц
глСервис . СписокТаблиц (). ПолучитьЗначение ( 1 , ИмяФайла );

Если ФС. ВыбратьФайл ( 1 , ИмяФайла , ИмяКаталога , «Сохранить как» , «Таблицы Excel (*.xls)|*.xls» ) = 1 Тогда
ТекКонтекст . Записать ( ИмяКаталога + ИмяФайла, 1 );
КонецЕсли;
КонецЕсли;
КонецЕсли;

Добавил в меню «Файл» элемент «Сохранить в Excel»(Объект — Задача, Команда — Задача.Выполнить, Формула — глСохранитьФайлExcel()) — и все, клиент доволен.

Для работы необходим formex.dll (можно взять по адресу dorex.ru)

Специальные предложения

Маркировка 488-ФЗ

Интеграция 1С с системой Меркурий

Алкогольная декларация

Готовые переносы данных

54-ФЗ

Управление проектом на Инфостарте

Траектория обучения 1С-разработчика

Маркетплейсы и 1С

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

Задачи оптимизировать сохранение не было. Просто пользователю хотелось меньше нажимать кнопки мыши.
(1)Я не знаю как можно обратиться к уже открытой таблице штатными методами, поэтому использовал FormEx.
(2)А Йоксель я гляну.

(11) Интересно :-)
Только вот Пока 1=1 Цикл не нужно.
Все равно ведь при совпадении имени файла существующие удаляются.

(14) я нет, а вот автор не знаю))) в свое время нашел данный код на просторах инета)))

добавьте с комментарием что автор неизвестен, и что готовы при условии того что он найдется изменить авторство

(4) не обязательно, код раскрывающий сущность в необходимом объеме — приведен.
(3) без формекса — только переделкой конфигурации и то без гарантий. ;-)

(0) Что-то у меня не получается.
Эта строка просто прелетает как фанерка :-)

Если ФС.ВыбратьФайл(1, ИмяФайла, ИмяКаталога, «Сохранить как», «Таблицы Excel (*.xls)|*.xls») = 1 Тогда

Из отладчика:
ИмяФайла = «ПЕЧАТЬ: Расходная накладная *»
ИмяКаталога =

Автор, перед строкой из (6) добавьте на всякий случай: ;-)

Если Прав(ИмяФайла,2)=» *» Тогда
ИмяФайла=Лев(ИмяФайла,СтрДлина(ИмяФайла)-2);
КонецЕсли;
ИмяФайла=СтрЗаменить(ИмяФайла,»:»,»-«);

(7)(8) Изначально у меня было
ИмяФайла = СокрЛП(СтрЗаменить(ИмяФайла, «*», «»));
Но я решил не навязывать свое мнение другим, а без этого кода я просто не проверял и не думал, что вылезут ошибки.

мне в 11 что нравится — то что перенос идет в цветовой гамме 1С а не экселя, а они как известно не совпадают

кстати, насчет имен файлов не пробовал — формирую со штатно-крякозябровыми

Добавил в меню «Файл» элемент «Сохранить в Excel»(Объект — Задача, Команда — Задача.Выполнить, Формула — глСохранитьФайлExcel()) — и все, клиент доволен.

У меня работает успешно при использовании RWidjets вот такой код:

Процедура ПриПолученииКоманды(пКоманда, пЗаблокироватьКоманду) Экспорт
Сервис = СоздатьОбъект(«Сервис»);

Если (пКоманда = 57604) ИЛИ (пКоманда = 57603) Тогда
Конт = «»;
Если Сервис.АктивныйКонтекст(Конт) = 0 Тогда
Возврат;
КонецЕсли;
Если ПустоеЗначение(Конт) = 1 Тогда
Возврат;
КонецЕсли;

Попытка
Если ТипЗначенияСтр(Конт) = «ГрупповойКонтекст» Тогда
Если ТипЗначенияСтр(Конт.Таблица) = «Таблица» Тогда
Конт = Конт.Таблица;
КонецЕсли;
КонецЕсли;
Исключение
КонецПопытки;

Если ТипЗначенияСтр(Конт) = «Таблица» Тогда
ИмяФайла=»»;
Попытка
Сервис.СписокТаблиц().ПолучитьЗначение(1,ИмяФайла);
Исключение
КонецПопытки;

пЗаблокироватьКоманду = 1;
//Формируем списки доступных форматов сохранения
сзСтандартнойОбработки = СоздатьОбъект(«СписокЗначений»);
сзСтандартнойОбработки.ДобавитьЗначение(«MXL»,»Файл 1С»);
сзСтандартнойОбработки.ДобавитьЗначение(«HTML»,»Файл HTML»);
сзСтандартнойОбработки.ДобавитьЗначение(«TXT»,»Текст»);

сзСохраненияЙоксель = СоздатьОбъект(«СписокЗначений»);
сзСохраненияЙоксель.ДобавитьЗначение(«XLS»,»Файл Excel»);

Таб = Конт;
ИмяФайла = ?(ПустоеЗначение(ИмяФайла) = 1,»Таблица1″,ИмяФайла);

стрНедопустимыхСимволов = «/\*:»»,.~’%&»;
Позиция = СтрДлина(ИмяФайла);
Для НомерСимвола = 1 по СтрДлина(стрНедопустимыхСимволов) Цикл
ИмяФайла = СтрЗаменить(ИмяФайла,Сред(стрНедопустимыхСимволов,НомерСимвола,1),» «);
КонецЦикла;

Пока СтрЧислоВхождений(ИмяФайла,» «) 0 цикл
ИмяФайла = СтрЗаменить(ИмяФайла,» «,» «);
КонецЦикла;

//Формируем строку выбора формата файла.
строкаВыбораФормата=»»;
Для НомерВарианта = 1 по 2 Цикл
Если НомерВарианта = 1 тогда //Перебор списков вариантов сохранения
ТекущийВариант = сзСохраненияЙоксель;
Иначе
ТекущийВариант = сзСтандартнойОбработки;
КонецЕсли;

//Определяем расширение файла
КоличествоТочекВИмени = СтрЧислоВхождений(ИмяФайла,».»);
Расширение = ИмяФайла;
Для НомерТочки = 1 по КоличествоТочекВИмени Цикл
Расширение = Прав(Расширение,СтрДлина(Расширение)-Найти(Расширение,».»))
КонецЦикла;

//Формат файла — это его раширение
ИмяФайла = Лев(ИмяФайла, СтрДлина(ИмяФайла) — СтрДлина(Расширение) — 1);
ФорматСохранения = Врег(Расширение);
//Формируем путь сохранения
ПутьСохранения = Каталог + ИмяФайла+».»+Расширение;

Если ФС.СуществуетФайл(ПутьСохранения) = 0 Тогда
ИмяФайлаОК = 1;
Иначе
Если Вопрос(«»+ПутьСохранения+» уже существует.
|Заменить?»,»Да+Нет») = «Да» Тогда
УдалятьСуществующий = 1;
ИмяФайлаОК = 1;
Иначе
ИмяФайлаОК = 0;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Для номерПопытки = 1 по 3 Цикл
Если УдалятьСуществующий = 1 Тогда
ФС.УдалитьФайл(ПутьСохранения);
УдалятьСуществующий = 0;
КонецЕсли;

Если ФС.СуществуетФайл(ПутьСохранения) = 0 Тогда
Док.Записать(ПутьСохранения,1);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;

Если ФС.СуществуетФайл(ПутьСохранения) = 0 Тогда
Сообщить(«Ошибка: не удалось сохранить файл. Обратитесь к разработчику.»,»!»);
КонецЕсли;

Иначе
Сообщить(«Ошибка: Формат сохранения не идентифицирован.»,»!»);
Сообщить(«Ошибка: не удалось сохранить файл. Обратитесь к разработчику.»,»!»);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры

[expert_bq id=»1570″]Найдите тип файла в проводнике, к которому вы хотите изменить программу для открытия по умолчанию нажмите на него правой кнопкой мыши и выберите Открыть с помощью Выбрать другое приложение. Если же вы хотите что-то уточнить, обращайтесь ко мне![/expert_bq] Эксель может не только предоставить общий доступ к файлу, но решить некоторые другие задачи, которые появляются по ходу совместной работы с одной книгой. Например, инструменты приложения позволяют отслеживать изменения, производимые различными участниками, а также утверждать либо отклонять их. Выясним, что может предложить программа пользователям, столкнувшимся с подобной задачей.
Какое Имя Присваивается по Умолчанию Файлу Excel • Специальные предложения

Сколько листов можно сделать в Excel? Ваша онлайн-энциклопедия

  1. Одну и ту же часть документа редактируют несколько пользователей. К примеру, вбивают разные данные в одну ячейку. Возникает блокировка.
  2. Во время пользования совместным файлом ведется журнал изменений (кто входил, когда, что делал). Книга увеличивается. Начинает «глючить».
  3. Удалили кого-то из пользователей, но пока ему не сказали об этом. Тогда блокировка может появиться только на его компьютере.
  4. Большая нагрузка на сетевой ресурс.

Приступаем к созданию процедуры CreatePivotTable, которая формирует сводную таблицу на основе исходной таблицы компонентов. Как мы сейчас убедимся, программный код этой процедуры довольно небольшой, но писать его вручную — дело довольно утомительное. Поэтому лучше воспользоваться мастером Pivot Table Wizard, а затем модифицировать созданный при этом код в более универсальный вид.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: