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