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

Редактирование реквизитов в модальном окне ККМ

Автор gabi, 26 авг 2024, 08:42

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

gabi

Извините за не скромный вопрос, но как мне передать активную строку товара из ТЧ в форму редактирования, открытую модально.
2024-08-26.png

код:

&НаКлиенте
Процедура ТоварыПриАктивизацииСтроки(Элемент)
   ТекДанные = Элементы.Товары.ТекущиеДанные;
   Если ТекДанные = Неопределено Тогда
      Возврат;                                                                                                                                                                     
   КонецЕсли;
   Элементы.Декорация1.Заголовок = "кол-во(" + ТекДанные.Количество + ") * " + ТекДанные.Цена + " = " + ТекДанные.Сумма + "," + ТекДанные.ПроцентСкидки + ", скидка% - " + текданные.СкидкаНаЦену + "%, сумма со скидкой - " + текданные.СуммаСкидки + ", итого со скидкой - " + текданные.Сумма + ", " + "(ед.измер - "+ текданные.количество + ")";   
КонецПроцедуры
 
&НаКлиенте
Функция Изменить(Команда)     
   //ТекДанные = Элементы.Товары.ТекущиеДанные;
   //док = ОткрытьФорму("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования");
   ОткрытьФормуМодально("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования"); 
КонецФункции

мне нужно передать туда реквизиты со всеми их реквизитами, там....: БАТОНЧИК НЭСТЛЕ 1 ШТ, количество 1, цена 95, сумма 95
и возможность отредактировать эти данные. вот как мне эту активную строку передать в модальное окно????

Максим75

gabi, первое, что приходит на ум, передайте в форму некую структуру со всем, что Вам надо. а уже в форме при открытии (могу ошибаться, может при создании на сервере) обработайте эту переданную структуру и заполните реквизиты.
второе, что приходит на ум, посмотрите, как реализовано в РМК пробитие отложенного чека, там же тоже из записанного отложенного чека заполняется (если его вызываете из РМК). или у Вас не так?

gabi

Максим75, да я передавала структуру всего необходимого, но не помогло(наверно не так делала), вот она:
&НаКлиенте
Функция Изменить(Команда)     
   //ТекДанные = Элементы.Товары.ТекущиеДанные;
   док = ОткрытьФормуМодально("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования");
   Структура = Новый Структура;
   Структура.Вставить("Номенклатура", ТекДанные.Номенклатура);
   Структура.Вставить("Цена", ТекДанные.Цена);
   Структура.Вставить("Количество", ТекДанные.Количество);
   Структура.Вставить("Всего", ТекДанные.Всего);       
         
КонецФункции

Цитата: Максим75 от 26 авг 2024, 09:03первое, что приходит на ум
это будет так:?

&НаКлиенте
Функция Изменить(Команда)     
   //ТекДанные = Элементы.Товары.ТекущиеДанные;
   Структура = Новый Структура;
   Структура.Вставить("Номенклатура", ТекДанные.Номенклатура);
   Структура.Вставить("Цена", ТекДанные.Цена);
   Структура.Вставить("Количество", ТекДанные.Количество);
   Структура.Вставить("Всего", ТекДанные.Всего);   
    док = ОткрытьФормуМодально("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования", Структура);    
         
КонецФункции

gabi

Максим75, ах неет нужно сам модуль формы редактирования открыть и записать туда структуру в процедуру "ПриОткрытии",
&НаКлиенте
Функция Изменить(Команда)     
   //ТекДанные = Элементы.Товары.ТекущиеДанные;
   Структура = Новый Структура;
   Структура.Вставить("Номенклатура", ТекДанные.Номенклатура);
   Структура.Вставить("Цена", ТекДанные.Цена);
   Структура.Вставить("Количество", ТекДанные.Количество);
   Структура.Вставить("Всего", ТекДанные.Всего);   
    док = ОткрытьФормуМодально("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования", Структура);   
         
КонецФункции

правильно?)

Максим75

gabi, правильно передаете (во втором случае, ибо в первом Вы вначале форму открываете, а потом структуру заполняете).
только зря Вы вот это //ТекДанные = Элементы.Товары.ТекущиеДанные; закомментировали. Похоже в таком случае ничего туда и не передаете, пустоту.

ну и дайте ПриСозданииНаСервере формы обработки ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования, Вы же еще и там из параметров должны это все достать.

antoneus

Модальность - зло (вам и в сообщении внизу вон пишут), используйте Оповестить в открываемой форме, ловите это оповещение в форме, из которой открываете.

gabi

antoneus, да, это я тоже провела. спасибо за уведомление

gabi

Максим75,
выдается ошибка, не пойму что за
2024-08-26 (1).png

код модуля формы "ФормаРедактирования"

&НаКлиенте
Процедура ПриОткрытии(Отказ)
    ПриСозданииНаСервере();
КонецПроцедуры


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   ИдентификаторСтроки = Элементы.Товары.ТекущаяСтрока;
   ТЧ = Объект.Товары.НайтиПоИдентификатору(ИдентификаторСтроки);
   ТекДанные =  ТЧ.Номенклатура;
   ТекДанные2 = ТЧ.Цена;
   //ТекДанные3 = Элементы.Товары.ТекущиеДанные.Количество1;
   //ТекДанные4 = Элементы.ТоварыСумма;

   //ТекДанные = Элементы.Товары.ТекущиеДанные;
   Структура = Новый Структура;
   Структура.Вставить("Номенклатура", ТекДанные);
   Структура.Вставить("Цена", ТекДанные2);
   //Структура.Вставить("Количество", ТекДанные3);
   //Структура.Вставить("Сумма", ТекДанные4);   
   Форма=ПолучитьОбщуюФорму("Обработка.ОРТ_РМКУправляемыйРежим.Форма.ФормаРедактирования", Структура);   
   Форма.РежимВыбора = Истина;
   Форма.ЗакрыватьПриВыборе = Ложь;
   Форма.ОткрытьМодально();
КонецПроцедуры


Максим75

gabi, Вы не поняли, при создании на сервере в открываемой форме, а не в вызываемой.
и да, это предопределенная процедура, ее не надо вызывать.
поищите в нете, просто запрос "открыть форму с некими параметрами 1с" в гугле дайте и вывалит хорошее объяснение, что и как надо делать.
примите к своему случаю.

gabi

Максим75, спасибо. значит весь код процедуры "ПриСозданииНаСервере" нужно перенести в форму откуда захочу открыть модальное окно

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

Рейтинг@Mail.ru

Поиск