Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[Прочее]

Как стереть строку из табличной части документа

Bookman
читатель
офлайн
Дата регистрации: 29.03.2006
Сообщений: 100
Пост №1
 
01.07.2008 15:22

"Постановка задачи:<br>есть документ с многострочной частью (типа накладной)<br>у него есть модуль формы.<br>в многострочной части есть несколько реквизитов<br><br>№№      номенклатура       количество<br>п/п<br><br>1       Ложка большая       80 шт.<br>2       Чашка маленькая       50 шт.<br><br>надо: при ошибки в выборе количества (больше 100 шт.) выдавать окно ошибки и стирать последнюю строку (если документ новый) или восстанавливать ее (если редактируется уже существующий документ).<br>В свойствах реквизита "количество" указываю формулу контр_ошибк()<br><br>В модуле пишу процедуру:<br>процедура контр_ошибк()<br><br>...<br>если выбратьстроки()=1 тогда<br>пока получитьстроку()=1 цикл<br>если количество>100 тогда<br><br>предупреждение ("..");<br>удалитьстроку();<br><br>конецесли;<br>конеццикла;<br>конецесли;<br>конецпроцедуры<br><br><br>мне при выполнении документа, если я ввожу например 101 шт, мне выдается ошибка "невозможно удалить строку"<br><br><br>Пожалуйста, помогите"

IceBeerg
читатель
офлайн
Дата регистрации: 06.10.2004
Сообщений: 803
Пост №2
 
01.07.2008 15:37

"Для нового элемента при выборе из подбора<br>Процедура ОбработкаПодбора(ВыбТовар)<br> Кол=0;<br> Если ВвестиЧисло(Кол,"Введите количество",10,3)=1 Тогда<br> Если Кол>=100 Тогда<br> Возврат;<br> Иначе<br> НоваяСтрока();<br> //и т.д.<br> КонецЕсли;<br> //и т.д.<br><br>Для уже существующего элемента при вводе нового количества<br>Процедура ПриНачалеВыбораЗначения(Элемент)<br> Если Элемент="Количество" Тогда<br> СтароеКоличество=Количество;//СтароеКоличество <- Глобальная переменная текущего модуля<br> КонецЕсли;<br>КонецПроцедуры<br><br>Процедура ВыбКоличество()<br> Если Количество>=100 Тогда<br> Количество=СтароеКоличество;//СтароеКоличество <- Глобальная переменная текущего модуля<br> КонецЕсли;<br>КонецПроцедуры<br>"

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №3
 
01.07.2008 15:52

После удаление строки обновляй выборку "ВыбратьСтроки()".

MashKa
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 16
Пост №4
 
01.07.2008 18:14

"Я бы не стремилась именно УДАЛЯТЬ строку из ТЧ при возможной ошибке. Ибо ошибившись, надо будет забивать удаленную строку заново, вместо того, чтобы просто подправить количество. А если редактирование? и случайно 102? и все ичезло? а номенклатуру не помню?<br>Мое предложение: обнулять Количество пока оно не будет удовлетворять условию (не больше 100) с выводом соответствующего Предупреждения, а при записи дока проверять ТЧ на нулевые значения количества. Если есть, то опять же Предупреждение и возвращение на форму.<br>Но уж если ОЧЕНЬ хочется именно удалить то, предлагаю делать это в предопределенной процедуре:<br><br>Процедура ПриОкончанииРедактированияСтроки()<br> Если Количество > 100 Тогда <br> Предупреждение("Неверное количество!!!");<br> УдалитьСтроку();<br> КонецЕсли;<br>КонецПроцедуры<br><br>Конечно придется заполнить все реквизиты ТЧ до конца (если у вас после Количества идет еще что-то типа Цена,Сумма и т.д.),но зато вы гарантированно удалите строку. "

Денис (САМАРА)
читатель
офлайн
Дата регистрации: 09.04.2008
Сообщений: 8351
Пост №5
 
01.07.2008 19:01

Тогда еще вариант - поставить формат реквизита "число 2.0. :)

MashKa
читатель
офлайн
Дата регистрации: 27.08.2007
Сообщений: 16
Пост №6
 
02.07.2008 10:08

Отличный вариант!!! :) Полностью поддерживаю!!!

creative
читатель
офлайн
Дата регистрации: 24.07.2007
Сообщений: 787
Пост №7
 
03.07.2008 00:33

Самый разумный вариант использовать для заполнения табличной части обработку подбора, в которой и контролировать ввод количества, не позволяя указать заведомо большое значение. при этом метод интерактивного ввода новой строки зарубить и вместо него вызывать обработку подбора.<br><br>Остаётся обработать режим редактирования уже введённой строки в котором обрубать значение до предельного в случае когда при окончании редактирования в реквизите количество задано заведомо запредельное значение.<br><br>Затирание введённой строки значально являетя неправильным методом, так как способствует занижению скорости ввода данных и соответственно понижению уровня юзабельности, что с точки зрения разработки является неприемлимым. Ну и конечно при обработке ошибки ввода количества должно обязательно выдаваться поясняющее сообщение.

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация