Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Отменить копирование строки в табличной части          
Keyword1109 Подменю пользователя
сообщение 01.02.13, 14:58
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 4 раз
Рейтинг: 0

Добрый день!
Подскажите, пожалуйста, как можно запретить ввод новой записи в табличную часть копированием? Т.е., чтобы в табличную часть можно было добавлять только новую строку, а не копировать существующую.

pablo Подменю пользователя
сообщение 01.02.13, 15:11
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Вариант 1. Не заполнять автоматически командную панель, а выносить туда только нужные команды.
Вариант 2. Программно обрабатывать событие ПередНачаломДобавления табличной части. У него есть параметр Копирование.


Signature
Правильно поставленный вопрос содержит до 90% ответа.

zay Подменю пользователя
сообщение 01.02.13, 15:13
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 164
Из: Киев
Спасибо сказали: 132 раз
Рейтинг: 138.1

Процедура ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
    Если Копирование Тогда
        
        Элемент.Значение.Удалить( Элемент.ТекущаяСтрока );
        
    КонецЕсли;
    
КонецПроцедуры

Keyword1109 Подменю пользователя
сообщение 01.02.13, 16:24
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 4 раз
Рейтинг: 0

zay , использовал ваш код. Но у меня в табличной части есть описано событие ПриАктивизацииСтроки:
Процедура ПриАктивизацииСтроки(Элемент)
    МояПеременная = ЭлементыФормы.МояТЧ.ТекущаяСтрока["МояКолонка"];
КонецПроцедуры

Но после после попытки копирования, кликаю по какой-нибудь строке таб.части и получаю ошибку:
Цитата
Получение элемента по индексу для значения не определено
МояПеременная = ЭлементыФормы.МояТЧ.ТекущаяСтрока["МояКолонка"];

Когда делаю второй клик по строке, то все работает дальше нормально. Почему так?

pablo Подменю пользователя
сообщение 01.02.13, 16:27
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Процедура  ПередНачаломДобавления(Элемент, НоваяСтрока, Копирование)
    
    Если Копирование Тогда
        
        Возврат;
    КонецЕсли;
    
КонецПроцедуры


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Keyword1109 Подменю пользователя
сообщение 01.02.13, 16:30
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 4 раз
Рейтинг: 0

pablo, а так все равно копируется...

pablo Подменю пользователя
сообщение 01.02.13, 16:34
Сообщение #7

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Ну так скрестите мое событие и код zay. Ил ждете готового текста для копипасты?


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Keyword1109 Подменю пользователя
сообщение 01.02.13, 16:40
Сообщение #8

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 4 раз
Рейтинг: 0

Цитата(pablo @ 01.02.13, 16:34) *
Ну так скрестите мое событие и код zay. Ил ждете готового текста для копипасты?

Ну так я же говорю:
Цитата(Keyword1109 @ 01.02.13, 16:24) *
после попытки копирования, кликаю по какой-нибудь строке таб.части и получаю ошибку

И "Возврат" ничем тут не помогает...

zay Подменю пользователя
сообщение 01.02.13, 17:21
Сообщение #9

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 164
Из: Киев
Спасибо сказали: 132 раз
Рейтинг: 138.1

Два варианта:
1.
Процедура ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
    Если Копирование Тогда
        
        ИндексСкопированнойЗаписи = Элемент.Значение.Индекс( Элемент.ТекущаяСтрока );
        
        Элемент.ТекущаяСтрока = Элемент.Значение[ИндексСкопированнойЗаписи - 1];
        
        Элемент.Значение.Удалить( Элемент.Значение[ИндексСкопированнойЗаписи] );
        
    КонецЕсли;
    
КонецПроцедуры


2.
Процедура ПриАктивизацииСтроки(Элемент)

    Если ЭлементыФормы.МояТЧ.ТекущаяСтрока = Неопределено Тогда
        Возврат;
    КонецЕсли;

    МояПеременная = ЭлементыФормы.МояТЧ.ТекущаяСтрока["МояКолонка"];

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

Я бы выбрал второй - потому что по коду сразу понятно, что автор ставит ставит защиту от ситуации, если ТекущаяСтрока = Неопределено. Первый вариант для непосвященного будет загадкой.

Спасибо сказали: Keyword1109,

Keyword1109 Подменю пользователя
сообщение 01.02.13, 17:30
Сообщение #10

Говорящий
***
Группа: Пользователи
Сообщений: 70
Спасибо сказали: 4 раз
Рейтинг: 0

Цитата(zay @ 01.02.13, 17:21) *
Я бы выбрал второй - потому что по коду сразу понятно, что автор ставит ставит защиту от ситуации, если ТекущаяСтрока = Неопределено.

Спасибо большое! Теперь все нормально работает.

alex040269 Подменю пользователя
сообщение 01.02.13, 17:32
Сообщение #11

Крутой
Иконка группы
Группа: Местный
Сообщений: 1626
Из: Гуляйполе
Спасибо сказали: 236 раз
Рейтинг: 0

Цитата(Keyword1109 @ 01.02.13, 16:24) *
zay , использовал ваш код. Но у меня в табличной части есть описано событие ПриАктивизацииСтроки:
Процедура ПриАктивизацииСтроки(Элемент)
    МояПеременная = ЭлементыФормы.МояТЧ.ТекущаяСтрока["МояКолонка"];
КонецПроцедуры

Но после после попытки копирования, кликаю по какой-нибудь строке таб.части и получаю ошибку:

Когда делаю второй клик по строке, то все работает дальше нормально. Почему так?

В этот момент ЭлементыФормы.МояТЧ.ТекущаяСтрока = Неопределно.
нужно еще одно условие втулить.

Цитата(zay @ 01.02.13, 15:13) *
Процедура ПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    
    Если Копирование Тогда
        
        Элемент.Значение.Удалить( Элемент.ТекущаяСтрока );
        
    КонецЕсли;
    
КонецПроцедуры


есть еще
Процедура ВыданныеАвансыПередНачаломДобавления(Элемент, Отказ, Копирование)
   Отказ = Копирование
КонецПроцедуры


Signature
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник.
ЗиУП

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 26.04.24, 21:05
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!