Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

СписокЗначений() использование


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13

#1   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 14:56

Зашиваюсь уже. Задача
Процедура Сформировать()
Док=СоздатьОбъект("Документ.ПриходнаяНакладная");
Док.ВыбратьДокументы("01.01.11","03.01.11");
Пока док.ПолучитьДокумент()=1 Цикл
ВсеДокументы.ДобавитьЗначение(Док,Строка(Док));
Конеццикла;
Для н=1 по ВсеДокументы.размерсписка() Цикл
попытка
Значение=ВсеДокументы.ПолучитьЗначение(н);
сообщить(значение) ;
исключение
ОписаниеОшибки();
Конецпопытки;
конеццикла;
КонецПроцедуры

Почему не сообщает ничего?

  • 0

#2   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 20 April 2011 - 15:02

Неуспел ((((((((((
  • 0

#3   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 15:07

На Список можно не обращать внимания (убрала уже)
А ВсеДокументы- Элемент Список на форме
  • 0

#4   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 20 April 2011 - 15:15

попробуй так:

Док=СоздатьОбъект("Документ.ПриходнаяНакладная");
Список= СоздатьОбъект("СписокЗначений");
Док.ВыбратьДокументы("01.01.11","03.01.11");
Пока док.ПолучитьДокумент()=1 Цикл
Список.ДобавитьЗначение(Док,Строка(Док));
Конеццикла;
Значение="";
Для н=1 по Список.размерсписка() Цикл
попытка
Список.ПолучитьЗначение(н,Значение);
сообщить(Значение) ;
исключение
ОписаниеОшибки();
Конецпопытки;
конеццикла;

  • 0

#5   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 15:22

Сразу прошу прощения за встретившийся объект Список, вме написанное касается только Все Документы. Опять отредактировала, но суть в том, что мне нужно обращение к документу, а не его представлению, скажем так должно быть:
Процедура Сформировать()
Док=СоздатьОбъект("Документ.ПриходнаяНакладная");
Док.ВыбратьДокументы("01.01.11","03.01.11");
Пока док.ПолучитьДокумент()=1 Цикл
ВсеДокументы.ДобавитьЗначение(Док,Строка(Док));
Конеццикла;
Для н=1 по ВсеДокументы.размерсписка() Цикл
попытка
Значение=ВсеДокументы.ПолучитьЗначение(н);
сообщить(значение.НомерДок) ;
исключение
ОписаниеОшибки();
Конецпопытки;
конеццикла;
КонецПроцедуры

А ничего не сообщается. Вроде как в списке что-то есть, даже сообщить(значение.Вид()) сообщает ПриходнаяНакладная, а как к ней обратиться дальше?

  • 0

#6   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 20 April 2011 - 15:30

burulka, мой вариант пробовал?
  • 0

#7   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 15:34

Так Вы же выводите строковое представление объекта, а мне нужен сам объект. Вот и проверяю
сообщить(Значение.НомерДок). Если сообщил, можно с документом и дальше работать (мне его табличная часть нужна будет). А ничего не сообщается. Почему?
  • 0

#8   Max_Nj

Max_Nj

      Ищу работу!!!

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 506
    • Регистрация: 07-August 08
    • Откуда:Мелитополь

Отправлено 20 April 2011 - 15:38

а еще лучше:
ВсеДокументы.ДобавитьЗначение(Док.ТекущийДокумент());
  • 0

#9   g789

g789

      Генерал-майор

    • Пользователи
    • PipPipPipPipPipPipPip
    • Сообщений: 270
    • Регистрация: 11-March 08
    • Откуда:Киев , ,

Отправлено 20 April 2011 - 15:41

burulka,
Quote (burulka)
ВсеДокументы.ДобавитьЗначение(Док,Строка(Док));

попробуйте так

Code
ВсеДокументы.ДобавитьЗначение(Док.ТекущийДокумент());

  • 0

#10   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 15:51

plus,

Огромадное спасибо!!!!!!!!!.Заработало. biggrin
А почему? Ведь мы доки и так перебираем, и вроде как при каждой итерации на Док должен позиционироваться и его значение брать

  • 0

#11   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 16:38

plus,
Так читала ж вроде. Но все равно спасибо, помогли
  • 0

#12   5_kopeek

5_kopeek

      Генерал-лейтенант

    • Пользователи
    • PipPipPipPipPipPipPipPip
    • Сообщений: 608
    • Регистрация: 31-January 11
    • Откуда:Украина

Отправлено 20 April 2011 - 17:44

Quote (plus)
ВсеДокументы.ДобавитьЗначение(Док,Строка(Док)) добавляет символьное представление объекта Док

Все-таки метод ДобавитьЗначение добавляет именно значение, а его стандартное символьное представление добавляется автоматом в качестве представления в списке, если не указан второй параметр этого метода.
Проблема в том, что при каждой итерации переменная Док хоть и позиционируется на конкретном документе, но в себе его, сам объект, не содержит. А для передачи самого объекта нужно использовать метод ТекущийДокумент().
  • 0

Услуги программиста 1С


#13   burulka

burulka

      Рядовой

    • Пользователи
    • Сообщений: 7
    • Регистрация: 20-April 11
    • Откуда:Киев , Киев , Украина

Отправлено 20 April 2011 - 18:10

5_kopeek,
О, вот это уже понятнее.Сенкс.
  • 0

#14   ivisor

ivisor

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1438
    • Регистрация: 06-March 08
    • Откуда:Планета Земля

Отправлено 21 April 2011 - 18:35

Я бы сделал так:
Code
    Перем Запрос, ТекстЗапроса, Таб;
   
  Запрос = СоздатьОбъект("Запрос");
  ТекстЗапроса = "//{{ЗАПРОС(Сформировать)
   |Период с ВыбНачПериода по ВыбКонПериода;
   |ПриходнаяНакладная = Документ.ПриходнаяНакладная.ТекущийДокумент;
   |Группировка ПриходнаяНакладная;";//}}ЗАПРОС
  Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
   Возврат;
  КонецЕсли;
  ТабПрихНакл = "";
  Запрос.Выгрузить(ТабПрихНакл,0,0);            
   
  ТабПрихНакл.ВыбратьСтроки();
  Пока ТабПрихНакл.ПолучитьСтроку()=1 Цикл
   Попытка
    Значение = ТабПрихНакл.ПриходнаяНакладная;
    Сообщить(Значение.НомерДок) ;
   Исключение
    ОписаниеОшибки();
   КонецПопытки;
  КонецЦикла;  

  • 0


Обратно в Программирование и конфигурирование 1С Предприятия 7.7


Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных