1Cv82: Ограничения — различия между версиями
м |
м |
||
Строка 1: | Строка 1: | ||
− | [[Категория: Программирование в | + | [[Категория: Программирование в 1Cv8]] |
{| align="right" | {| align="right" | ||
| __TOC__ | | __TOC__ |
Версия 16:43, 7 июля 2016
Ограничения динамических списков в 1С v8.2
1. Невозможно установить параметры запроса, если не выбрана основная таблица
При создании произвольного запроса динамического списка, необходимо указывать основную таблицу. Иначе в коде нельзя задать значения параметров запроса - список параметров пуст.
Если запрос устанавливается кодом, и он неправильный, то список параметров тоже пуст
При этом ошибка возникает не в момент установки текста запроса, а в момент установки параметров.
2. Нельзя группировать в запросе по основной таблице
Если в произвольном запросе указана основная таблица, то группировать по этой таблице не получится. Для обхода этого ограничения результирующую выборку можно соединить с еще одной таблицей и указать, что эта новая таблица основная.
3. Ограничения на получение данных текущей строки динамического списка
Если колонка динамического списка не отображается в таблице на форме, нельзя получить к ней доступ в коде через "ТекущиеДанные". Это ограничение можно преодолеть таким образом: сделать колонку в редакторе видимой, а при открытии формы скрывать ее (ЭтаФорма.Элементы.Список.ПодчиненныеЭлементы.Колонка.Видимость = ложь).
4. Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме
Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме. Необходимо в запросе динамического списка получать все необходимые реквизиты.
5. В случае когда основная таблица - накопительный регистр, наблюдаются странные ошибки платформы
После кликания мышкой по табличной части а потом по заголовку колонки, или при развороте на полный экран, платформа не могла найти объект "recorder". Помогло искусственное соединение регистра со справочником, который был сделан основной таблицей:
ВЫБРАТЬ
ЦелевойЭтап.ЭтапБП КАК ЦелевойЭтап,
ЦелевойЭтап.Регистратор.АвторПерехода КАК АвторПерехода,
ЦелевойЭтап.Период КАК ДатаПерехода,
ИсходныйЭтап.ЭтапБП КАК ИсходныйЭтап
ИЗ
(ВЫБРАТЬ
ЗадачиСтруктурныхЕдиниц.Регистратор КАК Регистратор,
ЗадачиСтруктурныхЕдиниц.ЭтапБП КАК ЭтапБП,
ЗадачиСтруктурныхЕдиниц.Период КАК Период
ИЗ
РегистрНакопления.ЗадачиСтруктурныхЕдиниц КАК ЗадачиСтруктурныхЕдиниц
ГДЕ
ЗадачиСтруктурныхЕдиниц.ЭкземплярБизнесПроцесса = &Процесс
И ЗадачиСтруктурныхЕдиниц.Амплитуда = -1) КАК ИсходныйЭтап
ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗадачиСтруктурныхЕдиниц КАК ЦелевойЭтап
ПО ИсходныйЭтап.Регистратор = ЦелевойЭтап.Регистратор
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапБП КАК ЭтапБПТаблица
ПО ИсходныйЭтап.ЭтапБП = ЭтапБПТаблица.Ссылка
ГДЕ
ЦелевойЭтап.ЭкземплярБизнесПроцесса = &Процесс
И ЦелевойЭтап.Амплитуда = 1
6.Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме
Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме. Необходимо в запросе динамического списка получать все необходимые реквизиты.
7. Лучше не указывать синонимы для колонок Ссылка и Наименование
Если указать синоним для колонки Ссылка или Наименование в динамическом запросе, то результирующий список на форме не будет отображать Ссылку и Наименование.
Очищается ТабличныйДокумент при передаче его как параметр с Клиента на Сервер
Когда параметром передается ТабличныйДокумент из Клиента на Сервер, то его данные очищаются (остаются только группировки).
Ограничения размещения элементов в управляемой форме
Если в горизонтальной группе размещается несколько элементов, то "растягиваемым" может быть только первый.
В случае если разместить в такой группе другие "растягиваемые" элементы, то вся группа перестает масштабироваться по горизонтали.
А если хотя бы одна группа из расположенных на странице не масштабируется, то не масштабируются и все остальные.
В результате вся страница не растягивается по горизонтали.
Ограничения на использование перевода строки в сообщениях с сервера
При вызове функции Сообщить() с сервера, переводы строки в сообщении будут проигнорированы.
&НаКлиенте
Процедура прц1()
Сообщить("Строка1" + Символы.ПС + "Строка2");
КонецПроцедуры
&НаСервере
Процедура прц2()
Сообщить("Строка1" + Символы.ПС + "Строка2");
КонецПроцедуры