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

&НаКлиенте
Процедура РазбитьТЧМатериалы(РезультатЗакрытия,ДополнительныеПараметры) Экспорт
    Если РезультатЗакрытия <> неопределено тогда
        Если РезультатЗакрытия.Количество() > 1 тогда
            ТекущиеДанные = Элементы.Материалы.ТекущиеДанные;
            ЗаполнитьЗначенияСвойств(ТекущиеДанные,РезультатЗакрытия[0]);
            
            Для Инд = 1 ПО РезультатЗакрытия.Количество() -1 Цикл
                НоваяСтрока = Объект.Материалы.Вставить(ТекущиеДанные.НомерСтроки);
                ЗаполнитьЗначенияСвойств(НоваяСтрока,РезультатЗакрытия[Инд]);
                НоваяСтрока.Номенклатура = ТекущиеДанные.Номенклатура;
            КонецЦикла;
            Модифицированность = Истина;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

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