Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 03:22

Внешняя обработка для загрузки данных в ТЧ

Автор DmitriyF, 11 сен 2014, 13:50

0 Пользователей и 1 гость просматривают эту тему.

DmitriyF

Здравствуйте.
Есть обработка на УФ для УТ11.1 в которой есть форма с ТЧ и в ней один реквизит Ссылка на заказы клиентам. При нажатии на кнопку в форме документа открывается форма в которой выбираем нужные нам заказы, далее по товарам в этих заказах формируется ТЗ, которую нужно вставить в ТЧ документа.
Вот код:

Функция СведенияОВнешнейОбработке() Экспорт
   ПараметрыРегистрации = Новый Структура;
   МассивНазначений = Новый Массив;
   МассивНазначений.Добавить("Документ.ЗаказКлиента");
   
   ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
   ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
   ПараметрыРегистрации.Вставить("Наименование", "Заполнить из заказа");
   ПараметрыРегистрации.Вставить("Версия", "1.1");
   ПараметрыРегистрации.Вставить("БезопасныйРежим", ложь);
   ПараметрыРегистрации.Вставить("Информация", "Добавление позиций из заказа.");
   
   ТаблицаКоманд = ПолучитьТаблицуКоманд();
   
   ДобавитьКоманду(ТаблицаКоманд,
   "Заполнить по заказу",
   "Заполнить по заказу",
   "ОткрытиеФормы",
   Истина);
   
   ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
   
   Возврат ПараметрыРегистрации;
   
КонецФункции

Функция ПолучитьТаблицуКоманд()
   Команды = Новый ТаблицаЗначений;
   Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
   Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
   Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
   Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
   
   НоваяКоманда = ТаблицаКоманд.Добавить();
   НоваяКоманда.Представление = Представление;
   НоваяКоманда.Идентификатор = Идентификатор;
   НоваяКоманда.Использование = Использование;
   НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
   НоваяКоманда.Модификатор = Модификатор;
   
КонецПроцедуры

&НаСервере
Функция ЗаполнитьТабличнуюЧасть(ДанныеЗаполнения) Экспорт
   
Как можно в этом месте обратиться к Документу в который нам нужно все загрузить?????????

КонецФункции

TreeDogNight

Как-то так...
&НаСервере
Функция ЗаполнитьТабличнуюЧасть(ДанныеЗаполнения) Экспорт

НовыйДокумент = Документы.ТвойДокумент.СоздатьДокумент();
Для каждого Стр из ДанныеЗаполнения Цикл
НоваяСтрока = НовыйДокумент.ТЧ.Добавить();
НоваяСтрока.Реквизит1 = Стр.Данные1;
НоваяСтрока.Реквизит2 = Стр.Данные3;
НоваяСтрока.Реквизит3 = Стр.Данные3;
КонецЦикла;
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

КонецФункции
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

DmitriyF

Цитата: TreeDogNight от 11 сен 2014, 14:56
Как-то так...
&НаСервере
Функция ЗаполнитьТабличнуюЧасть(ДанныеЗаполнения) Экспорт

НовыйДокумент = Документы.ТвойДокумент.СоздатьДокумент();
Для каждого Стр из ДанныеЗаполнения Цикл
НоваяСтрока = НовыйДокумент.ТЧ.Добавить();
НоваяСтрока.Реквизит1 = Стр.Данные1;
НоваяСтрока.Реквизит2 = Стр.Данные3;
НоваяСтрока.Реквизит3 = Стр.Данные3;
КонецЦикла;
НовыйДокумент.Записать(РежимЗаписиДокумента.Проведение);

КонецФункции

Это ты имеешь ввиду если создается новый. А я имел ввиду, что я создал документ и из него выбираю заполнить.

TreeDogNight

Значит у тебя уже есть ссылка на нужный документ, который нужно заполнить?
Тогда просто получити объект, измени его и запиши!
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

DmitriyF

Цитата: TreeDogNight от 11 сен 2014, 19:30
Значит у тебя уже есть ссылка на нужный документ, который нужно заполнить?
Тогда просто получити объект, измени его и запиши!
Так вот я  и не могу понять как получить ссылку на объект.

Besart

&НаКлиенте
Процедура ПриОткрытии(Отказ)
        Попытка
Документ = ЭтаФорма.ВладелецФормы.Объект.Ссылка;
        Исключение
        КонецПопытки;
КонецПроцедуры


DmitriyF

Цитата: Besart от 11 сен 2014, 22:10
&НаКлиенте
Процедура ПриОткрытии(Отказ)
        Попытка
Документ = ЭтаФорма.ВладелецФормы.Объект.Ссылка;
        Исключение
        КонецПопытки;
КонецПроцедуры

Получил я ссылку на объект, но изза чего я не могу ПолучитьОбъект() из нее делаю все на сервере?

Besart

объект еще не записан, поэтому ДанныеФормыВЗначение(<Объект>, <Тип>), только зачем вам нужен объект, если можно заполнить так НоваяСтрока = Документ["ТабЧасть"].Добавить();

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск