Быстрый отбор в форме списка (выбора) справочника

18.07.11

Разработка - Работа с интерфейсом

Установка быстрых отборов в форме списка (выбора) справочника для новичков в 1С.
В архиве эта же статейка в PDF.

Скачать файлы

Наименование Файл Версия Размер
Статья в PDF
.zip 657,93Kb
49
.zip 657,93Kb 49 Скачать

Установка быстрых отборов в форме списка (выбора) справочника (для новичков)

 

Я сам новичок в 1С и знаю, как трудно поначалу разобраться в море незнакомой информации и быстро найти нужную для решения какой-либо срочной задачи. Поэтому эту статейку пишу и для себя тоже.

 

Иногда пользователю нужно быстро отобрать нужные строки в списке по нескольким не точным критериям.

 

В списках отбор может быть установлен вручную пользователем стандартным способом через контекстное меню списка «Установить отбор и сортировку списка»


 

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

 

1) Рассмотрим установку такого отбора на примере списка справочника Номенклатура.

 

Открываем в конфигураторе форму списка справочника Номенклатура.

Уменьшим высоту табличного поля «Список».

На освободившееся место над табличным полем разместим 5 элементов:

  - метку,  

  - два флажка

  - два поля ввода.

 

со следующими именами:

 

1) Отборы

2) фНомер                 – Булево

3) отбНомер              – Строка(20)

4) фНаименование    – Булево

5) отбНаименование – Строка(150)

 

Результат будет выглядеть примерно так:

 

Сверим список реквизитов формы на закладке «Реквизиты», наши новые обведены красным:


 

Теперь пишем в модуле формы обработчики событий «При изменении» для флажков и полей ввода.

 

Для назначения обработчика события элементу формы выбираем мышкой нужный элемент, идем в панель «Свойства» , ищем в разделе «События» событие «ПриИзменении»  и щелкаем мышкой по лупе:


 

И в созданную заготовку процедуры вписываем нужный код:


 

Вот код этих четырех обработчиков:

// при изменении флажка фНомер
Процедура фНомерПриИзменении(Элемент)
  // если не заполнен Номер для отбора не будем понапрасну дергать Отбор
 
Если ЗначениеЗаполнено(отбНомер) Тогда
   
УстановитьОтборыФормы();
  КонецЕсли;
КонецПроцедуры

// при изменении поля ввода отбНомер
Процедура отбНомерПриИзменении(Элемент)
  // если не установлен флажок не будем понапрасну дергать Отбор
 
Если фНомер Тогда
   
УстановитьОтборыФормы();
  КонецЕсли;
КонецПроцедуры


Процедура
фНаименованиеПриИзменении(Элемент)
  // если не заполнено Наименование для отбора не будем понапрасну дергать Отбор
 
Если ЗначениеЗаполнено(отбНаименование) Тогда
   
УстановитьОтборыФормы();
  КонецЕсли;
КонецПроцедуры

Процедура
отбНаименованиеПриИзменении(Элемент)
  // если не установлен флажок не будем понапрасну дергать Отбор
 
Если фНаименование Тогда
   
УстановитьОтборыФормы();
  КонецЕсли;
КонецПроцедуры


На двух наших полях ввода включим свойство «КнопкаОчистки».
При очистке поля ввода мы будем сбрасывать соответсвующий флажок и перечитывать отбор:

// при очистке поля ввода отбНомер
Процедура отбНомерОчистка(Элемент, СтандартнаяОбработка)
  фНомер = Ложь;
 
УстановитьОтборыФормы();
КонецПроцедуры

// при очистке поля ввода отбНаименование
Процедура отбНаименованиеОчистка(Элемент, СтандартнаяОбработка)
  фНаименование = Ложь;
 
УстановитьОтборыФормы();
КонецПроцедуры


Теперь пишем процедуру установки отбора:

Процедура УстановитьОтборыФормы()
 

  // запомним состояние иерархии
  мИерархическийПросмотр = ЭлементыФормы.Список.ИерархическийПросмотр;

 
Если (фНомер И НЕ ПустаяСтрока(отбНомер))
    или (
фНаименование И ЗначениеЗаполнено(отбНаименование))
  Тогда

   
// сбросим иерархию
    Если ЭлементыФормы.Список.ИерархическийПросмотр Тогда
     
ЭлементыФормы.Список.ИерархическийПросмотр = Ложь;
    КонецЕсли;

   
// получаем запросом список с установленными критериями отбора
   
сз = ВернутьСписок();

   
// устанавливаем отбор на ссылки, входящие в возвращенный список ссылок
   
ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
   
ЭтаФорма.Отбор.Ссылка.Значение = сз;
   
ЭтаФорма.Отбор.Ссылка.Использование = Истина;

  Иначе

   
// сбросим отбор
   
ЭтаФорма.Отбор.Ссылка.Использование = Ложь;
    // вернем иерархию взад
    Если НЕ мИерархическийПросмотр Тогда
      ЭлементыФормы.Список.ИерархическийПросмотр = Истина;
    КонецЕсли;

 
КонецЕсли;
КонецПроцедуры


А теперь пишем функцию, выбирающую запросом ссылки по введенным пользователем критериям  и возвращающую как результат список отобранных ссылок:

Функция ВернутьСписок()

   
Запрос = Новый Запрос;

   
// устанавливаем параметры запроса введенными критериями
   
Запрос.УстановитьПараметр("фНомер"       , фНомер);
   
Запрос.УстановитьПараметр("фНаименование", фНаименование);
   
Запрос.УстановитьПараметр("пНомер"       , "%" + СокрЛП(отбНомер) + "%");
   
Запрос.УстановитьПараметр("пНаименование", "%" + СокрЛП(отбНаименование) + "%");

   
// нам нужна только ссылка для построения списка значений
   
Запрос.Текст = "ВЫБРАТЬ
        |   Ссылка
        |ИЗ
        |   Справочник.Номенклатура
        |
        |ГДЕ
        | // 1-ое условие
        |   (&фНомер = Ложь
        |       или (&фНомер и НоменклатурныйНомер ПОДОБНО &пНомер)
        |   )
        | // соединим условия союзом И
        |   И
        |
        | // 2-ое условие
        |   (&фНаименование = Ложь
        |       или (&фНаименование и Наименование ПОДОБНО &пНаименование)
        |   )
        |"
;

   
Результат = Запрос.Выполнить();

   
// создаем новый список значений и выгружаем в него колонку «Ссылка» из  результата запроса
   
сз = Новый СписокЗначений;
   
сз.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("Ссылка"));

   
// возвращаем результат - полученный список зачений
   
Возврат сз;

КонецФункции

 

Вот результат отбора по двум критериям:


Взглянем на форму отборов опять для сравнения и видим на ней установленный наш отбор по ссылке:

 

2) Рассмотрим более сложный пример со справочником «Основные средства».

 

Размещаем над списком 7 элементов:

Где 1 – это просто метка, а остальные реквизиты имеют следующие типы:


 

Добавим в модуль списка новую процедуру ЭлементОтбораПриИзменении и впишем в нее следующий код:

Процедура ЭлементОтбораПриИзменении(Элемент)
   
УстановитьОтборыФормы();
КонецПроцедуры

Всем новым элементам (кроме метки, хе-хе) назначаем этот обработчик, чтобы не плодить их тучу однотипных:


 

Пишем процедуру установки снятия отбора:

 

Процедура УстановитьОтборыФормы()

   
мИерархияВкл = ЭлементыФормы.СправочникСписок.ИерархическийПросмотр;

    Если  (
флПоИнвНомеру и НЕ ПустаяСтрока(отбИнвНомер))
        или (
флПоПодразделению и ЗначениеЗаполнено(отбПодразделение))
        или (
флПоМОЛ и ЗначениеЗаполнено(отбМОЛ))Тогда

        Если
мИерархияВкл Тогда
           
ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь;
        КонецЕсли;

       
СписокОС = ВернутьСписокОС();

       
ЭтаФорма.Отбор.Ссылка.ВидСравнения = ВидСравнения.ВСписке;
       
ЭтаФорма.Отбор.Ссылка.Значение = СписокОС;
       
ЭтаФорма.Отбор.Ссылка.Использование = Истина;
    Иначе
        Если
ЭтаФорма.Отбор.Ссылка.Использование Тогда
           
ЭтаФорма.Отбор.Ссылка.Использование = Ложь;
           
ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = мИерархияВкл;
        КонецЕсли;
    КонецЕсли;

КонецПроцедуры

И пишем еще одну процедурку получения списка ссылок запросом.

Здесь мы будем получать последние сведения по ОС из регистров сведений:

  - Инвентарный Номер из РС ПервоначальныеСведения

  - Подразделение и МОЛ из РС МестонахождениеОС.

 

Функция ВернутьСписокОС()

   
Запрос = Новый Запрос;

    Если
флПоИнвНомеру и НЕ (флПоПодразделению или флПоМОЛ) Тогда

       
// отбор только по инв. номерам только
       
Запрос.Текст = "ВЫБРАТЬ
            |   ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство
            |ИЗ
            |   РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(
            |           &пДата,
            |           ИнвентарныйНомер ПОДОБНО &пИнвНомер)
            |КАК ПервоначальныеСведенияОССрезПоследних"
;

    Иначе

       
аргУсловие = "";

        Если
флПоПодразделению И ЗначениеЗаполнено(отбПодразделение) Тогда
           
аргУсловие = "МестонахождениеОССрезПоследних.Местонахождение = &пПодразделение"
       
КонецЕсли;

        Если
флПоМОЛ И ЗначениеЗаполнено(отбМОЛ) Тогда
           
стрМОЛ = "МестонахождениеОССрезПоследних.МОЛ = &пМОЛ";
           
аргУсловие = ?(ПустаяСтрока(аргУсловие), стрМОЛ, аргУсловие + " И " + стрМОЛ);
        КонецЕсли;

        Если НЕ
флПоИнвНомеру Тогда

           
Запрос.Текст = "ВЫБРАТЬ
                |   МестонахождениеОССрезПоследних.ОсновноеСредство
                |ИЗ
                |   РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&пДата, )
                |КАК МестонахождениеОССрезПоследних
                |ГДЕ "
+ аргУсловие;

        Иначе

           
Запрос.Текст = "ВЫБРАТЬ
                |   ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство
                |ИЗ
                |   РегистрСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.СрезПоследних(
                |           &пДата,
                |           ИнвентарныйНомер ПОДОБНО &пИнвНомер)
                |   КАК ПервоначальныеСведенияОССрезПоследних
                |       ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.МестонахождениеОСБухгалтерскийУчет.СрезПоследних(&пДата, )
                |       КАК МестонахождениеОССрезПоследних
                |       ПО ПервоначальныеСведенияОССрезПоследних.ОсновноеСредство = МестонахождениеОССрезПоследних.ОсновноеСредство
                |ГДЕ "
+ аргУсловие;
        КонецЕсли;

    КонецЕсли;

   
Запрос.УстановитьПараметр("пИнвНомер"     , "%" + СокрЛП(отбИнвНомер) + "%");
   
Запрос.УстановитьПараметр("пДата"         , ТекущаяДата());
   
Запрос.УстановитьПараметр("пПодразделение", отбПодразделение);
   
Запрос.УстановитьПараметр("пМОЛ"          , отбМОЛ);

   
Результат = Запрос.Выполнить();

   
сз = Новый СписокЗначений;
   
сз.ЗагрузитьЗначения(Результат.Выгрузить().ВыгрузитьКолонку("ОсновноеСредство"));

    Возврат
сз;


КонецФункции

Теперь добавляем в список две новых колонки МОЛ и Местонахождение без привязки к данным

Установим их свойства «Видимость» в Ложь, чтобы они не светились в списке сразу. Их заполение мы будем обрабатывать в событии ПриПолученииДанных (см. ниже)

В свойстве ЭлементУправления обоим назначаем «Поле ввода»

В обработчик ПриПолученииДанных добавляем код для отображения значений наших добавленных колонок:

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)

  // создаем структуру для получения сведений из регистра
  СтруктураОтбора = Новый Структура;
 
СтруктураОтбора.Вставить("Организация"     , Организация);
 
СтруктураОтбора.Вставить("ОсновноеСредство", ДанныеСтроки.Ссылка);

  // будем запрашивать и выводить данные только при видимости наших колонок
  Если ОформлениеСтроки.Ячейки.МОЛ.Видимость
  
или ОформлениеСтроки.Ячейки.Местонахождение.Видимость Тогда


   МестонахождениеОС
=

           РегистрыСведений.МестонахождениеОСБухгалтерскийУчет.ПолучитьПоследнее(

                                                    ДатаСведений, СтруктураОтбора);

   ОформлениеСтроки.Ячейки.МОЛ.Значение = МестонахождениеОС.МОЛ;
   ОформлениеСтроки.Ячейки.Местонахождение.Значение =

                                          МестонахождениеОС.Подразделение;
  КонецЕсли;

КонецПроцедуры

 

Сохраняемся, запускаемся.

Открываем список ОС, устанавливаем видимость наших новых колонок МОЛ и Местонахождение, вводим критерии отбора и вуаля:


P.S.

Недостаток рассмотренного подхода в том, что если ранее был каким-либо образом установлен отбор по ссылке, то он будет затерт нашим.

А как скомбинировать старый отбор с новым я не знаю, пока.

 

Спасибо за внимание.

Успехов!

До встречи.


См. также

Богатый редактор картинок, хранимых в базе, с возможностью РИСОВАНИЯ. Редактор внешних файлов картинок. Объект, расширяющий возможности работы с картинками из встроенного языка (Три в одном) + Обработка «Стандартизация картинок»

Работа с интерфейсом Рабочее место Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Обработка предназначена для редактирования картинок в режиме «Предприятие», с возможностью РИСОВАТЬ на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Также обработка может быть использована из встроенного языка как объект для редактирования картинок. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Данная обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    61795    43    59    

80

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

Работа с интерфейсом Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Платные (руб)

Механизм «Динамическое управление доступом к элементам форм объектов 1С8» предназначен для обеспечения возможности оперативного управления видимостью и доступностью элементов форм документов и справочников продуктов фирмы «1С» «1С:Предприятие 8». Решение универсальное, встраивается в любую конфигурацию с минимальными доработками, что позволяет без проблем обновлять типовые решения.

5000 руб.

14.01.2016    54402    16    21    

42

Управление дашбордами

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

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

2400 руб.

29.06.2020    16697    21    4    

35

Новогоднее оформление для 1С

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    10736    750    elcoan    45    

106

Конструктор HTML, CSS и javascript

Инструментарий разработчика Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

2 стартмани

10.04.2023    9613    151    acces969    31    

118

Модель состояния для MVC

Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    3665    kalyaka    2    

27

Табло очереди заказов на экран телевизора

WEB-интеграция Работа с интерфейсом Платформа 1С v8.3 1С:Розница 2 Платные (руб)

Связка из веб-приложения и расширения для 1С: Розница 2.3.

3600 руб.

29.04.2022    12080    1    5    

10
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1448 16.07.11 12:38 Сейчас в теме
Для начинающих все равно не очень подойдет :(
Зачем начинающим нужен голый код без комментариев по нему? они же ничего не поймут :(
Есть лишний/дублирующий код :( - ЗначениеЗаполнена(Строка) и тут НЕ ПустаяСтрока(Строка) и т.п.
Юзай разукрашку, тебе уже говорили :(
Idris1204; +1 Ответить
3. cleaner_it 220 17.07.11 07:46 Сейчас в теме
Претензии в (1) по существу, несмотря на очевидную полезность публикации. ИМХО, нужно доработать для положительной оценки
4. Збянтэжаны Саўка 245 18.07.11 08:58 Сейчас в теме
(1), (3) Спасибо за критику. Исправлю на днях.
5. Збянтэжаны Саўка 245 18.07.11 12:34 Сейчас в теме
(1), (3) Подправил маленько :)
Какие еще советы дадите новичку?
6. romansun 193 18.07.11 14:16 Сейчас в теме
(5)
я для таких вещей стараюсь использовать обычно более короткие конструкции:

приведу пример не для галок, а для нескольких кнопок в командной панели на форме списка журнала документов

единый обработчик события нажатия на кнопку

Процедура ОтобратьПоВидамУчета(Кнопка)
		
	Кнопка.Пометка = Не Кнопка.Пометка;
		
	Отбор[Кнопка.Имя].Значение = Кнопка.Пометка;
	Отбор[Кнопка.Имя].Использование = Кнопка.Пометка;
	
КонецПроцедуры


где имена кнопок = именам граф журнала

думаю, и в вашем примере как минимум обработчики однотипных элементов формы лучше свести вместе для упрощения обслуживания кода
Збянтэжаны Саўка; +1 Ответить
8. Збянтэжаны Саўка 245 18.07.11 17:24 Сейчас в теме
2. artbear 1448 16.07.11 12:40 Сейчас в теме
(0) Цитата: "Размещаем на форме списка четыре элемента: два флажка и два поля ввода"
пять все-таки :) надпись "Отборы" не забываем.
7. artbear 1448 18.07.11 17:17 Сейчас в теме
(0) Вот сейчас уже намного лучше!
9. Ranika 05.02.12 15:37 Сейчас в теме
Вот теперь мне тоже нравится ))) +1 автору
11. Збянтэжаны Саўка 245 27.06.12 17:46 Сейчас в теме
(9) Ranika, Спасибо.
(10) antares_of,
Прошу прощения за задержку с ответом
В статье только вырезанный кусок кода из процедуры
Вот полный ее код (это для БП):

Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)
	
	Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл
		
		ДанныеСтроки = ОформлениеСтроки.ДанныеСтроки;
		
		Если НЕ ДанныеСтроки.ЭтоГруппа Тогда
			ОсновноеСредство  = ДанныеСтроки.Ссылка;
			Период            = ТекущаяДата();
			Организация       = глЗначениеПеременной("ОсновнаяОрганизация");
			
			//бз помечает списанные розовым цветом >>>
			Если Не ОсновноеСредство.ЭтоГруппа Тогда  	
				ПоследнееСостояниеСостояниеОС = УправлениеВнеоборотнымиАктивами.ПолучитьПоследнееСостояниеОС(Период, ОсновноеСредство, Организация);
				Если ПоследнееСостояниеСостояниеОС.СостояниеОС = Перечисления.СостоянияОС.СнятоСУчета Тогда
					ОформлениеСтроки.ЦветФона = WebЦвета.Розовый;
				КонецЕсли;	
			КонецЕсли;	
			// <<<
			
			//ага+ 09/12/2010 >>>
			Если ТипЗнч(СтруктураВидимыхКолонок) <> Тип("Структура") Тогда
				Продолжить;
			КонецЕсли;
			
			Если СтруктураВидимыхКолонок.Количество() > 0 Тогда
				ПервоначальныеСведенияОС = РегистрыСведений.ПервоначальныеСведенияОСБухгалтерскийУчет.ПолучитьПоследнее(ДатаСведений, Новый Структура("ОсновноеСредство", ДанныеСтроки.Ссылка));
				Для Каждого ЭлементСтруктуры Из ПервоначальныеСведенияОС Цикл
					Если СтруктураВидимыхКолонок.Свойство(ЭлементСтруктуры.Ключ)Тогда
						Если Лев(ЭлементСтруктуры.Ключ, 4) = "Флаг" Тогда
							ОформлениеСтроки.Ячейки[ЭлементСтруктуры.Ключ].УстановитьФлажок(ЭлементСтруктуры.Значение);
						Иначе
							ОформлениеСтроки.Ячейки[ЭлементСтруктуры.Ключ].Значение = ЭлементСтруктуры.Значение;
						КонецЕсли;
					КонецЕсли;
				КонецЦикла;
			Иначе
				Продолжить;
			КонецЕсли;
			
			ТекОрганизация = ПервоначальныеСведенияОС.Организация;
			
			Если НЕ ЗначениеЗаполнено(ТекОрганизация) Тогда
				Продолжить;
			КонецЕсли;
			
			СтруктураОтбора = Новый Структура;
			СтруктураОтбора.Вставить("Организация"   , ТекОрганизация);
			//СтруктураОтбора.Вставить("Организация"     , Организация);
			СтруктураОтбора.Вставить("ОсновноеСредство", ДанныеСтроки.Ссылка);
			
			Если СтруктураВидимыхКолонок.Свойство("МОЛ") ИЛИ СтруктураВидимыхКолонок.Свойство("Подразделение")
				ИЛИ СтруктураВидимыхКолонок.Свойство("Местонахождение") Тогда
				МестонахождениеОС = РегистрыСведений.МестонахождениеОСБухгалтерскийУчет.ПолучитьПоследнее(ДатаСведений, СтруктураОтбора);
				Для Каждого ЭлементСтруктуры Из МестонахождениеОС Цикл
					Если СтруктураВидимыхКолонок.Свойство(ЭлементСтруктуры.Ключ)Тогда
						ОформлениеСтроки.Ячейки[ЭлементСтруктуры.Ключ].Значение = ЭлементСтруктуры.Значение;
					КонецЕсли;
				КонецЦикла;
			КонецЕсли;
			
			Если СтруктураВидимыхКолонок.Свойство("СостояниеОС") Тогда
				
				ПоследнееСостояниеСостояниеОС = УправлениеВнеоборотнымиАктивами.ПолучитьПоследнееСостояниеОС(Период, ОсновноеСредство, Организация);
				ОформлениеСтроки.Ячейки.СостояниеОС.Значение = ПоследнееСостояниеСостояниеОС.СостояниеОС;
				
				//ВыборкаСостоянияОС = ПолучитьДокументыБухСостоянийОС(ДанныеСтроки.Ссылка, ТекОрганизация);
				
				ВыборкаСостояний = Новый Структура;
				
				СтруктураОтбора.Вставить("Состояние", Перечисления.СостоянияОС.ПринятоКУчету);
				ВыборкаСостоянияОС = РегистрыСведений.СостоянияОСОрганизаций.Получить(СтруктураОтбора);
				ВыборкаСостояний.Вставить("ПринятоКУчету", ВыборкаСостоянияОС.ДатаСостояния);
				
				СтруктураОтбора.Вставить("Состояние", Перечисления.СостоянияОС.ВведеноВЭксплуатацию);
				ВыборкаСостоянияОС = РегистрыСведений.СостоянияОСОрганизаций.Получить(СтруктураОтбора);
				ВыборкаСостояний.Вставить("ВведеноВЭксплуатацию", ВыборкаСостоянияОС.ДатаСостояния);
				
				СтруктураОтбора.Вставить("Состояние", Перечисления.СостоянияОС.СнятоСУчета);
				ВыборкаСостоянияОС = РегистрыСведений.СостоянияОСОрганизаций.Получить(СтруктураОтбора);
				ВыборкаСостояний.Вставить("СнятоСУчета", ВыборкаСостоянияОС.ДатаСостояния);
				
				Для Каждого ЭлементСтруктуры Из ВыборкаСостояний Цикл
					Если СтруктураВидимыхКолонок.Свойство(ЭлементСтруктуры.Ключ)Тогда
						// не показывать дату 01010001
						Если НЕ (ТипЗнч(ЭлементСтруктуры.Значение) = Тип("Дата") И ЭлементСтруктуры.Значение = '00010101') Тогда
							ОформлениеСтроки.Ячейки[ЭлементСтруктуры.Ключ].Значение = ЭлементСтруктуры.Значение;
						КонецЕсли;
					КонецЕсли;
				КонецЦикла;
				
			КонецЕсли;
			
		КонецЕсли;
		
	КонецЦикла;
	//<<<
	
КонецПроцедуры
Показать
10. antares_of 11 20.06.12 15:52 Сейчас в теме
А у меня не работает "Процедура СправочникСписокПриПолученииДанных(Элемент, ОформленияСтрок)"
пишет: {Справочник.ОсновныеСредства.Форма.ФормаВыбора.Форма(156,48)}: Переменная не определена (Организация)
СтруктураОтбора.Вставить("Организация" , <<?>>Организация); (Проверка: Толстый клиент (обычное приложение))
Переменная не определена (ДанныеСтроки)
Переменная не определена (ОформлениеСтроки)
Переменная не определена (ДатаСведений)
И как сделать чтобы инвентарные номера тоже можно было видеть отдельной колонкой?
Оставьте свое сообщение