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

1С Заполнить документ

Автор Ульви Мамедов, 13 фев 2019, 16:43

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

Ульви Мамедов

Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. Пользователь может создать документ реализация товаров услуг через кнопку на основании в документе расходный ордер на товары. Код работает но в документа реализация не заполняется цена. Есть товары которые у них есть 3 или 4 тип цен. Как сделать что он автоматически заполнял колонку? (Когда тип цен равно документ.типцен)
Как исправится с этим? Полный код ниже
Чтобы заполняться колонка цена
Спасибо всем за ранее
Функция СоздатьТЗ()
    ТЗ = Новый ТаблицаЗначений;
    ТЗ.Колонки.Добавить("Номенклатура",,,);
    ТЗ.Колонки.Добавить("Количество",,,);
    ТЗ.Колонки.Добавить("ЕдиницаИзмерения",,,);
    ТЗ.Колонки.Добавить("Коэффициент",,,);
    ТЗ.Колонки.Добавить("СтавкаНДС",,,);
    ТЗ.Колонки.Добавить("ХарактеристикаНоменклатуры",,,);
    ТЗ.Колонки.Добавить("СерияНоменклатуры",,,);
    ТЗ.Колонки.Добавить("Качество",,,);
    ТЗ.Колонки.Добавить("Цена",,,);
    ТЗ.Колонки.Добавить("Сумма",,,);
    ТЗ.Колонки.Добавить("СуммаБезСкидок",,,);
КонецФункции

Функция ЗаполнитьТЗ(Ссылка)
    // Для номер строки
        Стро = ЭлементыФормы.Товары.ТекущиеДанные;
    Для Строка = 1 ПО Стро.НомерСтроки Цикл         
        Ст = ТЗ.Добавить();
        // Для заполнение ТЗ
        Стр = ЭлементыФормы.Товары.ТекущиеДанные;
        Ст.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Стр.Номенклатура);
        Ст.Количество = Стр.Количество;
        Ст.ЕдиницаИзмерения = Стр.ЕдиницаИзмерения;
        Ст.Коэффициент = Стр.Коэффициент;
        Ст.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
        Ст.ХарактеристикаНоменклатуры = Стр.ХарактеристикаНоменклатуры;
        Ст.СерияНоменклатуры = Стр.СерияНоменклатуры;
        Ст.Качество = Стр.Качество;
                Запрос = Новый Запрос;
                Запрос.Текст = "ВЫБРАТЬ
                |    РеализацияТоваровУслугТовары.Номенклатура,
                |    РеализацияТоваровУслугТовары.Ссылка.ТипЦен КАК ТипЦен,
                |    ЦеныНоменклатурыСрезПоследних.Цена КАК Цена
                |ИЗ
                |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
                |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних КАК ЦеныНоменклатурыСрезПоследних
                |        ПО РеализацияТоваровУслугТовары.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
                |            И РеализацияТоваровУслугТовары.Ссылка.ТипЦен = ЦеныНоменклатурыСрезПоследних.ТипЦен
                |            И РеализацияТоваровУслугТовары.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры
                |ГДЕ
                |    РеализацияТоваровУслугТовары.Ссылка = &Ссылка И РеализацияТоваровУслугТовары.Номенклатура = &Номенклатура";
        Запрос.УстановитьПараметр("Ссылка", Ссылка);
        Запрос.УстановитьПараметр("Номенклатура", Ст.Номенклатура);
        Выборка = Запрос.Выполнить().Выбрать();
        Пока Выборка.Следующий() Цикл
        Ст.Цена = Выборка.Цена;
        Ст.Сумма = Ст.Количество * Ст.Цена;
        Ст.СуммаБезСкидок = Ст.Сумма;
    КонецЦикла;
    КонецЦикла;   
КонецФункции

Процедура ДействияФормыРеализацияТоваровУслуг(Кнопка)
    СоздатьТЗ();
   
   Док = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
   
   Сл = ЭтотОбъект.Ссылка;
   Док.Контрагент = Сл.Контрагент;
   Док.Дата = ТекущаяДата();
   Док.Организация = Сл.Организация;
   Док.Склад = Сл.Склад;
   ЗаполнитьТЗ(Док.Ссылка);
Док.Товары.Загрузить(ТЗ);
   

   
   ОсновнаяФормаДок = Док.ПолучитьФорму();
 
   ОсновнаяФормаДок.Открыть();
КонецПроцедуры

Теги:  

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

Рейтинг@Mail.ru

Поиск