• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Сравнение НУ и БУ основных средств и периодические реквизиты.

  • Автор темы unknown181538
  • Дата начала
U

unknown181538

Стоит любопытная задача - привести в норму сильно запущенный НУ лизинговой компании)
Хочу определить ОС, у которых первоначальные параметры одинаковые, чтобы их остатки взять из НУ. Причем, можно считать, что в процессе эксплуатации параметры не менялись.

Попробовал сравнивать данные реквизитов на момент ввода начальных остатков:
ТекстЗапроса = "ВЫБРАТЬ
|Подзапрос.СрокПолезногоИспользования КАК [СрокПолезногоИспользования $Число],
|Подзапрос.СрокПолезногоИспользованияН КАК [СрокПолезногоИспользованияН $Число],
|Подзапрос.ПервоначальнаяСтоимость КАК [ПервоначальнаяСтоимость $Число],
|Подзапрос.ПервоначальнаяСтоимостьН КАК [ПервоначальнаяСтоимостьН $Число],
|Подзапрос.ОС КАК [ОС $Справочник.ОсновныеСредства],
|Подзапрос.DOCID КАК [Документ $Документ.ВводВЭксплуатациюОС],
|Подзапрос.Дата,
|ВЫБОР КОГДА (Подзапрос.СрокПолезногоИспользования = Подзапрос.СрокПолезногоИспользованияН)И
|(Подзапрос.ПервоначальнаяСтоимость = Подзапрос.ПервоначальнаяСтоимостьН)ТОГДА
|1
|ИНАЧЕ
|0
|КОНЕЦ КАК НетРасхождений
|
|ИЗ(
|ВЫБРАТЬ Константы.OBJID КАК ОС,
|Максимум(ВЫБОР КОГДА Константы.ID = :ИсторияРеквизита.ОсновныеСредства.СрокПолезногоИспользования ТОГДА
| Константы.VALUE
|ИНАЧЕ
|0
|КОНЕЦ) КАК СрокПолезногоИспользования,
|Максимум(ВЫБОР КОГДА Константы.ID = :ИсторияРеквизита.ОсновныеСредства.СрокПолезногоИспользованияН ТОГДА
| Константы.VALUE
|ИНАЧЕ
|0
|КОНЕЦ) КАК СрокПолезногоИспользованияН,
|Максимум(ВЫБОР КОГДА Константы.ID = :ИсторияРеквизита.ОсновныеСредства.ПервоначальнаяСтоимость ТОГДА
| Константы.VALUE
|ИНАЧЕ
|0
|КОНЕЦ) КАК ПервоначальнаяСтоимость,
|Максимум(ВЫБОР КОГДА Константы.ID = :ИсторияРеквизита.ОсновныеСредства.ПервоначальнаяСтоимостьН ТОГДА
| Константы.VALUE
|ИНАЧЕ
|0
|КОНЕЦ) КАК ПервоначальнаяСтоимостьН,
|Максимум(Константы.DOCID) КАК DOCID,
|Константы.DATE КАК Дата
|ИЗ Константы КАК Константы
|ГДЕ
|((Константы.ID = :ИсторияРеквизита.ОсновныеСредства.СрокПолезногоИспользования)ИЛИ
|(Константы.ID = :ИсторияРеквизита.ОсновныеСредства.СрокПолезногоИспользованияН)
|ИЛИ(Константы.ID = :ИсторияРеквизита.ОсновныеСредства.ПервоначальнаяСтоимость)
|ИЛИ(Константы.ID = :ИсторияРеквизита.ОсновныеСредства.ПервоначальнаяСтоимостьН))
|СГРУППИРОВАТЬ ОС,Дата)КАК Подзапрос
|УПОРЯДОЧИТЬ НетРасхождений,Дата";

получил, что многие данные вводились вручную. Попробовал соединять данные по датам, выяснил, что многое вводилось разными числами одного месяца. Т.е. лучше было бы взять данные из месяца ввода... Но это уже потребует кучи соединений.
Может есть у кого идеи?
Дело довольно любопытным мне показалось.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!