8.х Флажок в колонке Табличного Поля

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

  1. TopicStarter Overlay
    aksenov_as
    Offline

    aksenov_as

    Регистрация:
    6 июн 2007
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    Парни, подскажите, плз. Не могу заставить выводиться флажок в виде галочки. На форме создал Табличное Поле, в нем колонку (Элемент управления "флажок", тип "Булево"). Он выводится в формате "ложь/истина". Чего с ним делать?
  2. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    что значит "в формате ложь/истина" ?
    Текстом?
  3. dend
    Offline

    dend Опытный в 1С

    Регистрация:
    9 апр 2007
    Сообщения:
    175
    Симпатии:
    0
    Баллы:
    26
    В свойствах колонки выбрать элемент управления - Флажок
  4. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    а вот это не то же самое?
    я почему и спросил..
  5. TopicStarter Overlay
    aksenov_as
    Offline

    aksenov_as

    Регистрация:
    6 июн 2007
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    да. Выводится текстом "ложь"/"истина". При изменении (когда мышкой кликаю по нему) элемент управления "флажок" появляется, а затем опять появляется текстовое обозначение.


    Если я вывожу в Табличное Поле значения из Табличной части, то такой ерунды не происходит, флажок отображается корректно
  6. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Надо убрать в свойствах ячейки "Данные" и вписать имя реквизита в свойство "Данные флажка". Тогда отображаться будет только флажок. А если еще поставить режим редактирования непосредственно - то вообще все будет смотреться как надо и на флажок надо будет кликать 1 раз чтобы его изменить.

    Если до понедельника не удасться вам это сделать - выложу скриншоты - как и что проставлять. Сейчас нет примеров.
  7. TopicStarter Overlay
    aksenov_as
    Offline

    aksenov_as

    Регистрация:
    6 июн 2007
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    тобишь без привязки к реквизиту обойтись нельзя....Обидно
  8. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Ну почему нельзя, если вам реквизит и не нужен - просто добавьте колонку в табличную часть, тип булево, элемент управления - флажок - и все получится. Главное указывать не Значение, а Значение флажка!
  9. LxS
    Offline

    LxS Разработчик

    Регистрация:
    5 апр 2007
    Сообщения:
    680
    Симпатии:
    0
    Баллы:
    26
    короче..
    Посмотри код. возможно, что у тебя в это поле еще что-то пишется.
    Выложи обработку сюда, хоть глянуть на это чудо.. :)
  10. TopicStarter Overlay
    aksenov_as
    Offline

    aksenov_as

    Регистрация:
    6 июн 2007
    Сообщения:
    30
    Симпатии:
    0
    Баллы:
    1
    спасибо, нашел, получилось.
  11. Саша82
    Offline

    Саша82 Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26
    Помогите мне. Нет больше сил бороться с флажком. :unsure: У меня вот так:
    Код:
    ОписТипа = Новый ОписаниеТипов("Булево");    
    тзДанные.Колонки.Добавить("УстановитьФлажок",ОписТипа);             
    ЭлементыФормы.ТабличноеПоле1.Значение=тзДанные;
    ЭлементыФормы.ТабличноеПоле1.СоздатьКолонки();
    
    Потом вот так:
    Код:
    Процедура ТабличноеПоле1ПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    ОформлениеСтроки.Ячейки.УстановитьФлажок.ОтображатьФлажок = Истина;
    Конецпроцедуры
    
    И раядом с флажком текст Ложь можно менять на иситна. Толко я хочу это менять с пощью флажка а текст вобще убрать.
  12. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Ели это у тебя обработка какая-то, то выложи е на форум, гляну тогда.
  13. Саша82
    Offline

    Саша82 Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26
    Выложил. Там еще ошибка при загрузке из excel выходит ошибка "Запись с такими ключевыми полями существует! : 27.12.2007 20:35:00 (Регистр сведений: Цены товаров; Номер строки: 2)" А отбор по периоду поставить не получается!!!

    Вложения:

  14. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    охохо...
    На самом деле у меня не запустилась ваша обработка из-за каких-то там СОМ объектов.

    Что же я вам рекомендую сделать (сначала общие замечания):
    1. Повнимательнее со стилем оформления и с русским языком, просто слово "загруска" должно писаться "загруЗка"
    2. Код пишите с отступами, не делайте отступы пробелами, лучше табуляцией или наоборот только пробелами, но 1Ска по умолчанию ставит Tab так что проще этим и пользоваться
    3. И никогда не называйте кнопки - Кнопка6 и Кнопка4... это потом не разобрать что за хреновина!
    4. Бегающие строчки - это красиво, но это так тормозно :( И тут не ваша вина

    Теперь про колонку.

    Честно скажу, разбирался долго с вашей обработкой, но очень уж коряво написана.
    Давайте предложу пути решения.

    Первый вариант:
    1. В табличном поле вашем не удалять все колонки, а потом загружать данные и перезаполнять таблицу, а сразу создать колонку "Отметка" или как вы назовете, которую вы и сделаете флажком.
    2. Остальные колонки, если вам так хочется создавать их динамически - удалять и создавать заново.

    Второй вариант
    После загрузки колонок и создания структуры таблицы я бы плотно поработал с отображением вашей колонки. Значение у нее булево, сделайте вот что
    1. Можно сделать колонку узенькой (24) и поставить режим редактирования "Непосредственно", а так же запретить изменять ширину колонки - у вас тогда просто не будет видно Ложь, Истина, а галочка будет ставиться одним нажатием
    2. Можно установить, что в колонке нет Данных, но есть Данные флажка - тогда Истина и Ложь не будут отображаться. Да, режим редактирования так же стоит сделать "Непосредственно" - чтобы не надо было много раз тыкать в колонку.

    Желаю успехов. И пожалуйста, сразу привыкайте к написанию красивого кода. Такой читать крайне тяжело.
  15. Саша82
    Offline

    Саша82 Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое за советы. Интересно все таки, почему этой обработке у вас нужны какие то COM объекты! Может потому что у вас в конфигурации не было тех справочников и регистров, которые есть у меня!? Если еще интересно попробуйте со всей конфигурацией запустить. Конфигурацию прикрепил.
    1.А почему отступы лучше делать только пробелами или лучше только табуляцией? Почему их нельзя смешивать? И как вы узнали, чем я их делаю?
    Первый вариант.
    1.Если я сразу создам колонку, то после загрузки в это ТабличноеПоле ТЗданные (то есть Таблицы значений) то она пропадает! (если я конечно вас правильно понял).

    Второй вариант.
    1.Как поставить режим редактирования "Непосредственно" я не знаю. Этот режим как я понял, вызывается “при активизации колонки” но как это сделать!!!?
    2.
    Как это понять установить, что в колонке нет данных? А как я потом буду получать Данные флажка? Тут я в цикле проверяю в каждой строке эту колонку и если стоит истина то гружу ее. А главное как связать флажок с типом данных в колонке Истина и Ложь.
    Может можно событием “ПриИзмененииФлажка” переключить значение в текущей строке. Но тоже не знаю, как у меня можно это сделать. Может маленький примерчик дадите. Какой же способ самый простой?

    Да и непонятно почему файлы с таким расширением нельзя грузить!? Послал вам его в личку.
  16. Эмин
    Offline

    Эмин Руководитель проектов

    Регистрация:
    25 май 2007
    Сообщения:
    1.178
    Симпатии:
    1
    Баллы:
    26
    Обращаться к данным можно так же по имени колонки, даже если установлено, что это данные флажка.

    Скорее всего в ближайшее время не смогу вам помочь и подробнее рассказать - работы полно даже на праздниках.

    А так - конфигурация не прошла и в личку тоже :)

    Почему ругается на СОМ объект - у вас там есть функция, Видимо из модуля общего она сама.
  17. Саша82
    Offline

    Саша82 Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26
    Я ведь колонку добавляю в таблицузначений а потом гружу таблицу значений в табличное поле. Может напишите примерчик хотя бы как данные колонки получить. При этом надо к ТабличномуПолю обращаться или к ТалбицеЗначений?
  18. Саша82
    Offline

    Саша82 Активный ученик

    Регистрация:
    11 окт 2007
    Сообщения:
    307
    Симпатии:
    0
    Баллы:
    26
    Вобщем получилось вот так:
    Код:
    Процедура ТабличноеПоле1ПриИзмененииФлажка(Элемент, Колонка)
    ннн=ЭлементыФормы.ТабличноеПоле1.ТекущиеДанные;
    Если ннн.УстановитьФлажок=ложь тогда    
    ннн.УстановитьФлажок=истина; 
    иначе
    ннн.УстановитьФлажок=ложь;
    КонецЕсли;
    КонецПроцедуры
    

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