Имя: Пароль:
1C
1С v8
Заполнение колонки регистра накопления
,
0 Сергей333
 
12.08.17
11:33
Всем здравствуйте. Есть документ "МаршрутнаяКартаПроизводства" который делает движения в регистр накопления "ВыполнениеМаршрутныхКарт", в регистре есть измерение Маршрутная карта (Ссылка на этот документ), но при проведении все заполняется а это измерение нет. Как это исправить. Заранее спасибо.
1 Lexey_
 
12.08.17
11:38
(0) дописать код заполнения
2 Сергей333
 
12.08.17
11:50
(1) Логично. Только что дописать? Я новичок, ковырял-ковырял и не получается.
3 lubitelxml
 
12.08.17
11:54
обработку проведения покажи из модуля объекта
4 Сергей333
 
12.08.17
12:05
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
    
    Если мУдалятьДвижения Тогда
        ОбщегоНазначения.УдалитьДвиженияРегистратора(ЭтотОбъект, Отказ);
    КонецЕсли;

    // Сформируем структуру реквизитов шапки документа
    СтруктураШапкиДокумента = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);

    // Заголовок для сообщений об ошибках проведения.
    Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(СтруктураШапкиДокумента);

    //// Заполним по шапке документа дерево параметров, нужных при проведении.
    ДеревоПолейЗапросаПоШапке = ОбщегоНазначения.СформироватьДеревоПолейЗапросаПоШапке();
    СтруктураШапкиДокумента = УправлениеЗапасами.СформироватьЗапросПоДеревуПолей(ЭтотОбъект, ДеревоПолейЗапросаПоШапке, СтруктураШапкиДокумента, ПолучитьВалютуРегламентированногоУчета());
    
    
    // Проверим правильность заполнения шапки документа
    ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);
    
    // Получим необходимые данные для проведения и проверки заполенения данных по табличной части "Товары".
    СтруктураПолей = Новый Структура;
    СтруктураПростыхПолей = Новый Структура;
    СтруктураПолей.Вставить("Номенклатура"               , "Номенклатура");
    СтруктураПолей.Вставить("ЕдиницаИзмерения"             , "ЕдиницаИзмерения");
        
    РезультатЗапросаПоПродукции = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "Продукция", СтруктураПолей, СтруктураПростыхПолей);

    // Получим необходимые данные для проведения и проверки заполенения данных по табличной части "БланкиСтрогогоУчета".
    СтруктураПолей = Новый Структура;
    СтруктураПростыхПолей = Новый Структура;
    СтруктураПолей.Вставить("Операция" , "Операция");
    СтруктураПолей.Вставить("Получил"  , "Получил");
    СтруктураПолей.Вставить("Выполнил" , "Выполнил");
    СтруктураПолей.Вставить("НомерОперации" , "НомерОперации");
    СтруктураПолей.Вставить("ВремяНачала"   , "ВремяНачала");
    СтруктураПолей.Вставить("ВремяОкончания" , "ВремяОкончания");

    РезультатЗапросаПоТехнологическимОперациям = ОбщегоНазначения.СформироватьЗапросПоТабличнойЧасти(ЭтотОбъект, "ТехнологическиеОперации", СтруктураПолей, СтруктураПростыхПолей);
    
    // Подготовим таблицу товаров для проведения.
    ТаблицаПоПродукции = ПодготовитьТаблицуПродукции(РезультатЗапросаПоПродукции, СтруктураШапкиДокумента);
    ТаблицаПоТехнологическимОперациям = ПодготовитьТаблицуТехнологическихОпераций(РезультатЗапросаПоТехнологическимОперациям, СтруктураШапкиДокумента);
    
    // Проверить заполнение ТЧ "Продукция".
    ПроверитьЗаполнениеТабличнойЧастиПродукция(ТаблицаПоПродукции, СтруктураШапкиДокумента, Отказ, Заголовок);
    ПроверитьЗаполнениеТабличнойЧастиТехнологическиеОперации(ТаблицаПоТехнологическимОперациям, СтруктураШапкиДокумента, Отказ, Заголовок);

    // Движения по документу
    Если Не Отказ Тогда
        ДвиженияПоРегистрам(РежимПроведения, СтруктураШапкиДокумента, ТаблицаПоПродукции, ТаблицаПоТехнологическимОперациям, Отказ, Заголовок);
    КонецЕсли;
    
    Движения.ВыполнениеМаршрутныхКарт.Записывать = Истина;

КонецПроцедуры // ОбработкаПроведения()
5 Mankubus
 
12.08.17
12:30
(4) Теперь иди в процедуру ДвиженияПоРегистрам
6 jsmith82
 
12.08.17
12:40
>>Я новичок
Что значит новичок? В чём новичок? Новички обычно читают Радченко и задают глупые вопросы по платформе, но никак не ковыряют код боевых конфигураций и уж тем более не решают вопросы настоящей практики?
Каким боком ты затесался в эту доработку?
7 Сергей333
 
13.08.17
11:33
(5) Попробовал так не получается. В процедуре ДвиженияПоРегистрам.

    // Получим таблицу значений, совпадающую со струкутрой набора записей регистра.
    ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
    ТаблицаДвижений.ЗагрузитьКолонку(Документы.МаршрутнаяКартаПроизводства, "МаршрутнаяКартаПроизводства");
8 Имитация работы
 
13.08.17
11:39
(7) У тебя в слове "структурой" ошибка
9 Сергей333
 
13.08.17
11:49
(8) Да хрен с ней с ошибкой. Помочь то можете?
10 jsmith82
 
13.08.17
11:52
(9) У тебя первым параметром идёт значение типа ОбъектМетаданных
11 jsmith82
 
13.08.17
11:53
А нужно ДокументСсылка.МаршрутнаяКартаПроизводства
12 Имитация работы
 
13.08.17
11:58
(9) Могу. Но не хочу. Извини.
Ты пытаешься приблизится к славе нашего Великого Ливингстара, почет ему и здоровье, а это неприемлемо.
13 jsmith82
 
13.08.17
11:59
ТаблицаДвижений = НаборДвижений.ВыгрузитьКолонки();
ТаблицаДвижений.ЗагрузитьЗначение(<Ссылка на документ>, "МаршрутнаяКартаПроизводства");
НаборДвижений.Загрузить(ТаблицаДвижений);
14 jsmith82
 
13.08.17
11:59
Т.е. так
    
ТаблицаДвижений = НаборДвижений.Выгрузить();
ТаблицаДвижений.ЗагрузитьЗначение(<Ссылка на документ>, "МаршрутнаяКартаПроизводства");
НаборДвижений.Загрузить(ТаблицаДвижений);
15 Сергей333
 
13.08.17
12:24
(14) {Документ.МаршрутнаяКартаПроизводства.МодульОбъекта(164)}: Метод объекта не обнаружен (ЗагрузитьЗначение)
    ТаблицаДвижений.ЗагрузитьЗначение(ЭтотОбъект.Ссылка, "МаршрутнаяКартаПроизводства");
16 Mankubus
 
13.08.17
12:32
(15) нужно не тупо копипастить, думать. оставь ЗагрузитьКолонку
17 Mankubus
 
13.08.17
12:34
(16) + заполнитьзначения конечно же)
18 Сергей333
 
13.08.17
12:35
(16) Пробовал я так.
Документ.МаршрутнаяКартаПроизводства.МодульОбъекта(164)}: Ошибка при вызове метода контекста (ЗагрузитьКолонку)
    ТаблицаДвижений.ЗагрузитьКолонку(ЭтотОбъект.Ссылка, "МаршрутнаяКартаПроизводства");
по причине:
Несоответствие типов (параметр номер '1')
19 jsmith82
 
13.08.17
12:43
Опечатка. Давно не юзал функцию, забыл
(18)(17)
20 Сергей333
 
13.08.17
12:46
(17) Ошибок нет, но и колонка в регистре не заполняется(

    ТаблицаДвижений = НаборДвижений.Выгрузить();
    ТаблицаДвижений.ЗаполнитьЗначения(ЭтотОбъект.Ссылка, "МаршрутнаяКартаПроизводства");
    НаборДвижений.Загрузить(ТаблицаДвижений);
21 h-sp
 
13.08.17
12:50
(20) наверно не в то место вставил. Точно-точно в самый конец?
22 Сергей333
 
13.08.17
13:18
(21) (17) (14) Спасибо Вам большое) Все решилось. Вот так, век живи-век учись (а дураком помрешь).
Основная теорема систематики: Новые системы плодят новые проблемы.