![]() |
Модераторы: stron |
![]() ![]() ![]() |
|
Zero |
|
||||||||||||||||||||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 15 Всего: 24 |
Вступление. Многие знают, что Excel гораздо старше 1С. На мой взгляд, это очень успешный продукт, и нареканий о нем я не слышал. Excel прост и универсален. Он способен выполнять не только простые арифметические операции, но и сложные вычисления, построение графиков и т.п. Знаю примеры, когда организации до перехода на 1С вели часть бухгалтерии в Excel. Многие и сейчас параллельно используют две программы. В этой статье рассмотрим способы обмена данными между 1С и Excel. Таблицы 1С и Excel. Многие пользователи для удобства работы сохраняют таблицы 1С (печатные формы) в формате Excel (*.xls). После чего в полученном файле делают различные группировки, сортировки, вычисления и т.п. Связано это с тем, что в таблицах 1С нет такого огромного функционала как в таблицах Excel. Но в версии 1С 8.0 есть нововведения, делающих работу с таблицами более комфортной. На сайте 1С (www.1C.ru) есть полезная программка, которая дает возможность открывать таблицы 1С в Excel и сохранять лист Excel как таблицу 1С. Это пригодится в том случае, если таблицу 1С не сохранили в формате Excel, а на том компьютере, где нужно открыть эту таблицу не установлена 1С. Да и постоянно помнить о том, что сохранить таблицу 1С нужно в формате Excel, не будет необходимости. Полная информация о программе находится здесь. Скачать программу можно здесь (архив zip 682 739 байт). Замечание: В Excel разделителем дробной части считается символ ",". Поэтому перед сохранением таблицы 1С в формате Excel замените в ней другой разделитель (например ".") на ",". Иначе в Excel с этими числами не удастся произвести вычисления, или они вообще не будут отображаться как числа. Например, в таблице 1С "15.2" отобразится в Excel как "15.фев". Получение данных из Excel. Доступ из 1С к Excel производится посредством OLE. Например,
позволит нам получить доступ через переменную "Эксель" к запущенному приложению Excel. А далее уже можно получить доступ к книге (файлу), листу и ячейке с данными. Далее примеры кода. Открытие книги (файла)
Выбор листа книги для работы с ним:
Получение значения ячейки листа:
Важно: не забывайте поле выполнения нужных действий добавлять код Эксель.Quit(); , иначе запущенный процесс останется незавершенным и будет занимать память и процессор компьютера. Вывод данных в Excel. Для вывода (выгрузки) данных в Excel необходимо либо открыть существующую книгу, либо создать новую, и выбрать рабочий лист для вывода данных. Открытие существующей книги описано выше, а для создания новой книги нужно использовать следующий код:
И в конце нужно произвести запись созданной книги:
Важно: не забывайте, что в имени файлов не должно содержаться символов \ / : * ? " > < |. Часто используемые методы для чтения/установки значений в Excel.
Статья взята отсюда: http://exp-1c.narod.ru/articles/articl01.htm Это сообщение отредактировал(а) Zero - 17.6.2007, 12:21 |
||||||||||||||||||||||
|
|||||||||||||||||||||||
_Valery_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 22.1.2007 Где: Москва, Вешняки Репутация: 6 Всего: 6 |
Спасибо, Zero!
Очень интересная и полезная информация. Пригодицца ![]() Вопрос: как программно из 1С снять защиту листа в Excel? К примеру лист Excel заполняется из 1Ски какими-то данными. Затем какие-то данные туда добивают юзвери и это все загружается обратно в 1С. Юзвери глупые и так и норовят своими кривыми ручками попортить то, что им трограть не следует. Во избежание этого - я защищаю от изменений некоторые ячейки паролем. Но тогда 1Сина не может их заполнить. Надо предварительно снять защиту. А потом ее снова поставить. Методов для этого я нигде не могу найти ![]() Это сообщение отредактировал(а) _Valery_ - 17.3.2007, 00:35 --------------------
Ты добрый, это хорошо. Это по жизни очень пригодится...другим. |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 5 Всего: 49 |
ActiveSheet.Unprotect(password)
-------------------- Я желаю всем Счастья! |
|||
|
||||
Sipoju |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 4 Регистрация: 24.3.2007 Репутация: нет Всего: нет |
Подскажите пожалуйста, какой функцией можно программно экспортировать печатную форму документа в определенный лист Excel'я?
Заранее спасибо. |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 5 Всего: 49 |
Таб.Записать(<ИмяФайла>,<ТипФайла>)
-------------------- Я желаю всем Счастья! |
|||
|
||||
mikelangello |
|
||||||
![]() Новичок Профиль Группа: Участник Сообщений: 1 Регистрация: 6.6.2007 Репутация: нет Всего: нет |
Спасибо!
![]() Благодаря статье - подправил собственную обработку и кое-что добавил... ![]() Только вот еще один нюанс остался: нужно поставить защиту на некоторые колонки - подскажите, как это сделать?.. Пробовал и
|
||||||
|
|||||||
_Valery_ |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 153 Регистрация: 22.1.2007 Где: Москва, Вешняки Репутация: 6 Всего: 6 |
mikelangello, я делала так, когда выгружала список сотрудников для премии в эксель и защищала столбцы с их табельным номером и ФИО, чтобы никто не попортил и потом нормально загрузилось обратно:
Т.е. мы сперва снимаем защиту, потом заполняем ячейки данными, потом прописываем какие ячейки будут доступными и снова ставим защиту (как бы на все оставшиеся ячейки). Вот =) --------------------
Ты добрый, это хорошо. Это по жизни очень пригодится...другим. |
|||
|
||||
dionisiu |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
Zero, Ваши ссылки (на 1С: Работа с файлами) не работают, однако с сайта программу я скачал.
Проблема возникает следующая - при сохранении (1С77) файла отчёта из 1С в формат Экселя операция занимает уйму (до 20-ти минут) времени, основательно подвешивая сервер (из-за чего главбушка его перезагружает ресетом - со всеми вытекающими). Но в моксельном формате сохраняет на-раз. Программа "Работа с файлами" этот файл, ессно, открывает, и даже пытается его сохранить в эксель, причём потом этот файл даже можно открыть (удивительно). Тем не менее, столкнулся с неприятной фишкой - разделители дробной части в этой программе сменить на запятую невозможно, также дикая проблема - шрифт всех числовых данных переведён в Ариал размером 0 пунктов (ноль - это не очепятка, а реальность). Но хуже всего, оказалось, что название листа в полученной книге не Sheet1, а TDSheet (oh shirt!!!), из-за чего все ссылки настроенной автоматики выдали ошибку. На ихнем сайте нет форума (точнее - доступ для владельцев пакета разработчика), а обратная связь - только по проблемам сайта, вот и пишу сюда - горе своё изливаю. а горе не шуточное - два месяца, потраченное на создание ВБА-шной программы в экселе для обработки входящей информации о продажах и переброски в отчётность - псу под хвост. В нескольких топиках на этом и паре других форумов уже неоднократно говорилось о проблеме 1С77 при записи БОЛЬШИХ файлов (мой сейчас весит в мокселе 6,6 МБ) в формат Экселя (какая-то там функция рекурсивно себя вызывает от первой до последней строки). Назрела необходимость создать универсальную функцию по преобразованию MXL>XLS (для желающих - ещё и наоборот, хотя для меня последний вопрос не актуален, пока). Кто-нибудь имеет "на руках" спецификацию формата moxel? (внутреннего формата 1С) |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 15 Всего: 24 |
dionisiu, я честно не доконца понял вашей проблемы... Вас я так пологаю неустраивает то что отчёт в ексель долго сохраняеться??? Дак это проблема с железом. У меня тоже 1С-овские отчёты на 30000 позиций на серваке 6 ГГц с 2ГБ оперативы в терминале 10 мин. приходиться ждать. Но что поделаешь, так там заложен алгоритм конвертации. Так что обясните вашей главбухше, чтобы она операцию сохранения проводила, кода её делать нефиг. И ресетом переггружать комп - не есть гуд, после этого ещё индексные файлы минуть 5 востанавливать придётся.
Какие ссылки? Я не каких ссылок не давал. ![]() ![]() |
|||
|
||||
dionisiu |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
обычно, слова "здесь" на html-станицах означают ссылку "кликни сюда и файл (или другая страница) загрузится", вот я и говорю, ссылки не работают. А по поводу моей проблеммы - не главбушка сохраняет файлы, а я сам, просто она сидит на машине, которая сервером зовётся, и когда я по сети в терминале открываю 1С, запускаю отчёт, а потом его сохраняю - тормозит у всех (в Процессах мой экземпляр жрёт 99% процессорного времени, а память подгружает по метру в секунду), к то в этот момент на треминал вошел, а кто только собрался входить - того вовсе не пускает. Вот она и жмёт ресет - как ей объяснить - не знаю, если скажу на прямую, сожрут нафиг, уже предупреждение от шефа было. если 6ГГц - не опечатка - завидую сильно. ![]() |
|||
|
||||
Zero |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2169 Регистрация: 23.10.2004 Где: Россия, г. Рязань Репутация: 15 Всего: 24 |
Прошу прощенья, уже исправлено. Просто скопировал плохо. Вообщем то ссылку на статью оригинал я дал. А на форуме решил её скопировать, потому что сам часто в неё лажу. А через поиск в своё время случайно наткнулся. У других думаю тоже чаще получаеться на форуме быть, и читать тут удобнее, так что непомешает. Есть ещё вариант: установи у себя на компе допонительную копию 1С, и перед формированием отчёта копируй базу на свой комп, а потом с него всё делай. Та прога для открытия mxl полезна тем у когда нет 1с-ки. Ага опечатка, правельней 6,4 ГГц. ![]() Сейчас уже 16 пользователей в терменале запускают 1с-ку с него. |
|||
|
||||
dionisiu |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
||||
|
||||
PKD |
|
|||
Новичок Профиль Группа: Участник Сообщений: 26 Регистрация: 24.1.2007 Где: Ukraine, Zaporozh ie Репутация: нет Всего: нет |
С уважением ко всем!
Объясните мне, пожалуйста, зачем осуществлять связь (импорт-экспорт) Microsoft Excel с СУБД 1С (тем более 7.7)??? |
|||
|
||||
Naghual |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1893 Регистрация: 15.5.2004 Где: Украина, Днепр Репутация: 5 Всего: 49 |
PKD, судя по вопросу, тебе не понять...
Или я не верно уловил сарказм??? -------------------- Я желаю всем Счастья! |
|||
|
||||
dionisiu |
|
|||
Бывалый ![]() Профиль Группа: Участник Сообщений: 170 Регистрация: 13.5.2006 Где: Крым Репутация: нет Всего: 2 |
PKD, всё предельно просто: 1С77 достаточно распространена, но при этом морально устарела (не в обиду будь сказано - это мнение почёрпнуто здесь же). Однако, переход на восьмёрку далеко не всем по карману, вот и приходится из старушки последние жилы тянуть. А она, как известно, является учётной программой, функции анализа там минимальны. В то же время - Эксель именно аналитическая фишка (ещё бы OO Calc поддерживал ВБА - вообщеб цены не было), с данными в экселе можно вытворять массу всякой всячины.
Не связать их - это просто аморально. Особенно, когда есть высокое начальство, которое только и думает: как бы ещё операторов на местах озадачить, какую им ещё работу (обработку, отчёт, анализ) подкинуть, чтоб они там (операторы) от скуки не сдохли.... Шалуны, млн (начальство). Сорри за оффтоп, наболело: Два года работаю оператором БД местного отделения крупной фирмы (не оператор 1С - просто прослойка между 1С и интернетом). В функциях: несколько ежедневных отчётов (открыть 1С, скачать данные об остатках, продажах, обработать, занести в экселевские бланки, выслать в Центральный Офис Фирмы - далее ЦОФ), а также ведение трёх баз данных, не касающихся 1С (на акцесе, в экселе - не шучу, и одна фирменная разработка стороннего производителя). Наше отделение закреплено за крупной оптовой базой (база торгует массой всякой всячины: от гвоздей до мопедов, от чипсов до мороженной рыбы, пиво, соки, водка - в ассортименте), причём наша команда ведёт учёт продаж именно нашей продукции (определённые сорта и бренды). Так же периодически начальству нужна различная инфа: типа как там продавалась наша продукция в такой-то период клиентам типа магазина, или типа киоска. Вот тут и начинается проблема - 1С (наша конфигурация) не хранит данных о типе торговой точки - это нужно знать и держать или в голове, или в некой таблице, а потом - сравнивать все сработавшие точки с этим списком и выбирать именно нужный тип. И все разговоры с начальством базы о необходимости внесения изменений в ИХНЮЮ конфигурацию заканчиваются посылом на.... Но когда я потратил два месяца на программирование одной примочки ко всему этому киселю - оказалось, что 1С77 нужный мне отчёт (в нужном мне ракурсе данных) формирует около 10 минут, а потом ещё пол-часа сохраняет в формате xls. При этом сохранение в её родном формате mxl занимает менее трёх секунд!!!!!, но открыть напрямую в Экселе его невозможно, а пересохранение через программу 1С: Работа с файлами (пункт меню "Сохранить копию") в формате xls отнимает времени столько же, но результат ещё хуже: все числовые данные форматируются как текст!!!!!!!!!!!!!! Потом ни одна функция СУММ() или СУММЕСЛИ() не работает!!!!!!! (из другой книги) а вы говорите Теперь, надеюсь, понятно? |
|||
|
||||
![]() ![]() ![]() |
Правила форума "1C: Предприятие, SAP, ERP и учётные системы" | |
|
Запрещается! 1. Обсуждение крэков, кейгенов и других подобных программ Пробуйте искать сами или обращайтесь в приват к участникам форума. Темы с подобными вещами будут немедленно удаляться, а нарушители - получать предупреждения. Также запрещается обсуждение проблем работы этих программ (что куда вписать, куда что скопировать и т.п...) 2. Давать ссылки на взломанные продукты
|
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | 1C: Предприятие, SAP, ERP и учётные системы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |