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

Заполнение в табличной части ДокументСсылка

Автор serq82, 24 янв 2012, 10:52

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

serq82

Уважаемые Гуру помогите новичку,плизззззззззз.
В УТ11 создал документ ЗаданиеНаПроизводство, в документе ЗаказКлиента добавил команду ЗаданиеНаПроизводство, по заказу начальство нужно было чтобы документы формировались по ВидНоменклатуры, вот код правда он не полностью доработан
&НаКлиенте
функция ТаблСтруктура()
    стр = Новый Структура;
    стр.Вставить("объект",объект);
     Возврат стр;
КонецФункции

//возвражает таблицу с номенклатурой по родителю
&НаСервере
функция СпрвернутьВидПономенклатуре(с)
Возврат Справочники.Номенклатура.НайтиПоНаименованию(Строка(с)).ВидНоменклатуры.Наименование;             
КонецФункции


//Создание Документа только под одному виду номеклатуры
&НаСервере
Процедура СоздатьДокументЗаданиеНаПроизводство(стр,ВидНоменклатуры)
Если ЗначениеЗаполнено(ВидНоменклатуры) тогда     
ЗаданиеНаПроизводство             = Документы.ЗаданиеНаПроизводство.СоздатьДокумент();
ЗаданиеНаПроизводство.Дата        = стр.Объект.Дата;
ЗаданиеНаПроизводство.Контрагент  = стр.Объект.Контрагент;
ЗаданиеНаПроизводство.Организация = стр.Объект.Организация;
ЗаданиеНаПроизводство.Склад       = стр.Объект.Склад;

Колво = стр.объект.Товары.Количество();

Для н=0 по  (Колво-1) Цикл
     Если Строка(стр.объект.товары[н].Номенклатура.ВидНоменклатуры) = ВидНоменклатуры   Тогда
         Товары = ЗаданиеНаПроизводство.Товары.Добавить();
         Товары.Количество = стр.объект.товары[н].Количество;
         Товары.Номенклатура = стр.объект.товары[н].Номенклатура;
        Товары.Длина = стр.объект.товары[н].Длина;//.Наименование;
    КонецЕсли;       
КонецЦикла;

Попытка
ЗаданиеНаПроизводство.Записать();
Исключение
       Сообщить("неудача млять ");
КонецПопытки;
КонецЕсли;
КонецПроцедуры

&НаСервере
функция СтрукВидыНомеклатуры(стр)
КС = Новый КвалификаторыСтроки(100);         
Массив = новый Массив;
Массив.Добавить(Тип("Строка"));
ОписаниеТиповС = Новый ОписаниеТипов(Массив,,КС);
Массив.Очистить();
ТЗ = новый ТаблицаЗначений;
ТЗ.Колонки.Добавить("Номеклатура",ОписаниеТиповС,"Номеклатура");
ТЗ.Колонки.Добавить("ВидНомеклатуры",ОписаниеТиповС,"ВидНомеклатуры");

Колво = стр.Объект.Товары.Количество();


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

&НаКлиенте
Процедура ЗаданиеНаПроизводство(Команда)
     стр = Новый Структура;
    стр.Вставить("объект",объект);
     ВРазные = СтрукВидыНомеклатуры(стр);                         
     
     для н=0 по  (ВРазные.количество()-1) цикл     
                   
          СоздатьДокументЗаданиеНаПроизводство(ТаблСтруктура(),Строка(ВРазные[н]));
         
     КонецЦикла;
     
КонецПроцедуры

документы создаются все гуд
теперь подскажите как мне заполнить в табличной части?

Теги:

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

Рейтинг@Mail.ru

Поиск