Имя: Пароль:
1C
1С v8
Запрос к закрытому заказу в ут 11.1.10.111
0 Proger2013
 
14.05.15
06:39
Приветствую :)
Подскажите, пожалуйста в чем порылась проблема, есть внешняя печатная форма для заказа клиента, пока заказ не имеет статус "закрыт", то печатается нормально, но если заказ закрыт, выводится ошибка, по идее, разницы же нет закрыт заказ или нет
----------
{ВнешняяОбработка.НакладнаяДляЗаказаПокупателей.МодульОбъекта(165)}: Преобразование значения к типу Число не может быть выполнено
Скидка = Скидка+Число(ВыборкаС.РСкидка);
----------

Вот и сам код:

ЗапросТ = Новый Запрос();
    ЗапросТ.Текст="ВЫБРАТЬ
      |    ЗаказКлиентаТовары.Номенклатура КАК Товар,
      |    ЗаказКлиентаТовары.Цена КАК Цена,
      |    ЗаказКлиентаТовары.Сумма КАК Сумма,
      |    ЗаказКлиентаТовары.Количество КАК Количество,
      |    ЗаказКлиентаТовары.Номенклатура.Родитель КАК Группа,
      |    ЗаказКлиентаТовары.ПроцентАвтоматическойСкидки КАК АСкидка,
      |    ЗаказКлиентаТовары.НомерСтроки КАК НомерСтроки,
      |    ЗаказКлиентаТовары.Номенклатура.Артикул КАК Артикул,
      | ЗаказКлиентаТовары.ПроцентРучнойСкидки КАК РСкидка,
      |    ЗаказКлиентаТовары.Номенклатура.Вес КАК Вес
      |ИЗ
      |    Документ.ЗаказКлиента.Товары КАК ЗаказКлиентаТовары
      |ГДЕ
      |    ЗаказКлиентаТовары.Ссылка В(&МассивОбъектов)
      |    И ЗаказКлиентаТовары.ВариантОбеспечения = ЗНАЧЕНИЕ(Перечисление.ВариантыОбеспечения.СоСклада)
      |
      |УПОРЯДОЧИТЬ ПО
      |    Группа,
      |    Товар
      |АВТОУПОРЯДОЧИВАНИЕ";
    ЗапросТ.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    ДопСвойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("Товарный знак");
    Скидка=0;
    ЗапросС = Новый Запрос();
    ЗапросС.Текст = ЗапросТ.Текст;
    ЗапросС.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    ВыборкаС = ЗапросС.Выполнить().Выбрать();
    ВыборкаС.Следующий();
        
    Если ВыборкаС.РСкидка<>0 Тогда                                        
    Скидка = Скидка+Число(ВыборкаС.РСкидка);
       КонецЕсли;
    Если ВыборкаС.АСкидка<>0 Тогда
        Скидка = Скидка+ВыборкаС.АСкидка;                    
    КонецЕсли;
1 icipher
 
14.05.15
06:48
посмотри через отладчик, что в ВыборкаС.РСкидка
2 Proger2013
 
15.05.15
05:58
(1) посмотрел -
проблема в том что если заказ закрыт то вот такое выводится в отладчике:
------
Цена    Ошибка чтения значения    
Товар    Ошибка чтения значения    
Сумма    Ошибка чтения значения    
РСкидка    Ошибка чтения значения    
НомерСтроки    Ошибка чтения значения    
Количество    Ошибка чтения значения    
Группа    Ошибка чтения значения    
Вес    Ошибка чтения значения    
Артикул    Ошибка чтения значения    
АСкидка    Ошибка чтения значения    
------

если заказ не закрыт то запрос выполняется нормально, без ошибок
3 Proger2013
 
15.05.15
05:59
(2) получается, 1С как то блокирует доступ к данным в закрытом заказе ?
4 Otkr
 
15.05.15
06:09
У тебя ВыборкаС пустая получается, поэтому ВыборкаС возвращает ложь
5 Proger2013
 
15.05.15
06:14
(4) это понятно, вопрос то почему она получается пустой
6 Otkr
 
15.05.15
06:26
(5) ВариантОбеспечения меняется после закрытия заказа, посему и пустой