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