Форум программистов, компьютерный форум, киберфорум
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.90/30: Рейтинг темы: голосов - 30, средняя оценка - 4.90
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
1

Загрузка и выгрузка табличной части документа в Excel

30.03.2016, 11:25. Просмотров 6114. Ответов 57
Метки нет (Все метки)

Учусь.

Есть Документ в котором Табличные Части -> ПереченьТоваров с Реквизитами Товар Цена Количество Сумма.
Создано 2 документа.
Открываю один из них.
На форме добавлена кнопка Выгрузить в файл.
Модуль:
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
&НаКлиенте
Процедура Команда1(Команда)
    // Вставить содержимое обработчика.
    Передача();
КонецПроцедуры
 
&НаСервереБезКонтекста  
Процедура Передача()  
    ApplicationExcel= Новый COMОбъект("Excel.Application");  
    ApplicationExcel.Visible = Истина;  
    ApplicationExcel.Workbooks.Open ("E:\1Cлиенты.xlsx");
    Док=Документы.Оприходование;
    i=2;  
    //Сообщить( Док.ТекущийДокумент());
 
    
    КоличетсвоСтрок = ЭтотОбъект.ПереченьТоваров.Количество();
    Если КоличествоСтрок <> 0 Тогда
    Для каждого Строчка из ЭтотОбъект.ПереченьТоваров Цикл
        ApplicationExcel.Sheets(1).Cells(i, 1).Value=Строчка.Товар;
ApplicationExcel.Sheets(1).Cells(i, 2).Value=Строчка.Количество;
        i=i+1;
    КонецЦикла
    КонецЕсли
        
        //Пока Выборка.ПолучитьСтроку() > 0 Цикл    
        //ApplicationExcel.Sheets(1).Cells(i, 1).Value=Выборка.Товар; //тут пишет что нет такого реквизита
        
        //i=i+1;
    //КонецЦикла;
КонецПроцедуры
Не получается. В последней попытке, приведенной, я даже не могу открыть документ. {Переменная ЭтотДокумент не определена}. Подскажите, помогите, первый день в 1С8.3, прошу с кодом пояснением. Либо как обратиться к полям/реквизитам открытого пользователем документа. В закомментированном коде есть другая реализация, ошибку также указал.
0
Лучшие ответы (1)
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.03.2016, 11:25
Ответы с готовыми решениями:

Выгрузка данных табличной части документа через СКД
Здравствуйте! Подскажите пожалуйста как можно через СКД выгрузить и получить доступ к данным...

Значение строки табличной части получить в табличной части другого документа
Есть документ ПриходнаяНакладная (товар приходит от поставщика по его цене), с табличной частью...

Заполнение табличной части одного документа из табличной части этого же документа
Здравсвуйте. 1С 8.2. Есть документ в этом документе 2 табличные части В 1 табличной части...

Заполнение табличной части одного документа из табличной части другого документа
Здравсвуйте. 1С 8.2. Есть документ Приход и документ Расход. Оба документа имеют табличные части -...

57
Dethmontt
Модератор
Эксперт 1С
2760 / 2514 / 446
Регистрация: 10.03.2011
Сообщений: 9,188
Записей в блоге: 1
Завершенные тесты: 1
30.03.2016, 16:59 21
vino0s, база файловая?
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:00  [ТС] 22
В режиме не конфигуратора (Как называется?) создано 2 документа. Когда захожу в один из них вижу ту кнопку что добавил (см. выше). Жму по ней, получаю ошибку

Добавлено через 43 секунды
Цитата Сообщение от Dethmontt Посмотреть сообщение
база файловая?
Это что где как?
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 17:04 23
Цитата Сообщение от vino0s Посмотреть сообщение
Табличные части: ПереченьТоваров [Товар, Цена, Количество, Сумма]
"ПереченьТоваров" является реквизитом объекта или реквизитом формы?

Добавлено через 3 минуты
Ты без передачи контекста (&НаСервереБезКонтекста) пытаешься обратиться к контексту
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:06  [ТС] 24
В общем я пишу по учебнику, и у меня начинают вылазить ошибки, вот я и обращаюсь сюда, на форум, чтоб объяснили почему так происходит. Я ноль в 1С пока... Поэтому вопросы с действиями, пожалуйста.

Добавлено через 1 минуту
Цитата Сообщение от Nenaviju1C Посмотреть сообщение
(&НаСервереБезКонтекста)
Это я уже давно исправил, см. новый листинг. Но ошибка все равно остается.
0
GreenkA
Форумчанин
Эксперт 1С
3012 / 1939 / 520
Регистрация: 25.06.2009
Сообщений: 6,839
30.03.2016, 17:08 25
vino0s, сохраните и выложите сюда конфу (заархивировав) В Конфигураторе в Меню Конфигурация - Сохранить конфигурацию в файл
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 17:08 26
Цитата Сообщение от vino0s Посмотреть сообщение
Поэтому вопросы с действиями, пожалуйста
еще раз ....

"ПереченьТоваров" является реквизитом объекта или реквизитом формы?
0
Dethmontt
Модератор
Эксперт 1С
2760 / 2514 / 446
Регистрация: 10.03.2011
Сообщений: 9,188
Записей в блоге: 1
Завершенные тесты: 1
30.03.2016, 17:09 27
Путь к базе выглядит как UNC? или как "srv: ref:"?

Не по теме:

ТС даже не удосужился хоть что нибудь почитать перед тем как спрашивать.
если ТС этого не надо - мне тем более



Добавлено через 55 секунд

Не по теме:

Ой сколько вас...

Я пошел тогда

0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:12  [ТС] 28
Может если пойти от обратного найдется ответ: Как загрузить данные из файла Эксель в открытый!!! документ?
0
GreenkA
Форумчанин
Эксперт 1С
3012 / 1939 / 520
Регистрация: 25.06.2009
Сообщений: 6,839
30.03.2016, 17:14 29
vino0s, вы все сообщения читаете? Точно?
В отладчике смотрели, где вылазит ошибка?
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:26  [ТС] 30
К примеру у меня есть(да у меня есть) вторая кнопка "Загрузить", при клике по которой откроется ДИАЛОГОВОЕ ОКНО выбора файла. После выбора файла и нажатия ОК/Выбрать -> Окно закрывается и данные из этого файла сразу заполняются в таблицу.

Добавлено через 1 минуту
Цитата Сообщение от GreenkO Посмотреть сообщение
вы все сообщения читаете?
Да, я читаю все сообщения, и по этому поводу написал просьбу:
Цитата Сообщение от vino0s Посмотреть сообщение
Поэтому вопросы с действиями, пожалуйста.
Понимаете, если у меня сломалась стиральная машина, прочитав документацию я не факт ее починю, но если мне скажут что сделать - результат будет положительный.

Добавлено через 10 минут
1C
1
ApplicationExcel.Sheets(1).Cells(i, 1).Value=Строчка.Товар;
на этой строчке как я понимаю ошибка выходит, я ставил "точку останова"
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 17:27 31
Цитата Сообщение от vino0s Посмотреть сообщение
но если мне скажут что сделать - результат будет положительный.
а читать научиться не пробовал?
Уже все сказали. Ты точно на js кодишь?
Я сам переходил с C# и вник достаточно быстро, а переходил кстати еще на 7.7 , а потом 8.0 , 8.1 ... теперь уже 8.3

Цитата Сообщение от vino0s Посмотреть сообщение
Понимаете, если у меня сломалась стиральная машина, прочитав документацию я не факт ее починю
Не понимаю. Я свою починил сам - за пол дня с ютубом наперевес посидел, раскидал ее, а потом так же собрал.
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:30  [ТС] 32
Цитата Сообщение от GreenkO Посмотреть сообщение
и выложите сюда конфу (заархивировав) В Конфигураторе в Меню Конфигурация - Сохранить конфигурацию в файл
Забыл ответить, у меня кнопка Сохранить конфигурацию не активна

Добавлено через 52 секунды
А нет, я не дочитал) Скидываю
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 17:31  [ТС] 33
Приложил
0
Вложения
Тип файла: rar 1Cv8.rar (17.8 Кб, 5 просмотров)
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 17:57 34
Бери ....

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
&НаКлиенте
Процедура Команда_УчиМатЧасть(РезультатВыбора, СтруктураДополнительныхПараметров) Экспорт
    
    Если РезультатВыбора = Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    Exl = Новый ComObject("Excel.Application");        
    Попытка
        Exl.Application.Workbooks.Open(РезультатВыбора[0]);
    Исключение
        мСообщение = Новый СообщениеПользователю();
        мСообщение.Текст = "что то пошло не так ...." + символы.ПС + ОписаниеОшибки();
        мСообщение.Сообщить();
        Возврат;
    КонецПопытки;
    
    // то что хочешь сделать с файлом
    
    Для каждого СтрокаТЧ Из Объект.ПереченьТоваров Цикл
        
        // Обработка коллекции табличной части документа
        
    КонецЦикла;
    
КонецПроцедуры
 
&НаКлиенте
Процедура Команда1(Команда)
    
    ДиалогФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ДиалогФайла.Фильтр = "Наш файл (*.xls, *.xlsx, *.csv)|*.xls; *.xlsx; *.csv";
    ДиалогФайла.МножественныйВыбор = Ложь;
    
    ОП = Новый ОписаниеОповещения("Команда_УчиМатЧасть", ЭтаФорма, Новый Структура);
    
    ДиалогФайла.Показать(ОП);
    
КонецПроцедуры
Добавлено через 6 минут
Цитата Сообщение от vino0s Посмотреть сообщение
А нет, я не дочитал)
вот-вот и я про это же не читаешь то что тебе пишут
1
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 18:05  [ТС] 35
Цитата Сообщение от Nenaviju1C Посмотреть сообщение
а читать научиться не пробовал?
Я делаю как вы НАПИСАЛИ и при этом выходит ОШИБКА
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 18:07 36
Цитата Сообщение от vino0s Посмотреть сообщение
Я делаю как вы НАПИСАЛИ и при этом выходит ОШИБКА
я тебе уже готовый код прислал тоже ошибка? ))
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 18:10  [ТС] 37
Цитата Сообщение от Nenaviju1C Посмотреть сообщение
не читаешь то что тебе пишут
Не дочитал я пункты меню в программе.

Добавлено через 2 минуты
Ваш код ни как не показывает как обработать файл, а именно с ним выходит ошибка, когда я записываю в файл, реализация открытия файла мне доступна в учебнике (но не проверял, может тоже с ошибкой.)
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 18:12 38
Тебе надо загрузить из файла или выгрузить в файл?
0
vino0s
11 / 11 / 8
Регистрация: 26.03.2014
Сообщений: 383
30.03.2016, 18:19  [ТС] 39
Вы же читать умеете говорите, топик не читали?

Добавлено через 1 минуту
И начал я с решения возникшей проблемы, а в конце выложить всю реализацию загрузки и выгрузки для тех кто будет искать.
0
Nenaviju1C
44 / 44 / 6
Регистрация: 17.03.2016
Сообщений: 122
30.03.2016, 18:24 40
Цитата Сообщение от vino0s Посмотреть сообщение
Ваш код ни как не показывает как обработать файл, а именно с ним выходит ошибка, когда я записываю в файл
1. Обработка файла должна производится на клиенте (см. мануал на сайте https://msdn.microsoft.com).
2. Ошибка не с моим кодом выходит, а ты что то не так делаешь.
3. Как записать данные в excel: читай мануал https://msdn.microsoft.com

Добавлено через 3 минуты
Можешь упростить задачу так:
1C
1
2
3
    МойТабличныйДокумент = новый ТабличныйДокумент;
    // Заполнение
    МойТабличныйДокумент.Записать("ПолныйАдресФайла.xlss", ТипФайлаТабличногоДокумента.XLSX);
0
30.03.2016, 18:24
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.03.2016, 18:24

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

Заполнение Табличной Части документа из Табличной Части другого документа
Здравсвуйте. 1С 8.2 Есть два документа ТоварнаяНакладная.Накладная с реквизитами МассаБрутто и...

Программное заполнение табличной части документа из табличной части справочника
Доброго! Ситуация, поставившая меня в тупик. Имеем 1с 8.2 УФ Имеем справочник &quot;Работ&quot; Имеем...

Автоматическое заполнение табличной части документа из табличной части другого
Добрый день. Совсем недавно начал изучать 1С и пока не могу найти решения собственной задачи)...

Из одного документа получить данные табличной части другого документа
Добрый день. Сразу оговорюсь 1С только начал изучать, поэтому просьба помидорами не закидывать. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.