Имя: Пароль:
1C
1С v8
Итератор для значения не определен..?
🠗 (Волшебник 14.08.2017 10:16)
,
0 AlexMee
 
14.08.17
10:07
Запрос.УстановитьПараметр("ДатаОтчета",ОбщегоНазначенияЗК.ПолучитьРабочуюДату());
    Запрос.УстановитьПараметр("Состояние",Перечисления.СостоянияРаботникаОрганизации.ОтпускЕжегодный);
    СтрокаДанных = Запрос.Выполнить().Выбрать().Следующий();
    Для Каждого СтрокаДанных из Запрос.Ссылка цикл
      Если СтрокаДанных.Выгружать Тогда
        Лист.Cells(1, 1).Value = СтрокаДанных.НазваниеРеквизита;
        Колонка = Колонка + 1;
      КонецЕсли;
    КонецЦикла;
     Для Каждого СтрокаДанных из Запрос цикл
      Если СтрокаДанных.Выгружать Тогда
        Лист.Cells(1, Колонка).Value = СтрокаДанных.НазваниеРеквизита;
        Колонка = Колонка + 1;
      КонецЕсли;
  КонецЦикла;
  СтрокаЛиста = 2;
    Пока Запрос.Следующий() Цикл
      Колонка = 1;
      Для каждого СтрокаДанных из Запрос цикл

      Если СтрокаДанных.Выгружать Тогда
      Попытка
        // Установить значение в строке и колонке
        Если ТипЗнч(Запрос[СтрокаДанных.НазваниеРеквизита])=Тип("Число") Тогда
        // Установить формат для типа Число
        Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "0,00";
        Лист.Cells(СтрокаЛиста, Колонка).Value =
          Формат(Запрос[СтрокаДанных.НазваниеРеквизита],"ЧГ=0");
        иначе
          // Для всех других типов установим формат "Текстовый"
          Лист.Cells(СтрокаЛиста, Колонка).NumberFormat = "@";
          Лист.Cells(СтрокаЛиста, Колонка).Value =
            Формат(Запрос[СтрокаДанных.НазваниеРеквизита]);
        КонецЕсли;
      исключение
        // в случае ошибки вывести номер строки и колонки
        Сообщить("Ошибка установки значения для: " +
          Запрос[СтрокаДанных.НазваниеРеквизита]);
        Сообщить("Стр: " +СтрокаЛиста+ " Кол: " +
          Колонка+ " Рек: " + СтрокаДанных.НазваниеРеквизита);
      КонецПопытки;
      Колонка = Колонка + 1;
      КонецЕсли;

    КонецЦикла;
    СтрокаЛиста = СтрокаЛиста + 1;
    Состояние("Экспорт из 1С в Excel " + СтрокаЛиста);
    КонецЦикла;

    // Сохраним созданную книгу в файл xls
    Книга.SaveAs(имяФайла);

    // Обязательно закроем соединение с COM объектом для освобождения памяти
    ТекстДок.Quit();    
    
    ТекстДок.Записать(ФайлВыгрузки.ПолноеИмя,"windows-1251");
КонецПроцедуры



Ругается на СтрокаДанных, хелп!)
1 Lexey_
 
14.08.17
10:08
(0) на на эту дичь не ругается? "из Запрос.Ссылка цикл"
2 Волшебник
 
модератор
14.08.17
10:09
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
...
КонецЦикла;
3 AlexMee
 
14.08.17
10:09
да! ссылка убрал..
4 Ёпрст
 
14.08.17
10:09
(0)


//    СтрокаДанных = Запрос.Выполнить().Выбрать().Следующий();
  //  Для Каждого СтрокаДанных из Запрос.Ссылка цикл
      СтрокаДанных= Запрос.Выполнить().Выбрать();
      Пока СтрокаДанных.Следующий() Цикл

          Если СтрокаДанных.Выгружать Тогда
5 Ёпрст
 
14.08.17
10:10
+4

вот этот мусор
    Пока Запрос.Следующий() Цикл
      Колонка = 1;
      Для каждого СтрокаДанных из Запрос цикл

тоже выкинь из кода
6 AlexMee
 
14.08.17
10:12
погодь, пробую..
7 AlexMee
 
14.08.17
10:15
СтрокаДанных.Выгружать
ругается на Выгружать
8 AlexMee
 
14.08.17
10:24
{(1)}: Поле объекта не обнаружено (Выгружать)
9 Волшебник
 
модератор
14.08.17
10:29
(8) Программирование — это точная наука, а не гадание на кофейной гуще. Вы должны чётко понимать тип объекта, к которому обращаетесь, а также его состав: свойства и методы.
10 AlexMee
 
14.08.17
14:00
не серчайте на мою лень) сам все сделал..
AdBlock убивает бесплатный контент. 1Сергей