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