Экспорт в Эксель и остатки

Тема в разделе "1C и всё что с ней связано", создана пользователем Dzo, 14 май 2009.

  1. Dzo

    Dzo Active Member

    Регистрация:
    13 апр 2009
    Сообщения:
    38
    Симпатии:
    0
    Есть простенький текст программы

    Процедура Выполнить()
    xl=СоздатьОбъект("Excel.Application");
    xl.Workbooks.Add(); //Добавляем новый документ
    xl.Visible=1; //Делаем его видимым

    row=1; //первая строка
    column=1;
    спр=СоздатьОбъект("Справочник.Контрагенты");
    Ном=СоздатьОбъект("Справочник.Номенклатура");
    ТипыЦен=СоздатьОбъект("Справочник.ТипыЦен");
    Цены=СоздатьОбъект("Справочник.Цены");
    ТипыЦен.НайтиПоНаименованию("Розничные");
    Розн=ТипыЦен.ТекущийЭлемент();

    Запрос=СоздатьОбъект("Запрос");
    ТекстЗапроса=
    "//{{ЗАПРОС(Остатки)
    |Номенклатура=Регистр.ОстаткиТМЦ.Номенклатура;
    |Кол=Регистр.ОстаткиТМЦ.Количество;
    |"//}}Запрос
    ;

    Если Запрос.Выполнить(ТекстЗапроса)=0 Тогда
    Сообщить("Не удалось выполнить запрос");
    КонецЕсли;

    Ном.ВыбратьЭлементы();
    Пока Ном.ПолучитьЭлемент()=1 Цикл
    Если Ном.ТекущийЭлемент().ЭтоГруппа()=0 Тогда
    Цены.ИспользоватьВладельца(Ном.ТекущийЭлемент());
    Цены.НайтиПоРеквизиту("ТипЦен", Розн, 0);
    ТекущаяЦена=Цены.ТекущийЭлемент();
    xl.Cells(row,1).Value=Ном.Наименование;
    xl.Cells(row,2).Value=ТекущаяЦена.Цена.Получить(РабочаяДата());
    xl.Cells(row,3).Value=ТекущаяЦена.Валюта.Наименование;
    xl.Cells(row,4).Value=Запрос.Кол;
    row=row+1;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры


    Не отображаются остатки ТМЦ в колонек документа экселя

    ТиС 7.7
     
  2. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    конечно не отображаются - нет периода в котором рассчитываются остатки, нет функции, определяющей тип количества (начальный остаток, приход, расход, конечный остаток). то бишь остатки просто не рассчитываются, потому и пустые. Нет связи между запросом и перебором номенклатуры. Проще количество через сводныйОстаток получить.
     
  3. Dzo

    Dzo Active Member

    Регистрация:
    13 апр 2009
    Сообщения:
    38
    Симпатии:
    0
    А не подскажите по конкретнее, если не сложно )
     
  4. puh14

    puh14 Well-Known Member
    1C Team

    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Процедура Выполнить()
    xl=СоздатьОбъект("Excel.Application");
    xl.Workbooks.Add(); //Добавляем новый документ
    xl.Visible=1; //Делаем его видимым

    row=1; //первая строка
    column=1;
    спр=СоздатьОбъект("Справочник.Контрагенты");
    Ном=СоздатьОбъект("Справочник.Номенклатура");
    ТипыЦен=СоздатьОбъект("Справочник.ТипыЦен");
    Цены=СоздатьОбъект("Справочник.Цены");
    ТипыЦен.НайтиПоНаименованию("Розничные");
    Розн=ТипыЦен.ТекущийЭлемент();

    Рег = СоздатьОбъект("регистр.ОстаткиТОваров");
    Рег.ВременныйРасчет();
    РассчитатьРегистрыНа(ТутНадоДату);//проще всего дату задавать на форме.

    Ном.ВыбратьЭлементы();
    Пока Ном.ПолучитьЭлемент()=1 Цикл
    Если Ном.ТекущийЭлемент().ЭтоГруппа()=0 Тогда
    Цены.ИспользоватьВладельца(Ном.ТекущийЭлемент());
    Цены.НайтиПоРеквизиту("ТипЦен", Розн, 0);
    ТекущаяЦена=Цены.ТекущийЭлемент();
    xl.Cells(row,1).Value=Ном.Наименование;
    xl.Cells(row,2).Value=ТекущаяЦена.Цена.Получить(РабочаяДата());
    xl.Cells(row,3).Value=ТекущаяЦена.Валюта.Наименование;
    xl.Cells(row,4).Value=Рег.СводныйОстаток(,Ном.ТекущийЭлемент(),,"Количество"); //Посмотри про эту функцию - там надо в опр порядке все проставить
    row=row+1;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
     
  5. Dzo

    Dzo Active Member

    Регистрация:
    13 апр 2009
    Сообщения:
    38
    Симпатии:
    0
    Схему я понял, но выдает ошибку:

    xl.Cells(row,4).Value=Рег.СводныйОстаток(Ном.ТекущийЭлемент(),,"Количество");
    {Обработка.ВыгрузкаНоменклатуры.Форма.Модуль(50)}: Неверный идентификатор ресурса!

    Проверил названия Регистра и индентификатора "Количество" все совпадает, не пойму в чем проблема (
     
  6. unknown181538

    unknown181538 НеГуру
    1C Team

    Регистрация:
    28 дек 2008
    Сообщения:
    1.418
    Симпатии:
    0
    А порядок проверил? В этой функции количеству измерений должно соответствовать количество запятых.
     
  7. Dzo

    Dzo Active Member

    Регистрация:
    13 апр 2009
    Сообщения:
    38
    Симпатии:
    0
    Я разобрался, а как ставить плюсы? Что то у меня закрыты эти поля..
     
Загрузка...

Поделиться этой страницей