8.х Значение ячейки табличной части

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

  1. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте!

    Есть документ "Дежурство". В документе есть табличная часть "Отметки". Табличная часть состоит из следующих реквизитов: сотрудник (ссылка), понедельник (строка), вторник (строка), ... , воскресенье (строка). Пользователь заходит в документ и выставляет какие-либо строковые заметки в столбце, соответствующем текущему дню недели.

    Мне нужно сделать кнопку на форме документа, выполняющую следующие действия:

    1. Получить строковое значение текущей ячейки.
    2. Пробежаться по всей таблице и очистить те ячейки, в которых значения не совпадают со значением из текущей ячейки.

    Можно по идее воспользоваться событием активизации ячейки и сохранить последнее выбранное значение в переменную. Но можно ли обойтись без событий в решении данного вопроса? Если да, то как?

    Заранее спасибо!
  2. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    по идее, раз ячейка(поле) уже выделена, то при нажатии кнопки на форме в коде процедуры нужно получить её значение, без событий, присвоить это значение переменной, и затем просто перебрать ТЧ документа присваивая ячейке "" при не совпадении со значением исходным
    или сохранять значение каждый раз при активации ячейки нужного столбца, "ПриАктивизацииЯчейки"
  3. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    LordMaverick, я как раз и спрашиваю о том, каким образом можно получить значение уже выделенной ячейки? Вариант с событиями я уже реализовал, но мне он не нравиться.
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ТекущаяСтрока(), ТекущаяКолонка().... читайте в СП описание
  5. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Я, конечно, дико извиняюсь, но применительно к какому объекту нужно использовать метод ТекущаяКолонка() ?
    Форма - управляемая. Прошу прощения, что сразу не указал.
  6. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    ну вот так бы сразу, щас гляну для управляемых... я так в обычных делала
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    Код:
    ТаблицаФормы (FormTable)
    ТекущийЭлемент (CurrentItem)
    Использование:
    
    Чтение и запись.
    Описание:
    
    Тип: ПолеФормы. 
    Текущее поле в таблице.
    Доступность:
    
    Тонкий клиент, веб-клиент, сервер, толстый клиент. 
    
  8. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Хорошо, с помощью кода "Элементы.Отметки.ТекущийЭлемент" я получаю "ПолеФормы". А как мне получить текст, который содержится в этом поле?
  9. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.429
    Симпатии:
    372
    Баллы:
    104
    а как всё остальное получается? элемент справочника? документ?
  10. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Причем здесь элемент справочника и документ? Не понял намека. Если можно, кусочек кода.
  11. cplusmax
    Offline

    cplusmax Опытный в 1С

    Регистрация:
    7 сен 2010
    Сообщения:
    154
    Симпатии:
    2
    Баллы:
    29
    А если так:
    Код:
    Элементы.ТабличнаяЧасть.ТекущиеДанные
  12. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    это получается строка, а ТС надо именно ячейку текущую определить
  13. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Единственное решение, которое приходит в голову на данный момент это создать переменную "ТекущееЗначениеЯчейки" и в событии "ПриАктивизацииЯчейки" прописать примерно такой код:

    Код:
    ТекущееЗначениеЯчейки = "";
    Если Элементы.Отметки.ТекущийЭлемент.Имя = "ОтметкиПонедельник" Тогда
        ТекущееЗначениеЯчейки = Элементы.Отметки.ТекущиеДанные.Понедельник
    ИначеЕсли Элементы.Отметки.ТекущийЭлемент.Имя = "ОтметкиВторник" Тогда
        ТекущееЗначениеЯчейки = Элементы.Отметки.ТекущиеДанные.Вторник
    ИначеЕсли ...
        ...
    КонецЕсли;
    А потом уже юзать переменную "ТекущееЗначениеЯчейки" в обработчике команды.

    Есть идеи получше? А то мне такой вариант совсем не нравиться )))
  14. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    я бы просто имя тогда уж запоминала, а уже когда надо, по имени текущую колонку получала...
  15. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Ну да, логично. Но Вам не кажется, что решение несколько "кривовато-неспортивное"?
  16. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    возможно, я с управляемыми формами не очень еще пока дружу
  17. TopicStarter Overlay
    NewBieOneS
    Offline

    NewBieOneS

    Регистрация:
    9 апр 2014
    Сообщения:
    8
    Симпатии:
    0
    Баллы:
    1
    Проблема в том, что я нигде не могу найти ответ на свой вопрос. Хотя, казалось бы, проблема то не очень серьезная. Неужели никто не сталкивался...

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