Имя: Пароль:
1C
 
УТ Не корректно подтягивается тип измерения в расширение
0 ЭЦ
 
13.09.23
16:46
Господа !
Имеется УТ 11.5
В УТ имеется расширение
В расширении заимствована форма списка документов ЗаказКлиента
На форме имеется динамический список.
В настройках видим текст запроса
//-----------------------------------------
ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
    ...
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
    888 КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
        ...
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
//------------------------------
В пользовательском режиме видим, что все поля списка начинающиеся с   ДокументЗаказКлиента.  -  отображаются нормально,
а все поля начинающиеся с    СостоянияЗаказовКлиентов.    - не заполнены - выводится прочерк
Смотрим регистр СостоянияЗаказовКлиентов - видим, что в нем имеются заполненные записи.
т.е. похоже, что ЛЕВОЕ СОЕДИНЕНИЕ = ЛОЖЬ
Смотрим измерение регистра - Заказ - видим что в расширении оно имеет тип "ЛюбаяСсылка" в основной конфигурации - это составной тип из двух документов
т.е. тип заимствованного объекта не совпадает с типом объекта основной конфы
Попытки удалить измерение из расширения и заново его перезаимствовать - ничего не дали.
Посмотрел другие регистры - там такого не наблюдается.
С чем это связано и куда теперь бежать?
Прошу подсказать.
1 lubitelxml
 
13.09.23
16:48
(0) попробуй удалить весь регистр из расширения и заново добавить поля
2 ЭЦ
 
13.09.23
17:48
(1) Удалил весь регистр - запустил в пользовательском режиме - никаких изменений.
Что есть этот регистр в измерении, что его нет - форма выглядит одинаково.
Заново заимствовал регистр и вес его атрибуты.
Тип опять - ЛюбаяСсылка
В пользовательском режиме - опять без изменений
т.е. Расширение не видит регистр
Что делать не понятно
3 ЭЦ
 
13.09.23
17:54
Попробовал повысить режим совместимости конфигурации до 8.3.18 - чтобы дала вручную назначить тип.
Говорит что ЗУП 8.3.18 не поддерживает
4 lubitelxml
 
13.09.23
17:56
"это составной тип из двух документов " - эти типы добавлены в расширение? Попробуй добавить, если нет
5 ЭЦ
 
13.09.23
18:33
(4) Да уже добавил. Все без изменений
6 lubitelxml
 
13.09.23
18:44
Платформа последняя?
7 lubitelxml
 
13.09.23
18:49
Через консоль запрос тоже не отображается? Пробовал сейчас в расширение добавить заказ из твоего РС - тоже любая ссылка становится
8 ЭЦ
 
14.09.23
22:29
(6) 1С:Предприятие 8.3 (8.3.22.2143)
9 ЭЦ
 
14.09.23
22:36
Изменил запрос -
Было   ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
Стало
  //    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
        888 КАК ПроцентОплаты,
Ничего не изменилось - восьмерки не появились.
Видимо дело не в регистре
10 AlvlSpb
 
14.09.23
22:51
(0) "Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)" ©
По идеи такое левое соединение должно вообще не работать, выдавать ошибку.
Вот так не пробовал? "ПО (ДокументЗаказКлиента.Ссылка = СостоянияЗаказовКлиентов.Заказ)"
11 ЭЦ
 
14.09.23
23:05
(10) Не вижу разницы
12 ЭЦ
 
14.09.23
23:13
(10) Попробовал - без изменений.
Удалил всю эту форму из расширения
Опять - не повлияло - дело не в расширении.
13 ЭЦ
 
14.09.23
23:51
Провел ревизию всех расширений :
На данный момент объект ЗаказКлиента заимствован в нескольких расширениях. Форма с динамическом списком не заимствована ни в одном.
Добавил на форму картинку - она появилась как и положено.
Удалил колонку из табличной части на форме.
Все нормально отрабатывает.
Убрал из запроса одно из полей
- тоже норм - оно пропало на форме.
т.е. все работает нормально за исключением того, что некоторые поля не заполняются ни каким способом.
Интересно также, что эти поля не пустые - в них стоит прочерк.
Чтобы это значило ?
14 ЭЦ
 
15.09.23
00:26
В соответствии вот с этим
https://its.1c.ru/db/metod8dev/content/4123/hdoc
отменил указание основной таблицы списка - без изменений
15 ЭЦ
 
15.09.23
00:27
Есть подозрение что текст запроса переопределяется программно.
Посмотрел его в ПриОткрытии() - текст не изменен
Возможно меняется где то еще позже?
16 ЭЦ
 
15.09.23
11:30
Еще изменил текст запроса :
/-----------------------------------------
ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
//    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    "Мой коммент" КАК Комментарий,
    ...
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты,
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
    888 КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
        ...
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
//------------------------------

На этот раз изменение сработало - в поле Комментарий наблюдаю "Мой коммент"
а в поле ПроцентОплаты - по прежнему прочерк
17 ЭЦ
 
15.09.23
12:12
Имею прогресс :
Если изменить наименование поля запроса :
//-------------------------------
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
//    888 КАК ПроцентОплаты,
    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК МойПроцентОплаты,  
        ...
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
//------------------------------
и на форме подтянуть соответствующий элемент списка то все начинает работать

1 удалить элемент формы "ПроцентОплаты"
2
18 ЭЦ
 
15.09.23
12:15
Таким образом имеем следующее :
гдето существуют настройки элемента формы с именем "ПроцентОплаты" которые не дают ему отображать требуемые данные, а отображают прочерк.
Где бы это оно могло быть?
19 lubitelxml
 
15.09.23
12:51
(17) сделай алиас ПроцентОплаты1 и попробуй
20 ЭЦ
 
15.09.23
13:19
Интересное продолжается :
Нашел установку условного оформления :
    Элемент = СписокУсловноеОформление.Элементы.Добавить();
    Элемент.Представление = НСтр("ru = 'Скрытие итогов по заказу при учете расчетов по договорам или накладным'");
    
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("ДолгКлиента");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("НашДолг");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("ПроцентДолга");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("ПроцентОплаты");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("СуммаОплаты");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("СуммаПросроченнойОплаты");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("СуммаОтгрузки");
    Элемент.Поля.Элементы.Добавить().Поле = Новый ПолеКомпоновкиДанных("ПроцентОтгрузки");
    
    СписокПорядковРасчета = Новый СписокЗначений();
    СписокПорядковРасчета.Добавить(Перечисления.ПорядокРасчетов.ПоЗаказам);
    СписокПорядковРасчета.Добавить(Перечисления.ПорядокРасчетов.ПоЗаказамНакладным);
    
    ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПорядокРасчетов");
    ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.НеВСписке;
    ОтборЭлемента.ПравоеЗначение = СписокПорядковРасчета;
    
    Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", WebЦвета.Серый);
    Элемент.Оформление.УстановитьЗначениеПараметра("Текст", НСтр("ru = '-'"));
//-----------------------------------
Тут как раз перечислены все не отображающиеся элементы списка
Вызывается ПриСозданииНаСервере()
Закомментировал вызов УстановкиУсловногоОформления
Однако при открытии формы опять ничего не заполнено - наблюдаю прочерк во всех полях
21 lubitelxml
 
15.09.23
14:02
(20) тут просто раскраска списка
Пробуй так:
ВЫБРАТЬ
    ДокументЗаказКлиента.Ссылка КАК Ссылка,
    ДокументЗаказКлиента.ПометкаУдаления КАК ПометкаУдаления,
    ДокументЗаказКлиента.Номер КАК Номер,
    ДокументЗаказКлиента.Дата КАК Дата,
    ДокументЗаказКлиента.НомерПоДаннымКлиента КАК НомерПоДаннымКлиента,
    ДокументЗаказКлиента.ДатаПоДаннымКлиента КАК ДатаПоДаннымКлиента,
    ДокументЗаказКлиента.Проведен КАК Проведен,
    ДокументЗаказКлиента.Приоритет КАК Приоритет,
    ДокументЗаказКлиента.Партнер КАК Партнер,
    ДокументЗаказКлиента.Контрагент КАК Контрагент,
//    ДокументЗаказКлиента.Комментарий КАК Комментарий,
    "Мой коммент" КАК Комментарий,
//    ...
    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОплаты, 0) КАК СуммаОплаты1
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОплаты, 0) КАК ПроцентОплаты,    
//    888 КАК ПроцентОплаты,
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.СуммаОтгрузки, 0) КАК СуммаОтгрузки,
//   ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентОтгрузки, 0) КАК ПроцентОтгрузки,
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ПроцентДолга, 0) КАК ПроцентДолга,
//    ЕСТЬNULL(СостоянияЗаказовКлиентов.ДатаСобытия, ДАТАВРЕМЯ(1, 1, 1)) КАК ДатаСобытия,
//   ЕСТЬNULL(СостоянияЗаказовКлиентов.ЕстьРасхожденияОрдерНакладная, ЛОЖЬ) КАК ЕстьРасхожденияОрдерНакладная,
//       ...
ИЗ
    Документ.ЗаказКлиента КАК ДокументЗаказКлиента
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СостоянияЗаказовКлиентов КАК СостоянияЗаказовКлиентов
    ПО (СостоянияЗаказовКлиентов.Заказ = ДокументЗаказКлиента.Ссылка)
22 lubitelxml
 
15.09.23
14:02
Если нет - значит регистр пустой. Если нет - чисти кеш и делай ТиИ
23 lubitelxml
 
15.09.23
14:08
(21) я сейчас ради интереса открыл последнюю УТ 11.5.12 - вставил твой запрос в консоль отчетов - у меня все ок, выводятся поля все
24 ЭЦ
 
15.09.23
14:37
(21) Тут не просто раскраска списка, тут еще значение в ячейке устанавливается - тот самый прочерк.
Так - работать будет - но мне надо именно ПроцентОплаты.
Оно выводится, но только если алиас поменять. Иначе выводит прочерк как и написано в УстановкеУсловногоОформления
Регистр не пустой - проверял.
Кеш почистил.
25 shuhard
 
15.09.23
14:48
(23) сломай связь партнер - контрагент и получишь -
26 lubitelxml
 
15.09.23
14:48
(24) "Так - работать будет - но мне надо именно ПроцентОплаты. " - потому что ПроцентОплаты - это поле РС, сам не так давно ахренел от таких приколов новой платформы. Закинь ПроцентОплаты1 в вт, там алиас сделай "ПроцентОплаты" - и будет все ок, ну и так для всех полей.
27 ЭЦ
 
15.09.23
15:12
(26) К этому все и идет - буду править основную конфигурацию.
Удивляет, что при отключенном условном оформлении она его все равно оформляет.
Закомментировал вызов УстановкаУсловногоОформления()
поставил точку останова - вижу что в условное оформление не заходит и все равно - оформляет.
Возможно еще она туда както асинхронно заходит
28 ЭЦ
 
15.09.23
16:03
Забил пока на эти чудеса.
Добавил форму в расширение и в нем переименовал проблемные поля
Все заработало.
Осталось чувство не удовлетворения
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший