|
Реквизит объекта не найден | ☑ | ||
---|---|---|---|---|
0
SnowBarsCloud
08.01.22
✎
22:01
|
Столкнулся с ситуацией, есть конфигурация УНФ 1.6.25.236
Платформа 8.3.20.1613 Клиент перенес конфигурацию в чистую базу, заполнил первоначальными данными При выборе номенклатуры, например в документе "Заказ покупателя" выходит ошибка "Поле объекта не найдено (Длина)". Поле такое есть. Дело в том, что в оригинале каким то образом в клиентской функции (и даже в чисто клиентском модуле) работает констукция "СтрокаТабличнойЧасти.Номенклатура.Длина". В перенесенной копии само собой не отрабатывает. Я чет вообще в растеряности)) Помогите) |
|||
1
Amra
08.01.22
✎
22:04
|
Работали в старой базе в толстом клиенте
|
|||
2
AlvlSpb
08.01.22
✎
22:08
|
Не нашел в Заказе покупателя в коде конструкцию СтрокаТабличнойЧасти.Номенклатура.Длина. Случаем не доработка? В какой процедуре?
|
|||
3
SnowBarsCloud
08.01.22
✎
22:08
|
Доработка
Поле объекта не обнаружено (Длина) {ОбщийМодуль.УправлениеНебольшойФирмойКлиент.Модуль(66)}: Если СтрокаТабличнойЧасти.Номенклатура.Длина > 0 И СтрокаТабличнойЧасти.Номенклатура.Объем = 0 Тогда {Документ.ЗаказПоставщику.Форма.ФормаДокумента.Форма(2231)}: УправлениеНебольшойФирмойКлиент.РассчитатьСуммыВСтрокеТЧПоступление(СтрокаТабличнойЧасти, ПараметрыРасчета); {Документ.ЗаказПоставщику.Форма.ФормаДокумента.Форма(1057)}: РассчитатьСуммуВСтрокеТабличнойЧасти(); {Справочник.Номенклатура.Форма.ФормаСписка.Форма(1021)}: ОповеститьОВыборе(СтруктураПараметров); //ФУНКЦИЯ Если СтрокаТабличнойЧасти.Номенклатура.Длина > 0 И СтрокаТабличнойЧасти.Номенклатура.Объем = 0 Тогда СтрокаТабличнойЧасти.Куб1 = СтрокаТабличнойЧасти.Номенклатура.Длина * СтрокаТабличнойЧасти.Количество; Иначе СтрокаТабличнойЧасти.Куб1 = СтрокаТабличнойЧасти.Номенклатура.Объем * СтрокаТабличнойЧасти.Количество; КонецЕсли; Если НЕ ПараметрыРасчета.Свойство("РассчитатьСуммуСкидки") И НЕ ПараметрыРасчета.Свойство("РассчитатьПроцентСкидки") Тогда ПараметрыРасчета.Вставить("РассчитатьСуммуСкидки", Истина); КонецЕсли; Если НЕ ПараметрыРасчета.Свойство("РассчитатьСумму") И НЕ ПараметрыРасчета.Свойство("РассчитатьЦену") Тогда ПараметрыРасчета.Вставить("РассчитатьСумму", Истина); КонецЕсли; Если СтрокаТабличнойЧасти.Свойство("Кратность") И СтрокаТабличнойЧасти.Свойство("Коэффициент") Тогда КоличествоСтроки = СтрокаТабличнойЧасти.Куб1 * СтрокаТабличнойЧасти.Кратность * СтрокаТабличнойЧасти.Коэффициент; Иначе КоличествоСтроки = СтрокаТабличнойЧасти.Куб1; КонецЕсли; Если ПараметрыРасчета.Свойство("СброситьФлагСкидкиРассчитаны") И ПараметрыРасчета.СброситьФлагСкидкиРассчитаны И СтрокаТабличнойЧасти.Свойство("ПроцентАвтоматическойСкидки") Тогда СтрокаТабличнойЧасти.ПроцентАвтоматическойСкидки = 0; СтрокаТабличнойЧасти.СуммаАвтоматическойСкидки = 0; КонецЕсли; Если СтрокаТабличнойЧасти.Свойство("ПроцентСкидкиНаценки") Тогда ЕстьСкидкаБонусом = СтрокаТабличнойЧасти.Свойство("СуммаСкидкиОплатыБонусом"); Если ПараметрыРасчета.Свойство("РассчитатьЦену") И ПараметрыРасчета.РассчитатьЦену=Истина Тогда //Введена сумма строки, нужно пересчитать цену и сумму скидки Если КоличествоСтроки <> 0 Тогда СтрокаТабличнойЧасти.Цена = (СтрокаТабличнойЧасти.Сумма - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0))/((1 - СтрокаТабличнойЧасти.ПроцентСкидкиНаценки/100)*КоличествоСтроки); СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Окр((КоличествоСтроки * СтрокаТабличнойЧасти.Цена - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0)) * СтрокаТабличнойЧасти.ПроцентСкидкиНаценки / 100, 2); КонецЕсли; ИначеЕсли ПараметрыРасчета.Свойство("РассчитатьПроцентСкидки") И ПараметрыРасчета.РассчитатьПроцентСкидки И СтрокаТабличнойЧасти.Сумма > 0 Тогда //Введена сумма скидки, нужно пересчитать процент скидки Если СтрокаТабличнойЧасти.СуммаСкидкиНаценки >= СтрокаТабличнойЧасти.Сумма Тогда СтрокаТабличнойЧасти.СуммаСкидкиНаценки = СтрокаТабличнойЧасти.Сумма; СтрокаТабличнойЧасти.Сумма = 0; СтрокаТабличнойЧасти.ПроцентСкидкиНаценки = 100; Иначе СтрокаТабличнойЧасти.ПроцентСкидкиНаценки = Окр(100*СтрокаТабличнойЧасти.СуммаСкидкиНаценки / (КоличествоСтроки * СтрокаТабличнойЧасти.Цена - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0)), 2); КонецЕсли; СтрокаТабличнойЧасти.Сумма = КоличествоСтроки * СтрокаТабличнойЧасти.Цена - СтрокаТабличнойЧасти.СуммаСкидкиНаценки - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0); Иначе //Если введен процент скидки, или если указаны и процент, и сумма, пересчитываем сумму скидки из процента, указанного в строке СтрокаТабличнойЧасти.СуммаСкидкиНаценки = Окр((КоличествоСтроки * СтрокаТабличнойЧасти.Цена - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0)) * СтрокаТабличнойЧасти.ПроцентСкидкиНаценки / 100, 2); СтрокаТабличнойЧасти.Сумма = КоличествоСтроки * СтрокаТабличнойЧасти.Цена - СтрокаТабличнойЧасти.СуммаСкидкиНаценки - ?(ЕстьСкидкаБонусом, СтрокаТабличнойЧасти.СуммаСкидкиОплатыБонусом, 0); КонецЕсли; Иначе Если ПараметрыРасчета.Свойство("РассчитатьЦену") И ПараметрыРасчета.РассчитатьЦену=Истина Тогда //Введена сумма строки, нужно пересчитать цену с сумму скидки СтрокаТабличнойЧасти.Цена = ?(КоличествоСтроки=0, 0, СтрокаТабличнойЧасти.Сумма / КоличествоСтроки); Иначе СтрокаТабличнойЧасти.Сумма = СтрокаТабличнойЧасти.Цена * КоличествоСтроки; КонецЕсли; КонецЕсли; Если СтрокаТабличнойЧасти.Свойство("СуммаСкидки") Тогда СтрокаТабличнойЧасти.СуммаСкидки = СтрокаТабличнойЧасти.СуммаСкидкиНаценки; КонецЕсли; РассчитатьСуммуНДСИВсего(СтрокаТабличнойЧасти, ПараметрыРасчета); |
|||
4
SnowBarsCloud
08.01.22
✎
22:09
|
При этом оно работает как то в боевой базе, а в новой нет..
|
|||
5
SnowBarsCloud
08.01.22
✎
22:10
|
Думал может расширения, все расширения выключены
|
|||
6
SnowBarsCloud
08.01.22
✎
22:12
|
Как прирепить фото в сообщении?
|
|||
7
SnowBarsCloud
08.01.22
✎
22:13
|
Насчет толстого клиента, сейчас попробовал запустить отладку в режиме толстого клиента, все так же. Может я что не так понял
|
|||
8
AlvlSpb
08.01.22
✎
22:16
|
Не так перенесли доработку. Поставь тоску останова и посмотри что у тебя в СтрокаТабличнойЧасти
|
|||
9
AlvlSpb
08.01.22
✎
22:16
|
(6) Выложи на любой сайт с фото, например https://radikal.ru/ а ссылку сюда
|
|||
10
SnowBarsCloud
08.01.22
✎
22:17
|
СтрокаТабличнойЧасти.Номенклатура - ссылка, но не могу обработиться к свойствам, ибо &НаКлиенте
В это же время в боевой даже в клиентском модуле спокойно обращаются к свойствам.. |
|||
11
AlvlSpb
08.01.22
✎
22:21
|
(10) Ну так получи на сервере функцией и верни на клиент, пять-шесть строк кода, какая проблема?
|
|||
12
SnowBarsCloud
08.01.22
✎
22:22
|
Это как в новой базе
[url=https://radikal.ru][img]https://c.radikal.ru/c33/2201/55/1b453a08c3c7.png[/img][/url] Это где работает [url=https://radikal.ru][img]https://b.radikal.ru/b11/2201/0e/8c8356333109.png[/img][/url] Свойства модуля [url=https://radikal.ru][img]https://b.radikal.ru/b43/2201/31/6b32e7fbaaa0.png[/img][/url] |
|||
13
SnowBarsCloud
08.01.22
✎
22:23
|
Какая проблема, не могу я из клиенского модуля обработиться к серверу, например "ОбщегоНазначения". Переменная не определена
|
|||
14
AlvlSpb
08.01.22
✎
22:24
|
(12) Ссылки правильно выложи
|
|||
15
SnowBarsCloud
08.01.22
✎
22:25
|
||||
16
SnowBarsCloud
08.01.22
✎
22:29
|
Фото в нормальном качестве
https://drive.google.com/drive/folders/1K13Sdy3jwsJdofPsv-PpL_N8qgwygNZp?usp=sharing |
|||
17
AlvlSpb
08.01.22
✎
22:40
|
(16) Чтобы Радикал давал норм картинки, убирай галку Уменьшить картинки до.... и достаточно jpg
По вопросу вижу только одно: Толстый и тонкий клиент. Надо искать другое решение. Или ставить галку сервер у общего модуля (все-равно конфа без замка), но мое бы решение - не трогать общий модуль конфы, а сделать все в расширении |
|||
18
SnowBarsCloud
08.01.22
✎
22:44
|
Так а что сделать? Почему оно в одной работает, в копии (чисто перенесли конфу, та же платформа, то же все) не работает?
Как вообще на УФ возможно получить свойство объекта на клиенте? Разве на клиенте может быть что-то кроме ссылки? |
|||
19
AlvlSpb
08.01.22
✎
22:47
|
Попробуй в конфигураторе Сервис-Параметры-Общие установить Управляемое и обычное приложение и запустить в толстом клиенте
|
|||
20
SnowBarsCloud
08.01.22
✎
22:49
|
Пробовал, без измений.
Плюс в параметрах запуска рабочей базы стоит "Толстый клиент", в копии стояло "Автоматически". Поставил руками "Толстый клиент". Без изменений, там работает, тут нет. Пробовал чистить данные КЭША и тд, ничего не менятся |
|||
21
AlvlSpb
08.01.22
✎
22:49
|
"Как вообще на УФ возможно получить свойство объекта на клиенте?" Только запросив данные с сервера
"Разве на клиенте может быть что-то кроме ссылки?" Все прямые реквизиты присутствуют. |
|||
22
AlvlSpb
08.01.22
✎
22:51
|
(20) Свои предложения высказал в (17) Другого, извини, не приходит в голову
|
|||
23
SnowBarsCloud
08.01.22
✎
22:52
|
"Все прямые реквизиты присутствуют."
Разве Номенклатура.РеквизитНоменклатуры можно получить на клиенте как "прямой реквизит"? |
|||
24
Сергиус
08.01.22
✎
22:53
|
(20)Какие галки у модуля УправлениеНебольшойФирмойКлиент в рабочей и в копии?
|
|||
25
SnowBarsCloud
08.01.22
✎
22:53
|
Спасибо, что помогаешь) Попробую другой вариант, возьму дт и удалю все данные, если никто больше не предложит варианты.
|
|||
26
SnowBarsCloud
08.01.22
✎
22:54
|
(24) Одна галочка Клиент, как на скриншоте в обеих базах, конфигурации полностью идентичные
|
|||
27
AlvlSpb
08.01.22
✎
22:55
|
(23) Нет не получишь, речь шла о СтрокаТабличнойЧасти. Все что после точки недоступно
|
|||
28
AlvlSpb
08.01.22
✎
22:55
|
(26) Где-то разница в параметрах запуска базы
|
|||
29
SnowBarsCloud
08.01.22
✎
22:56
|
(27) Ты об этом, это понятно, на "СтрокаТабличнойЧасти.Количество" оно не ругается. Ругается на обращение через точку
|
|||
30
SnowBarsCloud
08.01.22
✎
22:57
|
(28) ярылк запуска один, в параметрах запуска 1с стоят идентичные настройки "Толстый клиент", 8.3. Базы обе файловые
|
|||
31
SnowBarsCloud
08.01.22
✎
23:02
|
Завтра попробую выгрузить дт и загрузить в другую базу, после чего обрезать данные. Отпишусь, это должно заработать. Если есть какие то варианты, предлагайте, попробую, буду рад. Опыт важная штука)
|
|||
32
Сергиус
08.01.22
✎
23:20
|
(26)Ну тогда явный глюк. На Клиенте в режиме Управляемого приложения, нет возможности получить реквизиты ссылки(если только где то перед этим не делается серверный вызов)
|
|||
33
Сергиус
08.01.22
✎
23:22
|
+(32)И передавать в переменной СтрокаТабличнойЧасти не строку ТЧ, а ссылку на номенклатуру, тоже как то не совсем правильно..по крайней мере с точки зрения названий точно) Возможно надо весь стек вызовов раскручивать и смотреть что там. Но если вы говорите, что там все одинаково, тогда точно загадка.
|
|||
34
Сергиус
08.01.22
✎
23:24
|
+(33)Отбой, не туда глянул, всё нормально с этим)
|
|||
35
SnowBarsCloud
09.01.22
✎
13:45
|
(32) Что глюк это понятно, но как его решить и почему он происходит
|
|||
36
ДедМорроз
09.01.22
✎
13:55
|
А там длина для любой номенклатуры проверяется?
Просто,может быть,вид номенклатуры нужно выбрать такой,чтобы это условие не проверялось. Опять же,для запуска толстого клиента необходимо,чтобы у пользователя было поаво его запуска. |
|||
37
ДедМорроз
09.01.22
✎
14:14
|
Кроме того,если у модуля поставить галочки Сервер и ВызовСервера,но не ставить галочку Клиент,тг с клиента функции такого модуля можно вызвать - будет безконтекстный серверный вызов и будет работать доступ через точку.
|
|||
38
Сергиус
09.01.22
✎
14:25
|
(35)Если кэш очищен, у модуля стоит только одна галка Клиент и режим запуска Управляемое приложение, то отображать свойства элемента справочника никак не может в этот момент. Значит одно из этих условий нарушено, либо имеется некий глюк платформы в этом месте.
|
|||
39
SnowBarsCloud
10.01.22
✎
15:18
|
(36) Любой номенклатуры, видно что-то с настойками запуска. Взял ДТ, обрезал, все стало работать гуд. но если ставлю в запуске "Автоматически", то ничего не работает. На копии, выгруженную через ЦФ и так и так ошибка. В дт пока работает.... Так, а что значит права запуска тонкого клиента, это в настойках прав? Вот эти галочки на закладке основного дерева конфигурации?
|
|||
40
SnowBarsCloud
10.01.22
✎
15:19
|
(38) Платформа новая, вышла в середине декабря, так что не исключено, что все же глюк платформы
|
|||
41
Сергиус
10.01.22
✎
21:41
|
(40)Обе базы работают на этой версии платформы?
|
|||
42
Bad_Aleks
11.01.22
✎
08:23
|
(20) Был похожий глюк на Рознице 2.3 упр.формы.
Была добавлена база(копия рабочей), стояла галка "Автоматически". Так же не работало обращение к реквизиту, который точно был. При установки галки "Толстый клиент" - всё равно не работало. А вот если удалить базу из списка и опять добавить и установить сразу при добавлении - "Толстый клиент", тогда всё работало как и в основной рабочей базе. |
|||
43
ДедМорроз
11.01.22
✎
08:58
|
(42)можно базу не удалять,а просто кеш почистить.
На некоторых платформах кеш при смене клиента не обновляется,и толстый ведет себя как тонкий. |
|||
44
Kassern
11.01.22
✎
09:27
|
(15) а вам словосочетания толстый и тонкий клиент что-то говорят? Скорее всего нет. В базе источнике вы работаете в толстом клиенте, поэтому вам свойства номенклатуры доступны, а в новой базе вы работаете в тонком клиенте и процедура выполняется у вас &НаКлиенте, поэтому вам свойства номенклатуры через точку не доступны...
|
|||
45
Kassern
11.01.22
✎
09:28
|
(43) причем тут кэш?) Вы скрины посмотрите, там видно в каких клиентах ТС работает
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |