8.х Заполнить табличную часть данными из другой табличной части

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем bluntschi, 4 июл 2014.

  1. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    Добрый день, подскажите, у меня есть табличная часть,

    Номенклатура | Проект | Расходный ордер | Продукция


    мне нужно заполнить поля проект и продукция данными из табличной части расходного ордера, и так получается по всем полям табличгной части моего документа, можно ли это осуществить?
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    А в расходном ордере они всегда в одном экземпляре?
  3. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.735
    Симпатии:
    508
    Баллы:
    204
    ОбработкаЗаполнения(). Вызывается при заполнении на основании.
  4. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    ну в расходном ордере может быть несколько номенклатур
  5. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Тогда каким образом Вы заполните поля? Сами то хоть условие в голове у себя прокрутите...
  6. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    у меня уже созданы документы, и их нужно так сказать дозаполнить, поэтому обработка заполнения же не пойдойдет, она все данные уберет и заново заполнит
    --- Объединение сообщений, 4 июл 2014 ---
    так вот и я не понимаю каким,

    получается, вот есть ссыла на расходник, нужно обратиться к его табличной части, сравнить номенклатуру табличных частей, если они равные, то вытащить продукцию и проект
  7. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Запросом обращайтесь к нужной ТЧ расходника. С нужными отборами. В цикле все проверяйте. И заполняйте значения.
  8. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    а мне запрос тоже а цикл?
    --- Объединение сообщений, 4 июл 2014 ---
    у меня вот так:


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

    и почему то не заполняется :(
  9. TopicStarter Overlay
    bluntschi
    Offline

    bluntschi Опытный в 1С

    Регистрация:
    18 июл 2012
    Сообщения:
    422
    Симпатии:
    0
    Баллы:
    26
    все поняла, нужно было вот так

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

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.978
    Симпатии:
    397
    Баллы:
    104
    Ну вот видите как здорово. Все сама решила. Тема закрыта?

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