8.х Заполнение документа через Заполнить()

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

  1. TopicStarter Overlay
    TerANik
    Offline

    TerANik Профессионал в 1С

    Регистрация:
    19 ноя 2014
    Сообщения:
    997
    Симпатии:
    70
    Баллы:
    54
    Доброго дня коллеги.

    Вопрос следующий. У документов есть метод Заполнить, который вызывает выполнение ОбработкиЗаполнения. Так вот я, создаю документ и пытаюсь его заполнить.

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

    Если закомментировать
    ЗаполнитьЗначенияСвойств(ДокПриходныйОрдер,СтруктураЗаполнения);
    и раскоментировать
    //ДокПриходныйОрдер.Заполнить(СтруктураЗаполнения,Ложь);

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

    При вызове Заполнить идёт в ОбработкуЗаполнения

    Код:
    Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
      
        Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
            И ДанныеЗаполнения.Свойство("ДокументОснование") Тогда
          
            ЗаполнитьЗначенияСвойств(ЭтотОбъект,ДанныеЗаполнения);
            Основание = ДанныеЗаполнения.ДокументОснование;
          
    
    И вот заполнить значения свойств берёт всё из документа основание, а мне надо чтобы взял Товары которые я положил в структуру.
  2. st88
    Online

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.726
    Симпатии:
    28
    Баллы:
    54
    либо деревянным методом, либо пиши свой обработчик заполнения:)
  3. nomad_irk
    Online

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.567
    Симпатии:
    717
    Баллы:
    204
    Табличные части НИКОГДА не заполнялись с помощью ЗаполнитьЗначенияСвойств().

    Используй Загрузить().
    TerANik нравится это.

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