Бухгалтерский учет, налогообложение, отчетность, МСФО, анализ бухгалтерской информации, 1С:Бухгалтерия

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

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

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

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

"Процедура VExcel()
Exc=СоздатьОбъект("Excel.Application");
ИмяФайла=("C:\temp.xls");

НовыеРабочиеКниги=Exc.Workbooks;
РабочаяКнига=НовыеРабочиеКниги.Open(ИмяФайла);
КолРек=МФКатЦены.РазмерСписка();
Для Ном=1 по КолРек Цикл
Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном);
КонецЦикла

КонецПроцедуры

В результате сообщение
Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном);
{Обработка.ПечатьПрайсЛиста.Форма.Модуль(44)}: Плохой тип переменной

Вопрос: что не так?"

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

"> Exc.Cells(1, Ном).Value=МФКатЦены.ПолучитьЗначение(Ном);

Попробуйте например сделать так:
Exc.Cells(1, Ном).Value=1;
Вылезет ошибка? Нет - Хорошо
Но вообще-то Cells - это метод листа Excelевской книги, а если смотреть на вашу процедуру, то вы пытаетесь в приложении Excel найти ячейку

В 1С 8 можно найти такой пример:
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
Состояние("Обработка файла Microsoft Excel...");
ExcelЛист = Excel.Sheets(НомерЛистаExcel);
ExcelЛист.Cells(Row,Column).Value = 1;
"

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

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

"

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

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

В Excel вы скорее всего можете передать строку или число, а у вас какой тип возвращается МФКатЦены.ПолучитьЗначение(Ном)(что в списке МФКатЦены)?"

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

"Дык Cells - не принадлежит классу Application, а принадлежит классу WorkSheet или Range
Надо примерно так:
Exc.ActiveSheet.Cells(1, Ном).Value="чего нибудь"

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

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

вобщем начинаю рассказывать с самого начала
нужно справочник прайс лист выгрузить в ексель
для начала сделать шапку

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

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

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

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

"Если задача этим ограничивается, сделайте проще. Сформируйте печатную форму обычным сопособом, то есть прямо в 1С, а потом дайте команду:
Таб.Записать(ИмяФайла, 1);

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


P.S. Если хочется все таки в Excel через OLE, напишите, завтра отвечу"

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

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

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

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

Тип должен быть либо строка, либо число
Если что-то другое, то нужно преобразовывать, тем болееесли это тип "Справочник" или "Документ""

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

Читают тему:

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

1С бесплатно 1С-Отчетность 1С:ERP Управление предприятием 1С:Бесплатно 1С:Бухгалтерия 8 1С:Бухгалтерия 8 КОРП 1С:Бухгалтерия автономного учреждения 1С:Бухгалтерия государственного учреждения 1С:Бюджет муниципального образования 1С:Бюджет поселения 1С:Вещевое довольствие 1С:Деньги 1С:Документооборот 1С:Зарплата и кадры бюджетного учреждения 1С:Зарплата и кадры государственного учреждения 1С:Зарплата и управление персоналом 1С:Зарплата и управление персоналом КОРП 1С:Комплексная автоматизация 8 1С:Лекторий 1С:Предприятие 1С:Предприятие 7.7 1С:Предприятие 8 1С:Розница 1С:Управление нашей фирмой 1С:Управление производственным предприятием 1С:Управление торговлей 1СПредприятие 8

Все теги