Имя: Пароль:
1C
1С v8
Не обновляется динамический список
0 rene_den
 
10.03.15
16:33
День добрый коллеги,
Создана форма на ней динамический список (демонический :-)), с произвольным запросом и основной таблицей к регистру остатков.
При открытии формы динамический список заполняется остатками предметов, по двойному клику создается док продажи этого предмета.
Задача: после проведения этого дока данный предмет должен уйти из списка.
Код в Доке:
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    ОповеститьОбИзменении(Объект.Ссылка);
    Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение ИЛИ ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
        Оповестить("ОбновитьИзделияНаРеализации");
    КонецЕсли;    
КонецПроцедуры

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

Проблема: НЕ обновляется динамический список ((
1 rene_den
 
10.03.15
16:37
т.е. предмет в таблице остается.
2 xXeNoNx
 
10.03.15
16:39
(0) А запрос динамического списка?
3 rene_den
 
10.03.15
16:45
ВЫБРАТЬ
    ГС_ЦенноеСторонниеОстатки.Организация,
    ГС_ЦенноеСторонниеОстатки.Подразделение,
    ГС_ЦенноеСторонниеОстатки.ВидыПредметовЗалогаДоговоров,
    ГС_ЦенноеСторонниеОстатки.ПредметЗалога,
    ГС_ЦенноеСторонниеОстатки.Документ,
    ГС_ЦенноеСторонниеОстатки.Документ.Номер КАК Номер
ИЗ
    РегистрНакопления.ГС_ЦенноеСторонние.Остатки(&Период, Подразделение = &Подразделение) КАК ГС_ЦенноеСторонниеОстатки
4 rene_den
 
10.03.15
16:46
&НаКлиенте
Процедура ПриОткрытии(Отказ)
    
    ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = ТекущаяДата();
    ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Использование = Истина;
    ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Значение = ТекПодразделение;
    ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[1].Использование = Истина;
5 zak555
 
10.03.15
16:46
(0) >  с произвольным запросом

по-моему дело в этом
6 ам794123
 
10.03.15
16:49
(0) Сначала отрабатываются события формы, а затем выполняется ОбработкаПроведения.
7 rene_den
 
10.03.15
16:52
(6) Делаю два подряд дока, все равно не меняется.
8 Fedor-1971
 
10.03.15
16:54
(0) Это сработает на одной машине. Попробуй обновлять не Элемент, а сам ДС.
(6) Событие ПослеЗаписи вроде как выполняется после завершения транзакции записи документа в БД, т.е. проведение, то же закончилось успешно.
9 Fedor-1971
 
10.03.15
16:55
(7) Оповещение работает только в одном сеансе, т.е. сам провёл, себе и обновил ДС. В соседнем сеансе ничего не обновится
10 Fedor-1971
 
10.03.15
16:58
8+ Обманул, у самого ДС нет Обновить(), есть у элемента формы
11 xXeNoNx
 
10.03.15
16:59
А где в дальнейшем настройки компоновщика меняются?
12 xXeNoNx
 
10.03.15
17:00
Попробуй в запросе списка поставить в дате:
"КонецПериода(&Период, "День")"
13 rene_den
 
10.03.15
17:02
&НаКлиенте
Процедура ПриЗакрытии()
    ОповеститьОбИзменении(Объект.Ссылка);
    Оповестить("ОбновитьИзделияНаРеализации");
КонецПроцедуры

Не помогло.
14 rene_den
 
10.03.15
17:03
(5) в проф разработке написано что должно и так.
15 rene_den
 
10.03.15
17:04
(11) нигде
16 Fedor-1971
 
10.03.15
17:08
(15)  ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = КонецДня(ТекущаяДата());
ты как получил данные на момент открытия, так с ними и остался и сколько бы не обновлял, данные будут считываться на момент открытия списка твоих предметов
17 rene_den
 
10.03.15
17:08
(12) Согласен, пробую.
18 rene_den
 
10.03.15
17:08
(16)=(12) Пробую
19 xXeNoNx
 
10.03.15
17:09
(18) Лучший вариант - менять настройки компоновщика
20 xXeNoNx
 
10.03.15
17:10
+(19) Мало ли какие доки поставили в конец дня...
21 rene_den
 
10.03.15
17:27
(12)не помогло
22 rene_den
 
10.03.15
17:27
(16) помогло
23 rene_den
 
10.03.15
17:28
сейчас выложу рабочий код
24 rene_den
 
10.03.15
17:40
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
    Если ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.Проведение ИЛИ ПараметрыЗаписи.РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения Тогда
        //ОповеститьОбИзменении(Объект.Ссылка);
        Оповестить("ОбновитьИзделияНаРеализации");
    КонецЕсли;    
КонецПроцедуры



&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
    Если ИмяСобытия = "ОбновитьИзделияНаРеализации" Тогда
        ИзделияВРеализацииДС.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы[0].Значение = ТекущаяДата()+1;
        Элементы.ИзделияВРеализацииДС.Обновить();
    КонецЕсли;        
КонецПроцедуры
25 rene_den
 
10.03.15
17:41
Всем спасибо коллеги !!!
Чаще всего проблема где-то в очевидном...
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс