Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Выгрузка в Excel Плохой тип переменной

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №1
 
04.03.2009 13:25

"Процедура VExcel()<br> Exc=СоздатьОбъект("Excel.Application");<br> ИмяФайла=("C:\temp.xls");<br> <br> НовыеРабочиеКниги=Exc.Workbooks;<br> РабочаяКнига=НовыеРабочиеКниги.Open(ИмяФайла);<br> КолРек=МФКатЦены.РазмерСписка();<br> Для Ном=1 по КолРек Цикл<br> Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br> КонецЦикла<br> <br> КонецПроцедуры<br><br>В результате сообщение<br>Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br>{Обработка.ПечатьПрайсЛиста.Форма.Модуль(44)}: Плохой тип переменной<br><br>Вопрос: что не так?"

Елена Р.
читатель
офлайн
Дата регистрации: 06.05.2008
Сообщений: 898
Пост №2
 
04.03.2009 13:49

"> Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном); <br><br>Попробуйте например сделать так:<br>Exc.Cells(1, Ном).Value=1;<br>Вылезет ошибка? Нет - Хорошо<br>Но вообще-то Cells - это метод листа Excelевской книги, а если смотреть на вашу процедуру, то вы пытаетесь в приложении Excel найти ячейку<br><br>В 1С 8 можно найти такой пример:<br>Excel = Новый COMОбъект("Excel.Application");<br>Excel.WorkBooks.Open(ИмяФайла);<br>Состояние("Обработка файла Microsoft Excel...");<br>ExcelЛист = Excel.Sheets(НомерЛистаExcel);<br>ExcelЛист.Cells(Row,Column).Value = 1;<br>"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №3
 
04.03.2009 14:29

"Не, ячейку мне находить не нужно<br>мне нужно выгрузить значения элементов списка в excel<br>если например делаю так:<br>Exc.Cells(1, Ном).Value=Ном;<br>Учитывая если размер списка равен - 4<br>то в excel вылазит в ячейку А1-"1", А2-"2" и тд до четырех<br>А вот вернуть значение списка согласно номеру как я это делаю ( МФКатЦены.ПолучитьЗначение(Ном))<br>не получается<br><br>"

Елена Р.
читатель
офлайн
Дата регистрации: 06.05.2008
Сообщений: 898
Пост №4
 
05.03.2009 14:25

"Тогда другой вопрос, а в качестве элементов списка у вас какой тип используется?<br>ПолучитьЗначение(<?>,)<br>Синтаксис:<br>ПолучитьЗначение(<Позиция>,<Строка>)<br>Назначение:<br>Получить значение из указанной позиции списка.<br>Возвращает значение из списка.<br>Параметры:<br><Позиция> - номер позиции в списке, из которой возвращается значение (изменяется от 1 до РазмерСписка);<br><Строка> - идентификатор переменной, в которой возвращается символьное представление получаемого значения.<br><br>В Excel вы скорее всего можете передать строку или число, а у вас какой тип возвращается МФКатЦены.ПолучитьЗначение(Ном)(что в списке МФКатЦены)?"

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №5
 
05.03.2009 15:57

"Дык Cells - не принадлежит классу Application, а принадлежит классу WorkSheet или Range<br>Надо примерно так:<br>Exc.ActiveSheet.Cells(1, Ном).Value="чего нибудь"<br><br>а еще лучше вообще сформировать ссылку на конкретный лист рабочей книги а потом именно в него слать значения, а то если алгоритм будет работать долго и пользователь параллельно сменит ActiveSheet, произойдет выдача значений уже в другой активный лист, короче, (пишу без теста и проверок), я бы делал так:<br>Exc=СоздатьОбъект("Excel.Application");<br>РабочаяКнига=Exc.Workbooks.Open(ИмяФайла);<br>ЛистКниги=РабочаяКнига.Sheets("Лист 1");<br>ЛистКниги.Cells(1, 1).Value="чего нибудь";"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №6
 
05.03.2009 17:44

вобщем начинаю рассказывать с самого начала<br>нужно справочник прайс лист выгрузить в ексель<br>для начала сделать шапку<br><br>у товара есть 4 категории цены<br>Закупочная, оптовая, мелкооптовая, розничная<br>эти категории можно выбирать из списка (МФКатЦен)<br>и выбраные категории нужно перенести в ексель<br>если например выбрать цены оптовая и розничная<br>должно получиться следующее<br> ______A___________B_____________C_______________D________<br­>1| Наименование | Артикул | Цена оптовая | Цена Розничная |

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №7
 
05.03.2009 17:50

RE: Дык Cells - не принадлежит классу Application, а принадлежит классу WorkSheet или Range<br> Надо примерно так:<br> Exc.ActiveSheet.Cells(1, Ном).Value="чего нибудь"<br>вот если туда написать "его нибудь" то это "чего нибудь" вылазит, причем вылазит правильно<br>если в списке выбрано два значения то и в ексель вылазит в А1-чего нибудь, B1-чего нибудь<br>а мне нужно чтобы вылазило значение списка МФКатЦены согласно его номеру в списке <br>

Thorvardr
читатель
офлайн
Дата регистрации: 25.02.2005
Сообщений: 3082
Пост №8
 
05.03.2009 21:10

"Если задача этим ограничивается, сделайте проще. Сформируйте печатную форму обычным сопособом, то есть прямо в 1С, а потом дайте команду:<br>Таб.Записать(ИмяФайла, 1);<br><br>Записать(<?>,);<br>Синтаксис:<br>Записать(<ИмяФайла>,<ТипФайла>)<br>Назначение:<br>Записать таблицу в файл.<br>Параметры:<br><ИмяФайла> - имя файла.<br><ТипФайла> - необязательный параметр. Числовое или строковое выражение, определяющее тип файла:<br>· отсутствует, 0 или ''MXL'' - формат 1C;<br>· 1 или ''XLS'' - формат Ms Excel;<br>· 2 или ''HTM'' или ''HTML'' - формат HTML;<br>· 3 или ''TXT'' - формат TXT.<br>Замечание:<br>Метод может использоваться при работе с таблицей в режиме ввода данных.<br><br><br>P.S. Если хочется все таки в Excel через OLE, напишите, завтра отвечу"

maestro_voln
читатель
офлайн
Дата регистрации: 04.03.2009
Сообщений: 289
Пост №9
 
06.03.2009 09:40

Я пока так и сохраняю, только через Файл-сохранить как..<br>но в справочнике прайс лист около 10000 наименований и поэтому сохраняется он очень долго

Елена Р.
читатель
офлайн
Дата регистрации: 06.05.2008
Сообщений: 898
Пост №10
 
06.03.2009 10:53

"Посмотрите через отладчик какой тип возвращает<br>МФКатЦены.ПолучитьЗначение(Ном)<br>или можно еще так написать<br>Сообщить(ТипЗначенияСтр(МФКатЦены.ПолучитьЗначение(Ном)));<br><br>Тип должен быть либо строка, либо число<br>Если что-то другое, то нужно преобразовывать, тем болееесли это тип "Справочник" или "Документ""

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация