Обновление формы списка или формы подбора номенклатуры в 1С

18.04.19

База данных - Обновление 1С

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

Столкнулся с проблемой в 1С: УТП. При  подборе номенклатуры в форме списка или в форме подбора необходимо обновлять форму для показания актуальных остатков при  работе множества пользователей. В поиске по интернету  по этой теме кроме записи в регистр сведений с определенной структурой и подписчика на события не нашел полезного. Вот и пришла идея !!!

Буду краток.

1. В форме  списка или подбора при открытии поставил подписку на событие 

          мдатаначало=текущаядата();
    ЭтаФорма.ПодключитьОбработчикОжидания( "обновлениеостатковтаймер" ,3);

 Просто объявите в начале  модуля формы перем мдатаначало;

2. Сам обработчик

процедура  обновлениеостатковтаймер()
    тз= новый таблицазначений;
    МассивМетаданных = Новый Массив; 
    МассивМетаданных.Добавить(Метаданные.РегистрыБухгалтерии.Хозрасчетный); 
    отб=новый структура("ДатаНачала,ДатаОкончания,Метаданные",мдатаначало,текущаядата(),МассивМетаданных);
    ВыгрузитьЖурналРегистрации(тз, отб);
    если тз.Количество()>0  тогда
        ///  обновить
        Если ЭлементыФормы.Список.ТекущиеДанные <> Неопределено
            И НЕ ЭлементыФормы.Список.ТекущиеДанные.ЭтоГруппа Тогда
            
            мСписокПрефиксовЦен = УправлениеЗапасами.ПолучитьСписокПрефиксовВыводимыхСумм(СписокЦенОстатков);
            УправлениеЗапасами.ПолучитьДеревоОстатковНоменклатуры(ОстаткиТоваров, ЭлементыФормы.Список.ТекущиеДанные.Ссылка, Истина, СписокЦенОстатков, , мСоответвиекурсовВалют);
            //Разворачиваем дерево
            Для Каждого СтрокаДереваОстатков Из ОстаткиТоваров.Строки Цикл
                ЭлементыФормы.ТабличноеПолеОстаткиТоваров.Развернуть(СтрокаДереваОстатков, Истина);
            КонецЦикла;
            РаботаСДиалогами.ОбновитьШапкиКолонокОстатков(ЭлементыФормы.ТабличноеПолеОстаткиТоваров, ЭлементыФормы.Список.ТекущиеДанные.ЕдиницаХраненияОстатков);
            ПересчитатьВалютыОстатковНоменклатуры();
        конецесли;
        мКэшОстатков.Очистить();
        ЭтаФорма.Обновить();
        мдатаначало=текущаядата();
    конецесли;
    
конецпроцедуры

 

Все ценное в обработчике. Это эти строки.   Все станет понятно для программиста.

Работа  происходит  с журналом  регистраций. Делается отбор в данном случае по Метаданные.РегистрыБухгалтерии.Хозрасчетный--- изменение по счетам, а значит, происходит  изменение остатков. Вот и все.  Если если тз.Количество()>0  тогда  надо  посылать для открытой формы обновить().  Можно делать отбор по (список большой).  Смотри работу с журналом регистраций.

 

тз= новый таблицазначений;
    МассивМетаданных = Новый Массив; 
    МассивМетаданных.Добавить(Метаданные.РегистрыБухгалтерии.Хозрасчетный); 
    отб=новый структура("ДатаНачала,ДатаОкончания,Метаданные",мдатаначало,текущаядата(),МассивМетаданных);
    ВыгрузитьЖурналРегистрации(тз, отб);
    если тз.Количество()>0  тогда

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

   конецесли;

 

3. При  закрытии формы отключаем обработчик ожидания.

этаформа.ОтключитьОбработчикОжидания("обновлениеостатковтаймер");

Это  работает на УТП 1С.   Обновляет остатки достаточно быстро в серверном варианте. Главное - понять идею. Прикрутить это можно везде, где  надо обновлять  и показывать актуальные остатки товара!!!! 

Всем удачи!! Дерзайте!! 

Обновление формы Списка подбора номенклатуры

См. также

Работа с интерфейсом Обновление 1С Программист Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 3.0 Бесплатно (free)

После обновления УНФ до 3.0.10.178 у ряда клиентов исчезла часть функционала: отчёт "Движение товаров", кнопка "Глаз" в Расходной накладной, часть документов складских перемещений. Для решения проблемы надо установить константы, чьё название подпадает под шаблон "Использовать подсистему NNN (Константы)" и соответствует "пропавшему" функционалу по смыслу.

16.01.2025    463    dime2    0    

3

Обновление 1С Программист Платформа 1С v8.3 1С:Управление торговлей 10 Россия Бухгалтерский учет Налоговый учет Управленческий учет ИП, ПБОЮЛ, КФХ НДС УСН Абонемент ($m)

Обновление, доработка для 1С: Управление торговлей 10.3 (УТ 10.3) организаций на упрощенной системе с 2025 года для использования ставок НДС 5 и 7 % в документах и печатных формах документов. Начиная с релиза 10.3.40.

4 стартмани

10.01.2025    1881    42    zhuravlev_as    37    

6

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

В статье рассматривается использование WinMerge для сравнения, объединения и обновления конфигураций 1С. Отдельно рассматривается методика трехстороннего сравнения при обновлении конфигурации

21.10.2024    3347    mixaeel    18    

17

Обновление 1С Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 Абонемент ($m)

Те кто объединял конфигурации находящиеся на поддержке, обновлял подсистемы БСП прекрасно помнят упражнение «10000 тысяч кликов мышкой» или, непонятное словесное заклинание, после которого конфигурация снимается с поддержки целиком.

1 стартмани

26.09.2024    671    7    milkers    2    

7

Обновление 1С Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 Россия Бесплатно (free)

Вышел новый релиз для УТ11 5.19.63. На копии базы было выполнено обновление и вылезли проблемы с номенклатурой, подлежащей маркировке. В публикации описаны проблемы, обнаруженные в копии базы конкретной организации.

24.09.2024    1299    gull22    2    

9

Обновление 1С Программист Платформа 1С v8.3 Бесплатно (free)

Как исправить медленное сравнение конфигурации с файлом cf, сохраненным из хранилища.

17.09.2024    4699    vatkir    15    

10
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PowerBoy 3423 19.04.19 05:56 Сейчас в теме
Я б не связывался с журналом регистрации, медленно, ненадежно - я б тупо контролил итоговую сумму регистра.
2. pilgrim9131 3 19.04.19 09:29 Сейчас в теме
тоже вариант. ну я думаю все время получать запросом итоговую сумму по регистру не намного быстрее. а тут просто фильтр по журналу и все данные готовы. Тем более их не так уж много во время открытой формы подбора.!!! надо просто тестить... тогда будет понятно!! что быстрее.
3. vse-puchcom 19.04.19 12:34 Сейчас в теме
а просто ф5 не катит? или я не о том подумал?
jaroslav.h; +1 Ответить
Оставьте свое сообщение