В подчиненной таблице формы скрываются строки уже введенные

1. alexfps79 18.03.24 11:16 Сейчас в теме
Добрый день!
У меня в документе созданы две табличные части "Входной контроль" и "Измерения". Установлен отборСтрок по элементам входного контроля.
&НаКлиенте
Процедура ВходнойКонтрольПриАктивизацииСтроки(Элемент)
    // Вставить содержимое обработчика. 
    ТД = Элементы.ВходнойКонтроль.ТекущиеДанные;
    Если ТД <> Неопределено Тогда
        Элементы.Измерения.ОтборСтрок = Новый ФиксированнаяСтруктура("Номенклатура", ТД.Номенклатура);
    КонецЕсли;
КонецПроцедуры


Показать


При вводе данных в подчиненную табличную часть если нажать Enter или кликнуть курсор в пустое место строки пропадают. Файл ПустаяСтрока.png
Если добавить новую строку то виден номер новой строки, а прошлые номера не видны, то есть они есть но скрыты(файл Строка2ЕстьСтрока1Нет).
Если нажать записать на форме, то тогда все строки становятся видны.
Можно прописать код, чтобы строки не исчезали или только принудительное записывание?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user1880116 18.03.24 11:42 Сейчас в теме
Изменение отбора строк для таблицы формы, отображающей табличную часть, приводит к контекстному серверному вызову. При активизации строки этого делать нельзя.
3. alexfps79 18.03.24 11:56 Сейчас в теме
(2) А как сделать по другому? Тогда строки не будут исчезать?
5. Sashares 33 18.03.24 12:31 Сейчас в теме
(3)
А как сделать по другому?

Подключить обработчик ожидания, и выполнить отбор в нем.
alexfps79; +1 Ответить
8. alexfps79 18.03.24 13:04 Сейчас в теме
(5) ПодключитьОбработчикОжидания() или лучше через ОписаниеОповещения()?
10. Sashares 33 18.03.24 13:37 Сейчас в теме
(8)ПодключитьОбработчикОжидания
4. WasiliyMay 8 18.03.24 12:28 Сейчас в теме
(1)Не возникает подобной проблемы. Возможно, отрабатывает еще какой то код.
6. user1880116 18.03.24 12:59 Сейчас в теме
(4)
Возможно
У тебя таблица значений, а не табличная часть.
9. WasiliyMay 8 18.03.24 13:28 Сейчас в теме
7. alexfps79 18.03.24 12:59 Сейчас в теме
(4) Добрый день! У меня только стандартные события формы. А клик в пустое место в таблицы формы вызывает какое-либо событие?
11. WasiliyMay 8 18.03.24 13:38 Сейчас в теме
(7)Странно. Номенклатура в подчиненной таблице заполняется при добавлении новой строки?
15. alexfps79 18.03.24 13:48 Сейчас в теме
(11)Номенклатура да заполняется из родительской таблицы в новой строке

&НаКлиенте
Процедура ИзмеренияПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)


    Данные = Элементы.ВходнойКонтроль.ТекущиеДанные;
    
    ТекДанные = Элементы.Измерения.ТекущиеДанные;
    
    Если НоваяСтрока Тогда
        ТекДанные.Номенклатура = Данные.Номенклатура;
    КонецЕсли;
    
    
    
КонецПроцедуры



Показать
16. WasiliyMay 8 18.03.24 13:58 Сейчас в теме
(15)
Данные = Элементы.ВходнойКонтроль.ТекущиеДанные;

ТекДанные = Элементы.Измерения.ТекущиеДанные;

Если НоваяСтрока Тогда
ТекДанные.Номенклатура = Данные.Номенклатура;
КонецЕсли;



Вот сделал обработку с таким же функционалом. Проблемы нет
Прикрепленные файлы:
ВнешняяОбработка1.epf
12. Sashares 33 18.03.24 13:41 Сейчас в теме
(7)Тип у реквизита номенклатура в обоих таблицах одинаковый?
13. alexfps79 18.03.24 13:46 Сейчас в теме
(12) тип одинаковый СправочникССылка.Номенклатура, Я подключил Обработчик ожидания, все равно строка исчезает.

&НаКлиенте
Процедура ВходнойКонтрольПриАктивизацииСтроки(Элемент)
    // Вставить содержимое обработчика.  
    ПодключитьОбработчикОжидания("ИзмеренияПриАктивизацииСтрокиВхКонтроля", 0.1, Истина);
КонецПроцедуры    

&НаКлиенте
Процедура ИзмеренияПриАктивизацииСтрокиВхКонтроля()
    
    ТД = Элементы.ВходнойКонтроль.ТекущиеДанные;
    Если ТД <> Неопределено Тогда
        Элементы.Измерения.ОтборСтрок = Новый ФиксированнаяСтруктура("Номенклатура", ТД.Номенклатура);
        Элементы.Измерения.Обновить();
    КонецЕсли;

КонецПроцедуры // ()


Показать
14. WasiliyMay 8 18.03.24 13:46 Сейчас в теме
(7)Строки могут исчезать, если накладывается новый отбор на табличную часть с другими параметрами или изменяется поле номенклатура и строка больше не попадает в отбор. Но это в коде где то должно быть прописано. Больше предположить чего то не могу.
alexfps79; +1 Ответить
17. alexfps79 18.03.24 14:21 Сейчас в теме
Почему-то был пуст отбор строк по Элементу, таблице формы, подставляю обработчик ожидания срабатывает. Большое спасибо за помощь!

&НаКлиенте
Процедура ИзмеренияПриАктивизацииСтроки(Элемент)
    // Вставить содержимое обработчика.  
    ПодключитьОбработчикОжидания("ИзмеренияПриАктивизацииСтрокиВхКонтроля", 0.1, Истина);

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


Показать

И
&НаКлиенте
Процедура ИзмеренияПередНачаломДобавления(Элемент, Отказ, Копирование, Родитель, Группа, Параметр)
    // Вставить содержимое обработчика.
    
    ПодключитьОбработчикОжидания("ИзмеренияПриАктивизацииСтрокиВхКонтроля", 0.1, Истина);

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

Показать


Может кому-то пригодится.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот