Имя: Пароль:
1C
1С v8
как ЗаполнитьПоСпецификации
0 Popkorm
 
11.10.11
12:18
Хочу добавить в ТЧ Услуги метод ЗаполнитьПоСпецификации,и чета не алле.Все колонки прописал правильно,ну все равно ошибка:
Документ.ПолучениеУслугПоПереработке.МодульОбъекта(621)}: Ошибка при вызове метода контекста (Свернуть)
   ДанныеИспользованныеУслуги.Свернуть("Номенклатура, ЕдиницаИзмерения,Содержание, Коэффициент, НоменклатурнаяГруппа, СтатьяЗатрат,Заказ,ДоговорыКонтрагентов,Контрагенты", "Количество,Сумма,СуммаНДС,Цена,НомерСтроки");
по причине:
Неверное имя колонки



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

   //УправлениеПроизводством.ЗаполнитьМатериалыПоСпецификациям(
   //    ДанныеИспользованныеМатериалы,
   //    ДанныеВыпуск,
   //    СтруктураДопКолонок,
   //    Отбор,
   //    Дата,
   //    , // КоличествоУровнейРазузлования = 1
   //    );
       УправлениеПроизводством.ЗаполнитьМатериалыПоСпецификациям(
       ДанныеИспользованныеУслуги,
       ДанныеВыпуск,
       СтруктураДопКолонок,
       Отбор,
       Дата,
       , // КоличествоУровнейРазузлования = 1
       );
   
       
   // Свернем строки    //для ТЧ "Услуги"
   ДанныеИспользованныеУслуги.Свернуть("Номенклатура, ЕдиницаИзмерения,Содержание, Коэффициент, НоменклатурнаяГруппа, СтатьяЗатрат,Заказ,ДоговорыКонтрагентов,Контрагенты", "Количество,Сумма,СуммаНДС,Цена,НомерСтроки");
   
   ИспользованныеМатериалы.Загрузить(ДанныеИспользованныеУслуги);

   
   //ДанныеИспользованныеМатериалы.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, НоменклатурнаяГруппа, Заказ, СтатьяЗатрат", "Количество");
   //
   //ИспользованныеМатериалы.Загрузить(ДанныеИспользованныеМатериалы);
//// Заполним данные о статье затрат, если статьи не указаны в спецификации  для ТЧ "Услуги"
   // Заполним данные о статье затрат, если статьи не указаны в спецификации
   Для Каждого СтрокаТабличнойЧасти Из ИспользованныеМатериалы Цикл
       Если НЕ ЗначениеЗаполнено(СтрокаТабличнойЧасти.СтатьяЗатрат) Тогда
           СтрокаТабличнойЧасти.СтатьяЗатрат = СтрокаТабличнойЧасти.Номенклатура.СтатьяЗатрат;
       КонецЕсли;
   КонецЦикла;
   
   ЗаполнитьСчетаУчетаВТабЧасти(ИспользованныеМатериалы, "ИспользованныеМатериалы", ОтражатьВБухгалтерскомУчете, ОтражатьВНалоговомУчете);
   
   Если ДанныеИспользованныеМатериалы.Количество() = 0 ИЛИ ДанныеИспользованныеУслуги.Количество() = 0 Тогда
       
       ТекстСообщения = "Нет данных о расходе материалов";
       Если ВыдаватьСообщения Тогда
           ОбщегоНазначения.Сообщение(ТекстСообщения, СтатусСообщения.Информация);
       Иначе
           МассивСообщений.Добавить(ТекстСообщения);
       КонецЕсли;
       
   КонецЕсли;
   
   Возврат МассивСообщений;
   
КонецФункции
1 Popkorm
 
11.10.11
12:40
что производствеников нет сегодня?
2 rrunover
 
11.10.11
12:57
Сравни

ДанныеИспользованныеУслуги.Свернуть("Номенклатура, ЕдиницаИзмерения,Содержание, Коэффициент, НоменклатурнаяГруппа, СтатьяЗатрат,Заказ,ДоговорыКонтрагентов,Контрагенты", "Количество,Сумма,СуммаНДС,Цена,НомерСтроки");

И

ДанныеИспользованныеМатериалы.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, ЕдиницаИзмерения, Коэффициент, НоменклатурнаяГруппа, Заказ, СтатьяЗатрат", "Количество");

вот где менял "ДанныеИспользованныеМатериалы" - там и ищи
3 rrunover
 
11.10.11
12:58
поправка,
следует читать "где менял УправлениеПроизводством.ЗаполнитьМатериалыПоСпецификациям()"