1. ulvi96 11.02.19 16:01 Сейчас в теме

1С Документи

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

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

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

   
   ОсновнаяФормаДок = Док.ПолучитьФорму();
  
   ОсновнаяФормаДок.Открыть();
КонецПроцедуры
Показать
Ответы
Избранное Подписка Сортировка: Древо
2. _qqq 45 18.02.19 11:17 Сейчас в теме
Функция СоздатьТЗ должна содержать в конце
Возврат ТЗ;

Вызов этой функции в ДействияФормыРеализацияТоваровУслуг должен выглядеть как-то так
ТЗ = СоздатьТЗ();

Функция ЗаполнитьТЗ(Ссылка) ничего не возвращает, лучше сделать её процедурой.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии


Специалист техподдержки 1С
Иркутск
зарплата от 28 000 руб. до 34 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 48 000 руб. до 96 000 руб.
По совместительству

Программист 1С
Ставрополь
зарплата от 40 000 руб. до 60 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 120 000 руб. до 150 000 руб.
Полный день