К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Сохранение таблицы в Excel + формат ячейки "дата" вместо "общий"

Гость
0 - 17.01.2013 - 13:21
Сохраняю таблицу отчета (Файл-Сохранить) в Excel 2010. Есть колонка с датами в формате "#ДДДММГГГГ", положение "центр". Как нужно в 1С отформатировать дату при выводе в таблицу, чтобы в Excel в этой ячейке сразу установился бы формат "Дата"? Сейчас устанавливается формат "Общий".


1 - 17.01.2013 - 14:11
"20120105" - общий формат
"05.01.2012" - дата
Гость
2 - 17.01.2013 - 14:58
пересохрани прогой - 1C Предприятие 8.2 - Работа с файлами
Гость
3 - 17.01.2013 - 15:32
Попробуй выравнять значения не по центру, а право (лучше сразу в конфигураторе). При сохранении эксель должен врубится в нужный формат.
Гость
4 - 17.01.2013 - 16:19
а вывести в ячейку =Дата(год;месяц;день) религия не позволяет?
Гость
5 - 18.01.2013 - 17:04
1) Это понятно и так. Естественно выводится "05.01.2012". Написал же про формат "#ДДДММГГГГ"
2) Речь о 1С 7.7
3) Если выравнивание в право, то Excel воспринимает как число.
4) Пробовал. В отчете выводится как "05.01.12". В Excel все равно сохраняется в формате "Общий"
Гость
6 - 18.01.2013 - 17:43
тогда так попробуй


ДатаФормат = "ДД.ММ.ГГГГ";
Лист2.Cells(НомерСтроки,НомерКолонки).NumberFormat = ДатаФормат;


даем экселю по башке - впендюриваем формат даты
Гость
7 - 18.01.2013 - 19:10
Влево
Гость
8 - 21.01.2013 - 16:50
6) эээ ... неееет, не пойдет. Понятно, что при программной выгрузке в эксель, можно чего хочешь наформатировать. Мне же надо, чтобы в 1С:Предприятие нажал "Сохранить как" и все ...
7) Выравнивание влево, или по центру, дает одинаковый результат. В Excel все равно сохраняется в формате "Общий".
Гость
9 - 21.01.2013 - 17:16
уважаемый, с такими запролсами валите ка вы .... к разработчикам 1це.
10 - 21.01.2013 - 17:40
2(0) У тебя Ексель неправильный. 97-ой отлично понимал строку типа "01.11.2012" как ДАТУ.
Гость
11 - 22.01.2013 - 09:31
Кстати да, стоит, однако-ж, поставить на MSO2010 SP1... Борюсь с привычкой "Сохранить как - xls" всеми средствами, уж больно много от нее проблем.

Если не шашечки, а ехать, то можно решить задачу и внутри Excel, формулами или на VBA:

=ДАТА(ЛЕВСИМВ(RC[-1];4);ПСТР(RC[-1];5;2);ПРАВСИМВ(RC[-1];2))

Если эту строку ввести в правила автозамены PuntoSwitcher на набор пары буковок, то получить нужные даты можно за несколько секунд - вставил столбец, нажал пару буковок и пробел, двойной клик по маркеру автозаполнения - вуаля.

А на написание/чтение/поиски решения в рамках всего этого поста - у уважаемой публики уже ушло, имхо, 3 человеко-часа, что нанесло ущерб российскому ВВП по меньшей мере в 1 тыс. руб.
Гость
12 - 22.01.2013 - 09:51
решение давно найдено грамотными человеками.
причем работает гораздо быстрее
всех предложенных здесь
Гость
13 - 22.01.2013 - 11:57
Моксель? Так и он иногда пасует перед экзотическими форматами, форматированием пробелами и нестандартными разделителями триад/дробной доли.
Гость
14 - 22.01.2013 - 12:10
что такое моксель?
Гость
15 - 22.01.2013 - 14:49
йоксель-моксель, что-же еще?
Гость
16 - 22.01.2013 - 16:05
ну и нафиг оно нужно?
Гость
17 - 22.01.2013 - 16:12
Helen1986 - сохранять за 5 секунд в XLS то, что штатным методом Сохранить как не сохранится никогда.
Гость
18 - 22.01.2013 - 16:21
12)Что за решение то, от грамотных людей? Озвучьте пожалуйста?
Гость
19 - 22.01.2013 - 16:29
На счет Йокселя, пробовал как то, по минимуму, только для сохранения больших отчетов.
А кто в курсе, Йоксель проблему указанную здесь, решает?
Гость
20 - 23.01.2013 - 09:27
(18) у нас это работает в первую очередь в индивидуальных прайсах для покупателей
смысл простой - из обработки пишем в ДБВ файлы (встроенная возможность), ДБФ создается программно,
полям записи присваивается нужный тип.
Записи сначала записываются в ТЗ и там как надо сортируются (по цене, срокам годности, срокам поставки, изготовителю и ваще как моя левая задняя нога пожелает)

Открывается эксель через ОЛЕ

выдается команда на создание нужной страницы в экселе (прайсы у нас многостраничные)

импортируется внеший ДБФ файл на страницу. Так как эксель признает ДБФ файлы за свои - он прекрасно разбирается в типах ячеек. Импортируется 60 тыс строк за 1-2 секунды

Далее у нас раскрашиваются колонки, устанавливается их защита, вносятся формулы для расчетов и т.д.
Обработка ведется не отдельных ячеек, а регионов.

для создания новой страницы цикл повторяется

затем файл экселя записывается

все программируется очень легко - есть программка,
которая записанные в экселе тексты макросов переделывает в куски кода 1це. Знай себе клепай макросы в экселе, кидай через буфер в программку, и опять таки через буфер в 1це. Думать особо не надА
Гость
21 - 23.01.2013 - 09:34
при создании файлов экселя (именно прайсов) мы делаем скрытые колонки, в которые заносим идентификатор товара в 1це, контрольные суммы и т.д.

покупатель просто проставляет в прайсе количество
при этом у него на экране отображается автоматом
сумма по группе товаров
вес/объем по группе товаров
на отдельном листе -
суммы по группам товаров
вес/объем по группам товаров
итоговая сумма
итоговый вес

после простановки заказанного количества файл отсылается взад. И оператор на основе этого файла формирует расходные накладные с учетом веса, габаритов и т.д.

Есть еще заказ через сайты - там немного по другому
но заказом через эксельные файлы пользуется куча клиентов - по моему, многие предпочитают именно такую оторванную от инета заказную систему

там же реализована защита от подделок
Гость
22 - 23.01.2013 - 13:29
Helen1986 - одобряю именно такой подход. Где надо много считать - лучше и проще этио сделает Excel... Правда сейчас вОроны налетят, скажут что мы не правы...

И тем не менее есть пара ремарок, вдруг кому понадобится:

1) Транслировать код VBA в 1C-код, по моему извращение. Буфер, если это не терминальный сеанс - можно работать с ним и программно. Я бы перенес (у мя тоже есть подобная система) центр кода в Excel.

2) Excel 2007 некорректно работает с DBF при доступе через ODBC/ADO/DAO именно с датами, не делает экспорт в DBF. Начиная с этой версии поставил крест на использование с Excel файлов DBF. Лучше работать с TXT - парсинг мгновенный, все методы штатные, типизация не утиная - а та, которая нужна...
Гость
23 - 23.01.2013 - 15:11
(22) это не мой подход - это я сперла готовую идею и мне понравилось рисовать для заполнения сложных таблиц экселя с формулами и на нескольких листах


транслируется код макроса - точнее, команд, которые надо подать экселю для выполнения. Чтобы мосх не парить
Гость
24 - 23.01.2013 - 17:25
Прекрасное решение. Только не сабжа, правда.
Заявлено: "Сохранение таблицы в Excel"
Предложенно: "Создание таблицы Excel-я"
Что полезно, конечно :D
Гость
25 - 23.01.2013 - 20:13
Helen1986 - ага, значит все таки наоборот - из кода 1С в Excel передаются команды VBA (т.е. через COM или идет доступ к объектной модели VBProject). Все рано изврат. Если жутко не хочется в XLS файлах держать макросы - держите их в XLA/XLAM - библиотеках. И клиентов антивирус будет спать спокойно, и макросы можно будет редактировать в VBA IDE, что не в пример удобнее COM-обращений. Имхо.

VZ - Да... Создание предложено Helen1986, я же предложил либо сохранять быстро тем что умеет не коверкать формат. У создания есть минус - тогда если это терминальный сервер - нужен Excel на сервере, а это лицензионный вопрос, и в случае сложных или долгих макросов - нагрузка на сервак, вплоть до его завешивания.
Гость
26 - 24.01.2013 - 09:43
(25) фигня твои предложения
Гость
27 - 24.01.2013 - 13:03
Helen1986
Спасибо за подробное описание. Метод и сфера его применения весьма интересные.
А что за программка, которая макросы экселя в код 1С переводит? Не слышал про такую.
Гость
28 - 24.01.2013 - 14:36
FriendVBA называется
29 - 22.02.2017 - 07:50
Контроль - "Авто"
Положение - "Центр" - "Центр".
Проверено - работает!


К списку вопросов






Copyright ©, Все права защищены