Версия для печати темы (https://pro1c.org.ua/index.php?s=245bdcdbcb759e2dbbbf7f0160d9813c&showtopic=66768)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Пропуск пустых значений

Автор: XacTLa 13.10.21, 17:41

1С:Предприятие 8.3 (8.3.6.2237)
1С:ERP Управление предприятием 2.0 (2.0.9.66)

ОбластьСтроки = МакетОбработки.ПолучитьОбласть("СтрокаТЧ");
    Для Каждого ТекущаяСтрока Из СсылкаНаОбъект.Товары Цикл
        
        ОбластьСтроки.Параметры.НомерСтроки = ТекущаяСтрока.НомерСтроки;
        ОбластьСтроки.Параметры.Номенклатура = ТекущаяСтрока.Номенклатура;
        ОбластьСтроки.Параметры.Количество = ТекущаяСтрока.Количество;
        ОбластьСтроки.Параметры.ЗаказКлиента = ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.Номер;
        
        ОбластьСтроки.Параметры.ЗаказНаПеремещение = ТекущаяСтрока.ЗаказНаПеремещение.Номер;
        Запрос = Новый Запрос;
        Запрос.Текст ="ВЫБРАТЬ
                      |    ЗаказНаПеремещение.Номер
                      |ИЗ
                      |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение";
                      Запрос = Новый Запрос;
        Запрос.Текст ="ВЫБРАТЬ
                      |    ЗаказНаПеремещение.ДокументОснование.Номер
                      |ИЗ
                      |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение
                      |ГДЕ
                      |    ЗаказНаПеремещение.ДокументОснование.Номер = &ПустаяСсылка";
                          

        
        ТабличныйДокумент.Вывести(ОбластьСтроки);
        КонецЦикла;

Проблема вся в том что, если нет номера заказа в документе перемещения, выдает ошибку. как сделать так что бы оставлять пустые строки где нет номера а где есть заполнять ?

Автор: Vofka 14.10.21, 11:04

Где ошибку выдает, какую?

Автор: XacTLa 14.10.21, 12:51

Vofka @ Сегодня, 12:04 * ,
ОбластьСтроки.Параметры.ЗаказКлиента = ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.Номер;

Автор: XacTLa 15.10.21, 8:21

XacTLa @ Вчера, 13:51 * ,
{ВнешняяОбработка.Перемещение.МодульОбъекта(78)}: Поле объекта не обнаружено (ЗаказКлиента)
ОбластьСтроки.Параметры.ЗаказКлиента = ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.Номер;

Автор: Vofka 15.10.21, 8:36

XacTLa @ Сегодня, 9:21 * ,
у вас в области макета ОбластьСтроки нету параметра с именем ЗаказКлиента.

Автор: XacTLa 15.10.21, 9:25

Vofka @ Сегодня, 9:36 * ,
Есть

Автор: РоманМин 16.10.21, 8:34

возможно надо использовать ЕСТЬNULL



-------------------------------------------------------------------------------------------------------
не судите, я только учусь, прочитал половину Практического пособия разработчика

Автор: awp 17.10.21, 18:56

Попробуйте заполнение ячейки "ЗаказКлиента" сделать текст. сохранить, сделать параметр. сохранить.

Автор: XacTLa 18.10.21, 9:07

awp @ Вчера, 19:56 * ,
Не работает

Автор: denis84 18.10.21, 10:10

XacTLa @ 13.10.21, 18:41 * ,

У Вас получается в не которых документах заказ на перемещение пустой ДокументОснование?

а в запросе Вы что сравниваете "номер" с ссылкой? Вот ту мне не очень понятно

|ГДЕ
|    ЗаказНаПеремещение.ДокументОснование.Номер = &ПустаяСсылка";

Автор: XacTLa 18.10.21, 10:18

denis84 @ Сегодня, 11:10 * ,
Я пробовал, написал так с пустой ссылкой, Да у меня в перемещении есть без номера заказа пустой строкой

ОбластьСтроки.Параметры.ЗаказНаПеремещение = ТекущаяСтрока.ЗаказНаПеремещение.Номер;
        Запрос = Новый Запрос;
        Запрос.Текст ="ВЫБРАТЬ
                      |    ЗаказНаПеремещение.Номер
                      |ИЗ
                      |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение";
                      Запрос = Новый Запрос;
        Запрос.Текст ="ВЫБРАТЬ
                      |    ЗаказНаПеремещение.ДокументОснование.Номер
                      |ИЗ
                      |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение";

Сейчас так и это не работает

Автор: denis84 18.10.21, 13:11

XacTLa @ Сегодня, 11:18 * ,
Хорошо, вот Вы написали строку:

ОбластьСтроки.Параметры.ЗаказКлиента = ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.Номер;


а потом идет запрос, что Вы хотите получить в запросе? Из запроса получаем выборку и потом там можно работать с данными

а если так написать:

ОбластьСтроки.Параметры.ЗаказКлиента = ?(ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.ПустаяСсылка(),"",ТекущаяСтрока.ЗаказНаПеремещение.ДокументОснование.Номер;

Автор: XacTLa 18.10.21, 14:21

denis84 @ Сегодня, 14:11 * ,
Из запроса я получаю распоряжение это реализация, а с реализации документ основания я получаю номер Заказа Клиента

Автор: XacTLa 27.10.21, 9:03

Запрос.Текст =
          "ВЫБРАТЬ
          |    ВЫБОР
          |        КОГДА ЗаказНаПеремещение.ДокументОснование <> ЗНАЧЕНИЕ(Документ.заказКлиента.ПустаяСсылка)
          |            ТОГДА ЗаказНаПеремещение.ДокументОснование.Номер
          |        ИНАЧЕ "" ""
          |    КОНЕЦ КАК Номер
          |ИЗ
          |    Документ.ЗаказНаПеремещение КАК ЗаказНаПеремещение
          |ГДЕ
          |    ЗаказНаПеремещение.Ссылка = &Ссылка";
          
          Запрос.УстановитьПараметр("ссылка", СсылкаНаОбъект);
        
         Результат = Запрос.Выполнить();
        
     Если не Результат.Пустой() ТОгда
    Выборка = Результат.Выбрать();
    
    Выборка.Следующий();
        ОбластьСтроки.Параметры.ЗаказКлиента =  Выборка.ДокументОснование.Номер;
    КонецЕсли;

Пока дошел до этого, но теперь при этом коде не выводит номер заказа

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua