Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > 1C: Предприятие, SAP, ERP и учётные системы > Как сохранить таблицу данных 1С 7.7


Автор: Olegan 20.5.2008, 16:04
Добрые сутки!  smile 

У нас есть база 1С 7.7 Кадры, собранная Самарскими умельцами. Главбуху встала задача скопировать все строки данных из таблицы 1С в Excel. Програмно это сделать не получится, у нас доступ простых юзеров.
Я думал copy/paste по старинке сработает, а нет. smile 
(думаю понятно написал smile )

Как это можно сделать?

Благодарен! smile 

Автор: mmvds 20.5.2008, 17:31
"Таблица данных" имеется ввиду таблица, располагающаяся на форме (таблица значений)? 
Если да, то ищем среди кнопок внизу кнопку "Печать", в стандартных конфигурациях 1С такая кнопка есть почти на всех документах, жмем на нее, вылазит печатная форма документа, с которой уже можно копировать все строки.
Если конфигурация самописная и кнопки "Печать" или аналогичной нет, то нужен доступ к конфигуратору, чтоб создать табличный документ для данной таблицы значений.
Если доступа к редактированию конфигурации нет, то стандартными средствами никак.
Из нестандартных средств, можно сделать копирование через какой-либо скриптовый язык, например есть хорошая штука http://www.nncron.ru/index_ru.shtml поячеечно копируем через ctrl+c и вставляем через ctrl+v первую строчку и запускаем цикл n раз (n-кол-во строк);

Автор: ea6h 20.5.2008, 22:15
Olegan, когда на экране печатная форма: Файл-Сохранить как..- выбираем тип файла "Таблица Excel"

Автор: Olegan 21.5.2008, 08:12
Цитата(mmvds @  20.5.2008,  17:31 Найти цитируемый пост)
кнопки "Печать"

нету, блин, этой кнопки... smile 
Цитата(mmvds @  20.5.2008,  17:31 Найти цитируемый пост)
нужен доступ к конфигуратору

и доступа нет... smile 
Цитата(ea6h @  20.5.2008,  22:15 Найти цитируемый пост)
Файл-Сохранить как..- выбираем тип файла "Таблица Excel"

Enabled:=False эта опция... smile 
 smile 
Цитата(mmvds @  20.5.2008,  17:31 Найти цитируемый пост)
есть хорошая штука nncron

а вот тут можно подробнее, как это реализовать? smile 

Автор: mmvds 21.5.2008, 12:00
Ставишь nncron (для русскоязычных бесплатный)
Жмешь на его значке в трее, добавить задачу, пишешь имя задачи, переходишь на вкладку дополнительно, удаляешь все что есть и вставляешь скрипт:
Код

WatchHotKey: "^@{0x48}"
Action:
\ ждем секунду, чтоб успели отпустить горячую клавишу
PAUSE: 1000
\ Выполняем для 10 строк
10 0 DO
\ Копируем поячеечно 4 ячейки в строке
4 0 DO
WIN-ACTIVATE: "*Предприятие*"
PAUSE: 100
SEND-KEYS: "{APP}"
PAUSE: 50
SEND-KEYS: "з"
PAUSE: 50
SEND-KEYS: "{RIGHT}"
PAUSE: 50
WIN-ACTIVATE: "*Excel*"
PAUSE: 100
SEND-KEYS: "{APP}"
PAUSE: 50
SEND-KEYS: "а"
PAUSE: 50
SEND-KEYS: "{RIGHT}"
PAUSE: 50
LOOP

\ Переходим к следующей строке
SEND-KEYS: "{DOWN}"
PAUSE: 50
4 0 DO
SEND-KEYS: "{LEFT}"
LOOP
PAUSE: 50
WIN-ACTIVATE: "*Предприятие*"
PAUSE: 100
SEND-KEYS: "{DOWN}"
PAUSE: 50
4 0 DO
SEND-KEYS: "{LEFT}"
LOOP
PAUSE: 50
LOOP

Скрипт написал для таблицы 4 столбца 10 строк, если нужны другие размеры, поменяй соответственно 10 и 4 на то что нужно.

1) Открываем нужный документ в 1с, выбираем первый элемент таблицы
2) Открываем нужный документ в Excel, выбираем ячейку, начиная с которой будет заполняться таблица.
3) В 1с переключаемся на русскую раскладку!
4) Жмем Ctrl+Alt+H и отпускаем. Поставил паузу в 1 секунду, чтоб успели отпустить клавиши, а то старенькие бухгалтера страдают тем что нажмут на кнопку и не отпуская смотрят, что же вылезет smile

Также в зависимости от быстродействия компа можно поэксперементировать с паузами, особенно после команд переключения окон WIN-ACTIVATE: "*Excel*" и WIN-ACTIVATE: "*Предприятие*". Если комп старенький, изменить паузу со 100 до 200 или больше, конечно время выполнения увеличится.
Если комп достаточно современный, то смело уменьшить все паузы, тем самым ускорится выполнение скрипта. Таблица 10*4 при данных настройках копируется за 23 секунды.

Автор: Olegan 21.5.2008, 15:14
mmvds, спасибо, попробую и отпишусь! smile 
Если все выгорит в репу дам! smile 

Автор: Olegan 21.5.2008, 15:55
Да, есть контакт! smile 
mmvds, от все души спасибо! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)