Выбор строки из ТаблицыЗначений

В 1С 7.7 легко предоставить пользователю выбор из списка значений, или Таблицы значений. Но уважающий себя программист не будет пользоваться методом ТаблицаЗначений.ВыбратьСтроку(), так как стандартный диалог мягко говоря несимпатичен. Предлагаю класс для 1С++, который позволит использовать более удобный диалог выбора строки из таблицы значений.

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

Пример использования класса:

  
// Создаем объект, передаем параметры
ВыборСтроки = СоздатьОбъект("ВыборСтроки");
ВыборСтроки.ПараметрыКолонки("КодТМЦ",,,,,,0);//_Идентификатор, _Тип, _Заголовок, _Ширина, _Формат, _Положение, _Видимость
ВыборСтроки.ПараметрыКолонки("Цена",,,,"Ч19.2",2,);
ВыборСтроки.ПараметрыКолонки("Остаток",,,,"Ч19.2",2,);
ВыборСтроки.ПараметрыКолонки("ОписаниеТовара",,"Описание товара");
ВыборСтроки.Данные = ТЗ;
ВыборСтроки.Заголовок = "Требуется выбрать строку";

//Начало выбора
Выбор = ВыборСтроки.ВыбратьСтроку();
Если Выбор = 0 Тогда
Возврат; //Пользователь отказался от выбора
КонецЕсли;

Сообщить(Выбор.КодТМЦ);
Сообщить(Выбор.ТМЦ);
Сообщить(Выбор.Цена);
Сообщить(Выбор.Остаток);
 

Класс является хороший примером использования формы и класса в одном флаконе.

6 Comments

  1. skazan

    а как это реализоватьв 1с 8.2 в управляемой форме, ТЗ формируется на сервере, а результат выбора из ТЗ надо поместить в поле формы.

    Reply
  2. Ёпрст

    (0) И.. зачем это всё надо ?

    Методом выбрать строку..никто не пользуется, ибо это…не нужно совсем.

    Смысл в классе, тоже не ясен.

    (1) это клюшки

    Reply
  3. Ёпрст

    Тьфу блин, некрофилы.. 12 год

    Reply
  4. curdate

    (3) Ёпрст,

    В 7.7 «Выбрать строку» был совсем некузявый. А с классом можно было сделать свою форму с более симпатичным выбором, скрыть ненужные колонки и вообще облагородить.

    Сейчас, понятное дело, 8.3 и все такое — смысла в этом нет. Даже не сразу вспомнил, зачем это все городил.

    Reply
  5. wash

    Скачал класс, а он выдает такое:

    глЛегкоеСообщение<<?>>(«Не указаны данные для выбора»);
    {C:	mpКлсВыборСтроки.ert(51)}: Процедура не обнаружена (глЛегкоеСообщение)
    fp = вирт<<?>>().GetPathName();
    {C:	mpКлсВыборСтроки.ert(57)}: Функция не обнаружена (вирт)
    При проверке модуля обнаружены синтаксические ошибки!
    Reply
  6. wash

    Как дальше жить? Деньги уплочены…

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *