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



Вопрос, как программно установить интервал такому списку?
Пробовал
Элементы.Список.Период = СтруктураПараметров.Период;
- не помогает.
Кстате в стандартной установке интервала есть еще такая галочка: "Використовувати цю настройку періоду при відкритті". Вот ее нужно тоже программно устанавливать. Где ее устанавливать, не подскажите?

А такого:
Список.Период

вообще нету
Ardi
Цитата
Вопрос, как программно установить интервал такому списку?

теоретически так:
таблчасть.отбор.дата.ЗначениеС =
таблчасть.отбор.дата.ЗначениеПо =
таблчасть.отбор.дата.ТутаТипОтбора
таблчасть.отбор.дата.использовать = истина;
vbi
Цитата(Ardi @ 17.11.11, 18:59) необходимо зарегистрироваться для просмотра ссылки
теоретически так:
таблчасть.отбор.дата.ЗначениеС =
таблчасть.отбор.дата.ЗначениеПо =
таблчасть.отбор.дата.ТутаТипОтбора
таблчасть.отбор.дата.использовать = истина;

Согласен, можна так. Для этого в отбор нужно два раза добавить дату и програмно устанавливать. Но ведь стандартная кнопочка работает не через отбор а как то по другому (в отборе дин. списка изначально нет даты). И тогда наверно придется сохранять этот отбор и восстанавливать. А это не хорошо, т. к. "действие" происходит на веб-клиенте. В крайнем случае сделаю так. Но может кто знает как установить интервал отображения без добавления дат?
vbi
Разобрался сам 63000000.gif !
Так не работает:
Элементы.Список.Период = СтруктураПараметров.Период;

а так работает:
ЗаполнитьЗначенияСвойств(Элементы.Список.Период,СтруктураПараметров.Период);

Ну или так:
    Элементы.Список.Период.Вариант = СтруктураПараметров.Период.Вариант;
        Элементы.Список.Период.ДатаНачала = СтруктураПараметров.Период.ДатаНачала;
        Элементы.Список.Период.ДатаОкончания = СтруктураПараметров.Период.ДатаОкончания;

Оказывается, что когда мы присваиваем период, он есть ссылкой на объект в памяти, и потому заменяется другим объектом, мы просто заменяем объект периода на другой, вместо того, чтоб устанавливать его атрибуты smile.gif
Отсюда правило: никогда не писать "Период = " даже в сравнении, т. к. сравниватся будут ссылки на объекты а не их значения. Тут уже начинают работать правила ООП smile.gif))
vbi
Но что делать с галочкой "Використовувати цю настройку періоду при відкритті"? Использовать методы УниверсальныеМеханизмы.ПолучитьНастройку() и УниверсальныеМеханизмы.СохранитьНастройку() ? Подругому никак?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.