8.х Выгрузка данных из справочника

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем zayaroslava, 17 мар 2010.

  1. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    УПП. Есть Документ "Заказ на производство" так вот необходимо в закладку Материалы добавить колонку с серией номенклатуры которая бы бралась из СпецификацииНоменклатуры
    Делаю вот так но колонка именно с серией не подгружается,подскажите где может быть ошибка ? или может это как-то проще через запрос сделать,подскажите примером.



    Код:
    Процедура ЗаполнитьМатериалыПоСпецификации(ТабличнаяЧасть, ИмяТабличнойЧасти) Экспорт
    
    ТаблицаИсходныеКомплектующие = ТабличнаяЧасть.Выгрузить();
    
    Параметры = Новый Структура("ПараметрыВыпуска, КоличествоУровнейРазузлования, ДатаСпецификации");
    
    Для Каждого СтрокаТабличнойЧасти Из Продукция Цикл
    Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.Спецификация) Тогда
    Продолжить;
    КонецЕсли;
    
    РезультатРазузлования = Новый Структура("ИсходныеКомплектующие");
    
    СтруктураИсточник = Новый Структура("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, Количество, Спецификация, СтатьяЗатрат, СерияНоменклатуры");
    ЗаполнитьЗначенияСвойств(СтруктураИсточник, СтрокаТабличнойЧасти);
    
    ПараметрыВыпуска = Новый Соответствие;
    Для Каждого ПараметрВыпуска из ПараметрыВыпускаПродукции Цикл
    
    Если ПараметрВыпуска.КлючСвязи = СтрокаТабличнойЧасти.КлючСвязи Тогда
    ПараметрыВыпуска.Вставить(ПараметрВыпуска.ВидПараметра.Наименование, ПараметрВыпуска.Значение);
    КонецЕсли;
    
    КонецЦикла;
    
    Параметры.ПараметрыВыпуска = ПараметрыВыпуска;
    Параметры.КоличествоУровнейРазузлования = 1;
    Параметры.ДатаСпецификации = Дата;
    
    МассивОшибок = РазузлованиеНоменклатуры.РазузловатьНоменклатуру(СтруктураИсточник, РезультатРазузлования, Параметры);
    
    Если МассивОшибок.Количество() > 0 Тогда
    
    Для каждого Ошибка из МассивОшибок Цикл
    
    ОбщегоНазначения.Сообщение("Ошибка: " + Ошибка.Причина, Ошибка.СтатусОшибки);
    ОбщегоНазначения.Сообщение(" Спецификация: " + Ошибка.Спецификация);
    ОбщегоНазначения.Сообщение(" Номер строки: " + Ошибка.НомерСтроки);
    ОбщегоНазначения.Сообщение(" Описание ошибки: " + Ошибка.ОписаниеОшибки);
    
    КонецЦикла;
    
    КонецЕсли;
    
    Если РезультатРазузлования.ИсходныеКомплектующие = Неопределено Тогда
    Продолжить;
    КонецЕсли;
    
    ИсходныеКомплектующие = РезультатРазузлования.ИсходныеКомплектующие;
    
    ИсходныеКомплектующие.ЗаполнитьЗначения(Подразделение, "Подразделение");
    //заполним подразделение по основной спецификации полуфабрикатов
    Для каждого Строка из ИсходныеКомплектующие цикл
    ПодразделениеНоменклатуры = ЗаказыНаПроизводствоИПереработку.ПолучитьПодразделениеИзСпецификации(Строка.Спецификация,Строка.Номенклатура,Строка.ХарактеристикаНоменклатуры);
    Если ЗначениеЗаполнено(ПодразделениеНоменклатуры) Тогда
    Строка.Подразделение = ПодразделениеНоменклатуры;
    КонецЕсли;
    КонецЦикла;
    
    ИсходныеКомплектующие.Колонки.Добавить("Продукция");
    ИсходныеКомплектующие.Колонки.Добавить("ХарактеристикаПродукции");
    ИсходныеКомплектующие.Колонки.Добавить("СтатьиЗатрат"); 
    ИсходныеКомплектующие.Колонки.Добавить("СерииНоменклатуры");
    ИсходныеКомплектующие.ЗаполнитьЗначения(СтрокаТабличнойЧасти.Номенклатура, "Продукция");
    ИсходныеКомплектующие.ЗаполнитьЗначения(СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры, "ХарактеристикаПродукции");
    ИсходныеКомплектующие.ЗаполнитьЗначения(СтрокаТабличнойЧасти.Спецификация, "Спецификация");
    
    ИсходныеКомплектующие.ЗаполнитьЗначения(СтрокаТабличнойЧасти.СтатьяЗатрат, "СтатьиЗатрат");
    ИсходныеКомплектующие.ЗаполнитьЗначения(СтрокаТабличнойЧасти.СерияНоменклатуры, "СерииНоменклатуры");
    ОбщегоНазначения.ЗагрузитьВТаблицуЗначений(ИсходныеКомплектующие, ТаблицаИсходныеКомплектующие);
    
    КонецЦикла;
    
    ТаблицаИсходныеКомплектующие.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, ВидВоспроизводства, Спецификация, Подразделение, Продукция, ХарактеристикаПродукции, СтатьяЗатрат, СерияНоменклатуры", "Количество");
    
    ТабличнаяЧасть.Загрузить(ТаблицаИсходныеКомплектующие);
    
    Для Каждого СтрокаТабличнойЧасти Из ТабличнаяЧасть Цикл
    
    ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуМестТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, Ложь);		
    
    КонецЦикла;
    
  2. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Не очень понятно, откуда в спецификации серия, честно говоря...
    Или вы будете лепить под каждую серию новую спецификацию?
  3. TopicStarter Overlay
    zayaroslava
    Offline

    zayaroslava Опытный в 1С

    Регистрация:
    27 янв 2010
    Сообщения:
    329
    Симпатии:
    1
    Баллы:
    26
    Она там и была,не знаю откуда =)
    Просто нужно перенести эту серию под свою номенклатуру в колонку,как это сделать подскажите

Поделиться этой страницей