Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Связять взаимодействие двух процедур в клиент-серверном режиме (управляемое приложение)
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Sidrik
Здравствуйте. В одной форме документа есть две табличные части. Первая табчасть, это по сути справочник номенклатуры. Пользователь выбирает из этой табличной части номенклатуру, и она попадает во вторую табличную часть. Вот код, который это делает...

//Список - это первая табличная часть.
&НаКлиенте;
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
ДобавитьНоменклатуру(ВыбраннаяСтрока, СтандартнаяОбработка);  
КонецПроцедуры

//ТЧ - это вторая табличная часть
&НаСервере;
Процедура ДобавитьНоменклатуру(СтрокаСписка, СтандартнаяОбработка)
Если Не СтрокаСписка.ЭтоГруппа Тогда    
СтандартнаяОбработка = Ложь;
Строка = Объект.ТЧ.Добавить();
Строка.Номенклатура = СтрокаСписка.Ссылка;  
КонецЕсли;
КонецПроцедуры


Далее, мне нужно, чтобы при попадании соответсвующей номенклатуры во вторую табчасть, нужно чтобы автоматически выделялось поле количество (чтобы пользователю не нужно было каждый раз делать двойной клик по этому полю, а чтобы сразу вводил количество. Я узнал, что для этого нужен примерно вот такой код...

НоваяСтрока = Объект.ТЧ.Добавить();
Элементы.ТЧ.ТекущаяСтрока = НоваяСтрока.ПолучитьИдентификатор();
Элементы.ТЧ.ТекущийЭлемент = Элементы.ТЧКоличество;
Элементы.ТЧ.ИзменитьСтроку();


Только проблема в том, что процедура "ИзменитьСтроку()" не работает на сервере, и если я ее пишу на клиенте, то у меня создается отдельная строка с номенклатурой, а потом отдельная строка с изменением поля количество. Как мне правильно прописать это на клиенте, чтобы механизм работал? Заранее спасибо.
pablo
А почему бы не заставить процедуру ДобавитьНоменклатуру выполняться на клиенте?
Sidrik
Цитата(pablo @ 14.06.11, 12:22) необходимо зарегистрироваться для просмотра ссылки
А почему бы не заставить процедуру ДобавитьНоменклатуру выполняться на клиенте?


пробовал но не вышло... хотелось бы пример кода...
pablo
&НаКлиенте;
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Не ВыбраннаяСтрока.ЭтоГруппа Тогда
ДобавитьНоменклатуру(ВыбраннаяСтрока, СтандартнаяОбработка);  
КонецЕсли;
КонецПроцедуры

//ТЧ - это вторая табличная часть
&НаКлиенте;
Процедура ДобавитьНоменклатуру(СтрокаСписка, СтандартнаяОбработка)
    
СтандартнаяОбработка = Ложь;
Строка = Объект.ТЧ.Добавить();
Строка.Номенклатура = СтрокаСписка.Ссылка;  

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

Или вообще без процедуры
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Не ВыбраннаяСтрока.ЭтоГруппа Тогда
Строка = Объект.ТЧ.Добавить();
Строка.Номенклатура = ВыбраннаяСтрока.Ссылка;  

КонецЕсли;
КонецПроцедуры
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.