1Cv82: Ограничения — различия между версиями

Материал из КинтВики
Перейти к: навигация, поиск
м
м
Строка 1: Строка 1:
[[Категория: Программирование в 1Cv82]]
+
[[Категория: Программирование в 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");
КонецПроцедуры