7.7 Работа с FormEx

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Zheleznogorsk, 29 окт 2010.

  1. TopicStarter Overlay
    Zheleznogorsk
    Offline

    Zheleznogorsk

    Регистрация:
    29 окт 2010
    Сообщения:
    3
    Симпатии:
    0
    Баллы:
    1
    Всем доброго дня!
    С 1С работаю недавно, суть задачи такова-нужно выделить всех контрагентов,помеченных на удаление яркой строкой,чтоб наши бабушки видели! Formex подключил,проблем не составило,но не получается выделить строку с контрагентом,помеченным на удаление.
    Спасибо за помощь!
  2. 1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Я обычно раскрашиваю таблицы так:

    этот код вставить в модуль формы списка справочника
    Код:
    Процедура ПослеОткрытия()
    РасширениеФормы = СоздатьОбъект("РасширениеФормы");
    РасширениеФормы.РаскрашиватьТаблицу("МногострочнаяЧасть");
    КонецПроцедуры
    
    Функция ПолучитьЦвет(Красный = 0, Зеленый = 0, Синий = 0) Экспорт
    // функция для формирования значения цвета из составляющих (RGB)
    Возврат Макс(0, Синий) * 65536 + Макс(0, Зеленый) * 256 + Макс(0, Красный);
    КонецФункции
    
    Функция ПолучитьПометкуУдаления()
    Если ПометкаУдаления() = 1 Тогда
    Возврат "BRUSH[" + ПолучитьЦвет(255, 0, 0) + "]";
    КонецЕсли;
    Возврат "";
    КонецФункции
    
    
    
    На форме в саму раскрашиваемую таблицу добавляю текстовую колонку. В свойствах этой колонки на закладке "Дополнительно" в поле "Формула" вызываю функцию ПолучитьПометкуУдаления()
  3. trolley
    Offline

    trolley

    Регистрация:
    14 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    этот код вставить в модуль формы списка справочника

    На форме в саму раскрашиваемую таблицу добавляю текстовую колонку. В свойствах этой колонки на закладке "Дополнительно" в поле "Формула" вызываю функцию ПолучитьПометкуУдаления()
    [/quote]

    Добрый день!
    1Ской как таковой не занимаюсь, но вот ооочень сильно попросили сделать, одна из задач раскраска строк в списке справочника физ.лица.
    Пробовал несколько вариантов, ну не хочет он у меня раскрашивать и всё тут. Подскажите ответы на несколько вопросов?
    FormEx подключил без проблем, работает.
    Вот вопрос номер 1: Ваш код ставить в модуль "элемента-справочник.физлица" или в модуль "форма-справочник.физлица.формаСписка"?
    Собственно ставил и туда и сюда эффекта не увидел.
    Второй вопрос(покажется глупым, но возможно всё проблема в этом): каким образом добавить в многострочную часть текстовую колонку?
    ООООчень буду благодарен кто сможет популярно объяснить что и куда прописать.
    Помогите please.
  4. Хряк
    Offline

    Хряк Профессионал в 1С

    Регистрация:
    26 сен 2007
    Сообщения:
    1.447
    Симпатии:
    37
    Баллы:
    54
    >каким образом добавить в многострочную часть текстовую колонку?
    вставить текст, брось его на табл, добавится колонка, потом переместишь куда надо
  5. 1Счик
    Offline

    1Счик

    Регистрация:
    16 дек 2008
    Сообщения:
    46
    Симпатии:
    0
    Баллы:
    1
    Добрый день.

    Код вставляйте в форму списка справочника.

    Без добавления текстовой колонки в раскрашиваемый список эффекта не будет.

    На форме списка в саму раскрашиваемую таблицу добавьте текстовую колонку.

    Как добавить текстовую колонку в таблицу:
    1. Откройте форму списка нужного справочника
    2. Дайте команду "Вставить -> Текст"
    3. Щелкните мышкой на таблицу

    В таблице появится новая колонка. У нее не будет названия заголовка. И не надо.

    Сделайте двойной щелчок на заголовочную часть этой текстовой колонки.
    Откроется окно "Свойства текста"
    Можете поставить галку "Сделать невидимым"
    Перейдите на закладку "Дополнительно"
    В поле "Формула" укажите функцию ПолучитьПометкуУдаления()

    После всего этого передвиньте текстовую колонку влево.
  6. trolley
    Offline

    trolley

    Регистрация:
    14 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Вот спасибо, продвинулся, но ничего не изменилось, окраски так и нет, в этом столбце возвращает значение: BRUSH[255]
  7. trolley
    Offline

    trolley

    Регистрация:
    14 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1

    Всё в порядке. Нашел причину, исправил, работает!
    Огромное спасибо!!!
  8. WaRDeR
    Offline

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

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    Ну обычно, когда находят причину, то ее озвучивают для потомков....
  9. trolley
    Offline

    trolley

    Регистрация:
    14 ноя 2010
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Не ту функцию прописал в поле формула во вставленном столбце..
  10. gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Вопрос по этой же теме(Первый опыт кодинга, сильно не ругайте):
    все сделал как описано, однако раскрасился у меня только столбец по которому производится отбор (тектсовое поле), скрин прилагается.
    Подскажите пож. Что я делаю не так?

    Вложения:

  11. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Не задано количество колонок, подлежащих раскраске (COUNT)
  12. gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Вопрос снят, строка раскрашивается слева на право, от столбца по которому производится отбор, надо просто его поставить левее
    --- Объединение сообщений, 21 май 2015 ---
    Спасибо
    --- Объединение сообщений, 21 май 2015 ---
    не знаю где спросить решил здесь же, в продолжении моих попыток разукрасить журнал, вот код:

    Функция ПроверитьВид()
    Если ПустоеЗначение(ТекущийДокумент) = 0 Тогда
    // Если ТекущийДокумент.Вид()="ЗаказНаряд" Тогда
    Если ТекущийДокумент.цвет()=1 Тогда
    Возврат "FONT["+ПолучитьЦвет(255,36,36)+"] BRUSH["+ПолучитьЦвет(101,202,101)+"]";
    ИначеЕсли ТекущийДокумент.цвет()=0 Тогда
    Возврат "FONT["+ПолучитьЦвет(6,166,166)+"] BRUSH["+ПолучитьЦвет(101,202,101)+"]";
    КонецЕсли;
    КонецЕсли;
    Возврат "";
    КонецФункции
    если разукрасить по заремленой строчке т.е. по ТекущийДокумент.Вид()="ЗаказНаряд" то все работает, но мне необходимо отбить цветом по флажку в документе ЗаказНаряд под названием "цвет". как правильно сформулировать запрос?
    Последнее редактирование: 21 май 2015
  13. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    цвет это скорее всего реквизит...
    Код:
    ТекущийДокумент.цвет
  14. gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Спасибо заработало, но не все при открытии документа и перепроведении пишет в окне сообщений:
    Если ТекущийДокумент.Цвет=1 Тогда
    {Журнал.Общий.Форма.ФормаСписка.Модуль(8)}: Поле агрегатного объекта не обнаружено (Цвет)


    Вот код
    Код:
    Функция ПроверитьВид()
        Если ПустоеЗначение(ТекущийДокумент) = 0 Тогда
                Если ТекущийДокумент.Цвет=1 Тогда
                Возврат "FONT["+ПолучитьЦвет(255,36,36)+"]";
            ИначеЕсли ТекущийДокумент.цвет=0  Тогда
                Возврат "FONT["+ПолучитьЦвет(0,0,0)+"]";
            КонецЕсли;
        КонецЕсли;
        Возврат "";
    КонецФункции
    Последнее редактирование модератором: 22 май 2015
  15. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    Ну так у вас может нет такого реквизита в шапке документа...
  16. gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    вот как у меня в документе,

    Вложения:

  17. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    А в журнале один вид документа?
  18. umah
    Offline

    umah

    Регистрация:
    24 ноя 2009
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    А ТекущийДокумент не со скобками должен быть? ТекущийДокумент(). Или это у вас переменная?
  19. Бухгалтерский угодник
    Offline

    Бухгалтерский угодник Администраторы Команда форума Администратор

    Регистрация:
    29 дек 2008
    Сообщения:
    21.520
    Симпатии:
    407
    Баллы:
    104
    В модуле формы журнала это АТРИБУТ. т.е. без скобок
    --- Объединение сообщений, 22 май 2015 ---
    И вообще то правильнее было бы писать вместо
    Код:
    Если ПустоеЗначение(ТекущийДокумент) = 0 Тогда
    Код:
    Если ТекущийДокумент.Выбран() = 1 Тогда
  20. gnomich
    Offline

    gnomich

    Регистрация:
    21 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное все получилось!)
    вот финальный код, может кому пригодится:
    Функция ПроверитьВид()
    Если ТекущийДокумент.Выбран() = 1 Тогда
    Если ТекущийДокумент.Вид()="ЗаказНаряд" Тогда
    Если ТекущийДокумент.Цвет=1 Тогда
    Возврат "FONT["+ПолучитьЦвет(255,36,36)+"]";
    ИначеЕсли ТекущийДокумент.цвет=0 Тогда
    Возврат "FONT["+ПолучитьЦвет(0,0,0)+"]";
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    Возврат "";
    КонецФункции

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