|
Параметры динамического списка | ☑ | ||
---|---|---|---|---|
0
Pazilaya Ustrica
13.04.23
✎
13:11
|
Всем привет. Проблема с параметрами динамического списка:
Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ВТ_Заблокирован.Пользователь <<?>>= &Пользователь Проблема в том, что следующий запрос прикрепил для проверки во внешний отчет и там он отрабатывает на ура, а в динамическом списке выдает вышеупомянутую ошибку ЗапросВЫБРАТЬ ВЫБОР КОГДА СУММА(ВЫБОР КОГДА ДатыЗапретаНовые.ДатаЗапрета < НАЧАЛОПЕРИОДА(СтатусыДокументаЗаказаСрезПоследних.ДатаФакт, ДЕНЬ) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) = 0 ТОГДА 0 КОГДА СУММА(ВЫБОР КОГДА ДатыЗапретаНовые.ДатаЗапрета < НАЧАЛОПЕРИОДА(СтатусыДокументаЗаказаСрезПоследних.ДатаФакт, ДЕНЬ) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) = КОЛИЧЕСТВО(СчетВходящийСписокУслуг.НомерСтроки) ТОГДА 2 КОГДА СУММА(ВЫБОР КОГДА ДатыЗапретаНовые.ДатаЗапрета < НАЧАЛОПЕРИОДА(СтатусыДокументаЗаказаСрезПоследних.ДатаФакт, ДЕНЬ) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) <> 0 И СУММА(ВЫБОР КОГДА ДатыЗапретаНовые.ДатаЗапрета < НАЧАЛОПЕРИОДА(СтатусыДокументаЗаказаСрезПоследних.ДатаФакт, ДЕНЬ) ТОГДА 0 ИНАЧЕ 1 КОНЕЦ) < КОЛИЧЕСТВО(СчетВходящийСписокУслуг.НомерСтроки) ТОГДА 1 КОНЕЦ КАК ИндексКартинки, СчетВходящийСписокУслуг.Ссылка КАК Ссылка, ВЫБОР КОГДА ДатыЗапретаНовые.Пользователь = NULL ТОГДА ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ИНАЧЕ ДатыЗапретаНовые.Пользователь КОНЕЦ КАК Пользователь ПОМЕСТИТЬ ВТ_Заблокирован ИЗ РегистрСведений.ДатыЗапретаНовые КАК ДатыЗапретаНовые, Документ.СчетВходящий.СписокУслуг КАК СчетВходящийСписокУслуг ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СтатусыДокументаЗаказа.СрезПоследних КАК СтатусыДокументаЗаказаСрезПоследних ПО (ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(СчетВходящийСписокУслуг.ДокументОснованиеРасхода) = ТИП(Документ.Заказ) ТОГДА СчетВходящийСписокУслуг.ДокументОснованиеРасхода КОГДА ТИПЗНАЧЕНИЯ(СчетВходящийСписокУслуг.ДокументОснованиеРасхода) = ТИП(Документ.ТранспортнаяОперация) ТОГДА СчетВходящийСписокУслуг.ДокументОснованиеРасхода.ОсновнойЗаказ КОНЕЦ = СтатусыДокументаЗаказаСрезПоследних.Документ) ГДЕ СтатусыДокументаЗаказаСрезПоследних.Статус = ЗНАЧЕНИЕ(Перечисление.СостояниеПроцесса.Завершена) И ДатыЗапретаНовые.Документ = "Заказ" СГРУППИРОВАТЬ ПО СчетВходящийСписокУслуг.Ссылка, ВЫБОР КОГДА ДатыЗапретаНовые.Пользователь = NULL ТОГДА ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ИНАЧЕ ДатыЗапретаНовые.Пользователь КОНЕЦ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ДокументСчетВходящий.Ссылка КАК Ссылка, ВТ_Заблокирован.ИндексКартинки КАК ИндексКартинки, ДокументСчетВходящий.ПометкаУдаления КАК ПометкаУдаления, ДокументСчетВходящий.Номер КАК Номер, ДокументСчетВходящий.Дата КАК Дата, ДокументСчетВходящий.Проведен КАК Проведен, ДокументСчетВходящий.UIDДокБУ КАК UIDДокБУ, ДокументСчетВходящий.Автор КАК Автор, ДокументСчетВходящий.ВалютаДокумента КАК ВалютаДокумента, ДокументСчетВходящий.ВидСчетаВходящего КАК ВидСчетаВходящего, ДокументСчетВходящий.ДатаОплаты КАК ДатаОплаты, ДокументСчетВходящий.ДатаСоздания КАК ДатаСоздания, ДокументСчетВходящий.ДатаСчетаВх КАК ДатаСчетаВх, ДокументСчетВходящий.ДляБухгалтерскогоУчёта КАК ДляБухгалтерскогоУчёта, ДокументСчетВходящий.ДокументОснование КАК ДокументОснование, ДокументСчетВходящий.Клиент КАК Клиент, ДокументСчетВходящий.Покупатель КАК Покупатель, ДокументСчетВходящий.ПокупательДоговор КАК ПокупательДоговор, ДокументСчетВходящий.ОтветственныйБУ КАК ОтветственныйБУ, ДокументСчетВходящий.КлиентДоговор КАК КлиентДоговор, ВЫРАЗИТЬ(ДокументСчетВходящий.Комментарий КАК СТРОКА(1000)) КАК Комментарий, ДокументСчетВходящий.НомерСчетаВх КАК НомерСчетаВх, ДокументСчетВходящий.Организация КАК Организация, ДокументСчетВходящий.Офис КАК Офис, ДокументСчетВходящий.Подразделение КАК Подразделение, ДокументСчетВходящий.СостояниеПодписанияНаОплату КАК СостояниеПодписанияНаОплату, ДокументСчетВходящий.СпособРаспределенияРасходов КАК СпособРаспределенияРасходов, ДокументСчетВходящий.СтрокаДокументОснование КАК СтрокаДокументОснование, ДокументСчетВходящий.СуммаДокумента КАК СуммаДокумента, ДокументСчетВходящий.ЦенаВключаетНДС КАК ЦенаВключаетНДС, ДокументСчетВходящий.Согласован КАК Согласован, ДокументСчетВходящий.ДатаСогласования КАК ДатаСогласования, ДокументСчетВходящий.ДатаОказанияУслуг КАК ДатаОказанияУслуг, ДокументСчетВходящий.КлиентБанковскийСчет КАК БанковскийСчетКонтрагента, ДокументСчетВходящий.ГруппаЗатрат КАК ГруппаЗатрат, ДокументСчетВходящий.ВариантДатыКурсаВалюты КАК ВариантДатыКурсаВалюты, ДокументСчетВходящий.КурсВалюты КАК КурсВалюты, ДокументСчетВходящий.НомерАкта КАК НомерАкта, ДокументСчетВходящий.ДатаАкта КАК ДатаАкта, ДокументСчетВходящий.НомерСФ КАК НомерСФ, ДокументСчетВходящий.ДатаСФ КАК ДатаСФ, ДокументСчетВходящий.ДатаКурсаВалюты КАК ДатаКурсаВалюты, ДокументСчетВходящий.МоментВремени КАК МоментВремени, ОтслеживаниеСчетаВходящегоСрезПоследних.КодСостояния КАК Состояние, ДокументСчетВходящий.ПервичныйПоставщик КАК ПервичныйПоставщик, ДокументСчетВходящий.СуммаВзаиморасчетов КАК СуммаВзаиморасчетов, ДокументСчетВходящий.СуммаРасчетов КАК СуммаРасчетов, ДокументСчетВходящий.СуммаАвансов КАК СуммаАвансов, ДокументСчетВходящий.СуммаРасчетовСУчетомАвансов КАК СуммаРасчетовСУчетомАвансов, 0 КАК СуммаОплаты, ДокументСчетВходящий.КлиентДоговор.ВалютаРасчетов КАК ВалютаРасчетов ИЗ Документ.СчетВходящий КАК ДокументСчетВходящий ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОтслеживаниеСчетаВходящего.СрезПоследних КАК ОтслеживаниеСчетаВходящегоСрезПоследних ПО ДокументСчетВходящий.Ссылка = ОтслеживаниеСчетаВходящегоСрезПоследних.Счет ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Заблокирован КАК ВТ_Заблокирован ПО ДокументСчетВходящий.Ссылка = ВТ_Заблокирован.Ссылка ГДЕ ВТ_Заблокирован.Пользователь = &Пользователь Параметр &Пользователь определяется вызовом к общему модулю: ПолучитьЭлементСправочникаПользователи.ПолучитьПользователя() Непосредственно код общёго модуля: &НаСервере Функция ПолучитьПользователя() Экспорт Возврат(ПараметрыСеанса.ТекущийПользователь); КонецФункции Помогите разобраться, пожалуйста. |
|||
1
Волшебник
13.04.23
✎
13:13
|
в РС.ДатыЗапретаНовые поле Пользователь может быть не только спр. Пользователи
Используйте ВЫРАЗИТЬ или отбор типа ССЫЛКА |
|||
2
lubitelxml
13.04.23
✎
13:13
|
ВЫБОР
КОГДА ДатыЗапретаНовые.Пользователь = NULL ТОГДА ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка) ИНАЧЕ ДатыЗапретаНовые.Пользователь КОНЕЦ Вот это заменить на ЕстьNULL(ДатыЗапретаНовые.Пользователь,ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)) |
|||
3
Волшебник
13.04.23
✎
13:13
|
Да, ещё может быть Неопределено в ПараметрыСеанса.ТекущийПользователь
|
|||
4
lubitelxml
13.04.23
✎
13:14
|
(1) плюс один - приведи к типу
|
|||
5
Pazilaya Ustrica
13.04.23
✎
13:31
|
(1) (4) РС.ДатыЗапретаНовые поле Пользователь явно указан тип - Справочник.Пользователи
Но, для эксперимента попробовал сравнивать наименование пользователя в запросе и в общем модуле: ВЫРАЗИТЬ(ДатыЗапретаНовые.Пользователь.Наименование КАК СТРОКА(100)) КАК Пользователь И сравниваю это с Возврат(ПараметрыСеанса.ТекущийПользователь.Наименование); Да и в любом случае с первоначальным запросом все же отрабатывает, если всё поместить во внешний отчет, поэтому в ПараметрыСеанса.ТекущийПользователь возвращается нужное значение. Так же пробовал получить пользователя вот так вот, но ошибка та же: Справочники.Пользователи.НайтиПоНаименованию(ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя) |
|||
6
Волшебник
13.04.23
✎
13:45
|
(5) Каков результат сравнения? Где текст ошибки?
|
|||
7
Pazilaya Ustrica
13.04.23
✎
14:01
|
(6) Текст ошибки такой же.
Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. ВТ_Заблокирован.Пользователь <<?>>= &Пользователь Костыльно победил эту ситуацию тем, что пользователя преобразовал в строку, и сравниваю с таким же строчным значением в регистре) Но, я понимаю, что это неправильно, так как если в базе будут существовать пользователи с одинаковыми именем, фамилией и отчеством и при этом даты запрета будут разными, то все посыпется |
|||
8
Волшебник
13.04.23
✎
14:13
|
(7) Программа Вас не обманывает. Там лишние типы: или строка неогр.длины или Неопределено.
Старайтесь! |
|||
9
Волшебник
13.04.23
✎
14:15
|
Это неправильно:
ВЫБОР КОГДА ДатыЗапретаНовые.Пользователь = NULL Правильно так: ВЫБОР КОГДА ДатыЗапретаНовые.Пользователь ЕСТЬ NULL |
|||
10
Pazilaya Ustrica
13.04.23
✎
14:26
|
(9) Понял, спасибо.
Но если программа меня не обманывает, то как объяснить то, что во внешнем отчете все отрабатывает? |
|||
11
Волшебник
13.04.23
✎
14:27
|
(10) Может просто почистить кэш?
|
|||
12
Pazilaya Ustrica
13.04.23
✎
14:45
|
(11) Не помогло. Попробовал упростить запрос до
ВЫБРАТЬ Пользователи.Ссылка КАК Ссылка, Пользователи.ВерсияДанных КАК ВерсияДанных, Пользователи.ПометкаУдаления КАК ПометкаУдаления, Пользователи.Наименование КАК Наименование, Пользователи.Предопределенный КАК Предопределенный, Пользователи.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных, Пользователи.Представление КАК Представление ИЗ Справочник.Пользователи КАК Пользователи ГДЕ Пользователи.Ссылка = &Ссылка На картинке все видно - https://ibb.co/gRnqGYN |
|||
13
Волшебник
13.04.23
✎
14:59
|
(12) Зачем вам динамический список пользователей с отбором по конкретному пользователю? Это бессмыслица какая-то
|
|||
14
Pazilaya Ustrica
13.04.23
✎
15:27
|
(13) Это я показал пример, что даже так не работает. Конечно, я это использовать не буду. Просто для наглядности того, что не работает
|
|||
15
lubitelxml
13.04.23
✎
15:29
|
(14) чудеса какие-то, либо кривой параметр передаете, либо кеш почистить нужно
|
|||
16
Волшебник
13.04.23
✎
15:31
|
(14) Вы уж там разберитесь, где Вы накосячили.
Может присвоить значение ПараметрыСеанса.ТекущийПользователь ? |
|||
17
Pazilaya Ustrica
13.04.23
✎
15:32
|
(15) В параметр передаю Справочники.Пользователи.НайтиПоНаименованию("Имя Фамилия отчество"), даже так нини. В конце рабочего дня попробую серверный кеш почистить
|
|||
18
Pazilaya Ustrica
13.04.23
✎
15:33
|
(16) И так тоже пробовал. Тоже самое..
|
|||
19
lubitelxml
13.04.23
✎
15:34
|
Отладчик то что говорит? В параметры дс в итоге ссылка передается?
|
|||
20
Скользящий
13.04.23
✎
15:34
|
(10) У динамических списков много ограничений. Можно на ИТС посмотреть статьи на эту тему.
|
|||
21
lubitelxml
13.04.23
✎
15:35
|
Там где косячит установка параметров - консолью открыть этот запрос, и убрать условие на текущего пользователя, и посмотреть какой тип значения у тебя в итоге будет в таблице, возможно поймешь где косячнул с типами
|
|||
22
Pazilaya Ustrica
13.04.23
✎
15:37
|
(19) Отладчик не ловит запросы в динамическом списке)
(21) Во внешнем отчете все отрабатывает, видимо дело и в правду в ограничении динамических списков |
|||
23
Pazilaya Ustrica
13.04.23
✎
15:41
|
Боже мой.. Не равно нужно. А в(ссылка)
|
|||
24
Pazilaya Ustrica
13.04.23
✎
15:42
|
Всем спасибо большое за участие!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |