[РЕШЕНО] Как программно заполнить табличную часть у документа?

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

  1. TopicStarter Overlay
    kisol
    Offline

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

    Регистрация:
    25 июл 2012
    Сообщения:
    395
    Симпатии:
    41
    Баллы:
    54
    Код:
    &НаКлиенте
    Процедура Заполнпо2(Команда)
        Заполнпо2НаСервере();
    КонецПроцедуры
    
    
    &НаСервере
    Процедура Заполнпо2НаСервере()
          Выборка = Справочники.Соотечественники.Выбрать();
         
          Пока Выборка.Следующий() Цикл
     
    //тут я проверяю соответствует ли реквизит ДАТА поступления
       
              Если ДатаПриходаАнкет = Выборка.ДатаПоступления Тогда
    
    //а вот так заполнить из этой выборки справочника табличную часть документа этого?
              
                 //Сообщить(Выборка);
           
            КонецЕсли;
         
          КонецЦикла;
    КонецПроцедуры
    
  2. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Получить табличную часть и добавить в нее в цикле записи.
    Вида
    Код:
    НоваяСтрока = Товары.Добавить();
    НоваяСтрока.Номенклатура = Выборка.Номенклатура;
    И т.д.
    kisol нравится это.
  3. TopicStarter Overlay
    kisol
    Offline

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

    Регистрация:
    25 июл 2012
    Сообщения:
    395
    Симпатии:
    41
    Баллы:
    54
    Код:
    &НаКлиенте
    Процедура Заполнпо2(Команда)
        Заполнпо2НаСервере();
    КонецПроцедуры
    
    
    &НаСервере
    Процедура Заполнпо2НаСервере()
          Выборка = Справочники.Соотечественники.Выбрать();
         
          Пока Выборка.Следующий() Цикл
         
              Если ДатаПриходаАнкет = Выборка.ДатаПоступления Тогда
                
                 //Сообщить(Выборка);
                 НоваяСтрока = Элементы.СоотечественникиТаб.ДобавитьСтроку();
                 НоваяСтрока.ФИО = Выборка.Наименование;
               
            КонецЕсли;
         
          КонецЦикла;
    КонецПроцедуры
    
    Ругается
    {Документ.Исполнение.Форма.ФормаДокумента.Форма(72)}: Обращение к процедуре объекта как к функции (ДобавитьСтроку)
    НоваяСтрока = Элементы.СоотечественникиТаб.ДобавитьСтроку();
  4. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.990
    Симпатии:
    399
    Баллы:
    104
    Просто Добавить();
  5. TopicStarter Overlay
    kisol
    Offline

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

    Регистрация:
    25 июл 2012
    Сообщения:
    395
    Симпатии:
    41
    Баллы:
    54
    Спасибо получилось.

    НО заполняется поле табличного документа если у его реквизита указан тип СТРОКА, если ставишь Справочник ссылку, то поле пустое =(

    Вложения:

  6. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Все верно, будет пустая. Вы разберитесь с типами данных. Зачем ссылочный тип заполнять строкой ????????
    kisol нравится это.
  7. Tiger86
    Offline

    Tiger86 Модераторы Команда форума Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    и еще, зачем гулять по всей выборке данных справочника и в цикле проверять на увсловие. Не проще ли запросом сразу ограничить вашу выборку?
    kisol нравится это.
  8. TopicStarter Overlay
    kisol
    Offline

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

    Регистрация:
    25 июл 2012
    Сообщения:
    395
    Симпатии:
    41
    Баллы:
    54
    Да вы правы передаю ссылку

    Код:
    &НаСервере
    Процедура ЗаполнитьПоДатеНаСервере()
          Объект.СоотечественникиТаб.Очистить();
          Выборка = Справочники.Соотечественники.Выбрать();
              Пока Выборка.Следующий() Цикл
                Если Объект.ДатаПриходаАнкет = Выборка.ДатаПоступления Тогда
                 НоваяСтрока = Объект.СоотечественникиТаб.Добавить();
                 НоваяСтрока.ФИО = Выборка.Ссылка;
                 НоваяСтрока.НомерАнкеты = Выборка.НоменАнкеты;      
            КонецЕсли;
          КонецЦикла;
    КонецПроцедуры
    Пробую разные варианты.

    Спасибо за помощь в этом не легком деле.
  9. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.782
    Симпатии:
    509
    Баллы:
    204
    Незачто :), но версию для обучения программирования все-таки стоило бы почитать.
  10. TopicStarter Overlay
    kisol
    Offline

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

    Регистрация:
    25 июл 2012
    Сообщения:
    395
    Симпатии:
    41
    Баллы:
    54
    Слушаю курсы от "Специалиста" и Чистова :rolleyes::rolleyes::rolleyes:

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