Имя: Пароль:
1C
1С v8
Заполнение ТЧ из обработки
0 dgamelya
 
15.02.13
10:00
Добрый день! На форме документа при нажатии на кнопку открывается обработка. в этой обработке есть ТЧ, которую заполняет пользователь. После заполнения данные из ТЧ обработки должны перенестись в ТЧ документа.

ТаблЧ = ОтчетПроизводства.ПолучитьОбъект();
Если ТаблЧ.РаспределениеМатериалов.Количество() <> 0 Тогда
Ответ = Вопрос("Табличная часть ""Распределение материалов"" уже содержит строки."
+ Символы.ПС + "При заполнении они будут удалены!" + Символы.ПС,
РежимДиалогаВопрос.ДаНет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
ТаблЧ.РаспределениеМатериалов.Очистить();
Для каждого стр из РаспределениеМатериалов Цикл
НовСтр = ТаблЧ.РаспределениеМатериалов.Добавить();
НовСтр.ЕдиницаИзмерения = стр.ЕдиницаИзмерения;
НовСтр.Количество = стр.Количество;
НовСтр.Коэффициент = стр.Коэффициент;
НовСтр.Номенклатура = стр.Номенклатура;
НовСтр.НоменклатурнаяГруппа = стр.НоменклатурнаяГруппа;
Новстр.Продукция = стр.Продукция;
НовСтр.СерияНоменклатуры = стр.СерияНоменклатуры;
НовСтр.Спецификация = стр.Спецификация;
НовСтр.СтатьяЗатрат = стр.СтатьяЗатрат;
НовСтр.ХарактеристикаНоменклатуры = стр.ХарактеристикаНоменклатуры;
НовСтр.ХарактеристикаПродукции = стр.ХарактеристикаПродукции;
КонецЦикла;

КонецЕсли;

Но ТЧ документа не заполняется. Подскажите пожалуйста в чем может быть ошибка?
1 Godofsin
 
15.02.13
10:04
записать
2 Wobland
 
15.02.13
10:05
в днк, однозначно
3 Wobland
 
15.02.13
10:05
ТаблЧ.РаспределениеМатериалов.Очистить();
Для каждого стр из РаспределениеМатериалов Цикл
4 dgamelya
 
15.02.13
10:09
После записи все равно не заполняется
5 Godofsin
 
15.02.13
10:10
(4) Записывать ПОСЛЕ заполнения!
6 dgamelya
 
15.02.13
10:10
(3) Это две разные ТЧ. В обработке и в документе они с одинаковым названием РаспрелениеМатериалов
7 Godofsin
 
15.02.13
10:12
ТаблЧ.РаспределениеМатериалов.Очистить();
Для каждого стр из РаспределениеМатериалов Цикл
НовСтр = ТаблЧ.РаспределениеМатериалов.Добавить();
НовСтр.ЕдиницаИзмерения = стр.ЕдиницаИзмерения;
НовСтр.Количество = стр.Количество;
НовСтр.Коэффициент = стр.Коэффициент;
НовСтр.Номенклатура = стр.Номенклатура;
НовСтр.НоменклатурнаяГруппа = стр.НоменклатурнаяГруппа;
Новстр.Продукция = стр.Продукция;
НовСтр.СерияНоменклатуры = стр.СерияНоменклатуры;
НовСтр.Спецификация = стр.Спецификация;
НовСтр.СтатьяЗатрат = стр.СтатьяЗатрат;
НовСтр.ХарактеристикаНоменклатуры = стр.ХарактеристикаНоменклатуры;
НовСтр.ХарактеристикаПродукции = стр.ХарактеристикаПродукции;
КонецЦикла;

КонецЕсли;

Табч.Записать();
8 Godofsin
 
15.02.13
10:15
и вообще это моветон, пользуйся так:
Табч.РаспределениеМатериалов.Загрузить(РаспределениеМатериалов);
9 Godofsin
 
15.02.13
10:16
все поля по наименованию совпадают
10 dgamelya
 
15.02.13
10:26
Спасибо, так и сделала. Но тч документа не обновляется. т.е. добавленные строки становятся видны только после закрытия и открытия документа
11 Godofsin
 
15.02.13
10:30
(10) У тебя чо, еще и документ при этом открыт?
12 Godofsin
 
15.02.13
10:30
Ты хочешь как "подбор номенклатуры"?
13 Godofsin
 
15.02.13
10:33
Короче, опиши задачу в целом
14 dgamelya
 
15.02.13
10:38
да,документ открыт. на вкладке материалы есть кнопка, при нажатии на которую открвается обработка. пользователь заполняет тч обработки, после чего данные переносятся в тч документа который открыт
15 Godofsin
 
15.02.13
10:42
(14) ну токда кури Подбор, обработкаПодбора, ОповеститьОВыборе
16 Godofsin
 
15.02.13
10:43
Посмотри как в РТиУ сделан подбор номенклатуры, делай по аналогии, что неясно, спрашивай
17 dgamelya
 
15.02.13
10:58
А не подскажите как передать значения из обработки в документ?
18 zippygrill
 
15.02.13
11:03
а почему ты не хочешь через Заполнить и обработка табличной часть?
19 zippygrill
 
15.02.13
11:04
(17)  владелей формы по моему.
20 zippygrill
 
15.02.13
11:05
*через владелец
21 Godofsin
 
15.02.13
11:06
(17) ОповеститьОВыборе()
22 dgamelya
 
15.02.13
11:11
(18) не соображу что то.. это как?
23 Начинающий_13
 
15.02.13
11:19
Форма обработки
Перем ДокументОбъект Экспорт;

Процедура Перенести(Кнопка)
   
   // Действие выполняется, если еще не закрыли документ
   Если ДокументОбъект <> Неопределено Тогда
       МетаданныеДокумента = ДокументОбъект.Метаданные();
       // Выгрузим ТЧ обработки в таблицу значений для дальнейших преобразований
       ТаблицаОбработки        = ТЧ.Выгрузить();
       МетаТЧ = МетаданныеДокумента.ТабличныеЧасти.Найти(СокрЛП(ИмяТабличнойЧасти));
       // Загрузим полученную таблицу в документ
       МетаДок = ДокументОбъект.Метаданные();
       МетаТЧ  = МетаДок.ТабличныеЧасти.Найти(СокрЛП(ИмяТабличнойЧасти));
       ИмяТЧ   = СокрЛП(ИмяТабличнойЧасти);
       ДокументОбъект[ИмяТЧ].Загрузить(ТаблицаОбработки);
   КонецЕсли;
   ИмяТабличнойЧасти=НЕОПРЕДЕЛЕНО;
   Закрыть();

КонецПроцедуры

Из документа передай параметры и ИМЯ ТАБЛИЦЫ КУДА ВОЗВРАЩАЕШЬ
24 Godofsin
 
15.02.13
11:20
эээхххх....
//Из документа:

ФормаПодбора = Обработки.ТвояОбработка.ПолучитьФорму("ТвояФорма",ЭтаФорма);
ФормаПодбора.Открыть();

//В обработке

СтруктураПодбора = Новый Структура();
СтруктураПодбора.Вставить("ТабЧасть",РаспределениеМатериалов);
ОповеститьОВыборе();

//в документе

Процедура ОбработкаВыбора(ЗначениеВыбора, Источник)
   перем ТЧ;
ЗначениеВыбора.Свойство("ТабЧасть", ТЧ);
РаспределениеМатериалов.Загрузить(ТЧ);

КонецПроцедуры
25 Godofsin
 
15.02.13
11:21
+(24) очепятка: ОповеститьОВыборе(СтруктураПодбора);
26 Начинающий_13
 
15.02.13
11:23
В моем случае больше не надо никаких процедур в документе при приеме данных из обработки. Если Имя ТЧ будте в обработке ввиде видимого параметра можешь возвращать в любую ТЧ документа надо только написать имя ТЧ в параметр руками.
27 Начинающий_13
 
15.02.13
11:25
ИЗ документа
Процедура ЗаполнитьИзДокумента(Кнопка)
   
   
   МетаданныеДокумента   = ДокументОбъект.Метаданные().Представление();
   СтруктураПараметровПодбора = Новый Структура();
   СтруктураПараметровПодбора.Вставить("Заголовок" , "ДОКУМЕНТ - " + Врег(МетаданныеДокумента) );
// Здесь твои параметры
КонецПроцедуры
28 Godofsin
 
15.02.13
11:26
(26) Ничего не имею против твоего варианта ))) Ээто ж хорошо, у ТС теперь куча вариантов ))))
29 Godofsin
 
15.02.13
11:28
Единственно, что ТС вряд ли поймет, что делает твой вариант )))
30 dgamelya
 
15.02.13
13:26
огромное всем спасибо!все получилось!)))