Active Document + Excel + 1c8.2

01.08.11

Интеграция - Загрузка и выгрузка в Excel

Пример кода в 1С, как использовать макеты Excel листов напрямую.

Редко, но иногда использую - очень полезная штука.

ТабДок = Новый табличныйДокумент;
АктивныйДокумент = ПолучитьМакет("Макет");  //-- Макет Active Document лист Ексель.

КомОбъект = АктивныйДокумент.Получить();

//--- далее пишем в Cells(НомерСтроки, НомерСтолбца). Value  все что нужно. см.пример ниже 

КомОбъект.ActiveSheet.Cells(6,1).Value=сокрлп(ТекДокумент.Организация);
КомОбъект.ActiveSheet.Cells(8,1).Value=сокрлп(ТекДокумент.Подразделение);

КомОбъект.ActiveSheet.Cells(15,35).Value=сокрлп(ТекДокумент.Номер);
КомОбъект.ActiveSheet.Cells(15,43).Value=сокрлп(формат(ТекДокумент.Дата, "ДФ=dd.MM.yyyy"));
  
// строчки
Для Каждого СТР ИЗ ТекДокумент.Материалы Цикл

    Если Лев(сокрлп(стр.Счет), 2) = "20" Тогда

        КомОбъект.ActiveSheet.Cells(28,1).Value=сокрлп(стр.Номенклатура);
        КомОбъект.ActiveSheet.Cells(28,23).Value=сокрлп(стр.Цена);
        КомОбъект.ActiveSheet.Cells(28,27).Value=сокрлп(стр.Количество);
        КомОбъект.ActiveSheet.Cells(28,30).Value=сокрлп(стр.Сумма);

    Иначе

        КомОбъект.ActiveSheet.Cells(Ном,34).Value=сокрлп(стр.Номенклатура);
        КомОбъект.ActiveSheet.Cells(Ном,62).Value=сокрлп(стр.Цена);
        КомОбъект.ActiveSheet.Cells(Ном,66).Value=сокрлп(стр.Количество);
        КомОбъект.ActiveSheet.Cells(Ном,70).Value=сокрлп(стр.Сумма);
        Ном = Ном +1;
    КонецЕсли;

КонецЦикла;
// ну и напоследок отображает открытую книгу Ексель. 

КомОбъект.Application.Visible = 1;
КомОбъект.Windows(1).Visible = 1;

См. также

SALE! 10%

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 9504 руб.

29.10.2014    210169    620    524    

439

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 11.12.2023, версия 9.5 - 9.9)

13200 руб.

20.11.2015    150717    367    375    

501

Маркетплейсный загрузчик для 12-ти маркетплейсов в "БП 3", "УТ 11", "КА 2", ERP, УНФ

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 Бухгалтерский учет 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет Управленческий учет Платные (руб)

Реальный помощник, с помощью которого Вы сделаете необходимые документы для Wildberries, OZON, ЯндексМаркет, Мегамаркет, Aliexpress, "Детский мир", Казань-Экспресс, "Леруа Мерлен", ЭНФАНТА (Акушерство), ЛаМода, Летуаль, "Твой дом" в документы "Отчет комиссионера (агента) о продажах" и другие, может работать в "Бухгалтерия 3", "Бухгалтерия 3 КОРП", УТ 11, УНФ, КА 2, ERP. Возможность подключить любые маркетплейсы. Анализ продаж ОЗОН. 30 дней БЕСПЛАТНОГО пользования!

1800 руб.

12.08.2021    31893    226    63    

117

SALE! 20%

Загрузка документов и номенклатуры из Excel в 1С "одним нажатием": УПД, ТОРГ-12, отчеты маркетплейсов, заказы, счета, прайсы

Загрузка и выгрузка в Excel Оптовая торговля Платформа 1С v8.3 Управляемые формы Платформа 1C v8.2 Конфигурации 1cv8 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная обработка для загрузки документов из Excel в 1С. Не требует указания параметров (номера колонок, номер первой строки таблицы и т.д.) и предварительной настройки. Просто выбираете файл Excel, документ 1С и нажимаете кнопку "Загрузить". Обработка сама находит таблицу в файле Excel, необходимые для загрузки данные в ней (номенклатура, количество, НДС, цена, сумма) и загружает ее в 1С. Вместе с номенклатурой может найти контрагента, номер и дату документа, штрих-коды, серии ГТД, страну и т.д. Распознает документы ЛЮБОЙ ФОРМЫ (УПД, ТОРГ-12, заказ, отчет комиссионера и т.д.). Не требует MS Office. Для поиска таблиц используются методы эвристического поиска. Загружает только то, что нужно, т.е. пропускает повторы шапки таблицы, заголовки, промежуточные итоги, подписи и т.д. Содержит модуль работы с электронной почтой и api-загрузчик отчетов о продажах маркетплейсов.

5000 4000 руб.

09.11.2016    214924    925    886    

939

Загрузка данных отчета о реализации товаров из Excel файла СберМегаМаркет

Загрузка и выгрузка в Excel Маркетплейсы Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Загрузка данных отчета о реализации товаров из сервиса СберМегаМаркет для конфигурации: Бухгалтерия предприятия, редакция 3.0; Управление торговлей, редакция 11 и Управление нашей фирмой, редакция 3.0 в документ "Отчет комиссионера (агента) о продажах".

4800 руб.

07.06.2022    15077    79    0    

60

SALE! 30%

Распознавание и загрузка сканов в 1С "одним нажатием": УПД, ТОРГ-12, накладные, счета, номенклатура, заказы и т.д.

Загрузка и выгрузка в Excel Документооборот и делопроизводство (СЭД) Учет документов Распознавание документов и образов Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление холдингом 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Бухгалтерский учет Управленческий учет Платные (руб)

Универсальная программа для распознавания ЛЮБЫХ СКАНОВ ИЛИ ФОТО ТОВАРНЫХ ДОКУМЕНТОВ в 1С. Не требует указания параметров и предварительной настройки. Просто выбираете файл (PDF, JPG, DOC, XLS, HTML и т.д.) выбираете документ 1С и нажимаете кнопку "Распознать и загрузить".

6000 5520 руб.

04.06.2019    101374    296    173    

312
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. v_id 106 01.08.11 16:29 Сейчас в теме
EXEL
редко но иногда использую


ндя...
9. sserazm 03.08.11 12:10 Сейчас в теме
Платформа 8.2.13, делаю обработку загоняю в макет двоичных данных ексель формата 97-2003, пишу код :
ТаблДок=Новый ТабличныйДокумент;
АктивныйДокумент=ПолучитьМакет("Макет");
КомОбъект=АктивныйДокумент.Получить();
КомОбъект.ActiveSheet.Cells(5,3).Value=10;
КомОбъект.ActiveSheet.Cells(6,3).Value=20;
КомОбъект.ActiveSheet.Cells(7,3).Value=30;
КомОбъект.Application.Visible = 1;
КомОбъект.Windows(1).Visible = 1;
Запускаю, на мгновение открывается пустое окно Екселя, без рабочих книг и сразу закрывается.
В чем пробелма ??
16. ZLENKO 398 19.03.12 16:41 Сейчас в теме
(9) Проблема в границах видимости переменной КомОбъект.
Когда заканчивается выполнение вашей процедуры или функции, то переменная уничтожается.
Объявите переменную как переменую формы:
Перем КомОбъект;
18. LanGrid 179 28.06.12 09:28 Сейчас в теме
(16) розница.net,
+1 , в точку.
Вот аналогично для MSWord.
Переменная в модуле формы не объявлена, процедура в модуле объекта, но Word не закрывается :0)

Процедура ЗаполнитьПечатныйДокументТ5_2004(ИмяМакета)

Попытка
Т5_от_5_1_2004=ПолучитьМакет("Т5_от_5_1_2004");
MSWord=Т5_от_5_1_2004.Получить();
Исключение
Сообщить(ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
КонецПопытки;

Размер1=Формат(Сумма, "ЧЦ=15; ЧДЦ=2;ЧРД=' '");
Размер1ЦелаяЧасть=Формат(Цел(Сумма), "ЧРД=' '");
Размер1Дробнаячасть=Сумма-Цел(Сумма);
Размер1Дробнаячасть1=?(Размер1Дробнаячасть=0,"00",Размер1Дробнаячасть*100);
Сумма_стр=ЧислоПрописью(Сумма,, "Рубль, руб., руб., м, копейка, коп., коп., ж, 2");

MSWord.Content.Find.Execute("[НазваниеОрганизации]",,,,,,,,,Организация);
MSWord.Content.Find.Execute("[НомерДок]",,,,,,,,,НомерПриказа);
MSWord.Content.Find.Execute("[КодПоОКПО]",,,,,,,,,КодПоОКПО);
MSWord.Content.Find.Execute("[ДатаДок]",,,,,,,,,ДатаПриказа);
MSWord.Content.Find.Execute("[Работник]",,,,,,,,,СотрудникФИО);
MSWord.Content.Find.Execute("[ТабельныйНомер]",,,,,,,,,ТабельныйНомер);
MSWord.Content.Find.Execute("[Подразделение1]",,,,,,,,,Подразделение);
MSWord.Content.Find.Execute("[Должность1]",,,,,,,,,Должность);
MSWord.Content.Find.Execute("[Мотив]",,,,,,,,,Приказ);
MSWord.Content.Find.Execute("[Вид_п]",,,,,,,,,Награда.Наименование);
MSWord.Content.Find.Execute("[Основание]",,,,,,,,,Основание);
MSWord.Content.Find.Execute("[Сумма_руб]",,,,,,,,,Размер1ЦелаяЧасть);
MSWord.Content.Find.Execute("[Сумма_коп]",,,,,,,,,Размер1Дробнаячасть1);
MSWord.Content.Find.Execute("[Сумма_стр]",,,,,,,,,Сумма_стр);
MSWord.Content.Find.Execute("[ДолжностьРук]",,,,,,,,,ДолжностьРуководителя);
MSWord.Content.Find.Execute("[ФИОРук]",,,,,,,,,ФИОРуководителя);

MSWord.Application.Visible=Истина;
MSWord.Activate();

КонецПроцедуры
21. frkbvfnjh 785 23.08.22 05:36 Сейчас в теме
(18) А как быть с таблицей? Вывести ТЧ в таблицу MSWord...
22. frkbvfnjh 785 23.08.22 05:36 Сейчас в теме
(18) А колонтитулы верхний и нижний?
10. Matador 117 03.08.11 13:29 Сейчас в теме
sserazm пишет:

Платформа 8.2.13, делаю обработку загоняю в макет двоичных данных ексель формата 97-2003, пишу код :
ТаблДок=Новый ТабличныйДокумент;
АктивныйДокумент=ПолучитьМакет("Макет");
КомОбъект=АктивныйДокумент.Получить();
КомОбъект.ActiveSheet.Cells(5,3).Value=10;
КомОбъект.ActiveSheet.Cells(6,3).Value=20;
КомОбъект.ActiveSheet.Cells(7,3).Value=30;
КомОбъект.Application.Visible = 1;
КомОбъект.Windows(1).Visible = 1;
Запускаю, на мгновение открывается пустое окно Екселя, без рабочих книг и сразу закрывается.
В чем пробелма ??
Показать


у себя делаю на платформе 8.2.14.96 офис 2010
тут по сути могут быть лишь два типа ошибок. либо платформа не умеет использовать либо VBA вашего офиса. не правильно отрабатывает. последнее врядли .т.к это типовые команды VBA они еще в 97 офисах работали.
2. alexk-is 6533 01.08.11 16:59 Сейчас в теме
3. Matador 117 01.08.11 18:30 Сейчас в теме
4. Matador 117 01.08.11 18:32 Сейчас в теме
v_id пишет:
ндя...
исправил.со :)
5. sserazm 02.08.11 10:56 Сейчас в теме
Не удалось получить работающий результат. Исходные данные : платформа 8.1.15, в обработку поместил макет екселя 97-2003, другой тупо не помещался (на компе Office2007). После запуски обработки, на секунду показывается екселевский документ и пропадает. Как с этим боротся ?
6. Matador 117 02.08.11 12:01 Сейчас в теме
sserazm пишет:

Не удалось получить работающий результат. Исходные данные : платформа 8.1.15, в обработку поместил макет екселя 97-2003, другой тупо не помещался (на компе Office2007). После запуски обработки, на секунду показывается екселевский документ и пропадает. Как с этим боротся ?


попробуйте так поставить.
КомОбъект.Application.Workbooks.visible = 1;

в отладчике можете посмотреть все доступные атрибуты обьекта "КомОбъект.Application" и с ними поработать.
7. sserazm 02.08.11 12:43 Сейчас в теме
Попробывал использовать КомОбъект.Application.Workbooks.visible = 1; не получилось. У КомОбъект.Application.Workbooks, нету метода visible/
Как получить работающий результат ?
8. Matador 117 02.08.11 18:18 Сейчас в теме
sserazm пишет:

Попробывал использовать КомОбъект.Application.Workbooks.visible = 1; не получилось. У КомОбъект.Application.Workbooks, нету метода visible/
Как получить работающий результат ?


как вариант обновить платформу до 8.2 т.к у меня 8.2 и потестить на 8.1 возможности нет.
11. alon 171 06.08.11 00:48 Сейчас в теме
ТабДок = Новый табличныйДокумент;

Что это и куда?
AlexeyK1; +1 Ответить
12. vec435 15 19.10.11 15:51 Сейчас в теме
сама идея хорошая.можно "загнать" в макет нужной структуры
13. 02RUSlan 63 09.11.11 10:27 Сейчас в теме
Сделайте, пожалуйста, типовую обработку для примера
14. 02RUSlan 63 09.11.11 17:24 Сейчас в теме
15. It-developer 24 15.02.12 12:47 Сейчас в теме
Не используейте Active Document в 1с - куйня редкостная. Жутко тормознутая, невозможно работать в Excel когда что-то выгружаешь с ее помощью. Особенно плохо себя показывает когда хочешь вставить картинки. Пришлось переделывать отчет, чтобы ее не использовать - я сделал табличные документы, которые сохраняешь в Excel, затем объединение таблиц и потом обработка макросом (чтоб сделать гиперссылки). Все это дало колоссальный прирост производительности
17. ZLENKO 398 11.05.12 15:54 Сейчас в теме
(15) Согласен. Не используйте Active Document - его невозможно сохранить!
Убил кучу времени пока понял, что это не я что то не так делаю, а просто невозможно.
Сделал просто через COM.
Однако Excel 2007-2010 через COM ужасно медленно работает с ячейками, поэтому пришлось формировать то что надо вывести в буфер обмена Windows, а потом программно вставить на лист Excel через COM.
19. LanGrid 179 28.06.12 09:37 Сейчас в теме
(17) розница.net,
Делаю аналогично, формирую ТаблицаЗначений.
Создаю документ по шаблону
Попытка
Excel = Новый COMОбъект("Excel.Application");
Попытка
Excel.Workbooks.Open(ФайлШаблона);
НомерКниги = Excel.Workbooks.Count;
Книга = Excel.Workbooks.Item(НомерКниги);
Лист = Excel.ActiveSheet;

// содать новую книгу
Excel.Application.Workbooks.Add(1);
НомерКниги = Excel.Workbooks.Count;
КнигаНовая = Excel.Workbooks.Item(НомерКниги);
ЛистНовый = Excel.ActiveSheet;

// копировать область в новую книгу
Лист.Range("Шаблон").Copy(ЛистНовый.Range("A1:Y22"));

Excel.Workbooks.Item(1).Close(Ложь);


Переливаем из ТЗ в документ.
20. ZLENKO 398 11.09.12 17:15 Сейчас в теме
(19) С поячеечным переливанием тоже проблема - VBA (по крайней мере при вызове для COM объекта) на Excel 2007-2010 имеет сильную деградацию производительности (первая сотня ячеек быстро, а потом все медленнее и медленнее и после тысячи совсем тормозит). После длительных поисков вариантов решения остановился таки на формировании текстового буфера обмена и вставки его в подготовленный (с созданным оформлением, условным форматированием и т.п.) файл Excel.

	
Функция ПолучитьТекстБуфераОбмена() Экспорт
#Если Клиент Тогда
    Объект = Новый COMОбъект("htmlfile");
    Возврат Объект.ParentWindow.ClipboardData.Getdata("Text");
#КонецЕсли
КонецФункции
 
Функция УстановитьТекстВБуферОбмена(Текст) Экспорт
#Если Клиент Тогда 
    Объект = Новый COMОбъект("htmlfile");
    Объект.ParentWindow.ClipboardData.Setdata("Text", Текст);
    Возврат Текст;
#КонецЕсли 
КонецФункции   

ДокументБуфераОбмена = Новый ТекстовыйДокумент;
...
//Вставим данные в подготовленный лист Excel
УстановитьТекстВБуферОбмена(ДокументБуфераОбмена.ПолучитьТекст());
ЛистДанныхExcel.Paste(ЛистДанныхExcel.Cells(НомерНачСтрокиExcel, 1));
Показать
Оставьте свое сообщение