|
УФ : Загрузка контекста из дополнительной произвольной формы документа в сам документ toypaul, Fedor-1971, zenik, trooba, ads55, saaken, paramedic, okmail, КонецЕсли, AAA, John D, CepeLLlka, takefive, ДенисСмирнов, d4rkmesa, AlexKimp, Прохожий, 1cVandal, Гипервизор, alexela, H A D G E H O G s, mikecool, kir-g, _Batoo, Волшебник, shuhard, Ненавижу 1С, Климов Сергей, Fish, maxab72, kittystark, Bad_Aleks, lubitelxml, maxar, Garykom, b_ru, YFedor, Prog_man, alexxx961503, АгентБезопаснойНацио, U4Me2, bvb, DemonShinji2, JohnGilbert, crotnn, Мнемоника, Михаил Козлов, Мультук, proger2021, Сукпун
| ☑ | ||
|---|---|---|---|---|
|
0
bvb
04.06.26
✎
11:35
|
Добрый день
Никогда не делал и вот надо. Нужно грузить данные из Excel в ТЧ документа "Заказ" С предварительной визуализацией и ПРЕД обработкой 1. Для этого хочу сделать доп. произвольную форму данного документа в расширении (с внешней обработкой ТЧ связываться не хочу) 2. Форма открывается с блокировки окна владельца 3. На форме ТЗ и в нее грузим Excel. 4. Подшаманиваем данные форме и затем переносим в документ Вопрос : КАк правильно загрузить данные из ТЗ в ТЧ документа после закрытие обработки в команде "ЗагрузитьВДокумент" после закрытия формы? У меня в голове только вариант со временным хранилищем |
|||
|
1
Мультук
гуру
04.06.26
✎
11:53
|
(0)
1) "загрузка контекста" -- вы грузите не контекст, вы грузите данные. 2) И что не так с этим решением ? 3) В УТ/ЕРП есть типовой импорт из XLS табличных частей Можно посмотреть "а как сделано там" |
|||
|
2
Мнемоника
04.06.26
✎
12:03
|
В форме с табличкой при нажатии на кнопку оповещаем о выборе с передачей через ПоместитьВоВременноеХранилище нашей таблички
В исходной форме в ОбработкаВыбора обрабатываем это дело. |
|||
|
3
КонецЕсли
04.06.26
✎
13:01
|
(0) Вариант без временного хранилища:
Использовать ОткрытьФорму с оповещением о закрытии. В вашей форме при нажатии на ОК формировать массив структур содержащий выбранные строки таблицы (колонки - элементы структуры) и закрыть форму с возвратом этого массива. В оповещении о закрытии (на клиенте) сразу добавляем строки в ТЧ документа по полученным данным. Не забываем о заполнении служебных полей в строках ТЧ. |
|||
|
4
AAA
04.06.26
✎
13:28
|
А чем не угодила обработка заполнения ТЧ? Там как раз все просто, никаких извращений
|
|||
|
5
mikecool
04.06.26
✎
13:47
|
(4) а где подглядеть такое? а то сподобился писать контекстный внешний отчет, так час пару процедур писал(типа описание и ВыполнитьКоманду) )))
остальное то понятно, а вот сама "обвязка" с привязкой к БСП и объектам - это не знаю как |
|||
|
6
Прохожий
04.06.26
✎
13:58
|
(0) Правильно Дополнительные отчеты и обработки.
Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("1.1.1.1"); ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта(); //ВидОбработкиПечатнаяФорма(); МасНазначений = Новый Массив; //МасНазначений.Добавить("Документ.ЗаказНаПеремещение"); МасНазначений.Добавить("Документ.ЗаказПоставщику"); ПараметрыРегистрации.Назначение = МасНазначений; ПараметрыРегистрации.Наименование = "Загрузка Номенклатуры из Эксель"; ПараметрыРегистрации.БезопасныйРежим = Ложь; НоваяКоманда = ПараметрыРегистрации.Команды.Добавить(); НоваяКоманда.Представление = НСтр("ru = 'Загрузка Номенклатуры из Эксель'"); НоваяКоманда.Идентификатор = "ЗагрузкаНовыхРеквизитовНоменклатуры"; НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовКлиентскогоМетода(); НоваяКоманда.ПоказыватьОповещение = Истина; Возврат ПараметрыРегистрации; КонецФункции |
|||
|
7
Прохожий
04.06.26
✎
14:01
|
Ничего ни в какие хранилища передавать не надо. Дикари какие-то.
|
|||
|
8
Прохожий
04.06.26
✎
14:01
|
&НаКлиенте
Процедура ЗагрузитьДанные() Товары = ВладелецФормы.Объект.Товары; Товары.Очистить(); Для Каждого Стр из ТаблицаЗаказа Цикл Строчка = Товары.Добавить(); ЗаполнитьЗначенияСвойств(Строчка, Стр,"Номенклатура,Количество"); Строчка.Упаковка = Стр.ЕдиницаИзмерения; Строчка.КоличествоУпаковок = Строчка.Количество; Если Строчка.Свойство("Цена") Тогда Строчка.Цена = Стр.Цена; Строчка.СтавкаНДС = ПредопределенноеЗначение("Справочник.СтавкиНДС.НДС12"); Строчка.СуммаСНДС = Стр.Сумма; Строчка.СуммаНДС = Строчка.Сумма * 12 / 112; Строчка.Сумма = Строчка.СуммаСНДС - Строчка.СуммаНДС; КонецЕсли; Если Строчка.Свойство("Артикул")И НЕ ЗначениеЗаполнено(Строчка.Артикул) Тогда Строчка.Артикул = Стр.Артикул; //Строчка.Артикул = СвойствоРеквизита(Строчка.Номенклатура, "Артикул"); КонецЕсли; КонецЦикла; ЭтаФорма.Закрыть(); КонецПроцедуры &НаКлиенте Процедура ЗаполнитьЗаказ(Команда) Если ВладелецФормы.Объект.Товары.Количество() > 0 Тогда ПоказатьВопрос(Новый ОписаниеОповещения("ЗаполнитьЗаказЗавершение", ЭтаФорма), "Табличная часть в документе будет очищена. Продолжить?", РежимДиалогаВопрос.ОКОтмена); иначе ЗагрузитьДанные(); КонецЕсли ; КонецПроцедуры &НаКлиенте Процедура ЗаполнитьЗаказЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт Ответ = РезультатВопроса; Если Ответ = КодВозвратаДиалога.Отмена Тогда Возврат; Иначе ЗагрузитьДанные(); КонецЕсли; КонецПроцедуры |
|||
|
9
Прохожий
04.06.26
✎
14:02
|
(4) Это правильный ответ
|
|||
|
10
Fedor-1971
04.06.26
✎
14:04
|
(0) Если совсем не заморачиваться:
В открытой форме есть форма владелец: при создании на сервере запиши её в реквизит открытой формы (например, фрмВладелец) Заполняешь что тебе нужно Дальше: нов = ФрмВладелец.Объект.ТЧ.Добавить() Не айс при большом количестве строк, но имеет место и такой вариант. Поддерживать такое сложновато, тупо забываешь, как заполнял ТЧ |
|||
|
11
Прохожий
04.06.26
✎
14:04
|
Модуль и форма из разных обработок надерганы, но смысл понятен надеюсь. Права, размещение. Все управляется стандартно. Красота.
|
|||
|
12
Fedor-1971
04.06.26
✎
14:06
|
(7) Попробуй передать своим способом ТаблицуЗначений и сразу станет понятно зачем хранилище
|
|||
|
13
Прохожий
04.06.26
✎
14:13
|
Вопрос: "Нужно грузить данные из Excel в ТЧ документа "Заказ""
Ответ: "ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиЗаполнениеОбъекта()" Мы разный интернет читаем? |
|||
|
14
Прохожий
04.06.26
✎
14:14
|
Это вообще тестовое задание у некоторых франчей если что.
|
|||
|
15
Прохожий
04.06.26
✎
14:14
|
А я его только что испортил...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |