Имя: Пароль:
1C
1С v8
УПП 1.3 Ввод на основании док-та ОтчетПроизводстваЗаСмену
0 sidalexsandr
 
10.04.17
14:08
Написал процедуру ввода на основании документа ОтчетПроизводстваЗаСмену документа УстановкаЦенНоменклатуры. Вот процедура:
Процедура ЗаполнитьТабличнуюЧастьПоОтчетПроизводстваЗаСмену(ДокументОтчетПроизводстваЗаСмену,Перезаполнение=Ложь)
    
    ТипЦенБазовый = Справочники.ТипыЦенНоменклатуры.НайтиПоНаименованию("Продажи");
        
        // Получим подчиненные типы цен.
        ПодчиненныеТипыЦен = ПолучитьПодчиненныеТипыЦен(ТипЦенБазовый);
        ПодчиненныеТипыЦен.Добавить(ТипЦенБазовый);

        //Обойдем массив в обратном порядке.
        КоличествоПодчиненныхТипов = ПодчиненныеТипыЦен.Количество();        
        Для Тмп = 1 По КоличествоПодчиненныхТипов Цикл
            СтрокаТабличнойЧасти = ТипыЦен.Добавить();
            СтрокаТабличнойЧасти.ТипЦен = ПодчиненныеТипыЦен[КоличествоПодчиненныхТипов - Тмп];
        КонецЦикла;
        
        // 10.04.17
        Для Каждого СтрОтчетПроизводстваЗаСмену Из ДокументОтчетПроизводстваЗаСмену.Продукция Цикл  
            ТипЦенНоменклатуры = ТипЦенБазовый;
            НомерСоответствияТекущейКолонки = мСоответствиеТиповЦен[ТипЦенНоменклатуры];            
            // Добавить следующую номенклатуру
            НоваяСтрока = ТаблицаЦен.Добавить();
             НоваяСтрока.Номенклатура = СтрОтчетПроизводстваЗаСмену.Номенклатура;
            // 10.04.17 Для примера цену установим = 5
            СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки]          = 5;
                    
        КонецЦикла;

    
КонецПроцедуры // ЗаполнитьТабличнуюЧастьПоОтчетПроизводстваЗаСмену()
1 sidalexsandr
 
10.04.17
14:09
Процедура выдает ошибку {Документ.УстановкаЦенНоменклатуры.Форма.ФормаДокумента.Форма(1282)}: Поле объекта не обнаружено (цена)
            СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки]          = 5;


Вопрос: как исправить ошибку?
2 sidalexsandr
 
10.04.17
14:40
Делал по образцу ввода на основание ПоступлениеТоваровУслуг документа УстановкаЦенНоменклатуры
3 Strogg
 
10.04.17
14:43
1) сделать точку останова в отладчике на строке:
СтрокаТабличнойЧасти["цена" + НомерСоответствияТекущейКолонки]          = 5;
2) посмотреть, что содержится в СтрокаТабличнойЧасти
3) посмотреть, что содержится в НомерСоответствияТекущейКолонки
4) сопоставить данные в строке табличной части с именем колонки, получаемой из конкатенации.
5) ???
6) Profit
4 ВикторП
 
10.04.17
15:06
В документе Отчет производства за смену в табличной части Продукция реквизита с таким названием Цена-нет
5 sidalexsandr
 
10.04.17
15:52
(4) Ты не прав. Я про документ УстановкаЦенНоменклатуры, а в нем есть цена.
6 Джинн
 
10.04.17
16:30
(5) "Цена" есть. А "цена" + НомерСоответствияТекущейКолонки нет.
7 PCcomCat
 
10.04.17
16:38
СтрокаТабличнойЧасти - это строка из предыдущего цикла, где ты заполняешь таблицу типов цен - нет там такой колонки "цена".
8 PCcomCat
 
10.04.17
16:39
+(7) НоваяСтрока["цена" + НомерСоответствияТекущейКолонки]          = 5;
9 sidalexsandr
 
10.04.17
16:46
(8) Спасибо. Всё заработало.