Не найдено поле замены 1с скд что это значит
Перейти к содержимому

Не найдено поле замены 1с скд что это значит

  • автор:

Не найдено поле замены

Ошибка формирования отчета: поле не найдено.
Всем доброе утро! Столкнулась с ошибкой формирования отчёта — Поле не найдено "Поле1". Самое.

Ошибка при выполнении запроса: Поле не найдено
Всем снова привет!:) Написала запрос, казалось бы простенький. Но выдает ошибку. Не могу.

Пишет что поле не найдено
Пишет что поле не найдено подскажите в коде? Процедура ПриОткрытии() ТП.Очистить();.

УНФ обновление нетиповой. ВнешняяОбработка поле не найдено
Здравствуйте, господа! Передо мной стоит задача обновить нетиповую конфигурацию УНФ сразу на.

Сообщение от Roman2408

FieldByName: поле не найдено
Здравствуйте. В коде на последней строчке выскакивает данная ошибка: BandQuery: Field ‘название’.

Поле не найдено СКД
В отчете на скд не выводятся поля "пользователь", "датаизготовления", "дата предполагаемой.

Не найдено поле динамического списка,
пишу ВЫБРАТЬ РАЗЛИЧНЫЕ ВЫБОР КОГДА ДОБАВИТЬКДАТЕ(&ТекущаяДата, ДЕНЬ, 10) >=.

Создание файлов в папке без замены имеющихся путем замены цифр в их имени по порядку
Всем доброго времени суток! Надо при нажатии кнопку создавать файл "Ins001.txt" в директории.

Не найдено поле замены 1с скд что это значит

Местный босс — администратор

Зарегистрирован: 06.01.2005
Показать/Спрятать Откуда: Оренбург
Сообщения: 2587
Скрытый
Балл: 1014

Дорабатывая обработку, активно использующую возможности системы компоновки данных, нарвался на ошибку, которая возникает, если в настройках СКД присутствует отбор по реквизиту табличной части объекта или реквизиту реквизита. Сообщение системы было информативным:

Ошибка при вызове метода контекста (Инициализировать):
Ошибка компоновки данных: Ошибка инициализации: Не найдено поле замены "ТабЧастьТовары"

Сам фрагмент запроса для СКД выглядел таким образом:

То есть извлекаем из какого-то документа реквизиты и табличные части. Гугл ничего толком не выдал, книжку Хрусталёвой по разработке сложных отчетов полистал с тем же успехом. Случайно найденное решение оказалось до гениальности безумия очень простым. Если в запросе СКД присутствует извлечение табличной части, то обращаться к ней необходимо через ссылку на объект. То есть, фрагмент запроса должен выглядеть примерно так:

В процессе поиска решения наткнулся на страницу Ошибки СКД. Танцы с бубном., в которой описывается похожая проблема. Советы в данном случае не пригодились, но на заметку взял.

Не найдено поле замены 1с скд что это значит

Народ, подскажите, давно работаю с СКД — но сейчас столкнулся с ошибкой, которую раньше не встречал и просто в недоумении о её причине. В интернет (и тут на мисте) пошарил — люди с ней сталкивались, но ни одна из их ситуаций мне как-то не подошла.
Исправлял отчет "АнализСчета" (1С бухгалтерия 2.0)
В источнике данных "ОсновнойНаборДанных" в верхней выборке просто скопировал
выражения поля и зпадал иной псевдоним
ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ЕСТЬ NULL
ТОГДА Обороты.Субконто1.Наименование
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование
КОНЕЦ КАК НекотороеПоле,

Больше ничего не менял, выбрал это поле в отчете (в пользовательском режиме) в качестве группировки и получил ошибку
"Отчет не сформирован!
Не найдено поле замены "НекотороеПоле""

пробовал менять имя поля — не помогает.
Хотя — если выбрать имя "Поле1" — ошибки нет — но вместо значения выводится вид счета "Активный" (формировал по счету 41.01)

Что это за фигня? И что с этим делать?
(вообще мне нужно, конечно более сложное выражение написать — но это уже другая тема; а пока это был просто тест)

Не найдено поле замены 1с скд что это значит

Расскажу как я правил расчетный листок в 8-ке в ЗУП-е для бюджетников. В одной организации есть такие доплаты, процент которых меняется перед каждым новым расчетом зарплаты и им понадобилось выводить проценты доплат в расчетных листках.

В процедуре НастроитьПостроительЗапросов() в большом запросе который там есть делаем поправки. К таблице ОсновныеНачисленияРаботниковОрганизации делаем ЛЕВОЕ СОЕДИНЕНИЕ такого вот вложенного запроса:

Добавляем в объединенный запрос поле «ХА_Процент»

И в последнем из пакетов запросов добавляем наше поле:

Если бы мы добавляли чего-либо в уже существующие поля данного запроса(как, например, я добавлял дополнительно отработнанные часы из показателя схем мотивации), то на этом можно было бы и завершить изменения. Но у нас новое поле и надо, естественно, править таблицу с выходной формой расчетного листка. Кроме того нужно подправить таблицу НачисленияУдержания в СКД. В данную таблицу прописываем наше новое поле «ХА_Процент».

Если попробуем запустить такой отчет на выполнение, то получим ошибку: «Отчет не сформирован! Не найдено поле замены ХА_Процент». Это потому, что в СКД мы новое поле описали, а в источнике данных такого поля нет. Источник данных — это талблица значений НачисленияУдержания, которая описывается в конце модуля отчета.
Там надо добавить:

И последний шаг. Нужно еще внести небольшие поправки в процедуру
ЗаполнитьВнешнийИсточникДанных(). Примерно вот здесь:

Ошибка при вызове метода контекста (Выполнить) — Поле не найдено

Поле не найдено СКДПолный текст ошибки

Исправление ошибки

Открыть схему компоновки данных и проверить все вкладки.

Ошибочное поле в диалоге выбора отображается с красным крестом (как удаленное)

Поле не найдено 1

Выбрать другое поле (возможно переименовано, либо добавить в исходную таблицу новое с таким именем).

Перевыбрать в последнем случае все равно придется, поскольку система их определяет по внутреннему скрытому идентификатору.

Почему не сохранялись настройки СКД с новым полем

Как я уже писал ранее, сделал клиенту в УТ отчет, где подменил схему компоновки данных. Все работало хорошо, но не сохранялись настройки в варианте.

Проявлялось это так — если в настройках добавить поле «Остаток», то отчет формировался. Если сохранить вариант, потом переключиться на другой, потом вернуться на сохраненный, поле тоже показывалось.

Но если закрыть отчет и открыть сохраненный вариант, поля не было.

Я предполагал, что разбирательства будут долгими, так оно и оказалось. Работы были гарантийными, но мне было интересно, в чем проблема. Так можно было просто подменить макет через расширение макета, но хотелось докопаться до истины.

Вообще, был интересен вопрос — вариант сохраняется криво, без моего поля или же при восстановлении варианта происходит сбой.

Сейчас я понимаю, что надо было просто проверить, есть ли поле в настройках компоновщика при компоновке отчета из сохраненного варианта.

Но я пошел другим путем, не самым быстрым.

Я сделал замер производительности при сохранении варианта и нашел, где создается схема компоновки данных:

И вот тут я увидел, что в тексте запроса компоновки нет поля «Остаток», который я добавил (смотрите табло внизу):

Я отладил и нашел, где создается объект отчета:

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

В модуле ВариантыОтчетов:

В модуле отчета ВыручкаИСебестоимостьПродаж:

После этого в компоновке появилось мое поле остаток:

Дальше я решил проверить, как загружаются настройки при открытии отчета, нашел вот эту функцию, где опять же создавался объект отчета, похоже со стандартной схемой компоновки (не измененной):

По стеку сложно было привязаться к каким либо событиям:

Поэтому я решил привязаться к событию ЗагрузитьНастройкиВКомпоновщик:

Код выглядел примерно так:

Однако почему-то ЗначениеВРеквизитФормы выдавало ошибку, ругаясь на второй параметр. В общем, отладка показала, что ничего в запросе схемы компоновки не меняется, он остается без поля остаток.

Но тут я все же отладил загрузку варианта. Чтобы отлаживать не в фоновом режиме, я использовал запуск 1С с параметром РежимОтладки.

Я обнаружил, что настройка варианта загружается нормально, т.е. в списке полей настройки есть поле Остаток. Т.е. все предыдущие доработки были зря, потому что и без них вариант сохранялся и загружался нормально.

Настройки пропадают где-то при формировании отчета в коде самого отчета:

Дальнейшая проверка показала, где пропадает настройка:

Вот в этом коде настройки корректные:

А вот в этом коде поля Остаток уже нет:

Я добавил строчку для подмены настроек и отчет сформировался корректно:

Но мне не нравилось, что приходится менять код отчета. Поэтому я немножко поэкспериментировал и обнаружил, как можно привести настройки в адекватное состояние.

По сути, проблема сохранения варианта решается одной дополнительной строчкой кода в расширении, вот она:

Почему сбоят настройки, т.е. почему ПолучитьНастройки и Настройки одного и того же объекта выдают разные значения, я так и не понял. Я пробовал и метод ВосстановитьНастройки и добавлял инициализацию настроек в компоновщике настроек после подмены схемы компоновки, ничего не помогло. Видимо, это фича 1С.

Ошибкой было еще предположение, что где-то схема используется не измененная, поэтому настройки не сохраняются. Нужно было проверить настройки при компоновке отчета, тогда бы я увидел, что они уже там правильные, но сбрасываются из-за этой фичи.

Дело в том, что 1С всегда вызывает событие перед загрузкой настроек отчета, а там уже моё изменение схемы есть. Поэтому я по сути большую часть времени потратил на поиски фантомной ошибки, которой на самом деле не было.

UPD 2021-08-15: Обратились пользователи, решение не работало — поле остаток сохранялось, но нельзя было поменять период отчета.

Разборки показали, что проблема в пользовательских настройках, именно они при старте отчета не содержат поля остаток.

Я попробовал так, но не помогло:

Поле ДоступныеНастройки.ПользовательскиеНастройки.Элементы[3].Элементы не содержит поле Остаток:

Похоже, что пользовательские настройки отчета были модифицированы ранее.

Более детальный анализ показал, что настройки загружаются в событии формы перед загрузкой пользовательских настроек:

Поэтому нужно при создании формы отчета подменить схему компоновки.

Вот так заработало:

Но так не годится — это вмешательство в код.

Поэтому переношу код в расширение, таким образом, в расширении формы отчета достаточно такого кода (достаточно вызвать только при создании):

Ну и в расширении модуля отчета по валовой прибыли необходимый код такой:

Перед загрузкой настроек в компоновщик тоже надо обрабатывать, иначе не срабатывает.

Время факт: 3 час. Среда: УТ 11.4.13.46

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *