Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Флажок на табличном поле  (Прочитано 30090 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Dest
Опытный

ru
Offline Offline

« : 29-08-2008 04:26 » 

1с 8.0
Размещаю на форме элемент управления "табличное поле", добавляю колонку с типом булево.
Подскажите, пожалуйста вот что - как сделать так чтобы в самой конфигурации в этом поле размещался флажок, а не слова ложь или истина.  Да-да
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 29-08-2008 05:23 » 

В свойствах Колонки меняешь ЭлементУправления со значения Поле ввода на Флажок
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #2 : 29-08-2008 06:43 » 

Нет это я знаю. Дело в том, что флажок отображается только если строка активна, если она перестает быть активной снова появляются слова

И вот еще, что не могу понять. Заполнил я программно табличное поле. Как мне обратиться к конкретному элементу, не пойму. У справочника например понятно - найти.покоду() (например). А как там?
« Последнее редактирование: 29-08-2008 06:49 от Dest » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 29-08-2008 19:56 » 

Тогда так: название колонки данных (Колонка1 по умолчанию) переносишь из свойства Данные в свойство ДанныеФлажка

Что касается второго вопроса - смотри в помощи про ТаблицуЗначений (или ТабличнуюЧасть - смотря где ты табличное поле используешь) и объект СтрокаТаблицыЗначений (СтрокаТабличнойЧасти): методы как их получить (выбрать) и отобрать, а так же их методы и свойства
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #4 : 30-08-2008 11:34 » 

Получилось!
Благодарю (это про флажок)
Но я не как не могу разобраться вот с чем - как в табличном поле двигаться по строкам? Я уже и справку смотрел - не понимаю. Вот например, табличное поле (Таб) в колонку1 вывожу все наименование справочника номенклатура

Код:
спр=справочники.Номенклатура;
выборка=спр.Выбрать();
к=0;
    Пока выборка.Следующий() цикл
Если выборка.Наименование<>"" тогда
    к=к+1;
    Элементыформы.Таб.ДобавитьСтроку();
    Строк=Элементыформы.Таб.ТекущаяСтрока;
            Строк.Колонка1=выборка.Наименование;
Конецесли;
конеццикла;
Тут все получается нормально. А теперь, например, нужно из этого табличного поля вывести все значения из Колонка1, ну скажем, с помощью функции сообщить(); Хочется сделать как-нибудь так

Код:
н=0;
для н=0 по к-1 цикл
      Элементыформы.Таб.ТекущаяСтрока=н;
      Строк=Элементыформы.Таб.ТекущаяСтрока;
      сообщить("-----");
      сообщить(строк.Колонка1);
конеццикла;
Цель - двигаться по строкам табличного поля
Вылетает ошибка:
Ошибка при установке значения атрибута контекста (Текущаястрока). Отсутствует ключ строки.

Подскажите - Как мне реализовать движение
« Последнее редактирование: 31-08-2008 05:44 от Dest » Записан
Dest
Опытный

ru
Offline Offline

« Ответ #5 : 31-08-2008 05:45 » 

Help!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 02-09-2008 20:10 » 

Я бы делал так:
Код:
Для каждого Стр Из Элементыформы.Таб Цикл
Сообщить("-----");
Сообщить(Стр.Колонка1);
КонецЦикла

А в твоем случае:
Элементыформы.Таб.ТекущаяСтрока - это объект типа СтрокаТабличногоПоля, потому число ты присвоить не можешь. Но можно так:
Код:
к=Элементыформы.Таб.Количество();
для н=0 по к-1 цикл
Строк=Элементыформы.Таб.Получить(н);
сообщить("-----");
сообщить(строк.Колонка1);
конеццикла;
Записан
Dest
Опытный

ru
Offline Offline

« Ответ #7 : 02-09-2008 23:09 » 

Выглядит многообещающе...вот только не работает.  Не-а...
Код:
Для каждого Строк Из Элементыформы.Таб Цикл
Сообщить("-----");
Сообщить(Строк.Колонка1);
КонецЦикла

Тут появляется ошибка итератор для значения не определен.

Второй случай

Код:
к=Элементыформы.Таб.Количество();                   //У объекта Таб нет метода Количество()
для н=0 по к-1 цикл                                                 
Строк=Элементыформы.Таб.Получить(н);     //У объекта Таб нет метода Получить()
сообщить("-----");
сообщить(строк.Колонка1);
конеццикла;

Может методы  Количество(), Получить() появляются в 1С 8.1? У меня 8.0 (я писал)

Изначально задача такова - на форму должно выгружаться  все наименование справочника номенклатура. Пользователь должен выбрать по какой номенклатуре выполнять выборку. Вот я и сделал табличное поле 1 колонка - флажок, другая Справочники.Номенклатура.Наименование. Я расчитывал так - пользователь тыкает на флажки, а потом я считываю значения из табличного поля и узнаю, что он отметил. Ну чёт не получается, можно конечно просто накидать флажков  Гы-гы-гы - но это верх безграмотности!
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 03-09-2008 22:11 » 

Не - ну в 8.Х можно и просто флажков динамически насоздавать - в принципе тоже вариант...
Таб - это у тебя должен быть идентификатор табличного поля на форме типа таблицы значений.
Записан
Hypertronic
Гость
« Ответ #9 : 21-01-2009 04:10 » 

Я бы делал так:
Код:
Для каждого Стр Из Элементыформы.Таб Цикл
Сообщить("-----");
Сообщить(Стр.Колонка1);
КонецЦикла
Код:
к=Элементыформы.Таб.Количество();
для н=0 по к-1 цикл
Строк=Элементыформы.Таб.Получить(н);
сообщить("-----");
сообщить(строк.Колонка1);
конеццикла;
Немного не так. Дело в том, что данные соответствуют локальным реквизитам формы (ТаблицаЗначений для ЭлементаФормы - Таб) значи Элемент Таб в реквизитах формы прописывается как переменная Таб соответсвует (ТаблицаЗначений)
Проще так:
Код:
Для Каждого Строк Из Таб Цикл
Сообщить("-----");
Сообщить(Строк.Колонка1);
КонецЦикла;

Или по индексам:

Код:
к=Таб.Количество();
Для Н=0 По к-1 Цикл
Строк=Таб.Получить(Н);
Сообщить("-----");
Сообщить(Строк.Колонка1);
КонецЦикла;
« Последнее редактирование: 21-01-2009 04:13 от Hypertronic » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #10 : 21-01-2009 15:39 » 

Hypertronic, не всегда данные соответствуют локальным реквизитам формы - только если таблица создавалась в конфигураторе. Если динамически - то переменной нет.
Хотя у меня в коде присутствует ошибка:
Для каждого Стр Из Элементыформы.Таб.Значение Цикл
Записан
Hypertronic
Гость
« Ответ #11 : 22-01-2009 04:42 » new

Согласен, на таблицу созданную динамически действуют совсем другие правила. Но в данном случае я рассматривал таблицу созданную именно при ручном заполнении объектов формы. Как вариант.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines