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

Хранилище

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

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



> Запрет добавления строки в табличную часть          
rodrigezrobert Подменю пользователя
сообщение 14.01.15, 14:56
Сообщение #1

Общительный
**
Группа: Пользователи
Сообщений: 23
Из: Киев
Спасибо сказали: 1 раз
Рейтинг: 0

Здравствуйте! Хочу запретить ввод одинаковых строк в табличную часть. Для этого перед началом добавления новой строки, создаю массив элементов, которые есть в табличной части. Потом в событии "ПриОкончанииРедактирования" проверяю на вхождение данного элемента в массив. Если элемент такой элемент существует в табличной части, тогда параметр «Отказ» выставлю в истину, но система застывает в точке "ПриОкончанииРедактирования". Чем можно воспользоваться, что бы запретить добавление строки в табличную часть? Или возможны какие - то другие схемы реализации.

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

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

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Навскидку: в событии ПриИзменении колонки Номенклатура проверяйте её заполненность в текущей строке. Если заполнено - делаем поиск строк в табличной части по нужному условию. Если строк больше 1 - очищаем колонку в текущей строке.

logist Подменю пользователя
сообщение 14.01.15, 16:09
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

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

&НаСервере
Функция УжеЕстьВТаблице(Выбор)
    МассивНайденныхСтрок = Объект.Товары.НайтиСтроки(Новый Структура("Номенклатура",Выбор));
    Возврат МассивНайденныхСтрок.Количество();
КонецФункции


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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

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

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

logist,
&НаСервере
Функция УжеЕстьВТаблице(Выбор)
    МассивНайденныхСтрок = Объект.Товары.НайтиСтроки(Новый Структура("Номенклатура",Выбор));
    Возврат МассивНайденныхСтрок.Количество() > 1;
КонецФункции

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

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Vofka, число нуль преобразуется в ложь, а любое другое - в истина.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

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

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Petre, верно. Но в таком случае условие будет истинно, даже если у нас в таблице 1 строка. Но по условию задачи 1 строка - это не дубли.

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

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Точно, не обратил внимание на единицу.

Но здесь при проверке в "ОбработкаВыбора" выбранное значение еще не помещено в данные формы.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Vofka Подменю пользователя
сообщение 14.01.15, 17:07
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(Petre @ 14.01.15, 16:48) *
Но здесь при проверке в "ОбработкаВыбора" выбранное значение еще не помещено в данные формы.

У меня были мысли, что оно может быть так, но проверять мне было лениво, так что я написал так, чтоб наверняка. Но даже если бы я был 100% уверен, что оно именно так, я бы всеравно написал подобное условие, т.к. неявное приведение одного типа к другому лично мне не очень нравится и на буквах я не экономлю smile.gif

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

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Vofka @ 14.01.15, 17:07) *
но проверять мне было лениво,

А зачем проверять? ОбработкаВыбора возникает в момент окончания ввода/выбора, до помещения значения в реквизит, все просто wink.gif

Цитата(Vofka @ 14.01.15, 17:07) *
и на буквах я не экономлю

а я экономлю =)

Сообщение отредактировал logist - 14.01.15, 21:48


Signature
Личные бесплатные консультации не даю, для этого есть форум!

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


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

 

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