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

18.04.19

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

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

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

Буду краток.

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

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

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

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

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

 

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

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

 

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

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

   конецесли;

 

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

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

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

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

Вступайте в нашу телеграмм-группу Инфостарт

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

См. также

Инструменты администратора БД Групповая разработка (Git, хранилище) Обновление 1С Системный администратор Программист 1С:Предприятие 8 1С:Комплексная автоматизация 2.х 1С:Библиотека стандартных подсистем Абонемент ($m)

Обработка, объединяющая в себе использование инструментов БСП по администрированию кластера серверов и запуска скриптов для автоматического обновления конфигурации из хранилища.

4 стартмани

17.11.2025    685    1    KovrovtsevAS    0    

7

Обновление 1С Программист 1С:Предприятие 8 Бесплатно (free)

Обновление конфигураций с расширениями конфигураций.

13.11.2025    1103    vasilev2015    15    

6

Обновление 1С Программист 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Абонемент ($m)

Обработка, загружающая по расписанию пакет правил обмена в случае их изменения из установленного в настройках каталога.

2 стартмани

27.10.2025    566    2    cheiser1982    2    

1

Нейросети Рефакторинг и качество кода Обновление 1С Программист Бесплатно (free)

С ростом качества работы нейросетей и упрощением их интеграции мы решили попробовать внедрить их в процессы обновления 1С. За последний год через сервис обновлений нетиповых конфигураций 1С нашей компании прошло порядка пяти тысяч проектов, четверть из которых включала расширения. Автоматизацию обновления расширений — в частности, методов модулей расширений — мы выбрали в качестве первого шага. В этой статье расскажем про настройку модели и промпта исходя из поставленной задачи и как нейросеть помогла сократить затраты на реальных проектах.

24.10.2025    2023    1c-izh    6    

6

Обновление 1С Рефакторинг и качество кода Механизмы платформы 1С 1С:Предприятие 8 Отраслевые 1С:Бухгалтерия 3.0 1С:ERP Управление предприятием 2 1С:Зарплата и Управление Персоналом 3.x 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 11 1С:Розница 3.0 1С:Документооборот Абонемент ($m)

Анализ конфигураций - позволяет проверять любые конфигурации и расширения на наличие ошибок, связанных с вызовом экспортных функций и процедур общих модулей и модулей менеджеров объектов. Проверяются ошибки: 1) Метод объекта не обнаружен 2) Недостаточно фактических параметров. 3) Слишком много фактических параметров. Рекомендуется выполнять при подготовке обновлений. Анализ расширений - позволяет выводить подробный количественный состав расширений по объектам, определить случаи пересечения одного и того же функционала в разных расширения, выявить использование в модулях аннотации "вместо".

10 стартмани

17.10.2025    4739    21    Suker86    13    

19

Обновление 1С Программист 1С:Предприятие 8 Бесплатно (free)

При обновлении конфигураций ЕРП/КА/УТ типовыми обновлениями можно получить ошибку  Превышен максимальный расход памяти сервера за один вызов". С чем это связано? Рассмотрим исправление этой ошибки.

18.08.2025    4253    iolko    10    

20
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. PowerBoy 3480 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 Ответить
Для отправки сообщения требуется регистрация/авторизация