8.х Проверка при добавлении новой строки

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Geek, 22 апр 2008.

  1. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Есть ли возможность прописать процедуру проверку при добавлении новой строки в табличную часть товары.И как это зделать
    Например
    Если новая строка то
    Если строка.Цена> 0 стогда Строка цена доступность = ложь?
  2. x_under
    Offline

    x_under Модераторы Команда форума Модератор

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    13
    Баллы:
    29
    Да, у табличных полей есть событие
    ТабличноеПоле (TableBox)
    ПередНачаломДобавления (BeforeAddRow)
    Синтаксис:
    ПередНачаломДобавления(<Отказ>, <Копирование>)
    Параметры:
    <Отказ>
    Тип: Булево. Признак отказа от добавления строки. Если в теле процедуры-обработчика установить данному параметру значение Истина, строка не будет добавлена.
    Значение по умолчанию: Ложь
    <Копирование>
    Тип: Булево. Определяет режим копирования. Если установлено Истина, то происходит копирование строки.
    Описание:
    Возникает перед началом интерактивного добавления строки
  3. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Спасибо.. А как заблокировать от изменений ячейку строка.Цена при выполнении условия?
    заблокировать или изменить доступность или запретить редактирование конкретной ячейке на выделенной строкеТабличного поля?
  4. Рассада
    Offline

    Рассада

    Регистрация:
    28 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    При выводе строки над будет что-то вроде
    ОформлениеСтроки.Ячейки.Цена.ТолькоПросмотр
  5. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Не при выводе а при выполнении условия.
    например
    Если
    ЭлементыФормы.Товар.Цена>0 Тогда
    Товар.цена - заблокировать от изменения. на этой строке
  6. Рассада
    Offline

    Рассада

    Регистрация:
    28 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Так получается, что для одних строк будет выполняться условие, а для других - нет. Имхо, реализация через вывод строки.
  7. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Код:
    Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    СтрокаТабличнойЧасти=ЭлементыФормы.Товары.ТекущиеДанные;
    Если   СтрокаТабличнойЧасти.ЦенаРозничная<> Неопределено И
    СтрокаТабличнойЧасти.ЦенаРозничная>0 Тогда
    
    
    Тут нужно написать запрет на изменение данных ЦенаРозничная
    Или как то по другому это реализовать
  8. Рассада
    Offline

    Рассада

    Регистрация:
    28 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    Ну, тогда Элемент.Колонки.Цена.ТолькоПросмотр = ...
  9. TopicStarter Overlay
    Geek
    Offline

    Geek Опытный в 1С

    Регистрация:
    3 апр 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Но мне не колонку нужно запретить на просмотр а только ячейку строки тк другая строка может условие не удовлетворить и она должна быть доступна
  10. Рассада
    Offline

    Рассада

    Регистрация:
    28 фев 2008
    Сообщения:
    25
    Симпатии:
    0
    Баллы:
    1
    )) ну, тогда, "ПриВыводеСтроки". Там проверять условие и устанавливать доступность ячейки
  11. mhl
    Offline

    mhl Опытный в 1С

    Регистрация:
    23 июн 2007
    Сообщения:
    418
    Симпатии:
    0
    Баллы:
    26
    Лучше так:
    Код:
    Процедура ТаблЧастьПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ОформлениеСтроки.ДанныеСтроки.ЦенаРозничная <> Неопределено Тогда
    ОформлениеСтроки.Ячейки.НужнаяЯчейка.ТолькоПросмотр  = Истина;
    КонецЕсли;
    КонецПроцедуры
    
    
    Данный код не проверял, но должно работать
  12. BabySG
    Offline

    BabySG Администраторы Команда форума Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    12
    Баллы:
    29
    Наоборот - лучше ПриНачалеРедактирования - меньше нагрузки на систему и более логично.

Поделиться этой страницей