Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Выгрузка из табличной части в документы (1С)

Выгрузка из табличной части в документы (1С)
Я
   FuruDesu
 
26.09.17 - 10:45
В 1С новичок, если подскажите, буду рад.
Есть форма, на которой расположена табличная часть (Склад, Товар, Количество Цена) с заполняющимися данными по кнопке. Необходимо по нажатию другой кнопки создать 3 документа, которые заполнятся данными взятыми из этой таблицы. За основу документа взял "Поступление товаров и услуг". Насколько понимаю, всё должно делаться через запрос, но как именно, пока слабо себе представляю.
P.S. Если похожая тема уже была, то извиняюсь.

Код:
&НаКлиенте
Процедура Заполнить(Команда)
    
    ЗаполнитьНаСервере();
    
КонецПроцедуры 

&НаСервере    
Процедура ЗаполнитьНаСервере()

    ТаблицаТоваров = Новый ТаблицаЗначений;
    
    ТаблицаТоваров.Колонки.Добавить("Склад", Новый ОписаниеТипов("СправочникСсылка.Склады"));
    ТаблицаТоваров.Колонки.Добавить("Товар", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"));
    ТаблицаТоваров.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число"));
    ТаблицаТоваров.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число"));
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад= Справочники.Склады.НайтиПоНаименованию("Склад1");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар1");
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар2");
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад = Справочники.Склады.НайтиПоНаименованию("Склад2");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар1");
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад = Справочники.Склады.НайтиПоНаименованию("Склад3");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар1");
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад = Справочники.Склады.НайтиПоНаименованию("Склад1");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар3");        
    
    НоваяСтрока = ТаблицаТоваров.Добавить();
    НоваяСтрока.Склад = Справочники.Склады.НайтиПоНаименованию("Склад3");
    НоваяСтрока.Товар = Справочники.Номенклатура.НайтиПоНаименованию("Товар2");
        
    Для каждого НоваяСтрока из ТаблицаТоваров Цикл
        НоваяСтрока.Количество = 1;
        НоваяСтрока.Цена= 50;
    КонецЦикла;  
    
    ДокОбъект = РеквизитФормыВЗначение("Объект");
    ДокОбъект.Товары.Загрузить(ТаблицаТоваров);
    ЗначениеВРеквизитФормы(ДокОбъект, "Объект");
    
КонецПроцедуры;
 
 
   Numerus Mikhail
 
1 - 26.09.17 - 10:48
Это код убогого заполнения табличной части.
А где хотя бы наброски кода для создания документов?
   FuruDesu
 
2 - 26.09.17 - 10:55
(1) Не отрицаю, что убогого, я ведь сказал, что далеко не профан. Прежде чем делать наброски, мне хотя бы надо в теории понять, что требуется для этого. Пустой документ я и так сделать смогу, мне непонятно, как передать данный из таблицы в реквизиты.
   igorPetrov
 
3 - 26.09.17 - 10:57
(2) Зачем это нужно?
   h-sp
 
4 - 26.09.17 - 10:59
(2) ну так же
   Для каждого Строка из ТаблицаТоваров Цикл
        НоваяСтрока = НовыйДок.Товары.Добавить();
        НоваяСтрока.Количество = Строка.Количество;
        НоваяСтрока.Цена= 50;
    КонецЦикла;
   Numerus Mikhail
 
5 - 26.09.17 - 11:02
(2) Документ создается так:

НовыйДок = Документы.ТвойДокумент.СоздатьОбъект();

Реквизиты заполняются так:
НовыйДок.ТвойРеквизит = ЗначениеРеквизита;


Цикл ты умеешь делать. Что еще непонятного?
   FIXXXL
 
6 - 26.09.17 - 11:05
(0) у тебя перед заполнением данные в таблице или ТЧ в наличии уже? зачем тогда цирк с ТаблицаТоваров = Новый ТаблицаЗначений; ?

Создавай нужный документ, в его ТЧ добавляй строки и заполняй значения в этих строках

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует