helpf.pro
Регистрация

v8: Как у УТ 103 программно поставить размещение в таб. части товары

DDD2006
13.11.2017 22:35Прочитано: 1243

Добрый день, всем, на основании реализацию делаю заполнения заказа.

Все заполняется кроме размещения, как конкретно указать склад в размещении?

Код 1C v 8.2 УП
 

Процедура Инициализировать(Объект,ИмяТабличнойЧасти,ТабличноеПолеОбъекта) Экспорт

Форма = Документы.РеализацияТоваровУслуг.ПолучитьФормуВыбора();
// Форма.ВыбратьИзСписка( .Отбор.ВидСклада.Значение                            = Перечисления.ВидыСкладов.НТТ;
//ФормаВыбора.СправочникСписок.Отбор.ВидСклада.Использование                       = Истина;
//ФормаВыбора.СправочникСписок.Отбор.ВидСклада.ВидСравнения                        = ВидСравнения.НеРавно;
//ФормаВыбора.ЭлементыФормы.СправочникСписок.НастройкаОтбора.ВидСклада.Доступность = Ложь;


Параметры = Форма.ОткрытьМодально();
Если Параметры <> Неопределено Тогда

Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Будет заполнены табличные части ""Товары"" и ""Услуги"" по документу РТУ. Продолжить?", Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;


ДокументОснование = Параметры;
ЗаполнитьДокументНаОсновании2(Объект,ДокументОснование,"Товары","Товары",Ложь);
//ЗаполнитьДокументНаОсновании(Объект,ДокументОснование,"Услуги","Услуги",Ложь);
КонецЕсли; 


КонецПроцедуры


Функция ЗаполнитьДокументНаОсновании2(ЭтотОбъект,ДокументОснование,ИмяТаблицыДокумента,ИмяТаблицыОснования,ЗадатьВопрос=Истина) 

Если не ЗначениеЗаполнено(ДокументОснование) Тогда
Предупреждение("Не заполнен документ основание!");
Возврат Ложь;
КонецЕсли; 

Если ЗадатьВопрос Тогда
Режим = РежимДиалогаВопрос.ДаНет;
Ответ = Вопрос("Заполнить табличную часть по документу основанию?", Режим, 0);
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат Ложь;
КонецЕсли;
КонецЕсли; 



ТаблицаЗначениеОснование = ДокументОснование[ИмяТаблицыОснования].Выгрузить();
ЭтотОбъект[ИмяТаблицыДокумента].Загрузить(ТаблицаЗначениеОснование);


//Для документа РТУ заполненного на основании Заказа покупателя необходимо проставить Способ списания
Если ИмяТаблицыДокумента = "Товары" И ТипЗнч(ЭтотОбъект) = Тип("ДокументОбъект.РеализацияТоваровУслуг") 
и ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
Для каждого Состав Из ЭтотОбъект.Товары Цикл
Если не ЗначениеЗаполнено(Состав.СпособСписанияОстаткаТоваров) Тогда
Состав.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.СоСклада;

КонецЕсли;
// //Если Состав.СпособСписанияОстаткаТоваров = Перечисления.СпособыСписанияОстаткаТоваров.ИзРезерва Тогда
// ном=ном+1;
// Состав.Размещение.Значение=ПредопределенноеЗначение("Справочник.Склады.ПустаяСсылка");
// Состав.Размещение.Значение=Справочники.Склады.НайтиПоКоду("000000002");
// Сообщить(Ном+" "+Состав);
////КонецЕсли;

КонецЦикла; 
КонецЕсли; 

//Для документа Перемещение товаров необходимо проставить качество товара - новый
Если ИмяТаблицыДокумента = "Товары" И ТипЗнч(ЭтотОбъект) = Тип("ДокументОбъект.ПеремещениеТоваров") 
и ТипЗнч(ДокументОснование) = Тип("ДокументСсылка.ЗаказПокупателя") Тогда
Для каждого Состав Из ЭтотОбъект.Товары Цикл
Состав.Качество = Справочники.Качество.Новый;
КонецЦикла; 
КонецЕсли; 

КонецФункции


 
Yandex
Возможно, вас также заинтересует
Реклама на портале
Подсказка: Вы получили ответ на свой вопрос - закройте вопрос!
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.