Как получить последний сохраненный документ
-

Как получить последний сохраненный документ

1
17508
17.12.2021 Айдар Фархутдинов

Содержание:

1.       Получение последних документов в 1С

2.       Запрос с временной таблицей


Приветствую, коллеги! В данной статье будет описано, как получать последние документы в 1С из некоторой выборки из регистра двумя способами.  


1.      Получение последних документов в 1С


У многих разработчиков в 1С часто возникает вопрос: как получать последние (либо первые) документы из конкретной выборки? Данную задачу можно решить не одним, но несколькими способами.


Рассмотрим пример. Пусть есть некоторая первоначальная база 1С:Управление торговлей, редакция 11, из которой необходимо получить последнюю документацию по номенклатурному приходу по специальному регистру «ТоварыНаСкладе». Последним документом в этом контексте имеется ввиду тот документ, который имеет максимальную дату, а именно: последний документ, в котором работал пользователь системы 1С.


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


Далее представлены примеры запросов:



Рис. 1 Запрос для поиска последнего документа в 1С


Результат будет выведен в виде следующей таблицы с последними сохраненными документами – номенклатурой по регистраторам:



Рис. 2 Таблица с последними сохраненными документами – номенклатура по регистраторам


В таком случае сортировка по умолчанию будет происходить без учета даты документации – учитывается только персональный идентификатор. Таким образом документация, которая была зарегистрирована позже некоторого времени в приходной ордер ЦУ-33, будет в самом начале нашей выборки. Рассмотрим вариант, когда сортировки по порядку не будет:



Рис. 3 Таблица без сортировки по порядку последних документов в 1С


Если необходимо выбрать последние открытые документы в списке с номенклатурой, «ВЫБРАТЬ ПЕРВЫЕ» работать не будет. В таком случае воспользуемся функцией «МАКСИМУМ», как показано в примере запроса ниже:



Рис. 4 Запрос для поиска последних открытых документов


А результат данного запроса будет следующим:



Рис. 5 Результат поиска последних открытых документов


В данном случае конструкция «МАКСИМУМ» разбивает избранную выборку по «GUID» объекта. Данным способом можно воспользоваться в 1С 8 УТ 11 в случае, когда необходимо получить последний сохраненный документ, опираясь на его дату. Так мы получаем список с номенклатурой и, при помощи цикла для всех позиций по отдельности, последний документ в 1С 8 "Управление торговлей" 11. Но данный способ занимает довольно много времени и уменьшает производительность.  


2. Запрос с временной таблицей


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



Рис. 6 Запрос с временной таблицей


Результат будет следующим:



Рис. 7 Результат запроса с временной таблицей


Специалист компании «Кодерлайн»

Айдар Фархутдинов

Задать вопрос автору статьи
Тема вопроса*
Ваше имя*
E-mail или телефон*
Ваш вопрос*
 

0
Guest
Нельзя использовать Максимум(регистратор), гуид может быть создан как угодно и это наверняка приведет к проблемам, или документ может создаваться заранее, а проводится через через какое то время текущей датой, что приведет к неверной сортировке
Имя Цитировать 0
Добавить комментарий
Текст сообщения*
Защита от автоматических сообщений
 
Услуги программиста 1С
Получите специалиста
для решения всех задач
в области 1С
Программы 1С
Цены и подробное описание программ 1С:Предприятие 8.