[РЕШЕНО] Алгоритм задачи "человек-контроллер")

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

  1. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Помогите решить такую задачу на платформе 1С:8.3 (управляемые формы):
    Есть документ. Назовем его ПоказанияПрибора. Он создается в начале каждой смены и запускает режим ожидания ввода числа. Оператор следит за прибором и по мере необходимости вводит числа, которые заполняют построчно табличную часть документа. Для простоты пусть там будут всего две графы: Показания и ВремяСнятияПоказаний. Необходимо, чтобы оператору не надо было нажимать каких-то дополнительных кнопок, только цифры и ENTER. Так же нужно постоянно видеть информацию о разности последнего введенного значения с максимальным показателем документа и минимальным (или о превышении этих показателей в ту или иную сторону).
    Все это у меня решено в 7.7. Но есть большие неудобства. Во-первых, меня заставляют сделать все то же самое на 1С:8. ))
    Во-вторых, числа вводятся простейшей процедурой ВвестиЧисло(), но чтобы не приходилось каждый раз удалять предыдущее значение для ввода следующего, используется такая процедура:

    Процедура НажатьShiftEnd()
    Попытка
    WSHShell=СоздатьОбъект("WScript.Shell");
    WSHShell.SendKeys("+{END}");
    Исключение
    КонецПопытки;
    КонецПроцедуры //НажатьShiftEnd

    Окно ввода постоянно висит на экране, и не видно строк документа. До них (для правки например) можно добраться, только закрыв окошко ввода. После корректировки оператор снова запускает режим ожидания ввода. Информацию для контроля выводится в окно сообщений через Сообщить(), что ограничивает возможность использования шрифтов или цветовой индикации в случаях выхода за границы допустимого диапазона.
    1С:8 позволяет гораздо больше, чем 7.7, но я до сих пор не понимаю логику работы программы и не могу использовать весь ее богатый арсенал. Сложности добавляют управляемые формы, на которых я пытаюсь реализовать эту задачу. Возможно, я просто не знаю способов решить ее гораздо проще и эффективнее, чем в 7.7.
    Спасибо за внимание. Жду ваших советов.
  2. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Я так понимаю форма будет полностью Ваша? Тогда выведете на нее поле ввода и таблицу значений. Фокус всегда должен быть на поле ввода, а при нажатии на enter, добавляйте строку в таблицу с текущим временем и введенным значением, после чего очищайте поле ввода и возвращайте на него фокус. Для красоты поле можно сделать большим.
  3. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Да, именно так я себе и представляю. Было бы здорово посмотреть, как это выглядит в коде. А куда выводить оперативную информацию? И возможно ли будет отредактировать неправильно введенное значение непосредственно в таблице?
  4. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Итак, во вложении обработка, которая общую суть показывает. Правда есть небольшая задержка после ввода значения и возврата фокуса, но она незначительная. Числа выделяются красным если значение больше "100". Это реализовано через условное оформление. Значения в таблице редактировать можно без ограничений. Вообщем думаю разберетесь. Там 5 строк кода буквально ))))

    Вложения:

    Катюфка нравится это.
  5. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Большое вам спасибо. Буду разбираться. )
  6. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Ой! А где процедура, отвечающая за "покраску" превышающего лимит значения? Вот за что я терпеть не могу 8-ку... Все по разным местам раскидано.
  7. Thelearning
    Offline

    Thelearning Профессионал в 1С Команда форума

    Регистрация:
    9 сен 2010
    Сообщения:
    701
    Симпатии:
    72
    Баллы:
    54
    Откройте свойства формы, там найдите пункт "Условное оформление" и рядом гиперссылка "Открыть". Вот на нее нажимаете и увидите настройку условного оформления.
    Катюфка нравится это.
  8. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Еще раз спасибо. Это то, что и было нужно!
    Тему можно закрывать.
  9. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Здравствуйте.
    Не стала создавать новую тему, т.к. вопрос в том же контексте.
    Как сделать, чтобы строки табличной части при заполнении автоматически сдвигались вниз? Или фокус передавался на последнюю строку? Мне надо видеть последнее введенное значение.
  10. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    эээ....вместо ТабличнаяЧасть.Добавить() использовать ТабличнаяЧасть.Вставить(0)?
    Катюфка нравится это.
  11. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Спасибо.)
    А я все галочки в настройках таблицы тыркаю. )
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Дык тут не галочки, а кодом решается. Можно конечно галочками поставить, что бы фокус был на последней строке.
  13. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Придется так и сделать, потому что ваш совет не привел к нужному результату. Все равно последнюю введенную строку не видно.
    Где же эта заветная галочка? )
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Как-то так:

    upload_2014-11-27_9-28-26.png
    Катюфка нравится это.
  15. Tiger86
    Offline

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

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

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Может это и не важно, но я напомню, что у меня управляемые формы. Вид панели свойств там отличается от скриншота.
    Уже целый день убила на эту мелочь.)
  17. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Да все тоже самое, тока в другом месте находится:

    upload_2014-11-27_13-14-21.png
  18. TopicStarter Overlay
    Катюфка
    Offline

    Катюфка Профессионал в 1С

    Регистрация:
    3 июн 2013
    Сообщения:
    406
    Симпатии:
    71
    Баллы:
    54
    Это я видела. Тигра права, курсор будет в конце таблицы только при открытии. Надо прописывать в модуле. Очень не хочется выводить все это через Сообщить. Каменный век какой-то получается. )
  19. alexburn
    Offline

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

    Регистрация:
    5 янв 2009
    Сообщения:
    14.760
    Симпатии:
    509
    Баллы:
    204
    А если фокус на выводимую строку ? Либо играться с индексами.
  20. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.565
    Симпатии:
    716
    Баллы:
    204
    Я пока не понимаю, почему ТаблицаЗначений.Вставить(0) не помогла? оно же всегда в первую строку будет превращать ввод, а предыдущая строка будет ниже.....

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