Имя: Пароль:
1C
 
Как устранить ошибку "Не найдено поле замены ИмяПоля"? Что она вообще значит?
0 Fragster
 
гуру
05.09.25
17:41
В сложном отчете с большим количеством наборов данных на самописной конфигурации при добавлении отбора по полю "Клиент" возникает ошибка "не найдено поле замены Клиент". Само поле в отчете что с отбором, что без него - есть. Как понять, чего ему не хватает?

на партнерском только https://www.homeclub.top/?p=878&i=1 посоветовали. убрал все галочки "обязательности" связей, не помогло.
1 Fragster
 
гуру
05.09.25
17:42
Интересно, что ошибка идет на следующем коде:

ПустыеВнешниеНаборы = Новый Структура("ДанныеПроцентаОтМаржи, ДанныеКоэффициентаПроцента", Новый ТаблицаЗначений, Новый ТаблицаЗначений);
  
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, _НовыеНастройки, Неопределено, , Тип("ГенераторМакетаКомпоновкиДанныхДляКоллекцииЗначений"));
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ПустыеВнешниеНаборы, Неопределено, Истина); // при выполнении этой строки

При этом, если остановиться на указанной строке, вызвать ирОбщий.От(СхемаКомпоновкиДанных, _НовыеНастройки, ПустыеВнешниеНаборы) и потом открыть объект в консоли компоновки - отчет сформируется нормально с правильными данными.
3 lEvGl
 
гуру
05.09.25
22:14
нууу это проблема вроде повторяющихся псевдонимов, то есть имена кривые, или не может найти или оно повторяется где-то
4 TormozIT
 
гуру
06.09.25
20:58
Сделай чистый тест. Тогда и другие смогут поковырять проблему.
5 Ботаник Гарден Меран
 
07.09.25
14:00
Можно выгрузить в схему в XML и там поискать "Клиент". Может найтись в странном месте.
Или после загрузки выгруженного обратно в СКД ошибка исправится.
6 Chai Nic
 
07.09.25
22:01
А кэш очищать пробовали?
7 toypaul
 
гуру
08.09.25
11:27
Поле замены это по-моему про внешние наборы данных. Проверь чтобы все соот-вовало
8 Fragster
 
гуру
08.09.25
11:38
основной вопрос в том, почему без отбора работает, а с отбором - нет?
9 Fragster
 
гуру
08.09.25
11:37
и почему при отладке через ИР TormozIT работает
10 Fragster
 
гуру
08.09.25
13:16
(7) да, см код в (1). на вход передаются пустые таблицы значений. если нет отбора - то все работает (что прям странно), если есть отбор (и при этом поле в наборе данных присутствует), то выдается такая вот ошибка.

после добавления колонок в передаваемые таблицы все заработало.

ДанныеПроцентаОтМаржи = Новый ТаблицаЗначений;
    ДанныеПроцентаОтМаржи.Колонки.Добавить("Клиент");
    ДанныеПроцентаОтМаржи.Колонки.Добавить("Месяц");
    ДанныеПроцентаОтМаржи.Колонки.Добавить("ПроцентОтМаржи");
    ДанныеПроцентаОтМаржи.Колонки.Добавить("Отдел");

    ДанныеКоэффициентаПроцента = Новый ТаблицаЗначений;
    ДанныеКоэффициентаПроцента.Колонки.Добавить("Клиент");
    ДанныеКоэффициентаПроцента.Колонки.Добавить("Месяц");
    ДанныеКоэффициентаПроцента.Колонки.Добавить("КоэффициентПроцента");
    ДанныеКоэффициентаПроцента.Колонки.Добавить("Отдел");
  
    ПустыеВнешниеНаборы = Новый Структура("ДанныеПроцентаОтМаржи, ДанныеКоэффициентаПроцента", ДанныеПроцентаОтМаржи, ДанныеКоэффициентаПроцента);

...
11 Fragster
 
гуру
08.09.25
13:17
то, что при отладке в ИР все работало немного приводило в замешательство. вероятно, там идут какие-то преобразования ВИД.
12 Garykom
 
гуру
08.09.25
14:40
(10) Вот тоже подумалось что это странно пустые таблицы без колонок как внешние наборы передавать и инициализировать с ними
Особенно если они внутри используются
13 TormozIT
 
гуру
08.09.25
14:55
(11) Консоль компоновки ИР создает все нужные колонки в пустых таблицах значений для выполнения компоновки с внешними наборами данных. В большинстве случаев это полезно. В твоем случае это было вредно, т.к. затруднило поиск причины ошибки.
14 ЕRPe
 
08.09.25
15:13
(0) СКД - адский черный ящик без нормальной трассировки процесса(. Надеюсь когда-нибудь сделают. А то смотришь на сбор факта бюджетирования в ЕРП и глаза на лоб немного лезут.. как из трех параметров сделать пицот.
15 TormozIT
 
гуру
08.09.25
15:17
(11) ВИД тут не причем. Не путай внешние источники данных (ВИД), т.е. объекты метаданных для подключения через ODBC к внешним БД, и внешние наборы данных системы компоновки данных.
16 Fragster
 
гуру
08.09.25
17:05
(15) опечатался, ВНД
17 Fragster
 
гуру
08.09.25
17:09
(12) там двойное формирование отчета происходит, один раз расширяется период и применяются специфические настройки (объединенные с настройками отчета), затем к полученным данным применяется обработка (получаются всякие коэффициенты на основании скользящего окна, типа "если клиент ездит каждый месяц на протяжении трех месяцев", причем параметры этого задаются в справочниках) и обработанные данные запихиваются в качестве ВНД и отчет формируется с исходными настройками.
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший