СКД ошибка: не найдено поле замены |
Я |
17.06.15 — 12:33
Народ, подскажите, давно работаю с СКД — но сейчас столкнулся с ошибкой, которую раньше не встречал и просто в недоумении о её причине. В интернет (и тут на мисте) пошарил — люди с ней сталкивались, но ни одна из их ситуаций мне как-то не подошла.
Исправлял отчет «АнализСчета» (1С бухгалтерия 2.0)
В источнике данных «ОсновнойНаборДанных» в верхней выборке просто скопировал
выражения поля и зпадал иной псевдоним
ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ЕСТЬ NULL
ТОГДА Обороты.Субконто1.Наименование
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование
КОНЕЦ КАК НекотороеПоле,
Больше ничего не менял, выбрал это поле в отчете (в пользовательском режиме) в качестве группировки и получил ошибку
«Отчет не сформирован!
Не найдено поле замены «НекотороеПоле»»
пробовал менять имя поля — не помогает.
Хотя — если выбрать имя «Поле1» — ошибки нет — но вместо значения выводится вид счета «Активный» (формировал по счету 41.01)
Что это за фигня? И что с этим делать?
(вообще мне нужно, конечно более сложное выражение написать — но это уже другая тема; а пока это был просто тест)
1 — 17.06.15 — 12:35
итогов может нет….
2 — 17.06.15 — 12:37
(1)?
3 — 17.06.15 — 12:39
ресурсов
4 — 17.06.15 — 12:41
(3)Простите, не могу понять что значит нет итогов… ресурсов… весь исходный макет компановки оставлен типовым, ничто никуда не пропало. В остатки/обороты по счету в базе имеются
5 — 17.06.15 — 12:47
(0)Субконто1.Наименование наименование добавил для теста, в «оригинале» было без него- просто Субконто1 — такая же ошибка.
Вообще — сама ошибка, как-то не похожа на ошибку СКД, но может мне просто кажется. Её причиной может быть какой-то алгоритм самого типового отчета — но пока я ничего такого не нашёл.
Как и не нашёл каких-то изменений в схеме компоновки или настройках — непосредственно перед ошибкой, возникающей в с строке
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, НастройкаКомпоновкиДанных, ДанныеРасшифровки, МакетОформления);
6 — 17.06.15 — 12:56
Сделать его обязательным, не?
7 — 17.06.15 — 12:59
(6)Пробовал — не помогает
8 — 17.06.15 — 13:00
тогда отладчик в зубы и остановка по оишбке
9 — 17.06.15 — 13:03
(8)смотри мой пост (5)
Если в пользовательском режиме в настройках в группировки добавить «Номенклатура» (субконто1) — то ошибки нет. Но это не решение — мне нужна отдельная своя группировка (без использования субконто1)
10 — 17.06.15 — 13:07
(9)Не ту строку скопировал в посте (5) — вот строка, вызывающая ошибку (общий модуль СтандартныеОтчеты):
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
11 — 17.06.15 — 13:17
Вообще-то мне нудно написать вот такое выражение — но даже оно не работает (та же ошибка):
ВЫРАЗИТЬ((ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ЕСТЬ NULL
ТОГДА Обороты.Субконто1
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1
КОНЕЦ).НаименованиеПолное КАК Строка(300)) КАК НаименованиеПолное
12 — 17.06.15 — 13:39
(0) Проверь на Нулл «Обороты.Субконто1»
13 — 17.06.15 — 13:39
убери автозаполнение
14 — 17.06.15 — 13:45
(12)Это к чему, я не понял?
(13)Убираю — и моё поле исчезает из верхнего списка Полей
Кнопка добавления недоступна — это как так?
15 — 17.06.15 — 13:48
(14) Обороты.Субконто1″ — может не содержать Структуру «Наименование»
16 — 17.06.15 — 13:49
(15)Как уже писал (5) не работает и без Наименования:
ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ЕСТЬ NULL
ТОГДА Обороты.Субконто1
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1
КОНЕЦ КАК Субконто1н
17 — 17.06.15 — 13:50
Не работает и так
ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Субконто1н
и так
Обороты.Субконто1 КАК Субконто1н
18 — 17.06.15 — 13:53
(14) ну конечно она убирается, ты в конструкторе запроса добавь её на вкладке «Компоновка данных»
19 — 17.06.15 — 13:54
(18) + автозаполнение СКД это ЗЛО
20 — 17.06.15 — 13:56
(18)да, так получается добавить, но:
После отключения автозаполнения отчёт вообще не работает (даже после включения):
{(2, 5)}: Таблица не найдена «ХозрасчетныйОбороты»
ИЛИ <<?>>ХозрасчетныйОбороты.СуммаОборотДт <> 0
(19)Раньше я с автозаполнением проблем не имел
21 — 17.06.15 — 14:00
выложи куда нибудь отчет
22 — 17.06.15 — 14:00
(20)Аналогичную ошибку я получал когда в источнике наборе данных) «ОсновнойНаборДанных» переименовал псевдоним вложенной таблицы «Обороты» на «Обороты1» (конструктором запросов) — от чего так же выпал в осадок (и понял, что всё-таки может что-то сам отчет программно со схемой ещё мутит, что к ней не прикоснуться).
В общем — желание менять типовой отчет уже отпало — видимо буду решать исходную поставленную задачу по-другому — не дорабатывая отчета «АнализСчета».
23 — 17.06.15 — 14:02
(21)А что — У Вас такая проблема на типовом отчете не воспроизводится? Ведь всё что я сделал — это взял типовой отчет и добавил вышеуказанные строки в запрос для вышеуказанного набора данных.
Может, конечно, всё дело в версии конфигурации (платформу уже пробовал менять на другую и на 8.2 и на 8.3 и в файловом и клиент серверном вариантах — та же фигня).
24 — 17.06.15 — 14:03
Сейчас ради прикола тоже самое сделаю в бухгалтерии 3.0
25 — 17.06.15 — 14:05
не пробывал, нет времени на эксперименты.
26 — 17.06.15 — 14:07
(25)Но отчёт просите. Проще его самостоятельно получить — а вдруг как раз ваша версия заработает
Darklight
27 — 17.06.15 — 14:14
(18)При отключении автозаполнения — поле всёравно автозаполняется в списке полей (как только я вношу в фигурные скобочки выбранных полей компоновщика):
{ВЫБРАТЬ
Субконто1н.*}
И получается такая же ошибка как в (20)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
ВЫБРАТЬ РАЗРЕШЕННЫЕ Хозрасчетный.Ссылка КАК Счет ПОМЕСТИТЬ СчетаВыручки ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ГДЕ Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Выручка)) ИНДЕКСИРОВАТЬ ПО Счет ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ Хозрасчетный.Ссылка КАК Счет ПОМЕСТИТЬ СчетаКассы ИЗ ПланСчетов.Хозрасчетный КАК Хозрасчетный ГДЕ Хозрасчетный.Ссылка В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Касса)) ИНДЕКСИРОВАТЬ ПО Счет ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ РАЗРЕШЕННЫЕ ХозрасчетныйОбороты.Период КАК Период, ХозрасчетныйОбороты.СуммаОборотКт КАК Сумма, ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто1 КАК Справочник.НоменклатурныеГруппы) КАК НоменклатурнаяГруппа, ВЫРАЗИТЬ(ХозрасчетныйОбороты.Субконто2 КАК Справочник.Номенклатура) КАК Номенклатура, ВЫРАЗИТЬ(ХозрасчетныйОбороты.КорСубконто1 КАК Справочник.Контрагенты) КАК Контрагент, ХозрасчетныйОбороты.Счет, ХозрасчетныйОбороты.КорСчет, ХозрасчетныйОбороты.Организация КАК Организация, ЕСТЬNULL(ХозрасчетныйОбороты.Подразделение, НЕОПРЕДЕЛЕНО) КАК Подразделение, ВЫБОР КОГДА ХозрасчетныйОбороты.КорСчет В (ВЫБРАТЬ СчетаКассы.Счет ИЗ СчетаКассы) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК РозничныйПокупатель, ПРЕДСТАВЛЕНИЕССЫЛКИ(ХозрасчетныйОбороты.КорСубконто1) КАК КонтрагентПредставление, ЕСТЬNULL(ХозрасчетныйОбороты.Регистратор.Ссылка, НЕОПРЕДЕЛЕНО) КАК Док {ВЫБРАТЬ Контрагент.*, Номенклатура.*, НоменклатурнаяГруппа.*, Сумма, Период, Организация.*, Подразделение.*, РозничныйПокупатель, КонтрагентПредставление, Док.*} ИЗ РегистрБухгалтерии.Хозрасчетный.Обороты( {(&НачалоПериода)}, {(&КонецПериода)}, Регистратор {(&Периодичность)}, Счет В (ВЫБРАТЬ СчетаВыручки.Счет ИЗ СчетаВыручки), &Субконто, {(Организация).*, (Подразделение).*, (ВЫРАЗИТЬ(Субконто1 КАК Справочник.НоменклатурныеГруппы)).* КАК НоменклатурнаяГруппа, (ВЫРАЗИТЬ(Субконто2 КАК Справочник.Номенклатура)).* КАК Номенклатура, (ВЫРАЗИТЬ(КорСубконто1 КАК Справочник.Контрагенты)).* КАК Контрагент}, , ) КАК ХозрасчетныйОбороты {ГДЕ (ВЫБОР КОГДА ХозрасчетныйОбороты.КорСчет В (ВЫБРАТЬ СчетаКассы.Счет ИЗ СчетаКассы) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ) КАК РозничныйПокупатель} |
Расскажу как я правил расчетный листок в 8-ке в ЗУП-е для бюджетников. В одной организации есть такие доплаты, процент которых меняется перед каждым новым расчетом зарплаты и им понадобилось выводить проценты доплат в расчетных листках.
В процедуре НастроитьПостроительЗапросов() в большом запросе который там есть делаем поправки. К таблице ОсновныеНачисленияРаботниковОрганизации делаем ЛЕВОЕ СОЕДИНЕНИЕ такого вот вложенного запроса:
Добавляем в объединенный запрос поле «ХА_Процент»
И в последнем из пакетов запросов добавляем наше поле:
Если бы мы добавляли чего-либо в уже существующие поля данного запроса(как, например, я добавлял дополнительно отработнанные часы из показателя схем мотивации), то на этом можно было бы и завершить изменения. Но у нас новое поле и надо, естественно, править таблицу с выходной формой расчетного листка. Кроме того нужно подправить таблицу НачисленияУдержания в СКД. В данную таблицу прописываем наше новое поле «ХА_Процент».
Если попробуем запустить такой отчет на выполнение, то получим ошибку: «Отчет не сформирован! Не найдено поле замены ХА_Процент». Это потому, что в СКД мы новое поле описали, а в источнике данных такого поля нет. Источник данных — это талблица значений НачисленияУдержания, которая описывается в конце модуля отчета.
Там надо добавить:
И последний шаг. Нужно еще внести небольшие поправки в процедуру
ЗаполнитьВнешнийИсточникДанных(). Примерно вот здесь:
Ошибка при вызове метода контекста (Выполнить) — Поле не найдено
Полный текст ошибки
Исправление ошибки
Открыть схему компоновки данных и проверить все вкладки.
Ошибочное поле в диалоге выбора отображается с красным крестом (как удаленное)
Выбрать другое поле (возможно переименовано, либо добавить в исходную таблицу новое с таким именем).
Перевыбрать в последнем случае все равно придется, поскольку система их определяет по внутреннему скрытому идентификатору.
Реклама — узаконенная ложь.
— Герберт Уэллс
Почему не сохранялись настройки СКД с новым полем
Как я уже писал ранее, сделал клиенту в УТ отчет, где подменил схему компоновки данных. Все работало хорошо, но не сохранялись настройки в варианте.
Проявлялось это так — если в настройках добавить поле «Остаток», то отчет формировался. Если сохранить вариант, потом переключиться на другой, потом вернуться на сохраненный, поле тоже показывалось.
Но если закрыть отчет и открыть сохраненный вариант, поля не было.
Я предполагал, что разбирательства будут долгими, так оно и оказалось. Работы были гарантийными, но мне было интересно, в чем проблема. Так можно было просто подменить макет через расширение макета, но хотелось докопаться до истины.
Вообще, был интересен вопрос — вариант сохраняется криво, без моего поля или же при восстановлении варианта происходит сбой.
Сейчас я понимаю, что надо было просто проверить, есть ли поле в настройках компоновщика при компоновке отчета из сохраненного варианта.
Но я пошел другим путем, не самым быстрым.
Я сделал замер производительности при сохранении варианта и нашел, где создается схема компоновки данных:
И вот тут я увидел, что в тексте запроса компоновки нет поля «Остаток», который я добавил (смотрите табло внизу):
Я отладил и нашел, где создается объект отчета:
В итоге я решил добавить событие, чтобы при создании отчета обновлялась компоновка данных.
В модуле ВариантыОтчетов:
В модуле отчета ВыручкаИСебестоимостьПродаж:
После этого в компоновке появилось мое поле остаток:
Дальше я решил проверить, как загружаются настройки при открытии отчета, нашел вот эту функцию, где опять же создавался объект отчета, похоже со стандартной схемой компоновки (не измененной):
По стеку сложно было привязаться к каким либо событиям:
Поэтому я решил привязаться к событию ЗагрузитьНастройкиВКомпоновщик:
Код выглядел примерно так:
Однако почему-то ЗначениеВРеквизитФормы выдавало ошибку, ругаясь на второй параметр. В общем, отладка показала, что ничего в запросе схемы компоновки не меняется, он остается без поля остаток.
Но тут я все же отладил загрузку варианта. Чтобы отлаживать не в фоновом режиме, я использовал запуск 1С с параметром РежимОтладки.
Я обнаружил, что настройка варианта загружается нормально, т.е. в списке полей настройки есть поле Остаток. Т.е. все предыдущие доработки были зря, потому что и без них вариант сохранялся и загружался нормально.
Настройки пропадают где-то при формировании отчета в коде самого отчета:
Дальнейшая проверка показала, где пропадает настройка:
Вот в этом коде настройки корректные:
А вот в этом коде поля Остаток уже нет:
Я добавил строчку для подмены настроек и отчет сформировался корректно:
Но мне не нравилось, что приходится менять код отчета. Поэтому я немножко поэкспериментировал и обнаружил, как можно привести настройки в адекватное состояние.
По сути, проблема сохранения варианта решается одной дополнительной строчкой кода в расширении, вот она:
Почему сбоят настройки, т.е. почему ПолучитьНастройки и Настройки одного и того же объекта выдают разные значения, я так и не понял. Я пробовал и метод ВосстановитьНастройки и добавлял инициализацию настроек в компоновщике настроек после подмены схемы компоновки, ничего не помогло. Видимо, это фича 1С.
Ошибкой было еще предположение, что где-то схема используется не измененная, поэтому настройки не сохраняются. Нужно было проверить настройки при компоновке отчета, тогда бы я увидел, что они уже там правильные, но сбрасываются из-за этой фичи.
Дело в том, что 1С всегда вызывает событие перед загрузкой настроек отчета, а там уже моё изменение схемы есть. Поэтому я по сути большую часть времени потратил на поиски фантомной ошибки, которой на самом деле не было.
UPD 2021-08-15: Обратились пользователи, решение не работало — поле остаток сохранялось, но нельзя было поменять период отчета.
Разборки показали, что проблема в пользовательских настройках, именно они при старте отчета не содержат поля остаток.
Я попробовал так, но не помогло:
Поле ДоступныеНастройки.ПользовательскиеНастройки.Элементы[3].Элементы не содержит поле Остаток:
Похоже, что пользовательские настройки отчета были модифицированы ранее.
Более детальный анализ показал, что настройки загружаются в событии формы перед загрузкой пользовательских настроек:
Поэтому нужно при создании формы отчета подменить схему компоновки.
Вот так заработало:
Но так не годится — это вмешательство в код.
Поэтому переношу код в расширение, таким образом, в расширении формы отчета достаточно такого кода (достаточно вызвать только при создании):
Ну и в расширении модуля отчета по валовой прибыли необходимый код такой:
Перед загрузкой настроек в компоновщик тоже надо обрабатывать, иначе не срабатывает.
Время факт: 3 час. Среда: УТ 11.4.13.46
Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.
Ошибка при вызове метода контекста (Выполнить) — Поле не найдено
Ошибка возникает в момент исполнения отчета на СКД (системе компоновки данных)
- говорит об отсутствии этого поля в исходных данных
- наличии выбранного поля в выбранных полях, в отборах, в условном оформлении
- проявляется и в 8.2, и в 8.3
Скриншот
Полный текст ошибки
Ошибка при вызове метода контекста (Выполнить) МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройка, ДанныеРасшифровки); по причине: Ошибка компоновки макета по причине: Поле не найдено "Проведен"
Исправление ошибки
Открыть схему компоновки данных и проверить все вкладки.
Ошибочное поле в диалоге выбора отображается с красным крестом (как удаленное)
Выбрать другое поле (возможно переименовано, либо добавить в исходную таблицу новое с таким именем).
Перевыбрать в последнем случае все равно придется, поскольку система их определяет по внутреннему скрытому идентификатору.
Я знаю, что трачу половину денег на рекламу впустую, но не знаю, какую именно половину.
СКД ошибка: не найдено поле замены
Народ, подскажите, давно работаю с СКД — но сейчас столкнулся с ошибкой, которую раньше не встречал и просто в недоумении о её причине. В интернет (и тут на мисте) пошарил — люди с ней сталкивались, но ни одна из их ситуаций мне как-то не подошла.
Исправлял отчет «АнализСчета» (1С бухгалтерия 2.0)
В источнике данных «ОсновнойНаборДанных» в верхней выборке просто скопировал
выражения поля и зпадал иной псевдоним
ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Субконто1 ЕСТЬ NULL
ТОГДА Обороты.Субконто1.Наименование
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.Субконто1.Наименование
КОНЕЦ КАК НекотороеПоле,
Больше ничего не менял, выбрал это поле в отчете (в пользовательском режиме) в качестве группировки и получил ошибку
«Отчет не сформирован!
Не найдено поле замены «НекотороеПоле»»
пробовал менять имя поля — не помогает.
Хотя — если выбрать имя «Поле1» — ошибки нет — но вместо значения выводится вид счета «Активный» (формировал по счету 41.01)
Что это за фигня? И что с этим делать?
(вообще мне нужно, конечно более сложное выражение написать — но это уже другая тема; а пока это был просто тест)
(8)смотри мой пост (5)
Если в пользовательском режиме в настройках в группировки добавить «Номенклатура» (субконто1) — то ошибки нет. Но это не решение — мне нужна отдельная своя группировка (без использования субконто1)
Всем привет! Хелп!
Есть внешний отчет, при формировании пишет следующее:
Поле не найдено «СведенияКадровойИсторияСотрудников.ВидЗанятости» И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости
И собственно ругается на этот кусок запроса,
//ЗапросКадроваяИсторияСотрудников
ВЫБРАТЬ РАЗРЕШЕННЫЕ
СведенияКадровойИсторияСотрудников.Период,
СведенияКадровойИсторияСотрудников.ФизическоеЛицо,
ВЫБОР
КОГДА СведенияКадровойИсторияСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
И СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
КОГДА СведенияКадровойИсторияСотрудников2.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
КОГДА СведенияКадровойИсторияСотрудников.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников.Подразделение
КОГДА СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
ТОГДА СведенияКадровойИсторияСотрудников2.Подразделение
ИНАЧЕ ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
КОНЕЦ КАК Подразделение
ПОМЕСТИТЬ ВТСведенияОПодразделенияхПредварительно
ИЗ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников
ЛЕВОЕ СОЕДИНЕНИЕ ВТКадроваяИсторияСотрудников КАК СведенияКадровойИсторияСотрудников2
ПО СведенияКадровойИсторияСотрудников.ФизическоеЛицо = СведенияКадровойИсторияСотрудников2.ФизическоеЛицо
И СведенияКадровойИсторияСотрудников.Период = СведенияКадровойИсторияСотрудников2.Период
И СведенияКадровойИсторияСотрудников.Организация = СведенияКадровойИсторияСотрудников2.Организация
И СведенияКадровойИсторияСотрудников.ВидЗанятости <> СведенияКадровойИсторияСотрудников2.ВидЗанятости
И СведенияКадровойИсторияСотрудников2.Подразделение <> ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
;
Что его тут не устраивает?
Поле не найдено «СведенияКадровойИсторияСотрудников.ВидЗанятости»
в таблице «СведенияКадровойИсторияСотрудников»
Копируйте текст запроса, и открывайте, устраняя ошибки, пока не откроется.
Отчёт, наверное, самописный, а в конфигурации разработчики убрали такое поле или переименовали.
СКД, ошибка в вычисляемых полях
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «опМодуль.КореньКвадратный»
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Синтаксическая ошибка «SQRT»
(8) А это уже странно. Тупо ради интереса запилил себе в первый попавшийся отчет эту функцию, вот этот столбец:
Корень из отрицательного числа
118,82
39,01
79,81
(4) А, так у вас программный вывод? А вы его не забыли инициализировать, случаем?
В СКД можно использовать функции глобальных и неглобальных общих модулей в вычисляемых полях при условии что функция объявлена как экспортная.
Есть только маленькая тонкость при программном формировании отчета СКД.
Обычно, при инициализации процессора компоновки данных делают так:
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки);
При таком формировании отчета вызова функций не произойдет. Что бы эту возможность включить нужно сделать так
по причине:
Ошибка вывода результата
по причине:
Ошибка при выводе результата
по причине:
Ошибка получения данных
по причине:
Ошибка в выражении
по причине:
Неверные параметры «*»
В СКД отображаются не все поля
Суть проблемы: есть отчет на скд, под полными правами он работает так как мне надо. Если запускаю его не под полными правами, то пропадают некоторые поля. Права на чтение/просмотр у пользователя с неполными правами есть на регистры и на документы используемые в запросе.
пробовал запускать под пользователем с неполными правами запрос из отчета в консоли запросов, всё работает правильно. Но в скд почему то поля просто теряются. их нет в выбранных полях.
пробовал выгружать настройку скд под полными и загружать не под полными правами. поля не появляются.
куда копать? помогите)
выше текст запроса.
нету вот этих полей :
то есть это реквизит документов «сумма документа»
Действительно если у пользователя есть право «Чтение», но нет права «Просмотр» регистра сведений, поле из него не попадает в список доступных полей.
Удивительно, но факт.
Результат НУЛЕВОЙ!
Поля видны только тем пользователям, у которых есть роль «Полные права».
Конфигурация: Управление торговлей, редакция 11.1 (11.1.9.61)
Платформа: 1С:Предприятие 8.3 (8.3.5.1517)
Нужно смотреть не только права на регистратор, но и на все объекты
отчета, где этот объект как таковой может использоваться в качестве
реквизита.
В моем случае использовалось измерение «АналитикаУчетаПопартнерам» в измерении
регистра «РасчетыСПоставщиками». Вот из-за того, что на сам справочник права
были только для роли «ПолныкеПрава» отбор по его реквизитам «Организация», «Партнер»
и «Контрагент» был невозможен. Не смотря на то, что на сами эти объекты у пользователей
разрешения были.
(19) valerasv,
Еще один вариант решения проблемы:
Делается соединения с таблицами объектов.
А уже эти таблицы используются дальше.
Пример.
Текст запроса для КД:
ВЫБРАТЬ
КлючиАналитикиУчетаПоПартнерам.Организация КАК Организация_КлючАналитики
ИЗ
Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиАналитикиУчетаПоПартнерам
Для пользователя, у которого не полные права, из-за того, что на справочник КлючиАналитикиУчетаПоПартнерам
установлено разрешение только на чтение, мы ни где не увидим поле «Организация».
Изменив же запрос, можно получить желаемое.
Как пример:
ВЫБРАТЬ
Организации.Ссылка КАК Организация_КлючАналитики
ИЗ
Справочник.КлючиАналитикиУчетаПоПартнерам КАК КлючиАналитикиУчетаПоПартнерам
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
ПО КлючиАналитикиУчетаПоПартнерам.Организация = Организации.Ссылка
1С отчет скд поле не найдено
1с. СКД. Таблица значений как источник данных.
Чтобы полученную запросом или как угодно таблицу значений вывести в отчет СКД надо:
1. В отчете создать табличную часть с перечнем полей отчета. Название и типы полей должны быть такими же как в таблице значений с данными. Это облегчит загрузку данных до одной строки кода.
2. В качестве набора данных отчета СКД 1с использовать Объект. Имя объекта — имя табличной части.
3. Добавить поля, одноименные и однотипные с реквизитами табличной части. Какого-то автоматического создания полей на основе ТЧ я не нашел. Так что всё в руки.
4. В форме на кнопку формирования отчета повесить следующую процедуру:
Процедура ДействияФормыДействие ( Кнопка )
    // Получить данные для отчета
    ТЗ = ПолучитьДанныеДляОтчета ( ) ;
Если при выполнении отчета возникает ошибка «Не найдено поле замены . «, значит вы не прописали нужное поле в табличную часть или макет СКД.
Если в запросе используется конструкция вида регистратор.дата или получение еще какого-либо реквизита через регистратор и это поле не отображается в полях отчета СКД, то:
Допустим Вы сделали запрос по регистру накоплений и через регистратор обратились к дате или сумме документа и при формировании отчета СКД, эти поля недоступны !? как же быть?
Проблема в том — что у регистратором может выступать несколько документов и видимо права чтение/просмотр есть не на все — поэтому через скд эта таблица целиком недоступна, решение:
1. открыть доступ на все регистраторы регистра
Описание ошибки:
При разработке очередного отчета с помощью системы компоновки данных на 1С 8 при необходимости использовать функцию языка запросов ДОБАВИТЬКДАТЕ() в выражении вычисляемого поля, возникла ошибка «Поле не найдено «День».
Вроде бы ничего особенного? Использовал в выражении вычисляемого поля СКД функцию встроенного языка запросов, что в принципе в данном месте не возбраняется. Но вочему-то конфигуратор 1С сообщает об ошибке.
А проблема, как оказалось, совсем в мелочи. При использовании параметра типа увеличения (СЕКУНДА, МИНУТА, ЧАС, ДЕНЬ, НЕДЕЛЯ, МЕСЯЦ, КВАРТАЛ, ГОД, ДЕКАДА, ПОЛУГОДИЕ;) необходимо, в отличие от использования в выражениях полей запроса, заключать в кавычки, т.е. в моем случае: не просто ДОБАВИТЬКДАТЕ(ДатаПлюс14Дней, ДЕНЬ, -3), а
ДОБАВИТЬКДАТЕ(ДатаПлюс14Дней, « ДЕНЬ « ,-3)
Не найдено поле замены 1с скд что это значит
ignsv —> ignsv
Просмотр профиля
Найти сообщения пользователя
logist —> logist
Просмотр профиля
Найти сообщения пользователя
А почему собственно Запись, а не Регистратор?
upd:
хотя проблема может быть в другом, регистр же не хранит обороты/остатки по регистратору.
MATEVI —> MATEVI
Просмотр профиля
Найти сообщения пользователя
Посмотрите [необходимо зарегистрироваться для просмотра ссылки] тут есть такая возможность
Сообщение отредактировал logist — 30.08.12, 13:21
andpyxa —> andpyxa
Просмотр профиля
Найти сообщения пользователя