0
maksjuve
28.08.15
✎
11:03
|
Здравствуйте, дорогие знатоки!
1. Часть вводная) Есть полностью самописная конфигурация на 8.3 (режим блокировки управляемый). Есть некий документ, на котором есть кнопка открытия другой формы ( в другой форме происходит разбитие строки на несколько строк по количеству материала)
&НаКлиенте
Процедура РазбитьСтрокуМатериалов(Команда)
ТекущиеДанные = Элементы.Материалы.ТекущиеДанные;
ПараметрыФормы = новый Структура;
ПараметрыФормы.Вставить("ТекущиеОС",ТекущиеДанные.ОсновноеСредство);
ПараметрыФормы.Вставить("ТекущиеЦена",ТекущиеДанные.Цена);
ПараметрыФормы.Вставить("ТекущиеНомерСтроки",ТекущиеДанные.НомерСтроки);
ПараметрыФормы.Вставить("ТекущиеСумма",ТекущиеДанные.Сумма);
ПараметрыФормы.Вставить("ТекущиеКоличество",ТекущиеДанные.Количество);
ОписаниеОповещенияОЗакрытии = новый ОписаниеОповещения("РазбитьТЧМатериалы",ЭтотОбъект);
ОткрытьФорму("Документ.РемонтныйЛист.Форма.РазбитьСтроку",ПараметрыФормы,ЭтаФорма,,,,ОписаниеОповещенияОЗакрытии);
КонецПроцедуры
&НаКлиенте
Процедура РазбитьТЧМатериалы(РезультатЗакрытия,ДополнительныеПараметры) Экспорт
Если РезультатЗакрытия <> неопределено тогда
Если РезультатЗакрытия.Количество() > 1 тогда
ТекущиеДанные = Элементы.Материалы.ТекущиеДанные;
ЗаполнитьЗначенияСвойств(ТекущиеДанные,РезультатЗакрытия[0]);
Для Инд = 1 ПО РезультатЗакрытия.Количество() -1 Цикл
НоваяСтрока = Объект.Материалы.Вставить(ТекущиеДанные.НомерСтроки);
ЗаполнитьЗначенияСвойств(НоваяСтрока,РезультатЗакрытия[Инд]);
НоваяСтрока.Номенклатура = ТекущиеДанные.Номенклатура;
КонецЦикла;
Модифицированность = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
После того как пользователь нажал на кнопку(т.е разбил строку) и провел или просто записал документ происходит его блокировка и даже если этот же пользователь его откроет то изменить ничего не может т.к объект заблокирован.
Внимание вопрос: Что происходит,почему так происходит и как это вылечить?
|
|
1
maksjuve
28.08.15
✎
11:08
|
на Всякий случай:
Кнопка закрытия в подчиненной форме выглядит так:
Если ИтогКоличество <> ТЧТекущиеДанные[0].Количество тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Количество материала не совпадает!!");
Иначе
ПараметрыЗакрытияФормы = новый Массив;
Для Каждого СтрокаТаблицы из ТЧДанныеДляРазбивки Цикл
СтруктураЗакрытияФормы = новый Структура;
СтруктураЗакрытияФормы.Вставить("ОсновноеСредство",СтрокаТаблицы.ОсновноеСредство);
СтруктураЗакрытияФормы.Вставить("Количество",СтрокаТаблицы.Количество);
СтруктураЗакрытияФормы.Вставить("Цена",СтрокаТаблицы.Цена);
СтруктураЗакрытияФормы.Вставить("Сумма",СтрокаТаблицы.Сумма);
ПараметрыЗакрытияФормы.Добавить(СтруктураЗакрытияФормы);
КонецЦикла;
ЭтаФорма.Закрыть(ПараметрыЗакрытияФормы);
КонецЕсли;
|
|