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

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

Текущая версия на 16:46, 7 июля 2016

Содержание

Ограничения динамических списков в 1С v8.2

Невозможно установить параметры запроса, если не выбрана основная таблица

При создании произвольного запроса динамического списка, необходимо указывать основную таблицу. Иначе в коде нельзя задать значения параметров запроса - список параметров пуст.

Если запрос устанавливается кодом, и он неправильный, то список параметров тоже пуст

При этом ошибка возникает не в момент установки текста запроса, а в момент установки параметров.

Нельзя группировать в запросе по основной таблице

Если в произвольном запросе указана основная таблица, то группировать по этой таблице не получится. Для обхода этого ограничения результирующую выборку можно соединить с еще одной таблицей и указать, что эта новая таблица основная.

Ограничения на получение данных текущей строки динамического списка

Если колонка динамического списка не отображается в таблице на форме, нельзя получить к ней доступ в коде через "ТекущиеДанные". Это ограничение можно преодолеть таким образом: сделать колонку в редакторе видимой, а при открытии формы скрывать ее (ЭтаФорма.Элементы.Список.ПодчиненныеЭлементы.Колонка.Видимость = ложь).

Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме

Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме. Необходимо в запросе динамического списка получать все необходимые реквизиты.

В случае когда основная таблица - накопительный регистр, наблюдаются странные ошибки платформы

После кликания мышкой по табличной части а потом по заголовку колонки, или при развороте на полный экран, платформа не могла найти объект "recorder". Помогло искусственное соединение регистра со справочником, который был сделан основной таблицей:

ВЫБРАТЬ
	ЦелевойЭтап.ЭтапБП КАК ЦелевойЭтап,
	ЦелевойЭтап.Регистратор.АвторПерехода КАК АвторПерехода,
	ЦелевойЭтап.Период КАК ДатаПерехода,
	ИсходныйЭтап.ЭтапБП КАК ИсходныйЭтап
ИЗ
	(ВЫБРАТЬ
		ЗадачиСтруктурныхЕдиниц.Регистратор КАК Регистратор,
		ЗадачиСтруктурныхЕдиниц.ЭтапБП КАК ЭтапБП,
		ЗадачиСтруктурныхЕдиниц.Период КАК Период
	ИЗ
		РегистрНакопления.ЗадачиСтруктурныхЕдиниц КАК ЗадачиСтруктурныхЕдиниц
	ГДЕ
		ЗадачиСтруктурныхЕдиниц.ЭкземплярБизнесПроцесса = &Процесс
		И ЗадачиСтруктурныхЕдиниц.Амплитуда = -1) КАК ИсходныйЭтап
		ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ЗадачиСтруктурныхЕдиниц КАК ЦелевойЭтап
		ПО ИсходныйЭтап.Регистратор = ЦелевойЭтап.Регистратор
		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ЭтапБП КАК ЭтапБПТаблица
		ПО ИсходныйЭтап.ЭтапБП = ЭтапБПТаблица.Ссылка
ГДЕ
	ЦелевойЭтап.ЭкземплярБизнесПроцесса = &Процесс
	И ЦелевойЭтап.Амплитуда = 1

Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме

Нельзя получать реквизиты объектов через точку, для отображения их в таблице на форме. Необходимо в запросе динамического списка получать все необходимые реквизиты.

Лучше не указывать синонимы для колонок Ссылка и Наименование

Если указать синоним для колонки Ссылка или Наименование в динамическом запросе, то результирующий список на форме не будет отображать Ссылку и Наименование.


Очищается ТабличныйДокумент при передаче его как параметр с Клиента на Сервер

Когда параметром передается ТабличныйДокумент из Клиента на Сервер, то его данные очищаются (остаются только группировки).

Ограничения размещения элементов в управляемой форме

Если в горизонтальной группе размещается несколько элементов, то "растягиваемым" может быть только первый.

В случае если разместить в такой группе другие "растягиваемые" элементы, то вся группа перестает масштабироваться по горизонтали.

А если хотя бы одна группа из расположенных на странице не масштабируется, то не масштабируются и все остальные.

В результате вся страница не растягивается по горизонтали.

Ограничения на использование перевода строки в сообщениях с сервера

При вызове функции Сообщить() с сервера, переводы строки в сообщении будут проигнорированы.

&НаКлиенте
Процедура прц1()
    Сообщить("Строка1" + Символы.ПС + "Строка2");
КонецПроцедуры

&НаСервере
Процедура прц2()
    Сообщить("Строка1" + Символы.ПС + "Строка2");
КонецПроцедуры