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

18.04.19

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

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

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

Буду краток.

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

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

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

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

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

 

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

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

 

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

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

   конецесли;

 

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

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

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

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

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

См. также

БСП (Библиотека стандартных подсистем) Обновление 1С Программист 1C:ERP Бесплатно (free)

В данной статье рассмотрен один из вариантов добавления собственных обработчиков обновления в расширении конфигурации. При смене версии расширения - автоматический вызов процесса обновления информационной базы.

29.04.2025    568    krasnoshchekovpavel    3    

9

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

Методика, описанная в статье, выработана при переезде с 1С:ДО 2.1 на 1С:ДО 3.0. Может также применяться при переходе с 1С:УПП на 1C:ERP, 1C:ERP на 1C:ERP УХ и т. п. Учтены все необходимые доработки при переезде на новую конфигурацию и предупреждены возможные ошибки.

21.04.2025    945    PROSTO-1C    4    

4

Обновление 1С Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1C:ERP Абонемент ($m)

Внешняя обработка для обновления расширений и дополнительных обработок 1С из GitHub. Поддерживает как публичные, так и приватные репозитории, фильтрацию релизов по версии конфигурации, скачивание .cfe, .epf, .erf.

1 стартмани

15.04.2025    1530    4    Aleksandr    0    

21

Обновление 1С Системный администратор Программист Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

02.04.2025    672    2    DoubleT    8    

5

Обновление 1С Linux Системный администратор Программист Бесплатно (free)

Пошаговая инструкция для обновления платформы 1С на сервере Linux Debian.

28.03.2025    1102    California_Dreaming    2    

5

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

При обновлении релиза конфигурации УТ появилась ошибка "Ошибка формата потока".

21.03.2025    1170    Gummi_pr    10    

7

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

Описан практический пример обновления через копию конфигурации 1С:ERP. Управление холдингом с версии 3.2.6.6 на версию 3.2.6.7, который можно применять на других конфигурациях и версиях.

10 стартмани

18.02.2025    1079    PetrovAnton    6    

5

Обновление 1С Программист Платформа 1С v8.3 Абонемент ($m)

Отчет о сравнении конфигураций представляет собой обширный массив информации. Однако у него есть значительное ограничение: его невозможно настраивать, например, добавлять различные группировки, фильтры или сортировку данных. Тем не менее, если преобразовать этот отчет в таблицу и использовать её в качестве источника данных, это открывает возможность для создания универсального отчета с использованием группировок, отборов и сортировки

10 стартмани

18.02.2025    1046    5    kalyaka    0    

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