Количество коллизий или непринятых. Возвращает количество коллизий или непринятых объектов.
// Возвращает количество коллизий или непринятых объектов.
//
// Параметры:
// УзлыОбмена - ПланОбменаСсылка, Массив, СписокЗначений, Неопределено - отбор для получения количества коллизий.
// ЭтоКоличествоКоллизий - Булево - Если Истина, то возвращает количество коллизий, иначе количество непринятых.
// ПоказыватьПроигнорированные - Булево - Признак необходимости учета проигнорированных.
// УзелИнформационнойБазы - ПланОбменаСсылка - Количество по конкретному узлу.
// Период - Стандартный период - Количество за дату.
// СтрокаПоиска - Строка - Количество объектов, содержащих в комментарии СтрокаПоиска.
//
Функция КоличествоКоллизийИлиНепринятых(УзлыОбмена, ЭтоКоличествоКоллизий,
ПоказыватьПроигнорированные, Период, СтрокаПоиска) Экспорт
Количество = 0;
Если Не ЕстьПравоЧтенияИнформацииОВерсияхОбъектов() Тогда
Возврат Количество;
КонецЕсли;
ТекстЗапроса = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
| КОЛИЧЕСТВО(ВерсииОбъектов.Объект) КАК Количество
|ИЗ
| РегистрСведений.ВерсииОбъектов КАК ВерсииОбъектов
|ГДЕ
| ВерсииОбъектов.ВерсияПроигнорирована <> &ОтборПоПропущенным
| И (ВерсииОбъектов.ТипВерсииОбъекта В (&ТипыВерсий))
| [ОтборПоУзлу]
| [ОтборПоПериоду]
| [ОтборПоПричине]";
Запрос = Новый Запрос;
ОтборПоПропущенным = ?(ПоказыватьПроигнорированные, Неопределено, Истина);
Запрос.УстановитьПараметр("ОтборПоПропущенным", ОтборПоПропущенным);
Если УзлыОбмена = Неопределено Тогда
СтрокаОтбора = "";
ИначеЕсли ПланыОбмена.ТипВсеСсылки().СодержитТип(ТипЗнч(УзлыОбмена)) Тогда
СтрокаОтбора = "И ВерсииОбъектов.АвторВерсии = &УзлыОбмена";
Запрос.УстановитьПараметр("УзлыОбмена", УзлыОбмена);
Иначе
СтрокаОтбора = "И ВерсииОбъектов.АвторВерсии В (&УзлыОбмена)";
Запрос.УстановитьПараметр("УзлыОбмена", УзлыОбмена);
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ОтборПоУзлу]", СтрокаОтбора);
Если ЗначениеЗаполнено(Период) Тогда
СтрокаОтбора = "И (ВерсииОбъектов.ДатаВерсии >= &ДатаНачала
| И ВерсииОбъектов.ДатаВерсии <= &ДатаОкончания)";
Запрос.УстановитьПараметр("ДатаНачала", Период.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", Период.ДатаОкончания);
Иначе
СтрокаОтбора = "";
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ОтборПоПериоду]", СтрокаОтбора);
ТипыВерсий = Новый СписокЗначений;
Если ЗначениеЗаполнено(ЭтоКоличествоКоллизий) Тогда
Если ЭтоКоличествоКоллизий Тогда
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии);
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыеДанныеПоКоллизии);
СтрокаОтбора = "";
Иначе
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе);
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе);
Если ЗначениеЗаполнено(СтрокаПоиска) Тогда
СтрокаОтбора = "И ВерсииОбъектов.Комментарий ПОДОБНО &Комментарий";
Запрос.УстановитьПараметр("Комментарий", "%" + СтрокаПоиска + "%");
Иначе
СтрокаОтбора = "";
КонецЕсли;
КонецЕсли;
Иначе // Отбор по комментарию не поддерживается.
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.ПринятыеДанныеПоКоллизии);
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыеДанныеПоКоллизии);
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектСуществуетВБазе);
ТипыВерсий.Добавить(Перечисления.ТипыВерсийОбъекта.НепринятыйПоДатеЗапретаОбъектНеСуществуетВБазе);
КонецЕсли;
ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "[ОтборПоПричине]", СтрокаОтбора);
Запрос.УстановитьПараметр("ТипыВерсий", ТипыВерсий);
Запрос.Текст = ТекстЗапроса;
Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
Количество = Выборка.Количество;
КонецЕсли;
Возврат Количество;
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ПриКоллизииИзмененийДанных (БСП)
ПриПолученииДанныхОтГлавногоВКонце (БСП)
ПриПолученииДанныхОтПодчиненногоВКонце (БСП)
КоличествоЭлементовВВыборке (БСП)
КоличествоПроблемВерсионирования (БСП)
КоличествоПрисоединенныхФайлов (БСП)