Через подключаемый модуль можно добавить до 5 дополнительных колонок.
Сгенерируем шаблон с событием ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов, будем обрабатывать типовой результат.
В шаблоне добавим новое событие ПолучитьНастройкиДополнительныхКолонокСпискаДокументов
Функция ОбработатьСобытие(ИмяСобытия, Параметры) Экспорт
Если ИмяСобытия = "ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов" Тогда
Возврат ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов(Параметры);
ИначеЕсли ИмяСобытия = "ПолучитьНастройкиДополнительныхКолонокСпискаДокументов" Тогда
Возврат ПолучитьНастройкиДополнительныхКолонокСпискаДокументов(Параметры);
КонецЕсли;
КонецФункции
В функции ПолучитьНастройкиДополнительныхКолонокСпискаДокументов опишем название колонок и тип данных который будет в ней. Для примера колонку "Подразделение 1с" я буду заполнять реквизитом из документа, а колонку "Проверен" из дополнительных сведений.
Функция ПолучитьНастройкиДополнительныхКолонокСпискаДокументов(Параметры)
Режим = Параметры.Режим;
Если Режим = "ОтправкаПакетов" Тогда
ДопКолонки = Новый Массив; // не более 5. Индекс элемента в массиве, увеличенный на единицу, совпадает с порядковым номером колонки
ДопКолонки.Добавить(Новый Структура("Заголовок, Тип, ДопустимыеЗначения", "Подразделение 1с", Новый ОписаниеТипов("СправочникСсылка.СтруктураПредприятия")));
ДопКолонки.Добавить(Новый Структура("Заголовок, Тип, ДопустимыеЗначения", "Проверен", Новый ОписаниеТипов("Булево")));
Возврат ДопКолонки;
КонецЕсли;
КонецФункции
Теперь в событии ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов нужно изменить основной запрос.
Функция ПолучитьТекстЗапросаДляСпискаПакетовНаОтправкуПоМассивуВидовПакетов(Параметры)
Если ТипЗнч(Параметры) = Тип("Структура") И Параметры.Свойство("Результат_ИМ") Тогда
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "Документ.СверкаВзаиморасчетов КАК АктСверкиВзаиморасчетов","Документ.СверкаВзаиморасчетов КАК АктСверкиВзаиморасчетов"+
ДобавитьСоединениеВТекстЗапроса("АктСверкиВзаиморасчетов"));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "Документ.СчетФактураВыданный КАК СчетФактура","Документ.СчетФактураВыданный КАК СчетФактура"+
ДобавитьСоединениеВТекстЗапроса());
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "Документ.СчетФактураВыданныйАванс КАК СчетФактура","Документ.СчетФактураВыданныйАванс КАК СчетФактура"+
ДобавитьСоединениеВТекстЗапроса());
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "СчетФактура.Ссылка КАК Документ,","СчетФактура.Ссылка КАК Документ,"+ДобавитьДопРеквизит("СчетФактура"));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "СчетФактура.Ссылка,","СчетФактура.Ссылка,"+ДобавитьДопРеквизит("СчетФактура"));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "АктСверкиВзаиморасчетов.Ссылка КАК Документ,","АктСверкиВзаиморасчетов.Ссылка КАК Документ,"+ДобавитьДопРеквизит("АктСверкиВзаиморасчетов","КА_Подразделение",Истина));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "АктСверкиВзаиморасчетов.Ссылка,","АктСверкиВзаиморасчетов.Ссылка,"+ДобавитьДопРеквизит("АктСверкиВзаиморасчетов","КА_Подразделение",Истина));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "СчетНаОплатуПокупателю.Ссылка КАК Документ,","СчетНаОплатуПокупателю.Ссылка КАК Документ,"+ДобавитьДопРеквизит("СчетНаОплатуПокупателю","КА_Подразделение"));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "СчетНаОплатуПокупателю.Ссылка,","СчетНаОплатуПокупателю.Ссылка,"+ДобавитьДопРеквизит("СчетНаОплатуПокупателю","КА_Подразделение"));
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "ВТ_ДокументыБезНДС.Документ,","ВТ_ДокументыБезНДС.Документ,"+ДобавитьДопРеквизит());
Параметры.Результат_ИМ = СтрЗаменить(Параметры.Результат_ИМ, "ВТ_СчетФактурыПоОтчетуКомиссионера.Документ КАК Документ,","ВТ_СчетФактурыПоОтчетуКомиссионера.Документ КАК Документ,"+ДобавитьДопРеквизит());
Возврат Параметры.Результат_ИМ;
КонецЕсли;
КонецФункции
Функцией ДобавитьСоединениеВТекстЗапроса добавляем соединение к нужным документам у которых есть свойство "проверен".
Функцией ДобавитьДопРеквизит добавляем поля, если у документа нет этих полей, то все равно нужно добавить пустые поля.
Функция ДобавитьСоединениеВТекстЗапроса(Док="")
Если ЗначениеЗаполнено(Док) Тогда
Текст = "
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ДополнительныеСведения КАК ДополнительныеСведения
| ПО "+Док+".Ссылка = ДополнительныеСведения.Объект
| И (ДополнительныеСведения.Свойство.Имя = ""Проверен_3b08a7c02cad4b2182ef936461881e24"")";
КонецЕсли;
Возврат Текст;
КонецФункции
Функция ДобавитьДопРеквизит(Док="",Реквизит1="Подразделение",Реквизит2=Ложь)
Если не ЗначениеЗаполнено(Док) Тогда
Возврат "
|"""" КАК ДопРеквизит1,
|"""" КАК ДопРеквизит2,";
Иначе
Возврат "
|"+Док+"."+Реквизит1+" КАК ДопРеквизит1,
|"+?(Реквизит2,"ЕСТЬNULL(ДополнительныеСведения.Значение, ЛОЖЬ)","""""")+" КАК ДопРеквизит2,";
КонецЕсли;
КонецФункции
Результат
Тестировал:
- 1С:Комплексная автоматизация 2 (2.4.13.209)
- Платформа 1С:Предприятие 8.3 (8.3.19.1467)
Диадок:
- Версия модуля: 4.24.1.2093
- Версия плагина: 1.4.5.286
- Расположение модуля: ВСправочнике
- Модуль интеграции: ПМ_УТ_11