Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Программирование формы списка справочника
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.1 (8.0)
andrew76
Добрый вечер !

В 1С версии 7.7 периодические реквизиты справочника можно было указать для размещения их (периодических реквизитов) в форме списка этого справочника, т.е. чтобы
можно было их просматривать, редактировать и так далее.
При переносе прикладной задачки из версии 7.7 в версию 8.1 возникла проблема совместимости интерфейсов. Если раньше в 7-ке можно было указать в форме списка справочника следующие поля (Код, Наименование, Отдел(периодический реквизит),то в 8-ке это только через просмотр формы списка регистра. Пользователи привыкли (хотят чтобы интерфейс формы списка справочника был как в 1с 7.7). Нет ли какого-нибудь примера как этот механизм синхронизации данных в версии 8 реализовать (т.е. чтобы в форме списка справочника присутствовали поля Код, Наименование, а поле Отдел заполнялось бы из периодического регистра .(Число записей в справочнике более 20000).
Vofka
Обработчик события списка ПриПолученииДанных() поможет вам.
andrew76
Процедура ТабличноеПоле1ПриПолученииДанных(Элемент, ОформленияСтрок)
    
    Подразделение=РегистрыСведений.КадровыеДанныеГруппа;
    Отбор1 = Новый Структура("КадрДанные", Элемент.ТекущаяСтрока);
    Тек=Подразделение.ПолучитьПоследнее(ТекущаяДата(),Отбор1);
    Подр_=Тек.Группа;

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


 ! 

Правила, п.12
 

Примерно так вот вышло,а как строку Подр_ "приклеить" к форме списка справочника ?
Сделал пустую колонку в табличном поле ,при попытке записать туда результат чтения регистра-вылетает ошибка
"Ошибка при установке значения атрибута"
Altair777
Во-первых, это надо делать в цикле. ПриПолученииДанных возвращает коллекцию строк.
А, во-вторых, как-то так
ОформлениеСтроки.Ячейки.СостояниеОбъекта.УстановитьТекст(СостояниеОбъекта);
andrew76
Данные колонки (Колонка1 в форме списка) заполняются,но не синхронно:
Может кто подскажет , что в коде не так как надо?


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

КонецПроцедуры
logist
В Отбор1 должно быть что-то еще после ТекущаяСтрока, в регистре не может хранится ссылка на строку таблицы в таком виде.
Vofka
logist, в ТекущаяСтрока скорей всего содержится ссылка на элемент справочника.
andrew76
Так точно,сейчас проблема не в чтении из регистра (здесь всё работает),проблема с заполненнием Колонки1 в табличном поле.Данные из регистра записываются в колонку ,но не синхронно.
Vofka
А что значит не синхронно?
andrew76
При открытии формы списка справочника Колонка1(просто колонка,не связанная с реквизитом справочника) пуста.
Почему ? Может обработчик на другое событие повесить? Далее-При скроллинге записей Колонка1 начинает заполняться.Может я не верно написал код ?


Для Каждого ОформлениеСтроки Из ОформленияСтрок Цикл 
      ОформлениеСтроки.Ячейки.Колонка1.УстановитьТекст(Тек.Группа);
КонецЦикла;
andrew76
Ура,заработало.Событие то же самое -ПриПолученииДанных,только читать данные из регистра мне надо было в цикле,что я и сделал.Теперь следующий вопрос-Как эту (вычисляемую по сути) Колонку1 добавить в список доступных
полей отбора для формы списка справочника? Если такое вообще возможно-ведь Колонка1 ни с каким реквизитом формы справочника не связана?
Vofka
Цитата(andrew76 @ 22.05.14, 7:34) необходимо зарегистрироваться для просмотра ссылки
Теперь следующий вопрос

Теперь пришло время ознакомится с правилами, в частности пункт 6.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.