Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 сен 2021, 14:26

Заполнить ТЧ из Регистра

Автор Ruslan09609, 26 сен 2019, 13:04

0 Пользователей и 1 гость просматривают эту тему.

Ruslan09609

Помогите пожалуйста!
Есть документ в нем ТЧ.
Хочу заполнить реквизит Цена в этой ТЧ.
Цену беру из регистра сведений ЦеныНоменклатуры
ДокументЗаказа = Документ.ПолучитьОбъект();
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних";
Данные = Запрос.Выполнить().Выгрузить();



Для каждого ТекСтр из ДокументЗаказа.Товары цикл
//Что мне здесь писать как установить отбор чтобы заполнить только цену номенклатуры в этом документе,что вообще здесь писать ?


КонецЦикла;
ДокументЗаказа.Записать(РежимЗаписиДокумента.Проведение);


antoneus

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

Ruslan09609

Спасибо большое,и подскажите пожалуйста как в условии запроса добавить отбор по типу цен.
Цитата: antoneus от 26 сен 2019, 13:16
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
        |    ЦеныНоменклатурыСрезПоследних.Цена
        |ИЗ
        |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, Номенклатура в (&Номенклатура)) КАК ЦеныНоменклатурыСрезПоследних";
    Запрос.УстановитьПараметр("Номенклатура", ДокументЗаказа.Товары.ВыгрузитьКолонку("Номенклатура"));
    Данные = Запрос.Выполнить().Выгрузить();       
   
    Для каждого ТекСтр из ДокументЗаказа.Товары цикл
        стр = Данные.Найти(ТекСтр.Номенклатура, "Номенклатура");
        Если стр <> Неопределено Тогда
            ТекСтр.Цена = стр.Цена
        КонецЕсли;
    КонецЦикла;


antoneus

Опять же в параметры виртуальной таблицы

Теги:

Похожие темы (5)

Рейтинг@Mail.ru Rambler's Top100

Поиск