Добрый день!
При заполнении ТЧ для акта сверки и попытке УПОРЯДОЧИТЬ ПО ДоговорКонтрагента выдает ошибку "{(14, 1)}: Синтаксическая ошибка "ОБЪЕДИНИТЬ"
<<?>>ОБЪЕДИНИТЬ ВСЕ"
без упорядочивания ошибки нет, отбор работает, но сортировка идет по дате документов.
Что может быть не таке?
Ил есть другой способ сделать сортировку по ДоговорКонтрагента?
При заполнении ТЧ для акта сверки и попытке УПОРЯДОЧИТЬ ПО ДоговорКонтрагента выдает ошибку "{(14, 1)}: Синтаксическая ошибка "ОБЪЕДИНИТЬ"
<<?>>ОБЪЕДИНИТЬ ВСЕ"
без упорядочивания ошибки нет, отбор работает, но сортировка идет по дате документов.
Что может быть не таке?
Ил есть другой способ сделать сортировку по ДоговорКонтрагента?
Процедура ЗаполнитьПредставлениеДокументов(ТаблицаЗначений)
Если ТаблицаЗначений.Количество() = 0 Тогда
Возврат;
КонецЕсли;
КэшПоТипам = Новый Соответствие;
Для каждого СтрокаТаблицы Из ТаблицаЗначений Цикл
Если НЕ ЗначениеЗаполнено(СтрокаТаблицы.ДокументРегистратор) Тогда
Продолжить;
КонецЕсли;
ТипТекущегоДокумента = ТипЗнч(СтрокаТаблицы.ДокументРегистратор);
Если Документы.ТипВсеСсылки().СодержитТип(ТипТекущегоДокумента) Тогда
МассивТипа = КэшПоТипам[ТипТекущегоДокумента];
Если МассивТипа = Неопределено Тогда
МассивТипа = Новый Массив;
КэшПоТипам.Вставить(ТипТекущегоДокумента, МассивТипа);
КонецЕсли;
МассивТипа.Добавить(СтрокаТаблицы.ДокументРегистратор);
КонецЕсли;
КонецЦикла;
Если КэшПоТипам.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ТаблицаЗначений.Индексы.Добавить("ДокументРегистратор");
ТаблицаЗначений.Колонки.Добавить("ДоговорКонтрагента");
ТаблицаЗначений.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Запрос = Новый Запрос;
Для Каждого КлючИЗначение ИЗ КэшПоТипам Цикл
МетаданныеТипа = Метаданные.НайтиПоТипу(КлючИЗначение.Ключ);
ИмяМетаданных = МетаданныеТипа.Имя;
ЕстьНомерВходящегоДокумента = МетаданныеТипа.Реквизиты.Найти("НомерВходящегоДокумента") <> Неопределено;
ЕстьДатаВходящегоДокумента = МетаданныеТипа.Реквизиты.Найти("ДатаВходящегоДокумента") <> Неопределено;
ЕстьДоговорКонтрагентаВходящегоДокумента = МетаданныеТипа.Реквизиты.Найти("ДоговорКонтрагентаВходящегоДокумента") <> Неопределено;
Запрос.Текст = Запрос.Текст
+ ?(Запрос.Текст = "", "",
"
|
|ОБЪЕДИНИТЬ ВСЕ
|")
+ "
|ВЫБРАТЬ
| """ + МетаданныеТипа.Синоним + """ КАК ПредставлениеТипа,
| Док.Ссылка КАК Ссылка,
| " + ?(ЕстьНомерВходящегоДокумента, "Док.НомерВходящегоДокумента", "НЕОПРЕДЕЛЕНО") + " КАК Номер,
| " + ?(ЕстьДатаВходящегоДокумента, "Док.ДатаВходящегоДокумента", "Док.Дата") + " КАК Дата,
| " + ?(ЕстьДоговорКонтрагентаВходящегоДокумента, "Док.ДоговорКонтрагентаВходящегоДокумента", "Док.ДоговорКонтрагента") + " КАК ДоговорКонтрагента
|ИЗ
| Документ."+ИмяМетаданных+" КАК Док
|ГДЕ Док.Ссылка В (&ДокументыТипа_"+ИмяМетаданных+")
|УПОРЯДОЧИТЬ ПО ДоговорКонтрагента
|";
Запрос.УстановитьПараметр("ДокументыТипа_"+ИмяМетаданных, КлючИЗначение.Значение);
КонецЦикла;
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДоговорКонтрагента = Выборка.ДоговорКонтрагента;
НомерДокумента = ?(Выборка.Номер = Неопределено, ОбщегоНазначения.ПолучитьНомерНаПечать(Выборка.Ссылка), Выборка.Номер);
ДатаДокумента = Формат(Выборка.Дата, "ДФ='дд ММ гггг'");
СтрокаДокумента = ТаблицаЗначений.Найти(Выборка.Ссылка, "ДокументРегистратор");
СтрокаДокумента.ДоговорКонтрагента = ДоговорКонтрагента;
СтрокаДокумента.Представление = Выборка.ПредставлениеТипа + " № " + НомерДокумента + " от " + ДатаДокумента;
КонецЦикла;
КонецПроцедуры
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
а смысл сортировать данные запросе? его данные вы вставляете совсем в другую таблицу! а у нее свой порядок.
если не очень много записей в таблице ТаблицаЗначений попробуйте отсортировать ее, после цикла
если не очень много записей в таблице ТаблицаЗначений попробуйте отсортировать ее, после цикла
Выборка = Запрос.Выполнить().Выбрать();
Пока Выборка.Следующий() Цикл
ДоговорКонтрагента = Выборка.ДоговорКонтрагента;
НомерДокумента = ?(Выборка.Номер = Неопределено, ОбщегоНазначения.ПолучитьНомерНаПечать(Выборка.Ссылка), Выборка.Номер);
ДатаДокумента = Формат(Выборка.Дата, "ДФ='дд ММ гггг'");
СтрокаДокумента = ТаблицаЗначений.Найти(Выборка.Ссылка, "ДокументРегистратор");
СтрокаДокумента.ДоговорКонтрагента = ДоговорКонтрагента;
СтрокаДокумента.Представление = Выборка.ПредставлениеТипа + " № " + НомерДокумента + " от " + ДатаДокумента;
КонецЦикла;
//добавлена сортировка
ТаблицаЗначений.Сортировать("ДоговорКонтрагента");
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот